Timeline



Jul 23, 2020:

10:31 PM Changeset in webkit [264812] by wenson_hsieh@apple.com
  • 11 edits in trunk

Tapping QuickType suggestions for a misspelled word does nothing in Mail compose
https://bugs.webkit.org/show_bug.cgi?id=214705
<rdar://problem/58320785>

Reviewed by Tim Horton.

Source/WebKit:

In WebKit2-based editing contexts on iOS (such as Mail compose), tapping on a misspelled word will result in
QuickType suggestions in the input accessory row either showing up blank (i.e. with no suggestions), or will
show suggestions that are contextual to the text selection prior to selecting the misspelled word. Subsequently,
attempting to choose of these suggestions results in no text being inserted. This happens for a couple of
reasons:

  1. UIKit doesn't attempt to re-request the autocorrection context after tapping on a misspelled word. UIKit

just uses -selectWordForReplacement to extend the selection over the misspelled word, which doesn't
currently fire any of the selection change callbacks on UIInputDelegate. As a result, UIKit will instead
believe that the selection is collapsed to the start or end of the misspelled word.

  1. Upon attempting to compute text suggestions for QuickType, -[UIKeyboardImpl replacementsFromSelectedText]

uses -textInRange: to grab the currently selected text, which (in WKContentView) is currently hard-coded
to always return nil.

We address (1) by bookending -selectWordForReplacement with calls to -beginSelectionChange and
-endSelectionChange, and address (2) by teaching -textInRange: to return the current text selection, only in
the case where the given UITextRange is equal to the current ranged selection.

Test: SelectionTests.SelectedTextAfterSelectingWordForReplacement

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::extendSelection):

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

(-[WKContentView cleanUpInteraction]):
(-[WKContentView textInRange:]):

Special-case the scenario where the input text range is exactly the same as self.selectedTextRange by
returning the currently selected text that is cached on EditorState. In all other cases, continue to return
nil.

(-[WKContentView selectedTextRange]):

Cache the current selected text range on WKContentView, such that repeated calls to selectedTextRange when the
selection has not changed does not require a new WKTextRange to be constructed every time.

(-[WKContentView _selectionChanged]):

Invalidate the cached selected text range whenever the selection has changed.

(-[WKContentView selectWordForReplacement]):

Use the completion callback added below to bookend this method with -(begin|end)SelectionChange.

(-[WKContentView _updateChangedSelection:]):

Invalidate the cached selected text range whenever we're about to tell UIKit to repaint the selection.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::extendSelection):

Add an optional completion callback to extendSelection.

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

(WebKit::WebPage::extendSelection):

Tools:

  • TestWebKitAPI/Tests/ios/SelectionByWord.mm:

Add a unit test to exercise the changes in behavior when calling UITextInput API.

(-[SelectionChangeListener setSelectionWillChangeHandler:]):
(-[SelectionChangeListener setSelectionDidChangeHandler:]):
(-[SelectionChangeListener selectionWillChangeHandler]):
(-[SelectionChangeListener selectionDidChangeHandler]):
(-[SelectionChangeListener selectionWillChange:]):
(-[SelectionChangeListener selectionDidChange:]):
(-[SelectionChangeListener textWillChange:]):
(-[SelectionChangeListener textDidChange:]):

  • TestWebKitAPI/ios/UIKitSPI.h:
10:04 PM Changeset in webkit [264811] by commit-queue@webkit.org
  • 27 edits
    1 add in trunk/Source

Split Windows parts from CFNetworkSPI.h to CFNetworkSPIWin.h
https://bugs.webkit.org/show_bug.cgi?id=214719

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

Source/WebCore:

No change in behavior.
Windows CFNetwork work is not actively developed, but Cocoa is.
This makes it easier to find where to put new things.

  • platform/network/NetworkStorageSession.h:
  • platform/network/ResourceHandleClient.h:
  • platform/network/ResourceHandleInternal.h:
  • platform/network/cf/CookieStorageCFNet.cpp:
  • platform/network/cf/CredentialStorageCFNet.cpp:
  • platform/network/cf/NetworkStorageSessionCFNetWin.cpp:
  • platform/network/cf/ResourceErrorCF.cpp:
  • platform/network/cf/ResourceHandleCFNet.cpp:
  • platform/network/cf/ResourceHandleCFURLConnectionDelegate.cpp:
  • platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
  • platform/network/cf/ResourceRequestCFNet.cpp:
  • platform/network/cf/ResourceRequestCFNet.h:
  • platform/network/cf/ResourceResponse.h:
  • platform/network/cf/ResourceResponseCFNet.cpp:
  • platform/network/cf/SocketStreamHandleImplCFNet.cpp:

Source/WebCore/PAL:

  • pal/PlatformAppleWin.cmake:
  • pal/spi/cf/CFNetworkSPI.h:
  • pal/spi/win/CFNetworkSPIWin.h: Added.

Source/WebKitLegacy/win:

  • WebCache.cpp:
  • WebCoreSupport/WebFrameNetworkingContext.cpp:
  • WebCoreSupport/WebPlatformStrategies.cpp:
  • WebError.cpp:
  • WebURLResponse.cpp:
  • WebView.cpp:
9:48 PM Changeset in webkit [264810] by Peng Liu
  • 2 edits in trunk/Source/WebKit

Safari Related Leaked Assertions after Playing YouTube Video
https://bugs.webkit.org/show_bug.cgi?id=214706

Reviewed by Jer Noble.

A 10 second grace period before removing the activity token was introduced in r252692.
However, some websites, e.g., youtube.com, requests the video element to play the
next video 10 seconds after completing the current one (when the Safari is in the background).
That can lead to a race condition between the web process and the UI process. They may send
IPC messages to each other at the same time:
1) The web process sends a WebPageProxy::IsPlayingMediaDidChange message to the UI process
to notify that video/audio is playing, so the UI process will take a MediaPlayback assertion.
2) The UI process sends a WebProcess::PrepareToSuspend message to the web process, which
will suspend the web process.

Eventually, the web process will suspend, which means no video/audio playback.
But the UI process believes that there is a web process playing video/audio, so it will
take a MediaPlayback assertion.

This patch fixes the race condition by ignoring the WebPageProxy::IsPlayingMediaDidChange
message in the UIProcess if the process throttler believes that the process should not be
running, so that the MediaPlayback assertion will not be created.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::isPlayingMediaDidChange):

8:53 PM Changeset in webkit [264809] by ysuzuki@apple.com
  • 7 edits
    1 add in trunk

[JSC] Arrow function |this| resolution should not be trapped by with-scope
https://bugs.webkit.org/show_bug.cgi?id=214716
<rdar://problem/65980639>

Reviewed by Darin Adler.

JSTests:

  • stress/proxy-trap-this.js: Added.

(shouldNotThrow):
(const.handler.has):
(test):

Source/JavaScriptCore:

We were using usual "this" named variable in lexical-environment to load and store arrow-function's |this|.
But since this looks normal variable, it can be trapped by "with" scope's object while it should not be.
We use thisPrivateName instead to avoid this behavior since Proxy does not trap private names.

  • builtins/BuiltinNames.h:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::initializeArrowFunctionContextScopeIfNeeded):
(JSC::BytecodeGenerator::variable):
(JSC::BytecodeGenerator::createVariable):
(JSC::BytecodeGenerator::emitLoadThisFromArrowFunctionLexicalEnvironment):
(JSC::BytecodeGenerator::emitPutThisToArrowFunctionContextScope):

  • bytecompiler/NodesCodegen.cpp:

(JSC::HasOwnPropertyFunctionCallDotNode::emitBytecode):
(JSC::ForInNode::emitBytecode):

  • runtime/CommonIdentifiers.cpp:

(JSC::CommonIdentifiers::CommonIdentifiers):

  • runtime/CommonIdentifiers.h:
7:28 PM Changeset in webkit [264808] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Remove dead code in ResourceHandleCFNet.cpp
https://bugs.webkit.org/show_bug.cgi?id=214717

Patch by Alex Christensen <achristensen@webkit.org> on 2020-07-23
Reviewed by Darin Adler.

ResourceHandleCFNet.cpp is not compiled on Cocoa platforms any more.
Remove Cocoa-specific code in that file, which was used on iOS before adopting NSURLSession.

  • platform/network/cf/ResourceHandleCFNet.cpp:

(WebCore::ResourceHandle::createCFURLConnection):
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::tryHandlePasswordBasedAuthentication):
(WebCore::ResourceHandle::receivedCredential):
(WebCore::ResourceHandle::schedule): Deleted.
(WebCore::ResourceHandle::unschedule): Deleted.

5:50 PM Changeset in webkit [264807] by commit-queue@webkit.org
  • 10 edits in trunk

[WebGL2] Query Objects
https://bugs.webkit.org/show_bug.cgi?id=126940

Patch by James Darpinian <James Darpinian> on 2020-07-23
Reviewed by Dean Jackson.

Source/WebCore:

Passes conformance tests webgl/2.0.0/conformance2/query/*

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::deleteQuery):
(WebCore::WebGL2RenderingContext::isQuery):
(WebCore::WebGL2RenderingContext::validateQueryTarget):
(WebCore::WebGL2RenderingContext::beginQuery):
(WebCore::WebGL2RenderingContext::endQuery):
(WebCore::WebGL2RenderingContext::getQuery):
(WebCore::WebGL2RenderingContext::getQueryParameter):

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

(WebCore::WebGLQuery::deleteObjectImpl):

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

(WebCore::WebGLRenderingContextBase::validateWebGLObject):

  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLOpenGL::deleteQuery):
(WebCore::GraphicsContextGLOpenGL::isQuery):
(WebCore::GraphicsContextGLOpenGL::getQuery):

LayoutTests:

  • webgl/2.0.0/conformance2/query/query-expected.txt:
  • webgl/2.0.0/conformance2/state/gl-object-get-calls-expected.txt:
4:54 PM Changeset in webkit [264806] by pvollan@apple.com
  • 4 edits in trunk/Source/WebKit

Crash in block in WebKit::LaunchServicesDatabaseObserver::LaunchServicesDatabaseObserver
https://bugs.webkit.org/show_bug.cgi?id=214702

Reviewed by Chris Dumez.

Calling xpc_connection_send_message in the block in WebKit::LaunchServicesDatabaseObserver::LaunchServicesDatabaseObserver will
sometimes crash because the XPC connection object is invalid. The block is called on a secondary thread, and the m_connections
member variable needs to be protected by a lock. Also, make sure the XPC connections objects in m_connections are valid by
retaining them when captured in a block. This is done by redeclaring a local XPC connection variable as an OSObjectPtr instead
of a raw XPC connection object.

No new tests, since I have not been able to reproduce this issue.

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

(WebKit::LaunchServicesDatabaseObserver::LaunchServicesDatabaseObserver):
(WebKit::LaunchServicesDatabaseObserver::startObserving):
(WebKit::LaunchServicesDatabaseObserver::handleEvent):

  • Shared/Cocoa/XPCEndpoint.mm:

(WebKit::XPCEndpoint::XPCEndpoint):

4:42 PM Changeset in webkit [264805] by commit-queue@webkit.org
  • 36 edits
    5 adds in trunk/Source/WebCore

Infrastructure Work for Integrating CoreImage for Accelerated CSS/SVG Filter Rendering
https://bugs.webkit.org/show_bug.cgi?id=213672

Patch by Guowei Yang <guowei_yang@apple.com> on 2020-07-23
Reviewed by Simon Fraser.

This patch is the infrastructure work to enable filter rendering using
CoreImage. The design of this code is as follows:

0) changing WebCore configuration for using CoreImage framework from

iOS/mac only to unconditional, so watchOS and tvOS could also use
CoreImage

1) adding a new API to obtain the IOSurface from an AcceleratedImageBuffer

since CoreImage needs to render to an IOSurface

2) Instead of applying the filters inside FilterEffect, a new class,

FilterEffectRendererCoreImage is designed to handle the rendering. We hide
the implementation details by subclassing from a generic FilterEffectRenderer class.
This also has the benefit of organizing CoreImage obj-c calls in one place. This class
owns a FilterEffect node, that is the last FilterEffect of a given filter graph.
The filter graph will be traversed backwards and filter parameters is gathered
along the way. Then CIFilters will be created and connected to a larger CIFilter
graph. The output of the CIFilter graph will be rendered to the IOSurface of
a newly created AcceleratedImageBuffer. This image buffer will be returned
to RenderLayerFilters and rendered to the screen

3) Inside CSSFilter::build, we first try to create a FilterEffectRenderer by passing in

a renderer setting. A valid pointer will be returned only when the following two conditions
are met:

. CoreImage rendering is enabled in settings
. All the filters inside the filter graph is implemented using CIFilters

No new tests are required as this is the
infrastructure code for integrating CoreImage
This patch should pass all the existing css3/filters tests

  • Configurations/WebCore.xcconfig: modified flag definition

so that CoreImage is used on all Apple Platforms, not only iPhone.

  • Sources.txt: Added the generic FilterEffectRenderer class file
  • SourcesCocoa.txt: added FilterEffectRendererCoreImage.mm
  • WebCore.xcodeproj/project.pbxproj: Reflecting newly added files,

with some ordering changes

  • platform/graphics/ConcreteImageBuffer.h: overrides isAccelerated()

function that returns true only if the backend is IOSurface

  • platform/graphics/ImageBuffer.h: defined virtual function isAccelerated()
  • platform/graphics/ImageBufferBackend.h: defined virtual function isAccelerated() that returns false in the base class

(WebCore::ImageBufferBackend::isAccelerated const): returns false for the base class

  • platform/graphics/PlatformImageBuffer.h: added SPECIALIZE_TYPE_TRAITS to check what type of ImageBufferBackend is
  • platform/graphics/PlatformImageBuffer.h: Added API to obtain IOSurface from IOSurfaceBackend; added SPECIALIZE_TYPE_TRAITS

(WebCore::AcceleratedImageBuffer::surface): Obtain the IOSurface pointer

from ImageBufferIOSurfaceBackend

(isType): check if a given ImageBuffer is type AcceleratedImageBuffer

  • platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:

(WebCore::ImageBufferIOSurfaceBackend::surface): added an API to get the

IOSurface pointer

(WebCore::ImageBufferIOSurfaceBackend::isAccelerated const): returns true

because it is an accelerated image buffer

  • platform/graphics/cg/ImageBufferIOSurfaceBackend.h: added function surface()

and isAccelerated()

  • platform/graphics/coreimage/FilterEffectRendererCoreImage.h: Added.
  • platform/graphics/coreimage/FilterEffectRendererCoreImage.mm: Added.

(WebCore::FilterEffectRendererCoreImage::tryCreate): creates a FilterEffectRendererCoreImage

unique pointer. If the filters inside the graph are not all implemented,
we return nullptr

(WebCore::FilterEffectRendererCoreImage::supportsCoreImageRendering):

a function that takes in FilterEffect& and returns true if its a filter effect
type that is implemented in CoreImage, false otherwise

(WebCore::FilterEffectRendererCoreImage::applyEffects): takes in a FilterEffect pointer,

calls FilterEffectRendererCoreImage::connectCIFilters to create the final output CIImage

(WebCore::FilterEffectRendererCoreImage::connectCIFilters): recursive

helper function that traverses the FilterEffect graph backwards,
creates CIFilter graph based on the subclass type of current processing
FilterEffect node. It will cache the CIFilter in a hashmap, whose key
is the corresponding FilterEffect pointer.

(WebCore::FilterEffectRendererCoreImage::canRenderUsingCIFilters): unction

that takes in the last FilterEffect node and determines whether
all of the filters inside the filter graph is already implemented using
CIFilters. It returns false as long as there is one filter that hasn't
been implemented. The rendering procedure will fallback to software mode
if this function returns false

(WebCore::FilterEffectRendererCoreImage::output const): returns the ImageBuffer

that contains the data of the final output image

(WebCore::FilterEffectRendererCoreImage::renderToImageBuffer): r

enders CIImage* to an ImageBuffer

(WebCore::FilterEffectRendererCoreImage::destRect const): calculates the destination

bounding box

(WebCore::FilterEffectRendererCoreImage::clearResult): clears all the saved results
(WebCore::FilterEffectRendererCoreImage::FilterEffectRendererCoreImage): constructor

  • platform/graphics/filters/FEBlend.cpp:

(WebCore::FEBlend::FEBlend): Pass an additional FilterEffect::Type argument

to base class constructor

  • platform/graphics/filters/FEColorMatrix.cpp:

(WebCore::FEColorMatrix::FEColorMatrix): ditto

  • platform/graphics/filters/FEComponentTransfer.cpp:

(WebCore::FEComponentTransfer::FEComponentTransfer): ditto

  • platform/graphics/filters/FEComposite.cpp:

(WebCore::FEComposite::FEComposite): ditto

  • platform/graphics/filters/FEConvolveMatrix.cpp:

(WebCore::FEConvolveMatrix::FEConvolveMatrix): ditto

  • platform/graphics/filters/FEDiffuseLighting.cpp:

(WebCore::FEDiffuseLighting::FEDiffuseLighting):ditto

  • platform/graphics/filters/FEDisplacementMap.cpp:

(WebCore::FEDisplacementMap::FEDisplacementMap):ditto

  • platform/graphics/filters/FEDisplacementMap.h:
  • platform/graphics/filters/FEDropShadow.cpp:

(WebCore::FEDropShadow::FEDropShadow):ditto

  • platform/graphics/filters/FEFlood.cpp:

(WebCore::FEFlood::FEFlood):ditto

  • platform/graphics/filters/FEGaussianBlur.cpp:

(WebCore::FEGaussianBlur::FEGaussianBlur):ditto

  • platform/graphics/filters/FELighting.cpp:

(WebCore::FELighting::FELighting):ditto

  • platform/graphics/filters/FELighting.h:
  • platform/graphics/filters/FEMerge.cpp:

(WebCore::FEMerge::FEMerge): ditto

  • platform/graphics/filters/FEMorphology.cpp:

(WebCore::FEMorphology::FEMorphology): ditto

  • platform/graphics/filters/FEOffset.cpp:

(WebCore::FEOffset::FEOffset): ditto

  • platform/graphics/filters/FESpecularLighting.cpp:

(WebCore::FESpecularLighting::FESpecularLighting): ditto

  • platform/graphics/filters/FETile.cpp:

(WebCore::FETile::FETile): ditto

  • platform/graphics/filters/FETurbulence.cpp:

(WebCore::FETurbulence::FETurbulence): ditto

  • platform/graphics/filters/FilterEffect.cpp:

(WebCore::FilterEffect::FilterEffect): ditto

  • platform/graphics/filters/FilterEffect.h: added a const member, m_filterEffectType

(WebCore::FilterEffect::filterEffectClassType): returns the FilterEffect

class type

  • platform/graphics/filters/FilterEffectRenderer.cpp: Added.

(WebCore::FilterEffectRenderer::tryCreate): tries creates a new FilterEffectRenderer

unique pointer. Here, we check whether the renderer setting has
CoreImage accelerated filter rendering enabled; we also check if all the
filters in the given FilterEffect graph is already implemented using
CoreImage. If both conditions are satisfied, create a FilterEffectRendererCoreImage
otherwise returns nullptr.

  • platform/graphics/filters/FilterEffectRenderer.h: Added.
  • platform/graphics/filters/SourceAlpha.cpp:

(WebCore::SourceAlpha::SourceAlpha): Pass an additional FilterEffect::Type argument

to base class constructor

  • platform/graphics/filters/SourceAlpha.h:
  • platform/graphics/filters/SourceGraphic.h:

(WebCore::SourceGraphic::SourceGraphic): ditto

  • rendering/CSSFilter.cpp:

(WebCore::CSSFilter::build): we try to create a FilterEffectRenderer here by passing

in the state of the CoreImage Accelerated Rendering feature switch

(WebCore::CSSFilter::apply): If we have a valid m_filterRenderer pointer, that means

we can render the result image using CoreImage path, thus we don't call effect.apply()
fall back to software mode if hasResult() returns false.

(WebCore::CSSFilter::output const): if we have a valid m_filterRenderer, then we will

obtain the ImageBuffer result from it, not FilterEffect

(WebCore::CSSFilter::outputRect const): if we have a valid m_filterRenderer, then we will

obtain the ImageBuffer result from it, not FilterEffect

  • rendering/CSSFilter.h:
  • svg/graphics/filters/SVGFEImage.cpp:

(WebCore::FEImage::FEImage): Pass an additional FilterEffect::Type argument

to base class constructor

4:08 PM Changeset in webkit [264804] by ysuzuki@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] FTL OSR entry should store boxed |this|
https://bugs.webkit.org/show_bug.cgi?id=214675
<rdar://problem/65474072>

Reviewed by Michael Saboff and Mark Lam.

In this patch, after ensuring that we will go to FTL OSR entry, we store boxed |this| instead of the unboxed value
to agree to the FTL assumption that all arguments should be boxed.

  • dfg/DFGOperations.cpp:
  • ftl/FTLOSREntry.cpp:

(JSC::FTL::prepareOSREntry):

3:48 PM Changeset in webkit [264803] by Brian Burg
  • 2 edits in trunk/Source/WebKit

Web Inspector: developerExtrasEnabled should be respected when opening local Web Inspector (part 2)
https://bugs.webkit.org/show_bug.cgi?id=214669

Reviewed by Devin Rousso and Joseph Pecoraro.

  • UIProcess/Inspector/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::save):
(WebKit::WebInspectorProxy::append): Add missing check for developerExtrasEnabled.

3:35 PM Changeset in webkit [264802] by ysuzuki@apple.com
  • 3 edits
    2 adds in trunk

We should have exception check after promise operation
https://bugs.webkit.org/show_bug.cgi?id=214610
<rdar://problem/65881794>

Reviewed by Youenn Fablet and Mark Lam.

Source/WebCore:

Test: js/dom/promise-should-have-exception-check-on-operation.html

Add exception check after promise operations.

  • bindings/js/JSDOMPromiseDeferred.cpp:

(WebCore::DeferredPromise::reject):

LayoutTests:

  • js/dom/promise-should-have-exception-check-on-operation-expected.txt: Added.
  • js/dom/promise-should-have-exception-check-on-operation.html: Added.
3:33 PM Changeset in webkit [264801] by keith_miller@apple.com
  • 5 edits
    2 deletes in trunk

iOS simulator does not support WebAssembly
https://bugs.webkit.org/show_bug.cgi?id=191064

Reviewed by Yusuke Suzuki.

Source/WTF:

Now that it seems we can JIT in the Simulator we should enable
WebAssembly there. This just means enabling FTL/B3 so WASM gets
enabled.

  • wtf/PlatformEnable.h:
  • wtf/PlatformEnableCocoa.h:

LayoutTests:

Remove simulator only expectations/failures now that WebAssembly is available in the simulator.

  • platform/ios-simulator/TestExpectations:
  • platform/ios-simulator/imported/w3c/web-platform-tests/xhr/send-data-sharedarraybuffer.any-expected.txt:
  • platform/ios-simulator/imported/w3c/web-platform-tests/xhr/send-data-sharedarraybuffer.any.worker-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer-copy-channel-expected.txt:
3:28 PM Changeset in webkit [264800] by Alan Coon
  • 1 copy in tags/Safari-610.1.23.1.1

Tag Safari-610.1.23.1.1.

3:28 PM Changeset in webkit [264799] by Russell Epstein
  • 1 delete in tags/Safari-610.1.23.1.1

Delete tag.

3:26 PM Changeset in webkit [264798] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

[ iOS wk2 ] imported/w3c/web-platform-tests/web-share/share-without-user-gesture.https.html is a constant timeout
https://bugs.webkit.org/show_bug.cgi?id=214694

Unreviewd test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios/TestExpectations: Skip the test since it is a consistent timeout.
3:25 PM Changeset in webkit [264797] by Russell Epstein
  • 2 edits in branches/safari-610.1.23.1-branch/Source/WebCore

Cherry-pick r264796. rdar://problem/66016644

[Cocoa|WebM] Seeking can leave parser in hung state
https://bugs.webkit.org/show_bug.cgi?id=214704
<rdar://problem/66009420>

Reviewed by Eric Carlson.

When the parser is explicitly reset, make sure to clear out all the tracks and initialization datas. Otherwise, a half-filled
CMSampleBuffer can be left waiting around for more data, which may never arrive, and no further samples will ever be parsed.

  • platform/graphics/cocoa/SourceBufferParserWebM.cpp: (WebCore::SourceBufferParserWebM::resetParserState):

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

3:21 PM Changeset in webkit [264796] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[Cocoa|WebM] Seeking can leave parser in hung state
https://bugs.webkit.org/show_bug.cgi?id=214704
<rdar://problem/66009420>

Reviewed by Eric Carlson.

When the parser is explicitly reset, make sure to clear out all the tracks and initialization datas. Otherwise, a half-filled
CMSampleBuffer can be left waiting around for more data, which may never arrive, and no further samples will ever be parsed.

  • platform/graphics/cocoa/SourceBufferParserWebM.cpp:

(WebCore::SourceBufferParserWebM::resetParserState):

3:20 PM Changeset in webkit [264795] by aakash_jain@apple.com
  • 4 edits in trunk/Tools

[ews] Notify bot watchers about pre-existing and flaky test failures found on ews bots
https://bugs.webkit.org/show_bug.cgi?id=207475

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(ReRunWebKitTests.evaluateCommand):
(ReRunWebKitTests.send_email_for_flaky_failure): Method to send email for flaky failure.
(AnalyzeLayoutTestsResults.report_pre_existing_failures):
(AnalyzeLayoutTestsResults.send_email_for_flaky_failure): Method to send email for flaky failure.
(AnalyzeLayoutTestsResults.send_email_for_pre_existing_failure): Method to send email for pre-existing failure.

  • BuildSlaveSupport/ews-build/steps.py: Updated unit-tests accordingly.
  • BuildSlaveSupport/ews-build/send_email.py: Added error handling.
3:17 PM Changeset in webkit [264794] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ macOS Release wk1 ] imported/w3c/web-platform-tests/css/css-overflow/overflow-recalc-001.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214703

Unreviewed test gardening.

Patch by Hector Lopez <Hector Lopez> on 2020-07-23

  • platform/mac-wk1/TestExpectations:
3:15 PM Changeset in webkit [264793] by Russell Epstein
  • 1 copy in tags/Safari-610.1.23.1.1

Tag Safari-610.1.23.1.1.

2:57 PM Changeset in webkit [264792] by Russell Epstein
  • 2 edits in branches/safari-610.1.23.1-branch/Source/WebCore

Cherry-pick r264791. rdar://problem/66014800

[Cocoa] RELEASE_ASSERT when calling registerSupplementalVP9Decoder() when VideoToolbox.framework is not present
https://bugs.webkit.org/show_bug.cgi?id=214697
<rdar://problem/66010949>

Reviewed by Eric Carlson.

  • platform/graphics/cocoa/VP9UtilitiesCocoa.mm: (WebCore::registerSupplementalVP9Decoder): (WebCore::isVP9DecoderAvailable):

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

2:41 PM Changeset in webkit [264791] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[Cocoa] RELEASE_ASSERT when calling registerSupplementalVP9Decoder() when VideoToolbox.framework is not present
https://bugs.webkit.org/show_bug.cgi?id=214697
<rdar://problem/66010949>

Reviewed by Eric Carlson.

  • platform/graphics/cocoa/VP9UtilitiesCocoa.mm:

(WebCore::registerSupplementalVP9Decoder):
(WebCore::isVP9DecoderAvailable):

2:21 PM Changeset in webkit [264790] by commit-queue@webkit.org
  • 16 edits in trunk

Allow IndexedDB in third-party frames
https://bugs.webkit.org/show_bug.cgi?id=214583
<rdar://problem/61278487>

Patch by Sihui Liu <sihui_liu@appe.com> on 2020-07-23
Reviewed by Geoffrey Garen.

Source/WebCore:

Match IndexedDB's behavior with localStorage. Third-party iframes now have access to IndexedDB with partitioned
in-memory storage. The partitioning key is ClientOrigin, which consists of opening origin and top origin.

API Test: IndexedDB.IndexedDBThirdPartyFrameHasAccess

IndexedDB.IndexedDBThirdPartyDataRemoval
IndexedDB.IndexedDBThirdPartyWorkerHasAccess

  • Modules/indexeddb/IDBDatabaseIdentifier.cpp:

(WebCore::IDBDatabaseIdentifier::IDBDatabaseIdentifier):
(WebCore::m_isTransient):
(WebCore::IDBDatabaseIdentifier::isolatedCopy const):
(WebCore::IDBDatabaseIdentifier::loggingString const):

  • Modules/indexeddb/IDBDatabaseIdentifier.h:

(WebCore::IDBDatabaseIdentifier::hash const):
(WebCore::IDBDatabaseIdentifier::operator== const):
(WebCore::IDBDatabaseIdentifier::isTransient const):
(WebCore::IDBDatabaseIdentifier::encode const):
(WebCore::IDBDatabaseIdentifier::decode):

  • Modules/indexeddb/IDBFactory.cpp:

(WebCore::shouldThrowSecurityException):
(WebCore::IDBFactory::openInternal):
(WebCore::IDBFactory::deleteDatabase):

  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::createBackingStore):

  • Modules/webdatabase/DOMWindowWebDatabase.cpp:

(WebCore::DOMWindowWebDatabase::openDatabase):

  • page/SecurityOrigin.h:

(WebCore::SecurityOrigin::canAccessDatabase const):

Source/WebKit:

Do no append extra space to displayName if host is empty.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchDataAndApply):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBPersistence.mm:

(postResult):
(catch):

LayoutTests:

Update test expectation for new behavior.

  • http/tests/security/cross-origin-indexeddb-expected.txt:
  • http/tests/security/cross-origin-indexeddb.html:
  • http/tests/security/cross-origin-worker-indexeddb-expected.txt:
  • http/tests/security/resources/document-for-cross-origin-worker-indexeddb.html:
2:05 PM Changeset in webkit [264789] by Chris Dumez
  • 15 edits in trunk

Add support for SVGAElement's rel / relList attributes
https://bugs.webkit.org/show_bug.cgi?id=214690

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline WPT tests that are now passing.

  • web-platform-tests/dom/lists/DOMTokenList-coverage-for-attributes-expected.txt:
  • web-platform-tests/svg/idlharness.window-expected.txt:
  • web-platform-tests/svg/linking/scripted/a.rel-getter-01-expected.txt:
  • web-platform-tests/svg/linking/scripted/rellist-feature-detection-expected.txt:

Source/WebCore:

Add support for SVGAElement's rel / relList attributes:
https://www.w3.org/TR/SVG/linking.html#InterfaceSVGAElement

No new tests, rebaselined existing tests.

  • svg/SVGAElement.cpp:

(WebCore::SVGAElement::parseAttribute):
(WebCore::SVGAElement::relList const):

  • svg/SVGAElement.h:
  • svg/SVGAElement.idl:
  • svg/svgattrs.in:
1:37 PM Changeset in webkit [264788] by ysuzuki@apple.com
  • 5 edits
    2 adds in trunk

Add exception check for WebCore createRejectedPromiseWithTypeError
https://bugs.webkit.org/show_bug.cgi?id=214680
<rdar://problem/65925490>

Reviewed by Mark Lam.

Source/WebCore:

Test: js/dom/rejected-promise-creation-should-check-exception.html

Add missing exception checks in createRejectedPromiseWithTypeError.

  • bindings/js/JSDOMAttribute.h:

(WebCore::IDLAttribute::get):

  • bindings/js/JSDOMOperationReturningPromise.h:

(WebCore::IDLOperationReturningPromise::call):
(WebCore::IDLOperationReturningPromise::callReturningOwnPromise):

  • bindings/js/JSDOMPromiseDeferred.cpp:

(WebCore::createRejectedPromiseWithTypeError):

LayoutTests:

  • js/dom/rejected-promise-creation-should-check-exception-expected.txt: Added.
  • js/dom/rejected-promise-creation-should-check-exception.html: Added.
1:34 PM Changeset in webkit [264787] by Alan Coon
  • 8 edits in branches/safari-610.1.23.0-branch/Source

Versioning.

WebKit-610.1.23.0.1

1:27 PM Changeset in webkit [264786] by Fujii Hironori
  • 3 edits in trunk/Source/WebCore

[CMake][Win] Build StructuredExceptionHandlerSuppressor.cpp and makesafeseh.asm only for AppleWin
https://bugs.webkit.org/show_bug.cgi?id=214671

Reviewed by Per Arne Vollan.

StructuredExceptionHandlerSuppressor is used only by AppleWin port
in platform/graphics/ca/win/LayerChangesFlusher.cpp.
makesafeseh.asm causes a building problem for 32bit WinCairo
because it is using OBJECT library type for WebCore.

  • PlatformAppleWin.cmake: Added build rules for them.
  • PlatformWin.cmake: Removed build rules for them.
1:16 PM Changeset in webkit [264785] by david_quesada@apple.com
  • 2 edits in trunk/Source/WebKit

Unable to present file upload picker after interactively dismissing a previously opened picker
https://bugs.webkit.org/show_bug.cgi?id=209613
rdar://problem/60931009

Reviewed by Daniel Bates.

-[<UIDocumentPickerViewController> documentPickerWasCancelled:] doesn't get called if you
dismiss the view controller using the interactive swipe dismissal gesture added in iOS 13.
As a result, the web view will continue to think it's showing a file picker after dismissing
it this way, meaning you can't present any other file pickers from the same web view. Fix
this by implementing UIAdaptivePresentationControllerDelegate in WKFileUploadPanel to cancel
and tear down the file picker operation when the view controller is interactively dismised.

  • UIProcess/ios/forms/WKFileUploadPanel.mm:

(-[WKFileUploadPanel showFilePickerMenu]):
(-[WKFileUploadPanel presentationControllerDidDismiss:]):

1:00 PM Changeset in webkit [264784] by Andres Gonzalez
  • 3 edits in trunk/Source/WebCore

Update the isolated tree even when there is no client request.
https://bugs.webkit.org/show_bug.cgi?id=214692

Reviewed by Chris Fleizach.

AXObjectCache::updateIsolatedTree was checking for isIsolatedTreeEnabled,
which in turn checks for whether the clientSupportsIsolatedTree. Often
at the time updateIsolatedTree is called, there is no client request
since client requests and updates occur in separate threads,
independently from each other. Thus the isolated tree wasn't being
updated. This patch removes the check for isIsolatedTreeEnabled and rely
on the presence of an isolated tree for the given PageID to perform the
update.
In addition, added an update of the isolated tree for AXLoadingEvent::AXLoadingFinished.
This fixes several instance of dynamic content page changes that were
not being reflected on the isolated tree.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::clientSupportsIsolatedTree): Some logging.
(WebCore::AXObjectCache::isIsolatedTreeEnabled): Some logging.
(WebCore::AXObjectCache::frameLoadingEventNotification): Calls updateIsolatedTree.
(WebCore::AXObjectCache::updateIsolatedTree): Handles AXLoadingEvents.

  • accessibility/AXObjectCache.h:
12:46 PM Changeset in webkit [264783] by akeerthi@apple.com
  • 4 edits in trunk/Source

[macOS] Datalist dropdown scrollbar position does not match visible region
https://bugs.webkit.org/show_bug.cgi?id=214656

Reviewed by Wenson Hsieh.

Source/WebKit:

Currently, the content insets for the dropdown are set on an NSScrollView's contentView,
rather than the NSScrollView itself. On the latest macOS, this results in accurate state
within the NSScrollView, leading to an inaccurate scrollbar position. To fix, set the
content insets directly on the NSScrollView.

However, on older macOS, setting content insets on the NSScrollView causes the view to start
out slightly scrolled (by a value equal to the top inset). This issue is solved by preserving
the existing behavior (setting insets on the contentView) on older macOS.

Also, set the style of the embedded NSTableView to NSTableViewStyleFullWidth, to ensure the
view respects the insets we specify.

No new tests, as the change is purely visual and affects native UI.

  • UIProcess/mac/WebDataListSuggestionsDropdownMac.mm:

(-[WKDataListSuggestionTableView initWithElementRect:]):
(-[WKDataListSuggestionsController initWithInformation:inView:]):

Source/WTF:

  • wtf/PlatformHave.h: Define HAVE_NSTABLEVIEWSTYLE.
12:22 PM Changeset in webkit [264782] by commit-queue@webkit.org
  • 18 edits
    4 adds in trunk

Added PeriodicWave constructor according to spec
https://bugs.webkit.org/show_bug.cgi?id=214615

Patch by Clark Wang <clark_wang@apple.com> on 2020-07-23
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Re-baselined existing tests that now pass, or fail further along.

  • web-platform-tests/webaudio/idlharness.https.window-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-oscillatornode-interface/osc-basic-waveform-expected.txt:

Source/WebCore:

Re-baselined existing tests that now pass.

Added PeriodicWave constructor according to spec: https://www.w3.org/TR/webaudio/#periodicwave.
Added PeriodicWaveConstraints, PeriodicWaveOptions files. Updated PeriodicWave::createBandLimitedTables
to normalize waveform based on spec: https://www.w3.org/TR/webaudio/#waveform-normalization.
Added updated createPeriodicWave method in BaseAudioContext, and moved old createPeriodicWave method
Into WebKitAudioContext.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/webaudio/BaseAudioContext.cpp:

(WebCore::BaseAudioContext::createPeriodicWave):

  • Modules/webaudio/BaseAudioContext.h:

(WebCore::BaseAudioContext::createPeriodicWave):

  • Modules/webaudio/BaseAudioContext.idl:
  • Modules/webaudio/PeriodicWave.cpp:

(WebCore::PeriodicWave::create):
(WebCore::PeriodicWave::createBandLimitedTables):

  • Modules/webaudio/PeriodicWave.h:
  • Modules/webaudio/PeriodicWave.idl:
  • Modules/webaudio/PeriodicWaveConstraints.h: Added.
  • Modules/webaudio/PeriodicWaveConstraints.idl: Added.
  • Modules/webaudio/PeriodicWaveOptions.h: Added.
  • Modules/webaudio/PeriodicWaveOptions.idl: Added.
  • Modules/webaudio/WebKitAudioContext.cpp:

(WebCore::WebKitAudioContext::createPeriodicWave):

  • Modules/webaudio/WebKitAudioContext.h:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
11:51 AM Changeset in webkit [264781] by ysuzuki@apple.com
  • 4 edits
    1 add in trunk

[JSC] BigInt can be false in boolean context in DFG AI
https://bugs.webkit.org/show_bug.cgi?id=214678
<rdar://problem/65894751>

Reviewed by Mark Lam.

JSTests:

  • stress/bigint-can-be-false-in-boolean-context.js: Added.

(foo.bar):
(foo):

Source/JavaScriptCore:

DFG::AbstractInterpreter::booleanResult returns wrong result if finite structure includes HeapBigInt structure
since HeapBigInt 0n can be evaluated false in boolean context while this function does not care it. This patch
fixes it and cleans up code by using WTF/TriState.

  • dfg/DFGAbstractInterpreter.h:

(): Deleted.

  • dfg/DFGAbstractInterpreterInlines.h:

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

11:45 AM Changeset in webkit [264780] by ddkilzer@apple.com
  • 5 edits in trunk/Source

[IPC hardening] WebKit::ArgumentCoder<BlobPart>::decode() and encode() should use enum BlobPart::Type
<https://webkit.org/b/214665>
<rdar://problem/65777948>

Reviewed by Darin Adler.

Source/WebCore:

  • platform/network/BlobPart.h:

(WebCore::BlobPart::Type):

  • Convert to an enum class of size bool.

(WebCore::BlobPart::BlobPart):
(WebCore::BlobPart::data const):
(WebCore::BlobPart::moveData):
(WebCore::BlobPart::url const):

  • Change BlobPart::Type enums to use fully qualified name.
  • platform/network/BlobRegistryImpl.cpp:

(WebCore::BlobRegistryImpl::registerBlobURL):

  • Change BlobPart::Type enums to use fully qualified name.

Source/WebKit:

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<BlobPart>::encode):

  • Change BlobPart::Type enums to use fully qualified name.
  • Encode using WebCore::BlobPart::Type value.
  • Change break statements to early return statements.
  • Add ASSERT_NOT_REACHED() to catch bugs.

(IPC::ArgumentCoder<BlobPart>::decode):

  • Change BlobPart::Type enums to use fully qualified name.
  • Decode using Optional<WebCore::BlobPart::Type> variable.
  • Change break statements to early return statements.
  • Remove default: label, move return WTF::nullopt to the end of the method, and add ASSERT_NOT_REACHED() to catch bugs.
11:26 AM Changeset in webkit [264779] by Ryan Haddad
  • 2 edits in trunk/Tools

[ews] Update bot watcher email address
https://bugs.webkit.org/show_bug.cgi?id=214693

Reviewed by Aakash Jain.

  • BuildSlaveSupport/ews-build/send_email.py:
11:25 AM Changeset in webkit [264778] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

updateRendering trace point should exclude SVG
https://bugs.webkit.org/show_bug.cgi?id=214649

Reviewed by Geoffrey Garen.

Don't issue the trace point for SVGImage Pages.

  • page/Page.cpp:

(WebCore::Page::updateRendering):

11:19 AM Changeset in webkit [264777] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ iOS wk2 ] imported/w3c/web-platform-tests/web-share/share-without-user-gesture.https.html is a constant timeout
https://bugs.webkit.org/show_bug.cgi?id=214694

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
11:00 AM Changeset in webkit [264776] by Jonathan Bedard
  • 5 edits in trunk/Tools

[run-webkit-tests] Override suite name for results database reporting
https://bugs.webkit.org/show_bug.cgi?id=214686
<rdar://problem/65997324>

Reviewed by Aakash Jain.

  • Scripts/webkitpy/api_tests/manager.py:

(Manager.run): Allow options to override suite name.

  • Scripts/webkitpy/layout_tests/controllers/manager.py:

(Manager.run): Allow options to override suite name.

  • Scripts/webkitpy/results/options.py:

(upload_options): Add --suite flag to override suite name.

  • Scripts/webkitpy/test/main.py:

(Tester._run_tests): Allow options to override suite name.

10:24 AM Changeset in webkit [264775] by Alan Bujtas
  • 7 edits in trunk

Unreviewed, reverting r262124.

See REGRESSION(r262124) Overlapping text on Youtube's video upload page
https://bugs.webkit.org/show_bug.cgi?id=214655

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-flexbox/percentage-heights-003-expected.txt:

Source/WebCore:

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::mainSizeForPercentageResolution):

LayoutTests:

  • css3/flexbox/definite-main-size-expected.txt:
  • css3/flexbox/definite-main-size.html:
10:22 AM Changeset in webkit [264774] by Russell Epstein
  • 7 edits in branches/safari-610.1.23.1-branch/Source

Cherry-pick r264747. rdar://problem/65995978

[Cocoa] Add feature flag for WebM & VP9
https://bugs.webkit.org/show_bug.cgi?id=214672
<rdar://problem/65959506>

Reviewed by Beth Dakin.

Source/WebKit:

  • FeatureFlags/WebKit.plist:
  • Shared/WebPreferences.yaml:
  • Shared/WebPreferencesDefaultValues.cpp: (WebKit::defaultVP9DecoderEnabled): (WebKit::defaultWebMParserEnabled):
  • Shared/WebPreferencesDefaultValues.h:

Source/WTF:

  • wtf/PlatformEnableCocoa.h:

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

10:22 AM Changeset in webkit [264773] by Russell Epstein
  • 2 edits in branches/safari-610.1.23.1-branch/Source/WebCore

Cherry-pick r264742. rdar://problem/65995985

[Cocoa|WebM] Decode error when seeking
https://bugs.webkit.org/show_bug.cgi?id=214666

Reviewed by Eric Carlson.

A decoder error is hit when seeking because we think all samples coming out of the SourceBufferParserWebM are sync-samples.
This is because the attachment added with CMSetAttachment() is ignored; the correct way to set sample attachments is by
getting the sample attachments array with CMSampleBufferGetSampleAttachmentsArray(), and then iterating over the attachments
and adding keys to the underlying mutable CFDictionary.

  • platform/graphics/cocoa/SourceBufferParserWebM.cpp: (WebCore::SourceBufferParserWebM::OnFrame):

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

10:15 AM Changeset in webkit [264772] by Alan Coon
  • 8 edits in branches/safari-610.1.23.2-branch/Source

Versioning.

WebKit-610.1.23.2.1

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

[IPC hardening] FilterOperation decode/encode should use early returns
<https://webkit.org/b/214667>
<rdar://problem/65946400>

Reviewed by Darin Adler.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<FilterOperation>::encode):

  • Change break statements to early return statements.
  • Add ASSERT_NOT_REACHED() to catch bugs.

(IPC::decodeFilterOperation):

  • Change break statements to early return statements.
  • Remove call to decoder.markInvalid() since it is redundant.
  • Return false from FilterOperation::APPLE_INVERT_LIGHTNESS label to match FilterOperation::NONE and FilterOperation::REFERENCE.
  • Add ASSERT_NOT_REACHED() to catch bugs.
  • Change final return statement from true to false since valid decoding returns true earlier.
10:09 AM Changeset in webkit [264770] by Russell Epstein
  • 8 edits in branches/safari-610.1.23.1-branch/Source

Versioning.

WebKit-610.1.23.1.1

9:36 AM Changeset in webkit [264769] by beidson@apple.com
  • 15 edits
    10 adds in trunk

Add Gamepad tests that exercise the native frameworks
<rdar://problem/65343674> and https://bugs.webkit.org/show_bug.cgi?id=214188

Reviewed by Tim Horton.

Source/WebCore:

  • platform/gamepad/mac/MultiGamepadProvider.h:

(WebCore::MultiGamepadProvider::setUsesOnlyHIDGamepadProvider):

  • platform/gamepad/mac/MultiGamepadProvider.mm:

(WebCore::MultiGamepadProvider::startMonitoringGamepads):
(WebCore::MultiGamepadProvider::stopMonitoringGamepads):

Source/WebKit:

Add some testing-only SPI for TestWebKitAPI.

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _numberOfConnectedGamepadsForTesting]):
(-[WKProcessPool _setUsesOnlyHIDGamepadProviderForTesting:]):

  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • UIProcess/Gamepad/UIGamepadProvider.h:

(WebKit::UIGamepadProvider::numberOfConnectedGamepads const):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::numberOfConnectedGamepadsForTesting):
(WebKit::WebProcessPool::setUsesOnlyHIDGamepadProviderForTesting):

  • UIProcess/WebProcessPool.h:

Source/WTF:

  • wtf/PlatformHave.h:

Tools:

For Internal builds, we can create HID devices that exercise the native gamepad providers.
E.g. Actually exercise the IOHID gamepad provider codepath.

Give the Internal TestWebKitAPI build some entitlements:

  • TestWebKitAPI/Configurations/TestWebKitAPI-macOS-internal.entitlements: Added.
  • TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:

Add a very basic test that connects a device, presses a button, and verifies the web page sees it:

  • TestWebKitAPI/Tests/mac/HIDGamepads.mm: Added.

(-[GamepadMessageHandler userContentController:didReceiveScriptMessage:]):
(TestWebKitAPI::handleGamepadConnect):

Add the beginnings of a VirtualGamepad device that reads in a HID descriptor (just like real gamepads):

  • TestWebKitAPI/mac/VirtualGamepad.h: Added.
  • TestWebKitAPI/mac/VirtualGamepad.mm: Added.

(TestWebKitAPI::VirtualGamepad::makeVirtualNimbus):
(TestWebKitAPI::VirtualGamepad::VirtualGamepad):
(TestWebKitAPI::VirtualGamepad::~VirtualGamepad):
(TestWebKitAPI::VirtualGamepad::setButtonValue):
(TestWebKitAPI::VirtualGamepad::setAxisValue):
(TestWebKitAPI::VirtualGamepad::publishReport):

WebKitLibraries:

  • WebKitPrivateFrameworkStubs/Mac/101500/HID.framework/HID.tbd: Added.
  • WebKitPrivateFrameworkStubs/Mac/101600/HID.framework/HID.tbd: Added.
  • WebKitPrivateFrameworkStubs/Mac/110000/HID.framework/HID.tbd: Added.
9:34 AM Changeset in webkit [264768] by Alan Coon
  • 1 copy in branches/safari-610.1.23.2-branch

New branch.

9:34 AM Changeset in webkit [264767] by Alan Coon
  • 1 copy in branches/safari-610.1.23.1-branch

New branch.

9:34 AM Changeset in webkit [264766] by Alan Coon
  • 1 copy in branches/safari-610.1.23.0-branch

New branch.

8:50 AM Changeset in webkit [264765] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ iOS wk2 ] editing/selection/shift-click-includes-existing-selection.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214688

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
8:32 AM WikiStart edited by Simon Fraser
(diff)
8:27 AM Changeset in webkit [264764] by calvaris@igalia.com
  • 2 edits in trunk/Source/WebCore

Unreviewed, build fix after r264762.

  • platform/graphics/gstreamer/GStreamerCommon.cpp: Added include

SharedBuffer.h.

8:14 AM Changeset in webkit [264763] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ iOS ] imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer-copy-channel.html and imported/w3c/web-platform-tests/xhr/send-data-sharedarraybuffer.any.html and imported/w3c/web-platform-tests/xhr/send-data-sharedarraybuffer.any.worker.html do not support WebAssembly and marking Skip.
https://bugs.webkit.org/show_bug.cgi?id=214681

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
7:55 AM Changeset in webkit [264762] by calvaris@igalia.com
  • 18 edits in trunk

[GStreamer] gst_buffer_unmap: assertion 'GST_IS_BUFFER (buffer)' failed
https://bugs.webkit.org/show_bug.cgi?id=213364

Reviewed by Philippe Normand.

Source/WebCore:

In some cases as in passing init datas around, the InitData that
contains a SharedBuffer that contains a non-reffed mapped buffer
can outlive the buffer itself, creating this problem.

In this patch we make a new class called GstMappedOwnedBuffer that
is to map read-only buffers and that is used for the InitData
SharedBuffer. GstMappedBuffer does not support SharedBuffer
anymore and is not ref counted anymore as it is intended for short
term and quick usage.

Test: imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-to-multiple-video-elements.https.html

  • platform/SharedBuffer.cpp:

(WebCore::SharedBuffer::create):
(WebCore::SharedBuffer::SharedBuffer):
(WebCore::SharedBuffer::DataSegment::data const):
(WebCore::SharedBuffer::DataSegment::size const):

  • platform/SharedBuffer.h:
  • platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:

(webKitWebAudioSrcAllocateBuffersAndRenderAudio):

  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::GstMappedBuffer::createVector const):
(WebCore::GstMappedOwnedBuffer::createSharedBuffer):

  • platform/graphics/gstreamer/GStreamerCommon.h:

(WebCore::GstMappedBuffer::GstMappedBuffer):
(WebCore::GstMappedBuffer::~GstMappedBuffer):
(WebCore::GstMappedBuffer::isValid const):
(WebCore::GstMappedBuffer::data):
(WebCore::GstMappedBuffer::data const):
(WebCore::GstMappedBuffer::size const):
(WebCore::GstMappedBuffer::operator bool const):
(WebCore::GstMappedBuffer::operator! const):
(WebCore::GstMappedOwnedBuffer::create):
(WebCore::GstMappedOwnedBuffer::GstMappedOwnedBuffer):
(WebCore::operator==):

  • platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp:

(WebCore::InbandTextTrackPrivateGStreamer::notifyTrackOfSample):

  • platform/graphics/gstreamer/eme/CDMProxyThunder.cpp:

(WebCore::CDMProxyThunder::getDecryptionSession const):

  • platform/graphics/gstreamer/eme/GStreamerEMEUtilities.h:

(WebCore::InitData::InitData):

  • platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:

(decrypt):

  • platform/mediastream/gstreamer/MockRealtimeAudioSourceGStreamer.cpp:

(WebCore::MockRealtimeAudioSourceGStreamer::render):

  • platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceLibWebRTC.cpp:

(WebCore::RealtimeOutgoingAudioSourceLibWebRTC::pullAudioData):

  • platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceLibWebRTC.cpp:

(WebCore::RealtimeOutgoingVideoSourceLibWebRTC::createBlackFrame):

  • platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp:

(WebCore::GStreamerVideoEncoder::Fragmentize):

Tools:

Reworked tests for GstMappedBuffer and added tests for
GstMappedOwnedBuffer.

  • TestWebKitAPI/Tests/WebCore/gstreamer/GstMappedBuffer.cpp:

(TestWebKitAPI::TEST_F):

LayoutTests:

  • platform/glib/TestExpectations: flagged

imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-to-multiple-video-elements.https.html
as Pass.

7:33 AM Changeset in webkit [264761] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ iOS wk2 debug ] imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/before-prepare-createHTMLDocument-fetch-error-external-classic.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214685

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
7:16 AM Changeset in webkit [264760] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ iOS wk2 ] imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/suspend-after-construct.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214422

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
6:08 AM Changeset in webkit [264759] by Karl Rackler
  • 3 edits in trunk/LayoutTests

[ macOS ] media/media-source/media-source-seek-redundant-append.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=207146

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
  • platform/mac/TestExpectations:
5:51 AM Changeset in webkit [264758] by Caio Lima
  • 3 edits in trunk/Source/JavaScriptCore

[32-bits] Fixing the return of doVMEntry into LowLevelInterpreter32_64.asm
https://bugs.webkit.org/show_bug.cgi?id=214641

Reviewed by Mark Lam.

Adjusting the return of doVMEntry for 32-bits LLInt to proper set
EncodedJSValue return in little-endian architectures. It is expected
that tag is stored in r1 and payload is stored in r0.

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
5:37 AM Changeset in webkit [264757] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ Mac wk2 ] tiled-drawing/scrolling/fixed/four-bars-zoomed.html is flaky failing..
https://bugs.webkit.org/show_bug.cgi?id=209624

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
5:21 AM Changeset in webkit [264756] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ macOS wk2 debug ] imported/w3c/web-platform-tests/media-source/mediasource-changetype-play-implicit.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214683

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
4:47 AM Changeset in webkit [264755] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ macOS WK2 ] imported/w3c/web-platform-tests/css/cssom/stylesheet-same-origin.sub.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214682

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
4:23 AM Changeset in webkit [264754] by commit-queue@webkit.org
  • 3 edits in trunk/JSTests

Fix logic error in r264703
https://bugs.webkit.org/show_bug.cgi?id=214674

Unreviewed Gardening.

Patch by Angelos Oikonomopoulos <angelos@igalia.com> on 2020-07-23

  • stress/intl-displaynames.js:
  • stress/intl-parse-unicode-subtags.js:
3:59 AM Changeset in webkit [264753] by commit-queue@webkit.org
  • 5 edits in trunk

Unreviewed, reverting r264745.
https://bugs.webkit.org/show_bug.cgi?id=214681

Broke 3 web-platform-tests on iOS

Reverted changeset:

"iOS simulator does not support WebAssembly"
https://bugs.webkit.org/show_bug.cgi?id=191064
https://trac.webkit.org/changeset/264745

3:44 AM Changeset in webkit [264752] by aakash_jain@apple.com
  • 1 edit
    1 add in trunk/Tools

[ews] Add support to send emails in ews
https://bugs.webkit.org/show_bug.cgi?id=214670

Reviewed by Darin Adler.

  • BuildSlaveSupport/ews-build/send_email.py: Added script to send emails.

(send_email):
(send_email_to_bot_watchers):

1:49 AM Changeset in webkit [264751] by mark.lam@apple.com
  • 7 edits
    2 adds in trunk

Fix missing exception checks below RTCPeerConnection.generateCertificate().
https://bugs.webkit.org/show_bug.cgi?id=214668
<rdar://problem/65929975>

Reviewed by Yusuke Suzuki.

Source/WebCore:

Test: webrtc/missing-exception-checks-RTCPeerConnection-generateCertificate.html

  • bindings/js/JSCustomElementRegistryCustom.cpp:

(WebCore::JSCustomElementRegistry::whenDefined):

  • bindings/js/JSDOMConvertUnion.h:
  • bindings/js/JSDOMOperationReturningPromise.h:

(WebCore::IDLOperationReturningPromise::call):
(WebCore::IDLOperationReturningPromise::callReturningOwnPromise):
(WebCore::IDLOperationReturningPromise::callStatic):
(WebCore::IDLOperationReturningPromise::callStaticReturningOwnPromise):

  • bindings/js/JSDOMPromiseDeferred.cpp:

(WebCore::DeferredPromise::reject):
(WebCore::rejectPromiseWithExceptionIfAny):

  • bindings/js/JSDOMPromiseDeferred.h:

(WebCore::callPromiseFunction):

LayoutTests:

  • webrtc/missing-exception-checks-RTCPeerConnection-generateCertificate-expected.txt: Added.
  • webrtc/missing-exception-checks-RTCPeerConnection-generateCertificate.html: Added.
1:25 AM Changeset in webkit [264750] by Alexey Shvayka
  • 7 edits
    2 adds in trunk

Remove ArrayNode::m_optional
https://bugs.webkit.org/show_bug.cgi?id=214294

Reviewed by Darin Adler.

JSTests:

  • microbenchmarks/destructuring-array-literal.js: Added.
  • microbenchmarks/function-dot-apply-array-literal.js: Added.
  • stress/apply-second-argument-must-be-array-like.js:
  • stress/destructuring-assignment-syntax.js:

Source/JavaScriptCore:

m_optional, which dates back to KJS era, means "is this an array with optional trailing comma,
with elision, or an empty array". It was used by ArrayNode::streamTo() to preserve a trailing
comma when converting array node to source string, as well as in few other places,
before ECMA-262 clarified trailing comma in array literals [1].

Currently, m_optional is used only by ArrayNode::isSimpleArray(), along with m_elision.
Checking m_elision is enough since trailing comma doesn't add extra undefined element.

This patch completely removes m_optional, speeding up destructuring and function.apply()
with empty arrays and arrays with trailing commas by ~55% and a factor of 11 respectively.
Reflect.apply() optimization (https://webkit.org/b/190668) will also benefit from this change.

Also, this change converts isSpreadExpression() check to an ASSERT (was enabled by r196323).

[1]: https://tc39.es/ecma262/#sec-array-initializer

  • bytecompiler/NodesCodegen.cpp:

(JSC::ArrayNode::isSimpleArray const):
(JSC::ArrayNode::toArgumentList const):
(JSC::ArrayNode::emitDirectBinding):

  • parser/NodeConstructors.h:

(JSC::ArrayNode::ArrayNode):

  • parser/Nodes.h:
12:50 AM Changeset in webkit [264749] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GTK] Unreviewed test gardening. Update GTK baseline after r264646.

  • platform/gtk/mathml/opentype/opentype-stretchy-expected.png:
  • platform/gtk/mathml/opentype/opentype-stretchy-expected.txt:
12:28 AM Changeset in webkit [264748] by Alexey Shvayka
  • 2 edits in trunk/Source/JavaScriptCore

Remove emitIsUndefined() from ClassExprNode::emitBytecode()
https://bugs.webkit.org/show_bug.cgi?id=214645

Reviewed by Darin Adler.

This change removes superclass === undefined check because it's missing from
the spec [1] and isn't a common case. No behavior change: values except null are
passed to OpIsConstructor, resulting in the same error being thrown for undefined.

Test: LayoutTests/js/class-syntax-extends.html

[1]: https://tc39.es/ecma262/#sec-runtime-semantics-classdefinitionevaluation (step 5.e)

  • bytecompiler/NodesCodegen.cpp:

(JSC::ClassExprNode::emitBytecode):

Jul 22, 2020:

9:52 PM Changeset in webkit [264747] by jer.noble@apple.com
  • 7 edits in trunk/Source

[Cocoa] Add feature flag for WebM & VP9
https://bugs.webkit.org/show_bug.cgi?id=214672
<rdar://problem/65959506>

Reviewed by Beth Dakin.

Source/WebKit:

  • FeatureFlags/WebKit.plist:
  • Shared/WebPreferences.yaml:
  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultVP9DecoderEnabled):
(WebKit::defaultWebMParserEnabled):

  • Shared/WebPreferencesDefaultValues.h:

Source/WTF:

  • wtf/PlatformEnableCocoa.h:
9:49 PM Changeset in webkit [264746] by Conrad Shultz
  • 71 edits in trunk

Update macOS Version macros
https://bugs.webkit.org/show_bug.cgi?id=214653

Reviewed by Tim Horton.

PerformanceTests:

  • MediaTime/Configurations/Base.xcconfig:
  • MediaTime/Configurations/DebugRelease.xcconfig:

Source/bmalloc:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:

Source/JavaScriptCore:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:
  • Configurations/WebKitTargetConditionals.xcconfig:

Source/ThirdParty:

  • gtest/xcode/Config/DebugProject.xcconfig:
  • gtest/xcode/Config/ReleaseProject.xcconfig:

Source/ThirdParty/ANGLE:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:
  • Configurations/WebKitTargetConditionals.xcconfig:

Source/ThirdParty/libwebrtc:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:
  • Configurations/WebKitTargetConditionals.xcconfig:

Source/WebCore:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:
  • Configurations/WebKitTargetConditionals.xcconfig:

Source/WebCore/PAL:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:
  • Configurations/WebKitTargetConditionals.xcconfig:

Source/WebInspectorUI:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:
  • Configurations/WebKitTargetConditionals.xcconfig:

Source/WebKit:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:
  • Configurations/WebKitTargetConditionals.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:
  • Configurations/WebKitTargetConditionals.xcconfig:

Source/WTF:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • wtf/PlatformHave.h:

Tools:

  • ContentExtensionTester/Configurations/Base.xcconfig:
  • ContentExtensionTester/Configurations/DebugRelease.xcconfig:
  • DumpRenderTree/mac/Configurations/Base.xcconfig:
  • DumpRenderTree/mac/Configurations/DebugRelease.xcconfig:
  • ImageDiff/cg/Configurations/Base.xcconfig:
  • ImageDiff/cg/Configurations/DebugRelease.xcconfig:
  • MiniBrowser/Configurations/Base.xcconfig:
  • MiniBrowser/Configurations/DebugRelease.xcconfig:
  • TestWebKitAPI/Configurations/Base.xcconfig:
  • TestWebKitAPI/Configurations/DebugRelease.xcconfig:
  • TestWebKitAPI/Configurations/WebKitTargetConditionals.xcconfig:
  • WebEditingTester/Configurations/Base.xcconfig:
  • WebEditingTester/Configurations/DebugRelease.xcconfig:
  • WebKitTestRunner/Configurations/Base.xcconfig:
  • WebKitTestRunner/Configurations/DebugRelease.xcconfig:
  • lldb/lldbWebKitTester/Configurations/Base.xcconfig:
  • lldb/lldbWebKitTester/Configurations/DebugRelease.xcconfig:
9:20 PM Changeset in webkit [264745] by keith_miller@apple.com
  • 4 edits in trunk

iOS simulator does not support WebAssembly
https://bugs.webkit.org/show_bug.cgi?id=191064

Reviewed by Yusuke Suzuki.

Now that it seems we can JIT in the Simulator we should enable
WebAssembly there. This just means enabling FTL/B3 so WASM gets
enabled.

  • wtf/PlatformEnable.h:
  • wtf/PlatformEnableCocoa.h:
9:15 PM Changeset in webkit [264744] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[Win10] js/weakref-finalizationregistry.html is frequently timing out
https://bugs.webkit.org/show_bug.cgi?id=214673

Unreviewed test gardening.

  • platform/win/TestExpectations: Mark test as flaky.
8:33 PM Changeset in webkit [264743] by ggaren@apple.com
  • 5 edits in trunk/Source

WTF::Function adoption should be explicit instead of implicit
https://bugs.webkit.org/show_bug.cgi?id=214654

Reviewed by Darin Adler.

Source/JavaScriptCore:

  • heap/Heap.cpp:

(JSC::Heap::LambdaFinalizerOwner::finalize): Use new adopt function.

Source/WTF:

  • wtf/Function.h:

(WTF::Function<Out):
(WTF::adoptImpl): Added an adopt function for Functions and made the
adopting constructor private.

  • wtf/cf/RunLoopCF.cpp:

(WTF::RunLoop::dispatch): Use new adopt function.

8:01 PM Changeset in webkit [264742] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[Cocoa|WebM] Decode error when seeking
https://bugs.webkit.org/show_bug.cgi?id=214666

Reviewed by Eric Carlson.

A decoder error is hit when seeking because we think all samples coming out of the SourceBufferParserWebM are sync-samples.
This is because the attachment added with CMSetAttachment() is ignored; the correct way to set sample attachments is by
getting the sample attachments array with CMSampleBufferGetSampleAttachmentsArray(), and then iterating over the attachments
and adding keys to the underlying mutable CFDictionary.

  • platform/graphics/cocoa/SourceBufferParserWebM.cpp:

(WebCore::SourceBufferParserWebM::OnFrame):

6:49 PM Changeset in webkit [264741] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

[WinCairo][32bit] JPEG2000ImageDecoder.cpp: error C2664: 'std::unique_ptr<...>::unique_ptr(...)': cannot convert argument 2 from 'void (stdcall *)(opj_codec_t *)' to 'const _Dx &'
https://bugs.webkit.org/show_bug.cgi?id=214657

Reviewed by Darin Adler.

cdecl and stdcall calling conventions don't match.
<https://docs.microsoft.com/en-us/cpp/cpp/argument-passing-and-naming-conventions>

  • platform/image-decoders/jpeg2000/JPEG2000ImageDecoder.cpp:

(WebCore::JPEG2000ImageDecoder::decode): Use decltype for the second template argument of unique_ptr.

6:44 PM Changeset in webkit [264740] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

[WinCairo][32bit] ConnectionWin.cpp(327): error C2664: 'BOOL RegisterWaitForSingleObject(...)': cannot convert argument 3 from 'void (cdecl *)(...)' to 'WAITORTIMERCALLBACK'
https://bugs.webkit.org/show_bug.cgi?id=214658

Reviewed by Darin Adler.

cdecl and stdcall calling conventions don't match.
<https://docs.microsoft.com/en-us/cpp/cpp/argument-passing-and-naming-conventions>

  • Platform/IPC/Connection.h: Added WINAPI to Connection::EventListener::callback method.
6:41 PM Changeset in webkit [264739] by Jon Davis
  • 2 edits in trunk/Source/WebCore

Add feature status for CSS Containment Module Level 1
https://bugs.webkit.org/show_bug.cgi?id=214663

Reviewed by Darin Adler.

  • features.json:
6:37 PM Changeset in webkit [264738] by Jon Davis
  • 2 edits in trunk/Source/WebCore

Add feature status for the focus-visible pseudo-selector
https://bugs.webkit.org/show_bug.cgi?id=214662

Reviewed by Darin Adler.

  • features.json:
5:21 PM Changeset in webkit [264737] by wenson_hsieh@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed, update feature status for async clipboard API

  • features.json: Move from "In Development" to "Supported".
5:08 PM Changeset in webkit [264736] by mark.lam@apple.com
  • 34 edits in trunk/Source

Disallow VM entry when doing a VMInquiry.
https://bugs.webkit.org/show_bug.cgi?id=214624
<rdar://problem/65915314>

Reviewed by Saam Barati.

Source/JavaScriptCore:

  1. In PropertySlot's constructor, automatically install a DisallowVMEntry scope if the passed in internal method type is VMInquiry. This ensures that we won't be able to enter the VM to call JS code while doing the inquiry. As a result, the PropertySlot constructor will now take an optional VM pointer, which is must be passed in in when the internal method type is VMInquiry.

Note that the handling of attempts to enter the VM depends on
Options::crashOnDisallowedVMEntry().

On Debug build (due to ASSERT_ENABLED), Options::crashOnDisallowedVMEntry()
defaults to true and the VM will crash on disallowed entry.
On Release build, Options::crashOnDisallowedVMEntry() defaults to false and
disallow entry attempts into the VM will be treated like calling an empty
function that returns undefined. This is not new behavior in this patch, but
I just want to have a reminder here of how DisallowVMEntry will be enforcing
no entry into the VM while doing a VMInquiry.

  1. After VMInquiry gets, sometimes the client code wants to do other work that do entails entering the VM. In such cases, we need to reset the PropertySlot's disallowVMEntry scope. Fixed up a few places in client code to do this reset.
  1. Make the DisableVMEntry scope copyable. At least one place wants to copy PropertySlot, and as a result, will need to copy its embedded DisableVMEntry scope as well if installed.

For DisableVMEntry, we'll handle copying semantics as follows: copying a
DisableVMEntry will ref the VM::disallowVMEntryCount. The count will be
decremented when both instances are destructed. As a result, VM entry will
be disallowed as long as one of the copies are still alive.

  1. For the setObjectToStringValue() method of Structure and StructureRareData, we were previously passing a PropertySlot by copy. We don't really need to do this. Ultimately, only StructureRareData::setObjectToStringValue() needs to access a few of the PropertySlot query methods. So, we changed these methods to pass a const PropertySlot& instead to void the needless copying.
  • API/JSCallbackObjectFunctions.h:

(JSC::JSCallbackObject<Parent>::put):
(JSC::JSCallbackObject<Parent>::staticFunctionGetter):

  • heap/HeapSnapshotBuilder.cpp:

(JSC::HeapSnapshotBuilder::json):

  • inspector/JSInjectedScriptHost.cpp:

(Inspector::JSInjectedScriptHost::queryInstances):

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::execute):

  • jit/JITOperations.cpp:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • runtime/DisallowVMEntry.h:

(JSC::DisallowVMEntryImpl::DisallowVMEntryImpl):

  • runtime/ErrorInstance.cpp:

(JSC::ErrorInstance::sanitizedToString):

  • runtime/JSFunction.cpp:

(JSC::JSFunction::getOwnNonIndexPropertyNames):
(JSC::JSFunction::put):
(JSC::JSFunction::defineOwnProperty):

  • runtime/JSGenericTypedArrayViewConstructorInlines.h:

(JSC::constructGenericTypedArrayViewWithArguments):

  • runtime/JSGlobalObject.cpp:

(JSC::getGetterById):
(JSC::JSGlobalObject::defineOwnProperty):
(JSC::JSGlobalObject::tryInstallArraySpeciesWatchpoint):

  • runtime/JSObject.cpp:

(JSC::JSObject::calculatedClassName):

  • runtime/JSObjectInlines.h:

(JSC::JSObject::getPrivateFieldSlot):

  • runtime/JSScope.cpp:

(JSC::abstractAccess):

  • runtime/PropertySlot.h:

(JSC::PropertySlot::PropertySlot):

  • runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::StackFrame::nameFromCallee):

  • runtime/Structure.h:
  • runtime/StructureInlines.h:

(JSC::Structure::setObjectToStringValue):

  • runtime/StructureRareData.cpp:

(JSC::StructureRareData::setObjectToStringValue):

  • runtime/StructureRareData.h:
  • tools/JSDollarVM.cpp:

(JSC::functionGetGetterSetter):

Source/WebCore:

  1. Change binding to reset the DisallowVMEntry scope in PropertySlot after doing a VMInquiry.
  2. Rebase bindings test results to match.
  • bindings/js/JSDOMAbstractOperations.h:

(WebCore::isVisibleNamedProperty):
(WebCore::accessVisibleNamedProperty):

  • bindings/scripts/CodeGeneratorJS.pm:

(GeneratePut):
(GeneratePutByIndex):
(GenerateDefineOwnProperty):

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

(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::put):
(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::putByIndex):
(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::defineOwnProperty):

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

(WebCore::JSTestNamedAndIndexedSetterThrowingException::put):
(WebCore::JSTestNamedAndIndexedSetterThrowingException::putByIndex):
(WebCore::JSTestNamedAndIndexedSetterThrowingException::defineOwnProperty):

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

(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::put):
(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::putByIndex):
(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::defineOwnProperty):

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

(WebCore::JSTestNamedSetterNoIdentifier::put):
(WebCore::JSTestNamedSetterNoIdentifier::putByIndex):
(WebCore::JSTestNamedSetterNoIdentifier::defineOwnProperty):

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

(WebCore::JSTestNamedSetterThrowingException::put):
(WebCore::JSTestNamedSetterThrowingException::putByIndex):
(WebCore::JSTestNamedSetterThrowingException::defineOwnProperty):

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

(WebCore::JSTestNamedSetterWithIdentifier::put):
(WebCore::JSTestNamedSetterWithIdentifier::putByIndex):
(WebCore::JSTestNamedSetterWithIdentifier::defineOwnProperty):

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

(WebCore::JSTestNamedSetterWithIndexedGetter::put):
(WebCore::JSTestNamedSetterWithIndexedGetter::putByIndex):
(WebCore::JSTestNamedSetterWithIndexedGetter::defineOwnProperty):

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

(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::put):
(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::putByIndex):
(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::defineOwnProperty):

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

(WebCore::JSTestNamedSetterWithUnforgableProperties::put):
(WebCore::JSTestNamedSetterWithUnforgableProperties::putByIndex):
(WebCore::JSTestNamedSetterWithUnforgableProperties::defineOwnProperty):

4:57 PM Changeset in webkit [264735] by Ryan Haddad
  • 1 edit
    2 deletes in trunk/LayoutTests

Unreviewed test gardening, remove old test expectation directories for iOS 12 since they are unused.

  • platform/ios-12/TestExpectations: Removed.
  • platform/ios-12/css2.1/t0805-c5519-brdr-r-01-e-expected.txt: Removed.
  • platform/ios-12/css2.1/t0905-c5525-fltblck-00-d-ag-expected.txt: Removed.
  • platform/ios-12/css2.1/t1202-counter-09-b-expected.txt: Removed.
  • platform/ios-12/css2.1/t1202-counters-09-b-expected.txt: Removed.
  • platform/ios-12/editing/deleting/delete-emoji-1-expected.txt: Removed.
  • platform/ios-12/editing/deleting/delete-emoji-9-expected.txt: Removed.
  • platform/ios-12/editing/deleting/delete-emoji-expected.txt: Removed.
  • platform/ios-12/fast/css-generated-content/014-expected.txt: Removed.
  • platform/ios-12/fast/css/apple-system-colors-expected.txt: Removed.
  • platform/ios-12/fast/css/beforeSelectorOnCodeElement-expected.txt: Removed.
  • platform/ios-12/fast/css/line-height-font-order-expected.txt: Removed.
  • platform/ios-12/fast/events/touch/ios/pointer-events-with-modifiers-expected.txt: Removed.
  • platform/ios-12/fast/events/updateLayoutForHitTest-expected.txt: Removed.
  • platform/ios-12/fast/overflow/007-expected.txt: Removed.
  • platform/ios-12/fast/table/col-and-colgroup-offsets-expected.txt: Removed.
  • platform/ios-12/fast/text/hyphenate-avoid-orphaned-word-expected.txt: Removed.
  • platform/ios-12/fast/text/hyphenate-character-expected.txt: Removed.
  • platform/ios-12/fast/text/hyphens-expected.txt: Removed.
  • platform/ios-12/imported/w3c/web-platform-tests/cors/access-control-expose-headers-parsing.window-expected.txt: Removed.
  • platform/ios-12/imported/w3c/web-platform-tests/fetch/api/basic/header-value-combining.any-expected.txt: Removed.
  • platform/ios-12/imported/w3c/web-platform-tests/fetch/api/basic/header-value-combining.any.worker-expected.txt: Removed.
  • platform/ios-12/imported/w3c/web-platform-tests/fetch/api/basic/request-headers.any-expected.txt: Removed.
  • platform/ios-12/imported/w3c/web-platform-tests/fetch/api/basic/request-headers.any.worker-expected.txt: Removed.
  • platform/ios-12/imported/w3c/web-platform-tests/fetch/content-type/script.window-expected.txt: Removed.
  • platform/ios-12/imported/w3c/web-platform-tests/fetch/nosniff/parsing-nosniff.window-expected.txt: Removed.
  • platform/ios-12/imported/w3c/web-platform-tests/xhr/getallresponseheaders-expected.txt: Removed.
  • platform/ios-12/imported/w3c/web-platform-tests/xhr/getresponseheader.any-expected.txt: Removed.
  • platform/ios-12/imported/w3c/web-platform-tests/xhr/getresponseheader.any.worker-expected.txt: Removed.
  • platform/ios-12/platform/ios/ios/fast/text/opticalFont-expected.txt: Removed.
  • platform/ios-12/platform/ios/ios/fast/text/opticalFontWithTextStyle-expected.txt: Removed.
  • platform/ios-12/platform/ios/ios/fast/text/opticalFontWithWeight-expected.txt: Removed.
  • platform/ios-12/quicklook/excel-expected.txt: Removed.
  • platform/ios-12/quicklook/excel-legacy-expected.txt: Removed.
  • platform/ios-12/quicklook/excel-macro-enabled-expected.txt: Removed.
  • platform/ios-12/quicklook/keynote-09-expected.txt: Removed.
  • platform/ios-12/quicklook/numbers-09-expected.txt: Removed.
  • platform/ios-12/quicklook/pages-09-expected.txt: Removed.
  • platform/ios-12/quicklook/powerpoint-expected.txt: Removed.
  • platform/ios-12/quicklook/powerpoint-legacy-expected.txt: Removed.
  • platform/ios-12/svg/custom/object-sizing-expected.txt: Removed.
  • platform/ios-12/tables/mozilla/bugs/bug10269-2-expected.txt: Removed.
  • platform/ios-12/tables/mozilla/bugs/bug10296-1-expected.txt: Removed.
  • platform/ios-12/tables/mozilla/bugs/bug139524-2-expected.txt: Removed.
  • platform/ios-12/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt: Removed.
  • platform/ipad-12/TestExpectations: Removed.
  • platform/ipad-12/fast/scrolling/ios/overflow-scroll-inherited-expected.txt: Removed.
  • platform/ipad-12/fast/scrolling/ios/overflow-scrolling-ancestor-clip-expected.txt: Removed.
  • platform/ipad-12/fast/scrolling/ios/overflow-scrolling-ancestor-clip-size-expected.txt: Removed.
  • platform/ipad-12/fast/scrolling/ios/subpixel-overflow-scrolling-with-ancestor-expected.txt: Removed.
  • platform/ipad-12/fast/viewport/ios/width-is-device-width-overflowing-body-overflow-hidden-tall-expected.txt: Removed.
  • platform/ipad-12/platform/ios/ios/fast/text/opticalFontWithTextStyle-expected.txt: Removed.
  • platform/ipad-12/scrollingcoordinator/ios/ui-scrolling-tree-expected.txt: Removed.
4:52 PM Changeset in webkit [264734] by eric.carlson@apple.com
  • 7 edits
    1 copy
    7 adds
    2 deletes in trunk

[Cocoa] canPlayType with 'codecs' parameter should never return "maybe"
https://bugs.webkit.org/show_bug.cgi?id=214621
<rdar://problem/65146785>

Reviewed by Jer Noble.

Source/WebCore:

No new tests, updated existing tests and results.

  • platform/graphics/MIMETypeCache.cpp:

(WebCore::MIMETypeCache::canDecodeType):

LayoutTests:

  • media/media-can-play-av1-expected.txt:
  • media/media-can-play-av1.html:
  • media/vp9.html:
  • platform/ios/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/mime-types/canPlayType-expected.txt: Added.
  • platform/ios/media/media-can-play-av1-expected.txt: Removed.
  • platform/ios/media/media-can-play-wav-audio-expected.txt: Copied from LayoutTests/platform/mac/media/media-can-play-wav-audio-expected.txt.
  • platform/mac/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/mime-types/canPlayType-expected.txt: Added.
  • platform/mac/media/media-can-play-av1-expected.txt: Removed.
  • platform/mac/media/media-can-play-wav-audio-expected.txt:
4:38 PM Changeset in webkit [264733] by commit-queue@webkit.org
  • 16 edits in trunk

[WebGL2] Implement multiple render target entry points
https://bugs.webkit.org/show_bug.cgi?id=211156

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

Source/WebCore:

Implement the drawBuffers and clearBuffer entry points.

Integrate the clearBuffer APIs with preserveDrawingBuffer:false's
auto-clearing. Move some auto-clearing state from
WebGLRenderingContextBase to GraphicsContextGL and
GraphicsContextGLOpenGL.

Rename setPreserveDrawingBuffer to enablePreserveDrawingBuffer to
make it clear that arbitrary changes of preserveDrawingBuffer are
not supported. setPreserveDrawingBuffer was previously added for
capture of preserveDrawingBuffer:false WebGL canvases.

Covered by existing WebGL conformance tests and canvas capture
layout tests.

  • Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp:

(WebCore::CanvasCaptureMediaStreamTrack::Source::canvasChanged):

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::drawBuffers):
(WebCore::WebGL2RenderingContext::clearBufferiv):
(WebCore::WebGL2RenderingContext::clearBufferuiv):
(WebCore::WebGL2RenderingContext::clearBufferfv):
(WebCore::WebGL2RenderingContext::clearBufferfi):
(WebCore::WebGL2RenderingContext::validateClearBuffer):
(WebCore::WebGL2RenderingContext::updateBuffersToAutoClear):

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

(WebCore::WebGLFramebuffer::drawBuffersIfNecessary):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::clearIfComposited):
(WebCore::WebGLRenderingContextBase::enablePreserveDrawingBuffer):

  • html/canvas/WebGLRenderingContextBase.h:

(WebCore::WebGLRenderingContextBase::setPreserveDrawingBuffer): Deleted.

  • platform/graphics/GraphicsContextGL.cpp:

(WebCore::GraphicsContextGL::enablePreserveDrawingBuffer):

  • platform/graphics/GraphicsContextGL.h:
  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLOpenGL::markLayerComposited):
(WebCore::GraphicsContextGLOpenGL::drawBuffers):
(WebCore::GraphicsContextGLOpenGL::clearBufferiv):
(WebCore::GraphicsContextGLOpenGL::clearBufferuiv):
(WebCore::GraphicsContextGLOpenGL::clearBufferfv):
(WebCore::GraphicsContextGLOpenGL::clearBufferfi):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:

(WebCore::GraphicsContextGLOpenGL::resetBuffersToAutoClear):
(WebCore::GraphicsContextGLOpenGL::setBuffersToAutoClear):
(WebCore::GraphicsContextGLOpenGL::getBuffersToAutoClear const):
(WebCore::GraphicsContextGLOpenGL::enablePreserveDrawingBuffer):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp:

(WebCore::GraphicsContextGLOpenGL::markLayerComposited):
(WebCore::GraphicsContextGLOpenGL::drawBuffers):

LayoutTests:

Rebaseline one layout test which is now fully passing, and another
which now properly detects errors.

  • fast/canvas/webgl/webgl2/sequences-expected.txt:
  • webgl/2.0.0/conformance2/reading/read-pixels-from-fbo-test-expected.txt:
4:36 PM Changeset in webkit [264732] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

Follow-up: [IPC hardening] WebKit::ObjCObjectGraph::decode() and encode() should use enum ObjCType type
<https://webkit.org/b/214618>
<rdar://problem/65777899>

Unreviewed fix to get rid of extra namespace blocks.

  • Shared/mac/ObjCObjectGraph.mm:

(enum class WebKit::ObjCType):

  • Move enum class definition back to its original location.

(WTF::EnumTraits<WebKit::ObjCType>):

  • Move to the end of the file. Noticed this worked in ColorSpaceData.mm.
3:31 PM Changeset in webkit [264731] by Karl Rackler
  • 1 edit in trunk/LayoutTests/ChangeLog

[ macOS debug wk2 ] Set expectation for imported/w3c/web-platform-tests/webrtc/RTCSctpTransport-events.html is a flaky crash.
https://bugs.webkit.org/show_bug.cgi?id=214661

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:22 PM Changeset in webkit [264730] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ macOS debug wk2 ] Set expectation for imported/w3c/web-platform-tests/webrtc/RTCSctpTransport-events.html is a flaky crash.
webkit.org/b/214661

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:10 PM Changeset in webkit [264729] by wenson_hsieh@apple.com
  • 4 edits in trunk

Article headlines are split across multiple lines after translating tagesschau.de
https://bugs.webkit.org/show_bug.cgi?id=214652
<rdar://problem/63995571>

Reviewed by Tim Horton.

Source/WebCore:

Treat block-level heading elements (h1 through h6) as item boundaries. On this website, we currently vend
the main heading and sub-heading as separate tokens in the same item, which sometimes causes the machine
translation framework to try and rearrange and split tokens, since it treats the combination of the main heading
and sub-heading text as a single sentence to be translated.

Test: TextManipulation.StartTextManipulationExtractsHeadingElementsAsSeparateItems

  • editing/TextManipulationController.cpp:

(WebCore::isEnclosingItemBoundaryElement):

Tools:

Adds a new API test (a reduced version of article headlines from the front page of tagesschau.de).

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:
2:55 PM Changeset in webkit [264728] by Alan Coon
  • 1 copy in tags/Safari-610.1.23

Tag Safari-610.1.23.

2:28 PM Changeset in webkit [264727] by Chris Dumez
  • 2 edits in trunk/Source/WebCore/PAL

Unreviewed attempt to fix internal build with very recent SDKs.

  • pal/spi/cocoa/LaunchServicesSPI.h:
2:15 PM Changeset in webkit [264726] by Alan Coon
  • 8 edits in branches/safari-610.1.22.0-branch/Source

Versioning.

WebKit-610.1.22.0.2

2:01 PM Changeset in webkit [264725] by Karl Rackler
  • 2 edits in trunk/LayoutTests

Set test expectation for tiled-drawing/scrolling/fast-scroll-mainframe-zoom.html as it is flaky crash
https://bugs.webkit.org/show_bug.cgi?id=214651

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
1:17 PM Changeset in webkit [264724] by achristensen@apple.com
  • 27 edits in trunk

Safari does not present CertificateInfo for service-worker served documents
https://bugs.webkit.org/show_bug.cgi?id=206403
<rdar://problem/65410875>

Reviewed by Darin Adler and Youenn Fablet.

Source/WebCore:

When loading a service worker JavaScript resource, we need to tell the network process to include certificate info with the response.
We then pass that response to the ServiceWorkerContextData for storage. When the service worker generates responses to fetches, use that
certificate chain for WKWebView.serverTrust when the page is committed.

Covered by updating a test I wrote in r264687.

  • platform/network/ResourceResponseBase.h:

(WebCore::ResourceResponseBase::setCertificateInfo):

  • platform/network/cf/CertificateInfo.h:
  • platform/network/cf/CertificateInfoCFNet.cpp:

(WebCore::CertificateInfo::isolatedCopy const):

  • platform/network/soup/CertificateInfo.h:

(WebCore::CertificateInfo::isolatedCopy const):

  • workers/Worker.cpp:

(WebCore::Worker::create):

  • workers/WorkerScriptLoader.cpp:

(WebCore::WorkerScriptLoader::loadAsynchronously):
(WebCore::WorkerScriptLoader::didReceiveResponse):

  • workers/WorkerScriptLoader.h:

(WebCore::WorkerScriptLoader::certificateInfo const):

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::jobFinishedLoadingScript):

  • workers/service/ServiceWorkerContainer.h:
  • workers/service/ServiceWorkerContextData.cpp:

(WebCore::ServiceWorkerContextData::isolatedCopy const):

  • workers/service/ServiceWorkerContextData.h:

(WebCore::ServiceWorkerContextData::encode const):
(WebCore::ServiceWorkerContextData::decode):

  • workers/service/ServiceWorkerFetchResult.h:

(WebCore::ServiceWorkerFetchResult::isolatedCopy const):
(WebCore::serviceWorkerFetchError):
(WebCore::ServiceWorkerFetchResult::encode const):
(WebCore::ServiceWorkerFetchResult::decode):

  • workers/service/ServiceWorkerGlobalScope.h:
  • workers/service/ServiceWorkerJob.cpp:

(WebCore::ServiceWorkerJob::fetchScriptWithContext):
(WebCore::ServiceWorkerJob::notifyFinished):

  • workers/service/ServiceWorkerJobClient.h:
  • workers/service/context/ServiceWorkerFetch.cpp:

(WebCore::ServiceWorkerFetch::processResponse):
(WebCore::ServiceWorkerFetch::dispatchFetchEvent):

  • workers/service/server/RegistrationDatabase.cpp:

(WebCore::RegistrationDatabase::importRecords):

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::addRegistrationFromStore):
Also fix a possible use-after-move bug, depending on parameter evaluation order which is undefined behavior.
(WebCore::SWServer::updateWorker):
(WebCore::SWServer::installContextData):

  • workers/service/server/SWServer.h:
  • workers/service/server/SWServerJobQueue.cpp:

(WebCore::SWServerJobQueue::scriptFetchFinished):

  • workers/service/server/SWServerWorker.cpp:

(WebCore::SWServerWorker::SWServerWorker):
(WebCore::SWServerWorker::contextData const):

  • workers/service/server/SWServerWorker.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
1:16 PM Changeset in webkit [264723] by ddkilzer@apple.com
  • 3 edits in trunk/Source/WebCore

Unreviewed build fix after r264710, r264719, r264721: use more HAVE_AVPLAYER_VIDEORANGEOVERRIDE.

  • platform/PlatformScreen.h:
  • platform/mac/PlatformScreenMac.mm:

(WebCore::collectScreenProperties):

  • Guard more code with HAVE(AVPLAYER_VIDEORANGEOVERRIDE).
1:04 PM Changeset in webkit [264722] by Fujii Hironori
  • 3 edits
    3 adds in trunk

[Win][Uniscribe] Material icons containing underscore or numbers aren't shown because ScriptItemize splits them apart
https://bugs.webkit.org/show_bug.cgi?id=201214

Reviewed by Don Olmstead.

Source/WebCore:

ScriptItemize split "3d_rotation" into "3", "d", "_" and
"rotation". It has a option fMergeNeutralItems to control it.

Test: fonts/ligature.html

  • platform/graphics/win/ComplexTextControllerUniscribe.cpp:

(WebCore::ComplexTextController::collectComplexTextRunsForCharacters):
Set fMergeNeutralItems of SCRIPT_CONTROL true.

LayoutTests:

  • fonts/ligature-expected.html: Added.
  • fonts/ligature.html: Added.
  • fonts/ligature.woff: Added. Created a font for testing ligature

containing only 0-9, underscore, 'a' and U+E000 glyphs. U+E000 has
a ligature string "0_a".

12:58 PM Changeset in webkit [264721] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Further unreviewed build fix after r264710; need more HAVE_AVPLAYER_VIDEORANGEOVERRIDE guards.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
12:33 PM Changeset in webkit [264720] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

[IPC hardening] WebKit::ObjCObjectGraph::decode() and encode() should use enum ObjCType type
<https://webkit.org/b/214618>
<rdar://problem/65777899>

Unreviewed fix to include the better header.

  • Shared/mac/ObjCObjectGraph.mm:
  • Switch #include from OptionSet.h to EnumTraits.h.
12:27 PM Changeset in webkit [264719] by jer.noble@apple.com
  • 8 edits in trunk/Source

Unreviewed build fix after r264710; add a HAVE_AVPLAYER_VIDEORANGEOVERRIDE guard.

Source/WebCore:

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setPreferredDynamicRangeMode):

Source/WebCore/PAL:

  • pal/spi/cocoa/AVFoundationSPI.h:

Source/WebKit:

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::updatePageScreenProperties):

Source/WTF:

  • wtf/PlatformHave.h:
12:00 PM Changeset in webkit [264718] by ysuzuki@apple.com
  • 2 edits in trunk/Tools

TestWTF.WTF_Packed.PackedAlignedPtr should be adjusted because ARM macOS is using 48 bits for effective address width
https://bugs.webkit.org/show_bug.cgi?id=214633

Reviewed by Mark Lam.

While PlatformOS.h's condition is updated, the test is not changed. This patch just aligns the condition used in this test
to the one in PlatformOS.h.

  • TestWebKitAPI/Tests/WTF/Packed.cpp:

(TestWebKitAPI::TEST):

11:59 AM Changeset in webkit [264717] by Brian Burg
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Sources tab empty, sidebar nonfunctional
https://bugs.webkit.org/show_bug.cgi?id=214611
<rdar://problem/65898051>

Reviewed by Devin Rousso.

This is caused when a subresource fails its initial load. This generates a
networking IssueMessage without a source code location, which is not adequately handled.

  • UserInterface/Views/IssueTreeElement.js:

(WI.IssueTreeElement.prototype._updateTitles):
(WI.IssueTreeElement):
If there is no sourceCodeLocation for the issue, then don't try to compute line numbers.

11:47 AM Changeset in webkit [264716] by Simon Fraser
  • 2 edits in trunk/LayoutTests

compositing/repaint/iframes/compositing-iframe-scroll-repaint.html fails on Mojave
https://bugs.webkit.org/show_bug.cgi?id=214647

Unreviewed test gardening. This test fails on Mojave.

  • platform/mac-wk1/TestExpectations:
11:35 AM Changeset in webkit [264715] by Jonathan Bedard
  • 5 edits
    2 adds in trunk/Tools

[webkitcorepy] Add string_utils (Part 1)
https://bugs.webkit.org/show_bug.cgi?id=214405

Reviewed by Dewei Zhu.

Centralize handling of unicode encoding/decoding along with various tools
for printing strings.

  • Scripts/libraries/webkitcorepy/webkitcorepy/init.py:
  • Scripts/libraries/webkitcorepy/webkitcorepy/string_utils.py: Added.

(encode): Encode a string as bytes.
(decode): Decode a bytes as a string.
(ordinal): Convert a number to 1st, 2nd, 3rd, 4th, ect.
(pluralize): Convert a string to it's plurlarized version, if provided number indicates
it should be.
(join): Join a list of elements in a human-readable form.
(out_of): Create a fraction which takes up a constant amount of characters.
(elapsed): Describe the amount of time elapsed as a human-readable string.

  • Scripts/libraries/webkitcorepy/webkitcorepy/tests/string_utils_unittest.py: Added.

(StringUtils): Test string_utils.

  • Scripts/webkitpy/common/unicode_compatibility.py: Replaced with webkitcorepy.string_utils.
11:28 AM Changeset in webkit [264714] by mmaxfield@apple.com
  • 4 edits
    3 adds
    1 delete in trunk

REGRESSION(r205826): narrowNoBreakSpace (U+202F) has zero width, regardless of font
https://bugs.webkit.org/show_bug.cgi?id=214626
<rdar://problem/65193790>

Reviewed by Timothy Hatcher.

Source/WebCore:

There's no reason to overwrite narrowNoBreakSpace with zeroWidthSpace.

This is becoming much more prominent now because a lot of the French unit formatting data in CLDR - and hence in e.g. NSMeasurementFormatter - uses 202F between numeric value and unit, e.g. "37 km"

It works in native content on macOS, and in all other browsers on macOS, but not in WebKit.

Test: fast/text/narrowNoBreakSpace.html

  • platform/graphics/Font.cpp:

(WebCore::overrideControlCharacters):

LayoutTests:

  • fast/text/narrowNoBreakSpace-expected-mismatch.html: Added.
  • fast/text/narrowNoBreakSpace.html: Added.
  • fast/text/narrow-non-breaking-space-expected-mismatch.html: Renamed from fast/text/narrow-non-breaking-space-expected.html.
  • fast/text/narrow-non-breaking-space.html: Made the test more robust.
11:25 AM Changeset in webkit [264713] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Fix validation of deleted WebGL objects
https://bugs.webkit.org/show_bug.cgi?id=214622

Patch by James Darpinian <James Darpinian> on 2020-07-22
Reviewed by Dean Jackson.

Programs and shaders need to be validated differently than other WebGL objects.
Using a deleted WebGL object should cause an INVALID_OPERATION error, except
for programs and shaders which should be INVALID_VALUE.

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::getFragDataLocation):
(WebCore::WebGL2RenderingContext::transformFeedbackVaryings):
(WebCore::WebGL2RenderingContext::getTransformFeedbackVarying):
(WebCore::WebGL2RenderingContext::getUniformIndices):
(WebCore::WebGL2RenderingContext::getActiveUniforms):
(WebCore::WebGL2RenderingContext::getUniformBlockIndex):
(WebCore::WebGL2RenderingContext::getActiveUniformBlockParameter):
(WebCore::WebGL2RenderingContext::getActiveUniformBlockName):
(WebCore::WebGL2RenderingContext::uniformBlockBinding):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::attachShader):
(WebCore::WebGLRenderingContextBase::bindAttribLocation):
(WebCore::WebGLRenderingContextBase::compileShader):
(WebCore::WebGLRenderingContextBase::detachShader):
(WebCore::WebGLRenderingContextBase::validateWebGLObject):
(WebCore::WebGLRenderingContextBase::validateWebGLProgramOrShader):
(WebCore::WebGLRenderingContextBase::getActiveAttrib):
(WebCore::WebGLRenderingContextBase::getActiveUniform):
(WebCore::WebGLRenderingContextBase::getAttachedShaders):
(WebCore::WebGLRenderingContextBase::getAttribLocation):
(WebCore::WebGLRenderingContextBase::getProgramParameter):
(WebCore::WebGLRenderingContextBase::getProgramInfoLog):
(WebCore::WebGLRenderingContextBase::getShaderParameter):
(WebCore::WebGLRenderingContextBase::getShaderInfoLog):
(WebCore::WebGLRenderingContextBase::getShaderSource):
(WebCore::WebGLRenderingContextBase::getUniform):
(WebCore::WebGLRenderingContextBase::getUniformLocation):
(WebCore::WebGLRenderingContextBase::linkProgramWithoutInvalidatingAttribLocations):
(WebCore::WebGLRenderingContextBase::shaderSource):
(WebCore::WebGLRenderingContextBase::validateProgram):

  • html/canvas/WebGLRenderingContextBase.h:
11:23 AM Changeset in webkit [264712] by Jon Davis
  • 2 edits in trunk/Source/WebCore

Update feature status to include the inert attribute
https://bugs.webkit.org/show_bug.cgi?id=214644

Reviewed by Darin Adler.

  • features.json:
11:16 AM Changeset in webkit [264711] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews-app] Pass api key in more secure manner
https://bugs.webkit.org/show_bug.cgi?id=214639

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-app/ews/common/bugzilla.py:

(Bugzilla.get_bugzilla_api_key): Method to read api key from file instead of environment variable.
(Bugzilla.fetch_data_from_bugzilla_with_authentication): Method to fetch data from bugzilla using api key.
(Bugzilla._fetch_attachment_json): Do not append api key in the url, use new method instead.
(Bugzilla._get_bug_json): Ditto.
(Bugzilla._get_commit_queue_patches_from_bug): Ditto.

  • BuildSlaveSupport/ews-app/ews/common/util.py:

(fetch_data_from_url): Log the url to help in debugging any possible issues.

11:12 AM Changeset in webkit [264710] by jer.noble@apple.com
  • 23 edits in trunk

[macOS] Adopt AVPlayer.videoRangeOverride
https://bugs.webkit.org/show_bug.cgi?id=213902
<rdar://problem/63953509>

Reviewed by Youenn Fablet.

Source/WebCore:

AVPlayer.videoRangeOverride and also +[AVPlayer preferredVideoRangeForDisplays:] are replacements for the
process-global MTShouldPlayHDR() and MTOverrideShouldPlayHDRVideo() and should be used preferentially if
present.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::createMediaPlayer):
(WebCore::HTMLMediaElement::setPreferredDynamicRangeMode):

  • html/HTMLMediaElement.h:
  • page/Page.cpp:

(WebCore::Page::screenPropertiesDidChange):
(WebCore::Page::windowScreenDidChange):

  • page/Page.h:
  • platform/PlatformScreen.h:

(WebCore::preferredDynamicRangeMode):

  • platform/ScreenProperties.h:

(WebCore::ScreenData::encode const):
(WebCore::ScreenData::decode):

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::setPreferredDynamicRangeMode):

  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::setPreferredDynamicRangeMode):

  • platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm:

(WebCore::CDMSessionAVStreamSession::update):

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

(WebCore::convertDynamicRangeModeEnumToAVVideoRange):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setPreferredDynamicRangeMode):

  • platform/mac/PlatformScreenMac.mm:

(WebCore::convertAVVideoRangeToEnum):
(WebCore::collectScreenProperties):
(WebCore::preferredDynamicRangeMode):

Source/WebCore/PAL:

  • pal/cocoa/AVFoundationSoftLink.h:
  • pal/cocoa/AVFoundationSoftLink.mm:
  • pal/spi/cocoa/AVFoundationSPI.h:

Source/WebKit:

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::screenPropertiesDidChange):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::updatePageScreenProperties):

Tools:

  • TestWebKitAPI/Tests/WebCore/cocoa/AVFoundationSoftLinkTest.mm:

(TestWebKitAPI::TEST):

11:00 AM Changeset in webkit [264709] by Alan Coon
  • 3 edits in branches/safari-610.1.23-branch/Source/ThirdParty/libwebrtc

Cherry-pick r264693. rdar://problem/65944676

Unreviewed build fix after r264685; copy headers to the correct path during a DEPLOYMENT_LOCATION build.

  • Configurations/libwebm.xcconfig:
  • libwebrtc.xcodeproj/project.pbxproj:

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

11:00 AM Changeset in webkit [264708] by Alan Coon
  • 34 edits
    5 copies
    9 adds in branches/safari-610.1.23-branch

Cherry-pick r264685. rdar://problem/65944676

[Cocoa] Add experimental MSE WebM parser
https://bugs.webkit.org/show_bug.cgi?id=214529
Source/ThirdParty/libwebrtc:

<rdar://problem/65782467>

Reviewed by Eric Carlson.

Add the vp9_header_parser from libwebrtc to the project, and add its
symbols to the list of exported symbols. Because this header wants to
be installed to a "common/vp9_header_parser.h" path, split up the default
CopyHeadersInstallPhase into two separate CopyFiles build phases that
put headers into different locations.

  • Configurations/libwebm.xcconfig:
  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:
  • Source/third_party/libwebm/common/vp9_header_parser.h: (vp9_parser::Vp9HeaderParser::color_range const): (vp9_parser::Vp9HeaderParser::subsampling_x const): (vp9_parser::Vp9HeaderParser::subsampling_y const):
  • libwebrtc.xcodeproj/project.pbxproj:

Source/WebCore:

Reviewed by Eric Carlson.

Test: media/media-source/media-source-webm.html

Add an experimental MSE WebM parser to SourceBufferPrivateAVFObjC. This will require extensive refactoring
of SourceBufferPrivateAVFObjC, to extract out the parser into a new, virtualized class. This new parser can
take advantage of new C++>11 features such as lambdas to clean up some problematic existing code. The new
virtualized SourceBufferParser class uses passed-in Function objects, rather than pure-virtual Client classes
to notify it's parent object when the parser encounters initialization- or media-data.

Because SourceBufferPrivateAVFObjC will now have to deal with AudioTrackPrivate and VideoTrackPrivate objects
that are not necessarily Audio- and VideoTrackPrivateMediaSourceAVFObjC subclasses, move those classes notification
features up into Audio- and VideoTrackPrivate, again using a Function object rather than a client class.

Add a new SourceBufferParserWebM and associated AudioTrackPrivateWebM and VideoTrackPrivateWebM classes, which
use libwebm via libwebrtc to parse appended buffers. SourceBufferParserWebM feeds passed-in data into a
libwebm-provided parser of its own. It then builds up tracks and samples based on callbacks from that same parser,
constructing CMSampleBuffers and VideoTrackPrivate objects out of the underlying libwebm primitives.

Because WebM uses a UUID as its track identifier, the representation of a "trackID" inside WebCore must be
increased from an int to a uint64_t, or trackIDs will be truncated or zeroed when passed between classes and
when converted to and from AtomStrings.

This early implementation is not yet able to pass the WebM WPT media-source/ tests, as we only have a VP9 decoder
available, and those tests use both VP8 and Vorbis.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • page/RuntimeEnabledFeatures.h: (WebCore::RuntimeEnabledFeatures::setWebMParserEnabled): (WebCore::RuntimeEnabledFeatures::webMParserEnabled const):
  • platform/graphics/AudioTrackPrivate.h: (WebCore::AudioTrackPrivate::setEnabled): (WebCore::AudioTrackPrivate::setEnabledChangedCallback):
  • platform/graphics/VP9Utilities.cpp: (WebCore::isValidVPColorPrimaries): (WebCore::isValidVPTransferCharacteristics): (WebCore::isValidVPMatrixCoefficients): (WebCore::parseVPCodecParameters):
  • platform/graphics/VP9Utilities.h:
  • platform/graphics/VideoTrackPrivate.h: (WebCore::VideoTrackPrivate::setSelected): (WebCore::VideoTrackPrivate::setSelectedChangedCallback):
  • platform/graphics/avfoundation/objc/AudioTrackPrivateMediaSourceAVFObjC.cpp: (WebCore::AudioTrackPrivateMediaSourceAVFObjC::AudioTrackPrivateMediaSourceAVFObjC): (WebCore::AudioTrackPrivateMediaSourceAVFObjC::setEnabled):
  • platform/graphics/avfoundation/objc/AudioTrackPrivateMediaSourceAVFObjC.h:
  • platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm: (WebCore::CDMSessionAVContentKeySession::update):
  • platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm: (WebCore::CDMSessionAVStreamSession::update):
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::supportsType):
  • platform/graphics/avfoundation/objc/MediaSampleAVFObjC.h: (WebCore::MediaSampleAVFObjC::create): (WebCore::MediaSampleAVFObjC::MediaSampleAVFObjC):
  • platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm: (WebCore::MediaSourcePrivateAVFObjC::addSourceBuffer):
  • platform/graphics/avfoundation/objc/SourceBufferParserAVFObjC.h: Added. (isType):
  • platform/graphics/avfoundation/objc/SourceBufferParserAVFObjC.mm: Added. (-[WebAVStreamDataParserListener initWithParser:parent:]): (-[WebAVStreamDataParserListener dealloc]): (-[WebAVStreamDataParserListener invalidate]): (-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:]): (-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:withDiscontinuity:]): (-[WebAVStreamDataParserListener streamDataParser:didFailToParseStreamDataWithError:]): (-[WebAVStreamDataParserListener streamDataParser:didProvideMediaData:forTrackID:mediaType:flags:]): (-[WebAVStreamDataParserListener streamDataParserWillProvideContentKeyRequestInitializationData:forTrackID:]): (-[WebAVStreamDataParserListener streamDataParser:didProvideContentKeyRequestInitializationData:forTrackID:]): (WebCore::SourceBufferParserAVFObjC::isContentTypeSupported): (WebCore::SourceBufferParserAVFObjC::SourceBufferParserAVFObjC): (WebCore::SourceBufferParserAVFObjC::~SourceBufferParserAVFObjC): (WebCore::SourceBufferParserAVFObjC::appendData): (WebCore::SourceBufferParserAVFObjC::flushPendingMediaData): (WebCore::SourceBufferParserAVFObjC::setShouldProvideMediaDataForTrackID): (WebCore::SourceBufferParserAVFObjC::shouldProvideMediadataForTrackID): (WebCore::SourceBufferParserAVFObjC::resetParserState): (WebCore::SourceBufferParserAVFObjC::didParseStreamDataAsAsset): (WebCore::SourceBufferParserAVFObjC::didFailToParseStreamDataWithError): (WebCore::SourceBufferParserAVFObjC::didProvideMediaDataForTrackID): (WebCore::SourceBufferParserAVFObjC::willProvideContentKeyRequestInitializationDataForTrackID): (WebCore::SourceBufferParserAVFObjC::didProvideContentKeyRequestInitializationDataForTrackID):
  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: (WebCore::SourceBufferPrivateAVFObjC::create): (WebCore::SourceBufferPrivateAVFObjC::SourceBufferPrivateAVFObjC): (WebCore::SourceBufferPrivateAVFObjC::~SourceBufferPrivateAVFObjC): (WebCore::SourceBufferPrivateAVFObjC::didParseInitializationData): (WebCore::SourceBufferPrivateAVFObjC::didEncounterErrorDuringParsing): (WebCore::SourceBufferPrivateAVFObjC::didProvideMediaDataForTrackID): (WebCore::SourceBufferPrivateAVFObjC::willProvideContentKeyRequestInitializationDataForTrackID): (WebCore::SourceBufferPrivateAVFObjC::didProvideContentKeyRequestInitializationDataForTrackID): (WebCore::SourceBufferPrivateAVFObjC::append): (WebCore::SourceBufferPrivateAVFObjC::appendCompleted): (WebCore::SourceBufferPrivateAVFObjC::abort): (WebCore::SourceBufferPrivateAVFObjC::resetParserState): (WebCore::SourceBufferPrivateAVFObjC::destroyParser): (WebCore::SourceBufferPrivateAVFObjC::clearTracks): (WebCore::SourceBufferPrivateAVFObjC::hasSelectedVideo const): (WebCore::SourceBufferPrivateAVFObjC::trackDidChangeSelected): (WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled): (WebCore::SourceBufferPrivateAVFObjC::parser const): (WebCore::SourceBufferPrivateAVFObjC::attemptToDecrypt): (WebCore::SourceBufferPrivateAVFObjC::flush): (WebCore::SourceBufferPrivateAVFObjC::enqueueSample): (WebCore::SourceBufferPrivateAVFObjC::isReadyForMoreSamples): (WebCore::SourceBufferPrivateAVFObjC::didBecomeReadyForMoreSamples): (WebCore::SourceBufferPrivateAVFObjC::notifyClientWhenReadyForMoreSamples): (WebCore::SourceBufferPrivateAVFObjC::canSetMinimumUpcomingPresentationTime const):
  • platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.h:
  • platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.mm: (WebCore::VideoTrackPrivateMediaSourceAVFObjC::VideoTrackPrivateMediaSourceAVFObjC):
  • platform/graphics/cocoa/AudioTrackPrivateWebM.cpp: Copied from Source/WebCore/platform/graphics/cocoa/VP9UtilitiesCocoa.h. (WebCore::AudioTrackPrivateWebM::create): (WebCore::AudioTrackPrivateWebM::AudioTrackPrivateWebM): (WebCore::AudioTrackPrivateWebM::id const): (WebCore::AudioTrackPrivateWebM::label const): (WebCore::AudioTrackPrivateWebM::language const): (WebCore::AudioTrackPrivateWebM::trackIndex const):
  • platform/graphics/cocoa/AudioTrackPrivateWebM.h: Copied from Source/WebCore/platform/graphics/cocoa/VP9UtilitiesCocoa.h.
  • platform/graphics/cocoa/SourceBufferParser.cpp: Copied from Source/WebCore/platform/graphics/cocoa/VP9UtilitiesCocoa.h. (WebCore::SourceBufferParser::isContentTypeSupported): (WebCore::SourceBufferParser::create):
  • platform/graphics/cocoa/SourceBufferParser.h: Added. (WebCore::SourceBufferParser::setDidParseInitializationDataCallback): (WebCore::SourceBufferParser::setDidEncounterErrorDuringParsingCallback): (WebCore::SourceBufferParser::setDidProvideMediaDataCallback): (WebCore::SourceBufferParser::setWillProvideContentKeyRequestInitializationDataForTrackIDCallback): (WebCore::SourceBufferParser::setDidProvideContentKeyRequestInitializationDataForTrackIDCallback):
  • platform/graphics/cocoa/SourceBufferParserWebM.cpp: Added. (WebCore::isWebmParserAvailable): (WebCore::SourceBufferParserWebM::isContentTypeSupported): (WebCore::SourceBufferParserWebM::SourceBufferParserWebM): (WebCore::SourceBufferParserWebM::appendData): (WebCore::SourceBufferParserWebM::flushPendingMediaData): (WebCore::SourceBufferParserWebM::setShouldProvideMediaDataForTrackID): (WebCore::SourceBufferParserWebM::shouldProvideMediadataForTrackID): (WebCore::SourceBufferParserWebM::resetParserState): (WebCore::SourceBufferParserWebM::trackDataForTrackNumber): (WebCore::SourceBufferParserWebM::OnElementBegin): (WebCore::SourceBufferParserWebM::OnEbml): (WebCore::SourceBufferParserWebM::OnSegmentBegin): (WebCore::SourceBufferParserWebM::OnInfo): (WebCore::SourceBufferParserWebM::OnClusterBegin): (WebCore::SourceBufferParserWebM::OnTrackEntry): (WebCore::SourceBufferParserWebM::OnBlockBegin): (WebCore::SourceBufferParserWebM::OnBlockEnd): (WebCore::SourceBufferParserWebM::OnSimpleBlockBegin): (WebCore::SourceBufferParserWebM::OnSimpleBlockEnd): (WebCore::SourceBufferParserWebM::OnBlockGroupBegin): (WebCore::SourceBufferParserWebM::OnBlockGroupEnd): (WebCore::convertToColorPrimaries): (WebCore::convertToTransferCharacteristics): (WebCore::convertToMatrixCoefficients): (WebCore::convertSubsamplingXYToChromaSubsampling): (WebCore::createFormatDescriptionFromVP9HeaderParser): (WebCore::SourceBufferParserWebM::OnFrame):
  • platform/graphics/cocoa/SourceBufferParserWebM.h: Added. (WebCore::SourceBufferParserWebM::status const): (WebCore::SourceBufferParserWebM::type const): (isType):
  • platform/graphics/cocoa/VP9UtilitiesCocoa.h:
  • platform/graphics/cocoa/VP9UtilitiesCocoa.mm: (WebCore::isVP9DecoderAvailable): (WebCore::validateVPParameters):
  • platform/graphics/cocoa/VideoTrackPrivateWebM.cpp: (WebCore::VideoTrackPrivateWebM::create): (WebCore::VideoTrackPrivateWebM::VideoTrackPrivateWebM): (WebCore::VideoTrackPrivateWebM::id const): (WebCore::VideoTrackPrivateWebM::label const): (WebCore::VideoTrackPrivateWebM::language const): (WebCore::VideoTrackPrivateWebM::trackIndex const):
  • platform/graphics/cocoa/VideoTrackPrivateWebM.h:

Source/WebKit:

<rdar://problem/65782467>

Reviewed by Eric Carlson.

Add an Experimental setting to enable the MSE WebM parser (off by default).

  • Shared/WebPreferences.yaml:

LayoutTests:

<rdar://problem/65782467>

Reviewed by Eric Carlson.

  • media/media-source/content/test-vp9-manifest.json: Added.
  • media/media-source/content/test-vp9.webm: Added.
  • media/media-source/media-source-webm-expected.txt: Added.
  • media/media-source/media-source-webm.html: Added.

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

11:00 AM Changeset in webkit [264707] by Alan Coon
  • 2 edits in branches/safari-610.1.23-branch/Source/WebKit

Cherry-pick r264678. rdar://problem/65944685

[macOS] Layout tests exiting early with crashes
https://bugs.webkit.org/show_bug.cgi?id=214612
<rdar://problem/65897905>

Reviewed by Brent Fulgham.

This is caused by the WebContent process making a syscall not allowed by the sandbox.

  • WebProcess/com.apple.WebProcess.sb.in:

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

11:00 AM Changeset in webkit [264706] by Alan Coon
  • 8 edits in branches/safari-610.1.23-branch/Source

Cherry-pick r264659. rdar://problem/65944694

[Cocoa] Adopt VTRegisterSupplementalVideoDecoderIfAvailable
https://bugs.webkit.org/show_bug.cgi?id=214585
<rdar://problem/65863651>

Reviewed by Youenn Fablet.

Source/WebCore:

  • WebCore.xcodeproj/project.pbxproj:
  • platform/cocoa/VideoToolboxSoftLink.cpp:
  • platform/cocoa/VideoToolboxSoftLink.h:
  • platform/graphics/cocoa/VP9UtilitiesCocoa.h:
  • platform/graphics/cocoa/VP9UtilitiesCocoa.mm: (WebCore::registerSupplementalVP9Decoder):

Source/WebKit:

  • WebProcess/WebProcess.cpp: (WebKit::WebProcess::enableVP9Decoder):

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

10:51 AM Changeset in webkit [264705] by Jon Davis
  • 2 edits in trunk/Source/WebCore

Update status for Web App Manifest
https://bugs.webkit.org/show_bug.cgi?id=204863

Reviewed by Dean Jackson.

  • features.json:
10:48 AM Changeset in webkit [264704] by Simon Fraser
  • 17 edits
    4 adds in trunk

Scrolling tesla.com on iPad is not smooth
https://bugs.webkit.org/show_bug.cgi?id=214627
Source/WebCore:

Reviewed by Tim Horton.

This is the iOS equivalent of the fix in r264203; if the user is scrolling (or we're animating for
scroll snap), layout should not trigger scroll position changes via computation of the current snap
location.

To fix this, we need to send data from the UI process to the web process about which scrolling tree
nodes the user is scrolling. That's done via RemoteScrollingUIState, which will, in the long term,
become a more general UI -> WebProcess scrolling state updating mechanism. For now, it just keeps
track of nodes undergoing scroll snap and user scrolls (only the latter is hooked up for now).

Test: fast/scrolling/ios/adjust-scroll-snap-during-gesture.html

  • page/scrolling/AsyncScrollingCoordinator.h:
  • page/scrolling/ScrollingTree.h:

(WebCore::ScrollingTree::scrollingTreeNodeWillStartPanGesture):
(WebCore::ScrollingTree::scrollingTreeNodeWillStartScroll):
(WebCore::ScrollingTree::scrollingTreeNodeDidEndScroll):

Source/WebKit:

<rdar://problem/65568979>

Reviewed by Tim Horton.

This is the iOS equivalent of the fix in r264203; if the user is scrolling (or we're animating for
scroll snap), layout should not trigger scroll position changes via computation of the current snap
location.

To fix this, we need to send data from the UI process to the web process about which scrolling tree
nodes the user is scrolling. That's done via RemoteScrollingUIState, which will, in the long term,
become a more general UI -> WebProcess scrolling state updating mechanism. For now, it just keeps
track of nodes undergoing scroll snap and user scrolls (only the latter is hooked up for now).

  • Shared/RemoteLayerTree/RemoteScrollingUIState.cpp: Added.

(WebKit::RemoteScrollingUIState::encode const):
(WebKit::RemoteScrollingUIState::decode):
(WebKit::RemoteScrollingUIState::addNodeWithActiveScrollSnap):
(WebKit::RemoteScrollingUIState::removeNodeWithActiveScrollSnap):
(WebKit::RemoteScrollingUIState::addNodeWithActiveUserScroll):
(WebKit::RemoteScrollingUIState::removeNodeWithActiveUserScroll):

  • Shared/RemoteLayerTree/RemoteScrollingUIState.h: Added.

(WebKit::RemoteScrollingUIState::changes const):
(WebKit::RemoteScrollingUIState::clearChanges):
(WebKit::RemoteScrollingUIState::nodesWithActiveScrollSnap const):
(WebKit::RemoteScrollingUIState::nodesWithActiveUserScrolls const):

  • SourcesCocoa.txt:
  • UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:

(WebKit::RemoteScrollingCoordinatorProxy::RemoteScrollingCoordinatorProxy):
(WebKit::RemoteScrollingCoordinatorProxy::sendUIStateChangedIfNecessary):

  • UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h:
  • UIProcess/RemoteLayerTree/RemoteScrollingTree.cpp:

(WebKit::RemoteScrollingTree::scrollingTreeNodeWillStartPanGesture):
(WebKit::RemoteScrollingTree::scrollingTreeNodeWillStartScroll):
(WebKit::RemoteScrollingTree::scrollingTreeNodeDidEndScroll):

  • UIProcess/RemoteLayerTree/RemoteScrollingTree.h:
  • UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm:

(WebKit::RemoteScrollingCoordinatorProxy::scrollViewForScrollingNodeID const):
(WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeWillStartPanGesture):
(WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeWillStartScroll):
(WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeDidEndScroll):

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:

(WebKit::ScrollingTreeScrollingNodeDelegateIOS::scrollWillStart const):
(WebKit::ScrollingTreeScrollingNodeDelegateIOS::scrollDidEnd const):
(WebKit::ScrollingTreeScrollingNodeDelegateIOS::scrollViewWillStartPanGesture const):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/RemoteLayerTree/RemoteScrollingCoordinator.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteScrollingCoordinator.messages.in:
  • WebProcess/WebPage/RemoteLayerTree/RemoteScrollingCoordinator.mm:

(WebKit::RemoteScrollingCoordinator::isUserScrollInProgress const):
(WebKit::RemoteScrollingCoordinator::isScrollSnapInProgress const):
(WebKit::RemoteScrollingCoordinator::scrollingStateInUIProcessChanged):

LayoutTests:

<rdar://problem/65568979>

Reviewed by Tim Horton.

  • fast/scrolling/ios/adjust-scroll-snap-during-gesture-expected.txt: Added.
  • fast/scrolling/ios/adjust-scroll-snap-during-gesture.html: Added.
10:17 AM Changeset in webkit [264703] by commit-queue@webkit.org
  • 3 edits in trunk/JSTests

Skip failing intl tests on ARM
https://bugs.webkit.org/show_bug.cgi?id=214638

Unreviewed Gardening.

Patch by Angelos Oikonomopoulos <angelos@igalia.com> on 2020-07-22

  • stress/intl-displaynames.js:
  • stress/intl-parse-unicode-subtags.js:
9:51 AM Changeset in webkit [264702] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ macOS ] imported/w3c/web-platform-tests/css/css-pseudo/marker-hit-testing.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214643

Unreviewed test gardening.

Patch by Hector Lopez <Hector Lopez> on 2020-07-22

  • platform/mac/TestExpectations:
9:28 AM Changeset in webkit [264701] by ddkilzer@apple.com
  • 3 edits in trunk/Source/WebKit

[IPC hardening] WebKit::ObjCObjectGraph::decode() and encode() should use enum ObjCType type
<https://webkit.org/b/214618>
<rdar://problem/65777899>

Reviewed by Youenn Fablet.

  • Shared/mac/ObjCObjectGraph.h:
  • Drive-by fix to use #pragma once. This is included in some plain C++ source files.
  • Shared/mac/ObjCObjectGraph.mm:

(WebKit::ObjCType):

  • Move enum definition to the top of the file so that the EnumTraits<> can be defined after it, but before it's used.

(WTF::EnumTraits<WebKit::ObjCType>): Add.

  • Define so that IPC::Decoder and IPC::Encoder can validate enum values.

(WebKit::ObjCObjectGraph::encode):

  • Encode using WebKit::ObjCType value.
  • Add ObjCType::Null label so that default: label can be removed. Change break statements to early return statements.
  • Move ASSERT_NOT_REACHED() to the end of the method.

(WebKit::ObjCObjectGraph::decode):

  • Decode using WebKit::ObjCType value.
  • Change break statements to early return statements.
  • Remove default: label, and move return false to the end of the method. Add ASSERT_NOT_REACHED().
9:21 AM Changeset in webkit [264700] by commit-queue@webkit.org
  • 13 edits in trunk

Unreviewed, reverting r264691.
https://bugs.webkit.org/show_bug.cgi?id=214642

Regressed fast/mediastream/captureStream/canvas3d.html

Reverted changeset:

"[WebGL2] Implement multiple render target entry points"
https://bugs.webkit.org/show_bug.cgi?id=211156
https://trac.webkit.org/changeset/264691

9:09 AM Changeset in webkit [264699] by Megan Gardner
  • 2 edits in trunk/Source/WebKit

Tapped DataDetected links present sub-menus from the wrong location.
https://bugs.webkit.org/show_bug.cgi?id=214628
<rdar://problem/64808642>

When getting the positionInformation associated with presenting DataDetectors UI
we were not indicating that we need the linkIndicator data. This caused the
resulting CGRect to not be filled out, and we were returning a zeroed out CGRect
to the DataDetectors framework for the location that it should present the subMenu from.
Setting this bit ensures that all the necessary data is calculated and returned
when a DataDetector link is tapped.

Reviewed by Wenson Hsieh.

  • WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:

(WebKit::WebChromeClient::showDataDetectorsUIForElement):

8:59 AM Changeset in webkit [264698] by youenn@apple.com
  • 3 edits
    3 adds in trunk

KeepAlive fetch should not be blocked in pagehide event handlers
https://bugs.webkit.org/show_bug.cgi?id=214630
<rdar://problem/65564772>

Reviewed by Chris Dumez.

Source/WebCore:

Test: http/wpt/fetch/fetch-in-pagehide.html

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::load):
Allow keep alive fetches to proceed similarly to ping loads.

LayoutTests:

  • http/wpt/fetch/fetch-in-pagehide-expected.txt: Added.
  • http/wpt/fetch/fetch-in-pagehide.html: Added.
  • http/wpt/fetch/resources/fetch-in-pagehide-window.html: Added.
8:23 AM Changeset in webkit [264697] by Jonathan Bedard
  • 1 edit
    1 delete in trunk/Tools

[webkitpy] Remove version.py
https://bugs.webkit.org/show_bug.cgi?id=214580

Reviewed by Darin Adler.

  • Scripts/webkitpy/common/version.py: Removed.
8:07 AM Changeset in webkit [264696] by ggaren@apple.com
  • 10 edits in trunk/Source

JSRunLoopTimer should use WTF::RunLoop rather than custom CF code
https://bugs.webkit.org/show_bug.cgi?id=214102

Unreviewed, re-landing r264242 with crash fixed.

Source/JavaScriptCore:

We needed to synchronize timer destruction with timer firing.

  • runtime/DeferredWorkTimer.cpp:

(JSC::DeferredWorkTimer::doWork):
(JSC::DeferredWorkTimer::runRunLoop):

  • runtime/JSRunLoopTimer.cpp:

(JSC::epochTime):
(JSC::JSRunLoopTimer::Manager::PerVMData::PerVMData):
(JSC::JSRunLoopTimer::Manager::timerDidFireCallback):
(JSC::JSRunLoopTimer::Manager::PerVMData::~PerVMData):
(JSC::JSRunLoopTimer::Manager::timerDidFire):
(JSC::JSRunLoopTimer::Manager::registerVM):
(JSC::JSRunLoopTimer::Manager::scheduleTimer):
(JSC::JSRunLoopTimer::Manager::cancelTimer):
(JSC::JSRunLoopTimer::Manager::PerVMData::setRunLoop): Deleted.
(JSC::JSRunLoopTimer::Manager::didChangeRunLoop): Deleted.

  • runtime/JSRunLoopTimer.h:

(JSC::JSRunLoopTimer::Manager::PerVMData::PerVMData): Deleted.

  • runtime/VM.cpp:

(JSC::VM::VM):
(JSC::VM::create):
(JSC::VM::tryCreate):
(JSC::VM::setRunLoop): Deleted.

  • runtime/VM.h:

(JSC::VM::runLoop const):

Source/WebCore:

Since I was here, I applied Darin's previous review feedback that I had
missed.

  • bindings/js/CommonVM.cpp:

(WebCore::commonVMSlow):

Source/WTF:

To support JSC using external locking around a RunLoop timer, we needed
to avoid modifying unsynchronized timer state while firing.

  • wtf/cf/RunLoopCF.cpp:

(WTF::RunLoop::TimerBase::start):

6:30 AM BuildingGtk edited by clopez@igalia.com
(diff)
6:29 AM BuildingGtk edited by clopez@igalia.com
(diff)
5:22 AM Changeset in webkit [264695] by Diego Pino Garcia
  • 5 edits
    1 add in trunk/LayoutTests

[GTK] Unreviewed test gardening. Update test expectations after r264694.

  • platform/glib/TestExpectations:
  • platform/glib/imported/w3c/web-platform-tests/encoding/eof-shift_jis-expected.txt: Added.
  • platform/gtk/TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/css/css-sizing/percentage-height-in-flexbox-expected.txt:
  • platform/wpe/TestExpectations:
4:33 AM BuildingGtk edited by clopez@igalia.com
(diff)
3:47 AM Changeset in webkit [264694] by Carlos Garcia Campos
  • 5 edits in trunk

[GTK][WPE] ITP: use the database store unconditionally
https://bugs.webkit.org/show_bug.cgi?id=214590

Reviewed by Adrian Perez de Castro.

Source/WebKit:

The memory store is now considered legacy.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::ResourceLoadStatisticsDatabaseStore): Use
FileSystem::pathByAppendingComponent() to create the database path.
(WebKit::ResourceLoadStatisticsDatabaseStore::openITPDatabase): Ensure the directory exists before trying to
open the database.

  • UIProcess/soup/WebProcessPoolSoup.cpp:

(WebKit::WebProcessPool::platformInitializeNetworkProcess): Always enable the ITP databae by default.

Tools:

Update the unit test to monitor the database file instead of the old log file.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp:

(testWebsiteDataITP):

Jul 21, 2020:

10:08 PM Changeset in webkit [264693] by jer.noble@apple.com
  • 3 edits in trunk/Source/ThirdParty/libwebrtc

Unreviewed build fix after r264685; copy headers to the correct path during a DEPLOYMENT_LOCATION build.

  • Configurations/libwebm.xcconfig:
  • libwebrtc.xcodeproj/project.pbxproj:
9:45 PM Changeset in webkit [264692] by Darin Adler
  • 56 edits in trunk

Remove live ranges from Editor.h and EditorClient.h
https://bugs.webkit.org/show_bug.cgi?id=214261

Reviewed by Sam Weinig.

Source/WebCore:

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::misspellingRange const): Update since
rangeForTextCheckingResult no longer returns a live range.
(WebCore::AccessibilityObject::rangeOfStringClosestToRangeInDirection const):
Update since rangeOfString no longer returns a live range.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(accessibilityTextOperationForParameterizedAttribute): Use makeSimpleRange.

  • dom/Document.cpp:

(WebCore::acceptsEditingFocus): Use makeRangeSelectingNodeContents
since shouldBeginEditing no longer takes a live range.

  • dom/Range.h: Exxported makeSimpleRange for use outside WebCore.
  • dom/SimpleRange.cpp:

(WebCore::makeSimpleRange): Added. Takes two optional boundary points and
returns an optional range.

  • dom/SimpleRange.h: Added the above.
  • editing/AlternativeTextController.cpp:

(WebCore::AlternativeTextController::timerFired): Removed calls to
crateLiveRange since markAllMisspellingsAndBadGrammarInRanges no
longer takes live ranges.
(WebCore::AlternativeTextController::applyDictationAlternative):
Updates since shouldInsertText no longer takes a live range.

  • editing/DeleteSelectionCommand.cpp:

(WebCore::DeleteSelectionCommand::mergeParagraphs): Updated since
shouldMoveRangeAfterDelete no longer takes live ranges.

  • editing/Editor.cpp:

(WebCore::Editor::canDeleteRange const): Updated to not take a
live range.
(WebCore::Editor::deleteWithDirection): Updated since
addRangeToKillRing no longer takes a live range.
(WebCore::Editor::pasteAsPlainTextWithPasteboard): Updated since
shouldInsertText no longer takes a live range.
(WebCore::Editor::shouldInsertFragment): No longer take a live range.
(WebCore::Editor::replaceSelectionWithText): Updated since
selectedRange no longer returns a live range.
(WebCore::Editor::selectedRange): Do not return a live range.
(WebCore::Editor::shouldDeleteRange const): Do not take a live range.
(WebCore::Editor::shouldInsertText const): Ditto.
(WebCore::Editor::shouldApplyStyle): Ditto. Also take a const& to
the style instead of a non-const*.
(WebCore::Editor::applyStyleToSelection): Pass a style reference
and a non-live range.
(WebCore::Editor::applyParagraphStyleToSelection): Updated for
the change above.
(WebCore::Editor::insertTextWithoutSendingTextEvent): No need to
pass a live range any more.
(WebCore::Editor::insertLineBreak): Ditto.
(WebCore::Editor::insertParagraphSeparator): Ditto.
(WebCore::Editor::performCutOrCopy): Updated to not use live range.
(WebCore::Editor::performDelete): Ditto.
(WebCore::Editor::shouldEndEditing): Do not take a live range.
(WebCore::Editor::shouldBeginEditing): Ditto.
(WebCore::Editor::willWriteSelectionToPasteboard): Ditto.
(WebCore::Editor::selectComposition): Update since compositionRange
is not a live range.
(WebCore::Editor::markMisspellingsAfterTypingToWord): Update since
we don't need to pass live ranges to markAllMisspellingsAndBadGrammarInRanges.
(WebCore::Editor::markMisspellingsOrBadGrammar): Don't return a
live range in tthe out argument.
(WebCore::Editor::markMisspellings): Ditto.
(WebCore::Editor::markBadGrammar): Update for the above.
(WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges): Do not
take live ranges for the arguments.
(WebCore::Editor::replaceRangeForSpellChecking): Do not take a live range.
(WebCore::Editor::markAndReplaceFor): Update since shouldInsertText does
not take a live range any more.
(WebCore::Editor::changeBackToReplacedString): Update to not use live
ranges as much.
(WebCore::Editor::markMisspellingsAndBadGrammar): Updae since
we don't need to pass live ranges to markAllMisspellingsAndBadGrammarInRanges.
(WebCore::Editor::rangeForPoint): Don't return a live range.
(WebCore::Editor::compositionRange const): Ditto.
(WebCore::Editor::transpose): Updated since we don't pass a live range.
(WebCore::Editor::firstRectForRange const): Don't take a live range.
(WebCore::Editor::shouldChangeSelection const): Updated since we don't
need to pass a live range.
(WebCore::Editor::findString): Ditto.
(WebCore::start): Added. Helper to make rangeOfString easier to read.
(WebCore::end): Ditto.
(WebCore::makeBoundaryPointAfterNodeContents): Ditto.
(WebCore::makeBoundaryPointAfterNode): Ditto.
(WebCore::collapseIfRootsDiffer): Ditto.
(WebCore::Editor::rangeOfString): Updated to not take or return a
live range and not use it internally either.
(WebCore::isFrameInRange): Don't take a live range.
(WebCore::Editor::countMatchesForText): Don't take or return live ranges.
(WebCore::Editor::contextRangeForCandidateRequest const): Don't return
a live range.
(WebCore::Editor::rangeForTextCheckingResult const): Ditto.
(WebCore::Editor::handleAcceptedCandidate): Update for the above.
(WebCore::Editor::adjustedSelectionRange): Don't return a live range.

  • editing/Editor.h: Updated for all the chagnes above.
  • editing/EditorCommand.cpp:

(WebCore::expandSelectionToGranularity): Updated to reduce the use of
live ranges.
(WebCore::unionRanges): Updated to no longer take or return a live
range. Still uses live ranges in the algorithm for now.
(WebCore::executeDeleteToMark): Updated since selectedRange no longer
returns a live range.
(WebCore::executeSelectToMark): Update to use the new unionRanges.

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::shouldDeleteSelection const): Updated
since shouldDeleteRange no longer requires a live range.

  • editing/cocoa/EditorCocoa.mm:

(WebCore::Editor::getPasteboardTypesAndDataForAttachment): Updated
for changes to use fewer live ranges.
(WebCore::Editor::writeSelectionToPasteboard): Ditto.
(WebCore::Editor::writeSelection): Ditto.
(WebCore::Editor::replaceSelectionWithAttributedString): Ditto.

  • editing/gtk/EditorGtk.cpp:

(WebCore::Editor::pasteWithPasteboard): Ditto.

  • editing/ios/EditorIOS.mm:

(WebCore::Editor::writeImageToPasteboard): Ditto.
(WebCore::Editor::pasteWithPasteboard): Ditto.

  • editing/libwpe/EditorLibWPE.cpp:

(WebCore::createFragmentFromPasteboardData): Ditto.
(WebCore::Editor::pasteWithPasteboard): Ditto.

  • editing/mac/EditorMac.mm:

(WebCore::Editor::pasteWithPasteboard): Ditto.
(WebCore::Editor::replaceNodeFromPasteboard): Ditto.
(WebCore::Editor::dataSelectionForPasteboard): Ditto.

  • editing/win/EditorWin.cpp:

(WebCore::Editor::pasteWithPasteboard): Ditto.

  • html/FTPDirectoryDocument.cpp:

(WebCore::FTPDirectoryDocumentParser::createTDForFilename):
Removed a WTFMove that messes up the return value optimization.
Noticed while fixing errors caused by live range changes.

  • loader/EmptyClients.cpp: Updated for changes to EditorClient.
  • page/ContextMenuController.cpp:

(WebCore::insertUnicodeCharacter): Updated to use fewer live ranges.
(WebCore::ContextMenuController::contextMenuItemSelected): DItto.

  • page/DragController.cpp:

(WebCore::DragController::concludeEditDrag): Ditto.
(WebCore::DragController::startDrag): Ditto.

  • page/EditorClient.h: Don't take or return live ranges.
  • page/EventHandler.cpp:

(WebCore::EventHandler::sendContextMenuEventForKey): Simplified
since we don't need to use a live range.

  • page/FocusController.cpp:

(WebCore::relinquishesEditingFocus): Changed argument type to be
more specific, and changed to not use a live range.
(WebCore::FocusController::setFocusedElement): Updated for the above.

  • page/Frame.cpp:

(WebCore::Frame::rangeForPoint): Updated to not use live ranges.

  • page/Page.cpp:

(WebCore::Page::findStringMatchingRanges): Updated to not use
live ranges as much.
(WebCore::Page::rangeOfString): Ditto.
(WebCore::Page::findMatchesForText): Ditto.

  • testing/Internals.cpp:

(WebCore::Internals::rangeOfString): Updated since return value
of the Editor member function is no longer a live range.
(WebCore::Internals::countMatchesForText): Ditto.

Source/WebKit:

  • UIProcess/mac/WKPrintingView.mm:

(-[WKPrintingView rectForPage:]): Use NSZeroRect.

  • WebProcess/WebCoreSupport/WebEditorClient.cpp:

(WebKit::WebEditorClient::shouldDeleteRange): Updated for live
range changes and also removed gratuitous call to notImplemented
since the function is implemented.
(WebKit::WebEditorClient::shouldBeginEditing): Ditto.
(WebKit::WebEditorClient::shouldEndEditing): Ditto.
(WebKit::WebEditorClient::shouldInsertNode): Ditto.
(WebKit::WebEditorClient::shouldInsertText): Ditto.
(WebKit::WebEditorClient::shouldChangeSelectedRange): Ditto.
(WebKit::WebEditorClient::shouldApplyStyle): Ditto.
(WebKit::WebEditorClient::shouldMoveRangeAfterDelete): Ditto.
(WebKit::WebEditorClient::didBeginEditing): Ditto.
(WebKit::WebEditorClient::didEndEditing): Ditto.
(WebKit::WebEditorClient::willWriteSelectionToPasteboard): Ditto.
(WebKit::WebEditorClient::getClientPasteboardData): Ditto.
(WebKit::WebEditorClient::performTwoStepDrop): Ditto.
(WebKit::WebEditorClient::overflowScrollPositionChanged): Ditto.
(WebKit::WebEditorClient::subFrameScrollPositionChanged): Ditto.
(WebKit::WebEditorClient::setInputMethodState): Ditto.

  • WebProcess/WebCoreSupport/WebEditorClient.h: Updated

for changes to EditorClient.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::getMarkedRangeAsync): Updated to reduce
the use of local values and live ranges.
(WebKit::WebPage::getSelectedRangeAsync): Ditto.
(WebKit::WebPage::characterIndexForPointAsync): Ditto.
(WebKit::WebPage::firstRectForCharacterRangeAsync): Ditto.
(WebKit::WebPage::setCompositionAsync): Ditto.

  • WebProcess/WebPage/glib/WebPageGLib.cpp:

(WebKit::WebPage::getPlatformEditorState const): Ditto.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getPlatformEditorState const): Ditto.
(WebKit::WebPage::selectWithGesture): Ditto.
(WebKit::WebPage::autocorrectionContext): Ditto.
(WebKit::focusedElementPositionInformation): Ditto.
(WebKit::WebPage::requestDocumentEditingContext): Ditto.

Source/WebKitLegacy/ios:

  • WebCoreSupport/WebFrameIOS.mm:

(-[WebFrame closestCaretRectInMarkedTextRangeForPoint:]):
Updated since compositionRange is no longer a live range.

Source/WebKitLegacy/mac:

  • DOM/DOMRange.mm:

(kit): Added an overload to convert to a live range so we don't have
to touch every call site.

  • DOM/DOMRangeInternal.h: Added the above.
  • WebCoreSupport/WebEditorClient.h: Updated for changes to EditorClient.
  • WebCoreSupport/WebEditorClient.mm:

(WebEditorClient::shouldDeleteRange): Changed types to not use live ranges.
(WebEditorClient::shouldApplyStyle): Ditto.
(WebEditorClient::shouldMoveRangeAfterDelete): Ditto.
(WebEditorClient::shouldBeginEditing): Ditto.
(WebEditorClient::shouldEndEditing): Ditto.
(WebEditorClient::shouldInsertText): Ditto.
(WebEditorClient::shouldChangeSelectedRange): Ditto.
(WebEditorClient::willWriteSelectionToPasteboard): Ditto.
(WebEditorClient::getClientPasteboardData): Ditto.
(WebEditorClient::shouldInsertNode): Ditto.
(WebEditorClient::performTwoStepDrop): Ditto.

  • WebView/WebFrame.mm:

(-[WebFrame _firstRectForDOMRange:]): Update to not use live range.
(-[WebFrame _scrollDOMRangeToVisible:]): Ditto.
(-[WebFrame _rangeByAlteringCurrentSelection:direction:granularity:]): Ditto.
(-[WebFrame _markDOMRange]): Ditto.
(-[WebFrame _selectionRangeForFirstPoint:secondPoint:]): Ditto.
(-[WebFrame _selectionRangeForPoint:]): Ditto.
(-[WebFrame selectedDOMRange]): Ditto.
(-[WebFrame elementRangeContainingCaretSelection]): Ditto.
(-[WebFrame wordRangeContainingCaretSelection]): Ditto.
(-[WebFrame rangeByMovingCurrentSelection:]): Ditto.
(-[WebFrame rangeByExtendingCurrentSelection:]): Ditto.
(-[WebFrame markedTextDOMRange]): Ditto.

  • WebView/WebHTMLView.mm:

(-[WebHTMLView _selectedRange]): Update to not use live range.
(-[WebHTMLView firstRectForCharacterRange:]): Use NSZeroRect.
(-[WebHTMLView countMatchesForText:inDOMRange:options:limit:markMatches:]):
Update to not use live range.

  • WebView/WebTextCompletionController.mm:

(-[WebTextCompletionController doCompletion]): Ditto.

  • WebView/WebTextIterator.mm:

(-[WebTextIterator currentRange]): Ditto.

  • WebView/WebView.mm:

(-[WebView textIteratorForRect:]): Ditto.
(-[WebView editableDOMRangeForPoint:]): Ditto.
(-[WebView selectedDOMRange]): Ditto.

Source/WebKitLegacy/win:

  • DOMCoreClasses.cpp:

(DOMWindow::DOMWindow): Added ref for underlying WebCore::DOMWindow.
(DOMWindow::~DOMWindow): Added deref for underlying WebCore::DOMWindow.
(DOMRange::DOMRange): Added ref for underlying live range.
(DOMRange::~DOMRange): Added deref for underlying live range.
(DOMRange::createInstance): Added overload for creating a DOMRange from
a SimpleRange that creates the live range.
(DOMNamedNodeMap::DOMNamedNodeMap): Added ref for underlying live range.
(DOMNamedNodeMap::~DOMNamedNodeMap): Added deref for underlying live range.

  • DOMCoreClasses.h: Added createInstance overload as described above.
  • WebCoreSupport/WebEditorClient.cpp:

(WebEditorClient::shouldBeginEditing): Updated for changes to not use
live ranges. Also removed unnecessary notImplemented calls.
(WebEditorClient::shouldEndEditing): Ditto.
(WebEditorClient::discardedComposition): Ditto.
(WebEditorClient::canceledComposition): Ditto.
(WebEditorClient::didWriteSelectionToPasteboard): Ditto.
(WebEditorClient::willWriteSelectionToPasteboard): Ditto.
(WebEditorClient::getClientPasteboardData): Ditto.
(WebEditorClient::shouldDeleteRange): Ditto.
(WebEditorClient::shouldInsertNode): Ditto.
(WebEditorClient::shouldInsertText): Ditto.
(WebEditorClient::shouldChangeSelectedRange): Ditto.
(WebEditorClient::shouldApplyStyle): Ditto.
(WebEditorClient::didApplyStyle): Ditto.
(WebEditorClient::shouldMoveRangeAfterDelete): Ditto.

  • WebCoreSupport/WebEditorClient.h: Updated for changes to

EditorClient.

  • WebView.cpp:

(WebView::prepareCandidateWindow): Updated to not use live ranges.
(WebView::onIMERequestCharPosition): Ditto.
(WebView::compositionRangeForTesting): Ditto.
(WebView::firstRectForCharacterRangeForTesting): Ditto.
(WebView::selectedRangeForTesting): Ditto.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:

Removed duplicate install of Ahem.ttf that was leading new versions
of Xcode to fail when trying to build this.

9:07 PM Changeset in webkit [264691] by commit-queue@webkit.org
  • 13 edits in trunk

[WebGL2] Implement multiple render target entry points
https://bugs.webkit.org/show_bug.cgi?id=211156

Patch by Kenneth Russell <kbr@chromium.org> on 2020-07-21
Reviewed by Myles C. Maxfield.

Source/WebCore:

Implement the drawBuffers and clearBuffer entry points. Integrate
the clearBuffer APIs with preserveDrawingBuffer:false's
auto-clearing.

Covered by existing WebGL conformance tests.

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::drawBuffers):
(WebCore::WebGL2RenderingContext::clearBufferiv):
(WebCore::WebGL2RenderingContext::clearBufferuiv):
(WebCore::WebGL2RenderingContext::clearBufferfv):
(WebCore::WebGL2RenderingContext::clearBufferfi):
(WebCore::WebGL2RenderingContext::validateClearBuffer):
(WebCore::WebGL2RenderingContext::updateBuffersToAutoClear):

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

(WebCore::WebGLFramebuffer::drawBuffersIfNecessary):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::clearIfComposited):

  • platform/graphics/GraphicsContextGL.h:
  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLOpenGL::markLayerComposited):
(WebCore::GraphicsContextGLOpenGL::drawBuffers):
(WebCore::GraphicsContextGLOpenGL::clearBufferiv):
(WebCore::GraphicsContextGLOpenGL::clearBufferuiv):
(WebCore::GraphicsContextGLOpenGL::clearBufferfv):
(WebCore::GraphicsContextGLOpenGL::clearBufferfi):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:

(WebCore::GraphicsContextGLOpenGL::resetBuffersToAutoClear):
(WebCore::GraphicsContextGLOpenGL::setBuffersToAutoClear):
(WebCore::GraphicsContextGLOpenGL::getBuffersToAutoClear const):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp:

(WebCore::GraphicsContextGLOpenGL::markLayerComposited):
(WebCore::GraphicsContextGLOpenGL::drawBuffers):

LayoutTests:

Rebaseline one layout test which is now fully passing, and another
which now properly detects errors.

  • fast/canvas/webgl/webgl2/sequences-expected.txt:
  • webgl/2.0.0/conformance2/reading/read-pixels-from-fbo-test-expected.txt:
7:47 PM Changeset in webkit [264690] by wenson_hsieh@apple.com
  • 5 edits
    2 adds in trunk

REGRESSION (r258871): Shift + click to extend selection loses currently selected text
https://bugs.webkit.org/show_bug.cgi?id=214617
<rdar://problem/64980223>

Reviewed by Megan Gardner.

Source/WebCore:

After the changes in r258871, shift clicking sometimes fails to preserve the existing selected text range on
macOS and iOS. The logic in EventHandler::handleMousePressEventSingleClick uses the textDistance helper
method to count the number of characters between the start of the current selection to the newly selected
extent, as well as the number of characters between the end of the current selection and the newly selected
extent position. It compares these two character counts, and attempts to choose the new selection extents in
such a way that maximizes the amount of selected text.

However, after r258871, textDistance uses characterCount instead of TextIterator::rangeLength. Unlike the
former, rangeLength is robust in the case where the start position comes after the end position (in document
order), since the process of creating a live Range object swaps the start and end if needed. This isn't the
case when using SimpleRange. Instead, when given a simple range where the start comes after the end,
characterCount will iterate text in the DOM, starting from the start position and ending at the end of the
document rather than the end position. The result is that characterCount actually counts the number of
characters between the start position and the end of the document, rather than the number of characters between
the two positions.

In the context of this bug, if the start of the current selection is "far away" (in terms of character count)
from the end of the document and the new extent position comes after end of the current selection, we will end
up choosing the end (instead of the start) as one of the new extents of the updated selection.

To fix this (as well as other similar issues that might've arisen when replacing uses of
TextIterator::rangeLength with characterCount), simply teach characterCount to flip the start and end
positions if the end position of the SimpleRange comes before the start.

Test: editing/selection/shift-click-includes-existing-selection.html

  • editing/TextIterator.cpp:

(WebCore::characterCount):

LayoutTests:

Add a new layout test to verify that the bug does not occur.

  • editing/mac/spelling/autocorrection-contraction-expected.txt:

Rebaseline an existing layout test, restoring the test expectations to what they were prior to r258871. It seems
that the more recently added expectations (while not seemingly incorrect) were dependent on characterCount
computing the number of characters from the start position to the end of the document, rather than the end.

  • editing/selection/shift-click-includes-existing-selection-expected.txt: Added.
  • editing/selection/shift-click-includes-existing-selection.html: Added.
  • resources/ui-helper.js:

(window.UIHelper.activateAt.return.new.Promise):
(window.UIHelper.activateAt):
(window.UIHelper.activateElement):

Add an optional modifiers argument to the activateAt and activateElement helper methods, which can be used
to simulate key modifiers being held while synthesizing the "activation" (i.e. tap or click).

7:09 PM Changeset in webkit [264689] by achristensen@apple.com
  • 3 edits in trunk/Source/WebCore

Fix Windows build.
https://bugs.webkit.org/show_bug.cgi?id=214623

  • platform/network/curl/CertificateInfo.h:
  • platform/network/curl/CertificateInfoCurl.cpp:

(WebCore::CertificateInfo::summary const):
(WebCore::CertificateInfo::summaryInfo const): Deleted.

6:40 PM Changeset in webkit [264688] by mark.lam@apple.com
  • 20 edits
    1 move
    1 delete in trunk/Source/JavaScriptCore

Simplify DisallowScope, DisallowGC, and DisallowVMReentry implementations.
https://bugs.webkit.org/show_bug.cgi?id=214539
<rdar://problem/65795729>

Reviewed by Keith Miller.

Previously, DisallowScope needed to support enabling and disabling. This was
only needed to enable the implementation of ObjectInitializationScope. Now, we
can make the DisallowGC and DisallowVMReentry inside ObjectInitializationScope
optional with WTF::Optional. With that we can simplify these scopes and make
them true RAII scope objects.

This patch also does the following:

  1. Renamed DisallowVMReentry to DisallowVMEntry. The scope can be used to disable VM entry completely. There's no need to restrict it to only re-entries.
  1. Enforcement of DisallowVMReentry is now done in the LLInt's doVMEntry() instead of the VMEntryScope's constructor. This is a stronger guarantee.

If Options::crashOnDisallowedVMEntry() is true, the VM will crash if it sees
an attempt to enter the VM while disallowed.

If Options::crashOnDisallowedVMEntry() is false, an attempt to call into the VM
while disallowed will return immediately with an undefined result without
invoking any script.

By default, Options::crashOnDisallowedVMEntry() is true if ASSERT_ENABLED is
true.

  1. Change DisallowScope and DisallowGC to be based on ASSERT_ENABLED instead of NEBUG.
  1. Make DisallowVMEntry always enforceable, not just when ASSERT_ENABLED. It's enforcement action depends on Options::crashOnDisallowedVMEntry() as described above.
  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • heap/DeferGC.cpp:
  • heap/DeferGC.h:

(JSC::DisallowGC::DisallowGC):
(JSC::DisallowGC::initialize):

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::executeProgram):
(JSC::Interpreter::executeCall):
(JSC::Interpreter::executeConstruct):
(JSC::Interpreter::execute):
(JSC::Interpreter::executeModuleProgram):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::llint_check_vm_entry_permission):

  • llint/LLIntSlowPaths.h:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/DisallowScope.h:

(JSC::DisallowScope::DisallowScope):
(JSC::DisallowScope::~DisallowScope):
(JSC::DisallowScope::isInEffectOnCurrentThread):
(JSC::DisallowScope::enable): Deleted.
(JSC::DisallowScope::disable): Deleted.
(JSC::DisallowScope::enterScope): Deleted.
(JSC::DisallowScope::exitScope): Deleted.

  • runtime/DisallowVMEntry.h: Copied from Source/JavaScriptCore/runtime/DisallowVMReentry.h.

(JSC::DisallowVMEntryImpl::DisallowVMEntryImpl):
(JSC::DisallowVMEntryImpl::~DisallowVMEntryImpl):
(JSC::DisallowVMEntryImpl::isEngaged const):
(JSC::DisallowVMEntryImpl::release):
(JSC::DisallowVMReentry::DisallowVMReentry): Deleted.
(JSC::DisallowVMReentry::initialize): Deleted.
(JSC::DisallowVMReentry::scopeReentryCount): Deleted.
(JSC::DisallowVMReentry::setScopeReentryCount): Deleted.

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

(JSC::initialize):

  • runtime/JSArray.cpp:

(JSC::JSArray::tryCreateUninitializedRestricted):

  • runtime/ObjectInitializationScope.cpp:

(JSC::ObjectInitializationScope::ObjectInitializationScope):
(JSC::ObjectInitializationScope::notifyAllocated):
(JSC::ObjectInitializationScope::notifyInitialized):

  • runtime/ObjectInitializationScope.h:

(JSC::ObjectInitializationScope::vm const):
(JSC::ObjectInitializationScope::ObjectInitializationScope):
(JSC::ObjectInitializationScope::~ObjectInitializationScope):
(JSC::ObjectInitializationScope::notifyAllocated):
(JSC::ObjectInitializationScope::notifyInitialized):

  • runtime/OptionsList.h:
  • runtime/RegExpMatchesArray.h:

(JSC::tryCreateUninitializedRegExpMatchesArray):

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

(JSC::VMEntryScope::VMEntryScope):

6:11 PM Changeset in webkit [264687] by commit-queue@webkit.org
  • 4 edits in trunk/Tools

Safari does not present CertificateInfo for service-worker served documents
https://bugs.webkit.org/show_bug.cgi?id=206403

Patch by Alex Christensen <achristensen@webkit.org> on 2020-07-21
Reviewed by Brady Eidson.

This is actually just a failing test that reproduces the issue 100% of the time.

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
  • TestWebKitAPI/cocoa/HTTPServer.h:
  • TestWebKitAPI/cocoa/HTTPServer.mm:

(TestWebKitAPI::HTTPServer::cancel):
(TestWebKitAPI::HTTPServer::HTTPServer):
(TestWebKitAPI::m_protocol):
(TestWebKitAPI::HTTPServer::totalRequests const):
(TestWebKitAPI::HTTPServer::respondToRequests):
(TestWebKitAPI::Connection::terminate):
(TestWebKitAPI::Connection::cancel):
(TestWebKitAPI::Connection::terminate const): Deleted.

6:10 PM Changeset in webkit [264686] by commit-queue@webkit.org
  • 11 edits
    1 move in trunk/Source/WebCore

Remove unneeded CertificateInfoBase
https://bugs.webkit.org/show_bug.cgi?id=214623

Patch by Alex Christensen <achristensen@webkit.org> on 2020-07-21
Reviewed by Brady Eidson.

I need to make CertificateInfo::isolatedCopy and this class was making it messy.
It has no shared functionality, so I removed it.

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • inspector/agents/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::buildObjectForResourceResponse):

  • platform/network/CertificateInfoBase.h: Removed.
  • platform/network/CertificateSummary.h: Copied from Source/WebCore/platform/network/CertificateInfoBase.h.

(WebCore::CertificateInfoBase::containsNonRootSHA1SignedCertificate const): Deleted.
(WebCore::CertificateInfoBase::summaryInfo const): Deleted.
(WebCore::CertificateInfoBase::isEmpty const): Deleted.

  • platform/network/cf/CertificateInfo.h:
  • platform/network/cf/CertificateInfoCFNet.cpp:

(WebCore::CertificateInfo::summary const):
(WebCore::CertificateInfo::summaryInfo const): Deleted.

  • platform/network/curl/CertificateInfo.h:
  • platform/network/soup/CertificateInfo.h:

(WebCore::CertificateInfo::summary const):
(WebCore::CertificateInfo::summaryInfo const): Deleted.

5:25 PM Changeset in webkit [264685] by jer.noble@apple.com
  • 34 edits
    5 copies
    9 adds in trunk

[Cocoa] Add experimental MSE WebM parser
https://bugs.webkit.org/show_bug.cgi?id=214529
Source/ThirdParty/libwebrtc:

<rdar://problem/65782467>

Reviewed by Eric Carlson.

Add the vp9_header_parser from libwebrtc to the project, and add its
symbols to the list of exported symbols. Because this header wants to
be installed to a "common/vp9_header_parser.h" path, split up the default
CopyHeadersInstallPhase into two separate CopyFiles build phases that
put headers into different locations.

  • Configurations/libwebm.xcconfig:
  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:
  • Source/third_party/libwebm/common/vp9_header_parser.h:

(vp9_parser::Vp9HeaderParser::color_range const):
(vp9_parser::Vp9HeaderParser::subsampling_x const):
(vp9_parser::Vp9HeaderParser::subsampling_y const):

  • libwebrtc.xcodeproj/project.pbxproj:

Source/WebCore:

Reviewed by Eric Carlson.

Test: media/media-source/media-source-webm.html

Add an experimental MSE WebM parser to SourceBufferPrivateAVFObjC. This will require extensive refactoring
of SourceBufferPrivateAVFObjC, to extract out the parser into a new, virtualized class. This new parser can
take advantage of new C++>11 features such as lambdas to clean up some problematic existing code. The new
virtualized SourceBufferParser class uses passed-in Function objects, rather than pure-virtual Client classes
to notify it's parent object when the parser encounters initialization- or media-data.

Because SourceBufferPrivateAVFObjC will now have to deal with AudioTrackPrivate and VideoTrackPrivate objects
that are not necessarily Audio- and VideoTrackPrivateMediaSourceAVFObjC subclasses, move those classes notification
features up into Audio- and VideoTrackPrivate, again using a Function object rather than a client class.

Add a new SourceBufferParserWebM and associated AudioTrackPrivateWebM and VideoTrackPrivateWebM classes, which
use libwebm via libwebrtc to parse appended buffers. SourceBufferParserWebM feeds passed-in data into a
libwebm-provided parser of its own. It then builds up tracks and samples based on callbacks from that same parser,
constructing CMSampleBuffers and VideoTrackPrivate objects out of the underlying libwebm primitives.

Because WebM uses a UUID as its track identifier, the representation of a "trackID" inside WebCore must be
increased from an int to a uint64_t, or trackIDs will be truncated or zeroed when passed between classes and
when converted to and from AtomStrings.

This early implementation is not yet able to pass the WebM WPT media-source/ tests, as we only have a VP9 decoder
available, and those tests use both VP8 and Vorbis.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setWebMParserEnabled):
(WebCore::RuntimeEnabledFeatures::webMParserEnabled const):

  • platform/graphics/AudioTrackPrivate.h:

(WebCore::AudioTrackPrivate::setEnabled):
(WebCore::AudioTrackPrivate::setEnabledChangedCallback):

  • platform/graphics/VP9Utilities.cpp:

(WebCore::isValidVPColorPrimaries):
(WebCore::isValidVPTransferCharacteristics):
(WebCore::isValidVPMatrixCoefficients):
(WebCore::parseVPCodecParameters):

  • platform/graphics/VP9Utilities.h:
  • platform/graphics/VideoTrackPrivate.h:

(WebCore::VideoTrackPrivate::setSelected):
(WebCore::VideoTrackPrivate::setSelectedChangedCallback):

  • platform/graphics/avfoundation/objc/AudioTrackPrivateMediaSourceAVFObjC.cpp:

(WebCore::AudioTrackPrivateMediaSourceAVFObjC::AudioTrackPrivateMediaSourceAVFObjC):
(WebCore::AudioTrackPrivateMediaSourceAVFObjC::setEnabled):

  • platform/graphics/avfoundation/objc/AudioTrackPrivateMediaSourceAVFObjC.h:
  • platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm:

(WebCore::CDMSessionAVContentKeySession::update):

  • platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm:

(WebCore::CDMSessionAVStreamSession::update):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::supportsType):

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

(WebCore::MediaSampleAVFObjC::create):
(WebCore::MediaSampleAVFObjC::MediaSampleAVFObjC):

  • platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:

(WebCore::MediaSourcePrivateAVFObjC::addSourceBuffer):

  • platform/graphics/avfoundation/objc/SourceBufferParserAVFObjC.h: Added.

(isType):

  • platform/graphics/avfoundation/objc/SourceBufferParserAVFObjC.mm: Added.

(-[WebAVStreamDataParserListener initWithParser:parent:]):
(-[WebAVStreamDataParserListener dealloc]):
(-[WebAVStreamDataParserListener invalidate]):
(-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:]):
(-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:withDiscontinuity:]):
(-[WebAVStreamDataParserListener streamDataParser:didFailToParseStreamDataWithError:]):
(-[WebAVStreamDataParserListener streamDataParser:didProvideMediaData:forTrackID:mediaType:flags:]):
(-[WebAVStreamDataParserListener streamDataParserWillProvideContentKeyRequestInitializationData:forTrackID:]):
(-[WebAVStreamDataParserListener streamDataParser:didProvideContentKeyRequestInitializationData:forTrackID:]):
(WebCore::SourceBufferParserAVFObjC::isContentTypeSupported):
(WebCore::SourceBufferParserAVFObjC::SourceBufferParserAVFObjC):
(WebCore::SourceBufferParserAVFObjC::~SourceBufferParserAVFObjC):
(WebCore::SourceBufferParserAVFObjC::appendData):
(WebCore::SourceBufferParserAVFObjC::flushPendingMediaData):
(WebCore::SourceBufferParserAVFObjC::setShouldProvideMediaDataForTrackID):
(WebCore::SourceBufferParserAVFObjC::shouldProvideMediadataForTrackID):
(WebCore::SourceBufferParserAVFObjC::resetParserState):
(WebCore::SourceBufferParserAVFObjC::didParseStreamDataAsAsset):
(WebCore::SourceBufferParserAVFObjC::didFailToParseStreamDataWithError):
(WebCore::SourceBufferParserAVFObjC::didProvideMediaDataForTrackID):
(WebCore::SourceBufferParserAVFObjC::willProvideContentKeyRequestInitializationDataForTrackID):
(WebCore::SourceBufferParserAVFObjC::didProvideContentKeyRequestInitializationDataForTrackID):

  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:

(WebCore::SourceBufferPrivateAVFObjC::create):
(WebCore::SourceBufferPrivateAVFObjC::SourceBufferPrivateAVFObjC):
(WebCore::SourceBufferPrivateAVFObjC::~SourceBufferPrivateAVFObjC):
(WebCore::SourceBufferPrivateAVFObjC::didParseInitializationData):
(WebCore::SourceBufferPrivateAVFObjC::didEncounterErrorDuringParsing):
(WebCore::SourceBufferPrivateAVFObjC::didProvideMediaDataForTrackID):
(WebCore::SourceBufferPrivateAVFObjC::willProvideContentKeyRequestInitializationDataForTrackID):
(WebCore::SourceBufferPrivateAVFObjC::didProvideContentKeyRequestInitializationDataForTrackID):
(WebCore::SourceBufferPrivateAVFObjC::append):
(WebCore::SourceBufferPrivateAVFObjC::appendCompleted):
(WebCore::SourceBufferPrivateAVFObjC::abort):
(WebCore::SourceBufferPrivateAVFObjC::resetParserState):
(WebCore::SourceBufferPrivateAVFObjC::destroyParser):
(WebCore::SourceBufferPrivateAVFObjC::clearTracks):
(WebCore::SourceBufferPrivateAVFObjC::hasSelectedVideo const):
(WebCore::SourceBufferPrivateAVFObjC::trackDidChangeSelected):
(WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled):
(WebCore::SourceBufferPrivateAVFObjC::parser const):
(WebCore::SourceBufferPrivateAVFObjC::attemptToDecrypt):
(WebCore::SourceBufferPrivateAVFObjC::flush):
(WebCore::SourceBufferPrivateAVFObjC::enqueueSample):
(WebCore::SourceBufferPrivateAVFObjC::isReadyForMoreSamples):
(WebCore::SourceBufferPrivateAVFObjC::didBecomeReadyForMoreSamples):
(WebCore::SourceBufferPrivateAVFObjC::notifyClientWhenReadyForMoreSamples):
(WebCore::SourceBufferPrivateAVFObjC::canSetMinimumUpcomingPresentationTime const):

  • platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.h:
  • platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.mm:

(WebCore::VideoTrackPrivateMediaSourceAVFObjC::VideoTrackPrivateMediaSourceAVFObjC):

  • platform/graphics/cocoa/AudioTrackPrivateWebM.cpp: Copied from Source/WebCore/platform/graphics/cocoa/VP9UtilitiesCocoa.h.

(WebCore::AudioTrackPrivateWebM::create):
(WebCore::AudioTrackPrivateWebM::AudioTrackPrivateWebM):
(WebCore::AudioTrackPrivateWebM::id const):
(WebCore::AudioTrackPrivateWebM::label const):
(WebCore::AudioTrackPrivateWebM::language const):
(WebCore::AudioTrackPrivateWebM::trackIndex const):

  • platform/graphics/cocoa/AudioTrackPrivateWebM.h: Copied from Source/WebCore/platform/graphics/cocoa/VP9UtilitiesCocoa.h.
  • platform/graphics/cocoa/SourceBufferParser.cpp: Copied from Source/WebCore/platform/graphics/cocoa/VP9UtilitiesCocoa.h.

(WebCore::SourceBufferParser::isContentTypeSupported):
(WebCore::SourceBufferParser::create):

  • platform/graphics/cocoa/SourceBufferParser.h: Added.

(WebCore::SourceBufferParser::setDidParseInitializationDataCallback):
(WebCore::SourceBufferParser::setDidEncounterErrorDuringParsingCallback):
(WebCore::SourceBufferParser::setDidProvideMediaDataCallback):
(WebCore::SourceBufferParser::setWillProvideContentKeyRequestInitializationDataForTrackIDCallback):
(WebCore::SourceBufferParser::setDidProvideContentKeyRequestInitializationDataForTrackIDCallback):

  • platform/graphics/cocoa/SourceBufferParserWebM.cpp: Added.

(WebCore::isWebmParserAvailable):
(WebCore::SourceBufferParserWebM::isContentTypeSupported):
(WebCore::SourceBufferParserWebM::SourceBufferParserWebM):
(WebCore::SourceBufferParserWebM::appendData):
(WebCore::SourceBufferParserWebM::flushPendingMediaData):
(WebCore::SourceBufferParserWebM::setShouldProvideMediaDataForTrackID):
(WebCore::SourceBufferParserWebM::shouldProvideMediadataForTrackID):
(WebCore::SourceBufferParserWebM::resetParserState):
(WebCore::SourceBufferParserWebM::trackDataForTrackNumber):
(WebCore::SourceBufferParserWebM::OnElementBegin):
(WebCore::SourceBufferParserWebM::OnEbml):
(WebCore::SourceBufferParserWebM::OnSegmentBegin):
(WebCore::SourceBufferParserWebM::OnInfo):
(WebCore::SourceBufferParserWebM::OnClusterBegin):
(WebCore::SourceBufferParserWebM::OnTrackEntry):
(WebCore::SourceBufferParserWebM::OnBlockBegin):
(WebCore::SourceBufferParserWebM::OnBlockEnd):
(WebCore::SourceBufferParserWebM::OnSimpleBlockBegin):
(WebCore::SourceBufferParserWebM::OnSimpleBlockEnd):
(WebCore::SourceBufferParserWebM::OnBlockGroupBegin):
(WebCore::SourceBufferParserWebM::OnBlockGroupEnd):
(WebCore::convertToColorPrimaries):
(WebCore::convertToTransferCharacteristics):
(WebCore::convertToMatrixCoefficients):
(WebCore::convertSubsamplingXYToChromaSubsampling):
(WebCore::createFormatDescriptionFromVP9HeaderParser):
(WebCore::SourceBufferParserWebM::OnFrame):

  • platform/graphics/cocoa/SourceBufferParserWebM.h: Added.

(WebCore::SourceBufferParserWebM::status const):
(WebCore::SourceBufferParserWebM::type const):
(isType):

  • platform/graphics/cocoa/VP9UtilitiesCocoa.h:
  • platform/graphics/cocoa/VP9UtilitiesCocoa.mm:

(WebCore::isVP9DecoderAvailable):
(WebCore::validateVPParameters):

  • platform/graphics/cocoa/VideoTrackPrivateWebM.cpp:

(WebCore::VideoTrackPrivateWebM::create):
(WebCore::VideoTrackPrivateWebM::VideoTrackPrivateWebM):
(WebCore::VideoTrackPrivateWebM::id const):
(WebCore::VideoTrackPrivateWebM::label const):
(WebCore::VideoTrackPrivateWebM::language const):
(WebCore::VideoTrackPrivateWebM::trackIndex const):

  • platform/graphics/cocoa/VideoTrackPrivateWebM.h:

Source/WebKit:

<rdar://problem/65782467>

Reviewed by Eric Carlson.

Add an Experimental setting to enable the MSE WebM parser (off by default).

  • Shared/WebPreferences.yaml:

LayoutTests:

<rdar://problem/65782467>

Reviewed by Eric Carlson.

  • media/media-source/content/test-vp9-manifest.json: Added.
  • media/media-source/content/test-vp9.webm: Added.
  • media/media-source/media-source-webm-expected.txt: Added.
  • media/media-source/media-source-webm.html: Added.
5:21 PM Changeset in webkit [264684] by Peng Liu
  • 7 edits in trunk/Source/WebCore

Safari is unresponsive after playing a video of youtube.com playlist in picture-in-picture mode
https://bugs.webkit.org/show_bug.cgi?id=214616

Reviewed by Eric Carlson.

Remove the function setPreparedToReturnVideoLayerToInline() from
MediaControlsHost.idl and replace all the calls to that function
in Javascript code with a call in HTMLVideoElement::fullscreenModeChanged().

Calling setPreparedToReturnVideoLayerToInline() in the Javascript code of
modern media controls can be problematic because the host object might have
been destroyed when the webkitpresentationmodechanged event is fired.
During the exit fullscreen/picture-in-picture transaction, missing a call to
setPreparedToReturnVideoLayerToInline() will block the transaction,
and the UI process will be stuck in a bad state.

  • Modules/mediacontrols/MediaControlsHost.cpp:

(WebCore::MediaControlsHost::setPreparedToReturnVideoLayerToInline): Deleted.

  • Modules/mediacontrols/MediaControlsHost.h:
  • Modules/mediacontrols/MediaControlsHost.idl:
  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.handlePresentationModeChange):

  • Modules/modern-media-controls/media/media-controller.js:

(MediaController.prototype.handleEvent):
(MediaController.prototype._returnMediaLayerToInlineIfNeeded): Deleted.

  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::fullscreenModeChanged):

5:09 PM Changeset in webkit [264683] by Brian Burg
  • 3 edits in trunk/LayoutTests

Web Inspector: inspector/canvas/memory.html is failing on macOS Apple Silicon
https://bugs.webkit.org/show_bug.cgi?id=214619

Reviewed by Devin Rousso.

  • inspector/canvas/memory-expected.txt:
  • inspector/canvas/memory.html:

Canvas memory costs are not the same as on Intel macOS. Change the test to
simply check that the memory cost increases from zero-ish to not-zero.

4:55 PM WebKitGTK/2.28.x edited by Michael Catanzaro
(diff)
4:54 PM WebKitGTK/2.28.x edited by Michael Catanzaro
(diff)
4:45 PM Changeset in webkit [264682] by timothy_horton@apple.com
  • 5 edits in trunk/Source

REGRESSION (WebSQL disablement): Fudget app is unresponsive on launch
https://bugs.webkit.org/show_bug.cgi?id=214620
<rdar://problem/65443085>

Reviewed by Geoffrey Garen.

Source/WebCore:

  • platform/RuntimeApplicationChecks.h:
  • platform/cocoa/RuntimeApplicationChecksCocoa.mm:

(WebCore::IOSApplication::isFudget):

Source/WebKitLegacy/mac:

  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
Add Fudget to the list of apps that can use WebSQL until linked on or after iOS 14.

2:33 PM Changeset in webkit [264681] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

watchOS: Web Content process crashes when it tries to open files
https://bugs.webkit.org/show_bug.cgi?id=214614
<rdar://problem/65900517>

Reviewed by Darin Adler.

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

Allow reading kern.maxfilesperproc, as it is allowed on macOS and in the Network process sandbox, and libc needs it.

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

ImageDiff: Set ALWAYS_SEARCH_USER_PATHS to NO
https://bugs.webkit.org/show_bug.cgi?id=214613
<rdar://problem/65883815>

Reviewed by Dan Bernstein.

  • ImageDiff/cg/Configurations/Base.xcconfig:
2:10 PM Changeset in webkit [264679] by mark.lam@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

llint_slow_path_get_private_name() should not be using PropertySlot::InternalMethodType::VMInquiry.
https://bugs.webkit.org/show_bug.cgi?id=214603

Reviewed by Yusuke Suzuki.

VMInquiry means (1) the get operation should not call back into JS, (2) it should
not throw any exceptions (except for OutOfMemoryError or StackOverflowError which
can be thrown at any time), or have any side effects that is observable from JS
code. In this case, llint_slow_path_get_private_name() is just implementating
PrivateFieldGet (https://tc39.es/proposal-class-fields/#sec-privatefieldget) and
should actually be using PropertySlot::InternalMethodType::GetOwnProperty
(according to https://tc39.es/proposal-class-fields/#sec-privatefieldfind).

This patch makes the above change, and also adds an assert in JSObject::getPrivateField
to ensure that no one calls it for a VMInquiry since it is not supported.

Also added a PropertySlot::isVMInquiry() convenience query method.

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • runtime/JSObjectInlines.h:

(JSC::JSObject::getPrivateField):

  • runtime/PropertySlot.h:

(JSC::PropertySlot::isVMInquiry const):

2:09 PM Changeset in webkit [264678] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Layout tests exiting early with crashes
https://bugs.webkit.org/show_bug.cgi?id=214612
<rdar://problem/65897905>

Reviewed by Brent Fulgham.

This is caused by the WebContent process making a syscall not allowed by the sandbox.

  • WebProcess/com.apple.WebProcess.sb.in:
2:07 PM Changeset in webkit [264677] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

WebKit::ColorSpaceData::decode() does not need default: case
<https://webkit.org/b/214587>
<rdar://problem/65777868>

Reviewed by Darin Adler.

  • Shared/mac/ColorSpaceData.mm:

(WebKit::ColorSpaceData::decode):

  • Remove default: case and add ASSERT_NOT_REACHED() and move return false; to bottom of the method.
2:05 PM Changeset in webkit [264676] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Update Chrome and Firefox versions in user agent quirks
https://bugs.webkit.org/show_bug.cgi?id=214595

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-07-21
Reviewed by Adrian Perez de Castro.

  • platform/UserAgentQuirks.cpp:

(WebCore::UserAgentQuirks::stringForQuirk):

2:02 PM Changeset in webkit [264675] by James Savage
  • 2 edits in trunk/Source/WebKit

Unable to call WKScriptMessageHandlerWithReply's replyHandler with a nil errorMessage in Swift
https://bugs.webkit.org/show_bug.cgi?id=214581
<rdar://problem/65639342>

Reviewed by Brady Eidson.

  • UIProcess/API/Cocoa/WKScriptMessageHandlerWithReply.h: Modify the block

signature to allow nil for either argument.

1:35 PM Changeset in webkit [264674] by ysuzuki@apple.com
  • 3 edits
    2 adds in trunk

Use CatchScope in microtask execution
https://bugs.webkit.org/show_bug.cgi?id=214600
<rdar://problem/65881165>

Reviewed by Mark Lam.

Source/WebCore:

Test: js/dom/microtask-drain-should-use-catch-scope.html

Use CatchScope to suppress JSC_validateExceptionChecks.

  • bindings/js/JSMicrotaskCallback.h:

(WebCore::JSMicrotaskCallback::call):

LayoutTests:

  • js/dom/microtask-drain-should-use-catch-scope-expected.txt: Added.
  • js/dom/microtask-drain-should-use-catch-scope.html: Added.
12:36 PM Changeset in webkit [264673] by keith_miller@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Fix FinalizationRegistry GC finalizer interation
https://bugs.webkit.org/show_bug.cgi?id=214586
<rdar://65854264>

Reviewed by Mark Lam and Yusuke Suzuki.

Turns out when you remove the ith element from a Vector and you
increment the index anyway you skip things... Use the helper
functions instead. This fixes an ASAN crash on our
FinalizationRegistry tests.

  • heap/Heap.cpp:

(JSC::Heap::finalizeUnconditionalFinalizers):

  • runtime/DeferredWorkTimer.cpp:

(JSC::DeferredWorkTimer::addPendingWork):
(JSC::DeferredWorkTimer::hasPendingWork):
(JSC::DeferredWorkTimer::hasDependancyInPendingWork):
(JSC::DeferredWorkTimer::cancelPendingWork):

  • runtime/JSFinalizationRegistry.cpp:

(JSC::JSFinalizationRegistry::finalizeUnconditionally):
(JSC::JSFinalizationRegistry::takeDeadHoldingsValue):

12:29 PM Changeset in webkit [264672] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Disable NO_SMT by default
https://bugs.webkit.org/show_bug.cgi?id=214607

Reviewed by Filip Pizlo.

  • runtime/OptionsList.h:
12:15 PM Changeset in webkit [264671] by Caio Lima
  • 2 edits in trunk/Source/JavaScriptCore

Debug build is failing after r264537 on Linux
https://bugs.webkit.org/show_bug.cgi?id=214596

Reviewed by Yusuke Suzuki.

Removing ASSERT_UNDER_CONTEXPR_CONTEXT(0) to avoid compilation
failure of Debug builds on Linux.

  • runtime/IntlObject.cpp:

(JSC::relevantExtensionKeyString):

12:10 PM Changeset in webkit [264670] by Kate Cheney
  • 2 edits in trunk/Source/WebKit

Frequent Network error messages: "ResourceLoadStatisticsDatabaseStore::topPrevalentResourceWithUserInteractionDaysSinceUserInteractionStatement query failed to step, error message: no more rows available"
https://bugs.webkit.org/show_bug.cgi?id=214597
<rdar://65884740>

Reviewed by John Wilander.

We should not log an error message when no rows are returned when running
telemetry queries, because this is not an error.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::getMedianOfPrevalentResourcesWithUserInteraction):
(WebKit::ResourceLoadStatisticsDatabaseStore::getTopPrevelentResourceDaysSinceUI const):
Remove unnecessary error logging and only check for telemetry results if the
query returns a row.

12:03 PM Changeset in webkit [264669] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: unable to save files that are base64 encoded
https://bugs.webkit.org/show_bug.cgi?id=214601

Reviewed by Brian Burg.

  • UserInterface/Models/SourceCode.js:

(WI.SourceCode.prototype.get base64Encoded): Added.
Expose if the current content is base64 encoded. The current content is already exposed.

  • UserInterface/Views/ContextMenuUtilities.js:

(WI.appendContextMenuItemsForSourceCode):
Include the base64 encoded state in the save data.

11:54 AM Changeset in webkit [264668] by commit-queue@webkit.org
  • 2 edits in trunk/JSTests

REGRESSION(r264330): infinite loop in JSC stress tests using cloop
https://bugs.webkit.org/show_bug.cgi?id=214491

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-07-21
Reviewed by Saam Barati.

Run the test only if JIT is enabled.

  • stress/validate-does-gc-with-return-early-from-infinite-loop.js:

(vm.useJIT):

11:51 AM Changeset in webkit [264667] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Elements: Styles: don't blur the add class input when a class is added
https://bugs.webkit.org/show_bug.cgi?id=214604

Reviewed by Brian Burg.

  • UserInterface/Views/GeneralStyleDetailsSidebarPanel.js:

(WI.GeneralStyleDetailsSidebarPanel.prototype._addClassInputKeyPressed):
(WI.GeneralStyleDetailsSidebarPanel.prototype._addClassInputBlur):
(WI.GeneralStyleDetailsSidebarPanel.prototype._addClassFromInput): Added.

  • UserInterface/Views/GeneralStyleDetailsSidebarPanel.css:

(.sidebar > .panel.details.css-style > .content ~ .class-list-container):
Drive-by: don't show a scrollbar unless needed.

11:48 AM Changeset in webkit [264666] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(?): file names are not shown in the open resource dialog
https://bugs.webkit.org/show_bug.cgi?id=214605

Reviewed by Brian Burg.

When a DocumentFragment is added to a parent node, the children of the DocumentFragment
are added as children of the parent instead of the DocumentFragment itself, effectively
emptying the DocumentFragment, meaning that adding that DocumentFragment to a parent
node again will basically do nothing as there are no children for that DocumentFragment.

  • UserInterface/Views/GeneralTreeElement.js:

(WI.GeneralTreeElement.prototype._updateTitleElements):
Because the _mainTitleElement/_subtitleElement is cleared (removeChildren), if the
_mainTitle/_subtitle is a DocumentFragment nothing will be added due to the above.
Instead, if the _mainTitle/_subtitle is a DocumentFragment, change it to be the
textContent of the _mainTitleElement/_subtitleElement so that the above does not
happen and so that future calls to _updateTitleElements won't make any changes the
_mainTitle/_subtitle is now a String which matches the textContent.

11:26 AM Changeset in webkit [264665] by youenn@apple.com
  • 10 edits in trunk

NetworkConnectionToWebProcess should not handle NetworkRTCProvider messages
https://bugs.webkit.org/show_bug.cgi?id=214547

Reviewed by Alex Christensen.

Source/WebKit:

Normally NetworkRTCProvider is created when starting to monitor the network.
In case network process is crashing though, there might be requests to open RTC socket on the new network process which has not started to monitor the network.
In that case, we will go through NetworkConnectionToWebProcess as NetworkRTCProvider is not yet created.
To properly handle this case, on web process side, we send an IPC message to explictly create the NetworkRTCProvider.
Once done, we set the IPC connection to the socket factory which will start sending messages to open sockets if needed.
Until its connection is set, the socket factory will buffer messages to open sockets.
Covered by test no longer crashing in debug.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::didReceiveMessage):
(WebKit::NetworkConnectionToWebProcess::createRTCProvider):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • WebProcess/Network/webrtc/LibWebRTCNetwork.cpp:

(WebKit::LibWebRTCNetwork::setAsActive):
(WebKit::LibWebRTCNetwork::setConnection):
(WebKit::LibWebRTCNetwork::setSocketFactoryConnection):

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

(WebKit::LibWebRTCSocketFactory::setConnection):
(WebKit::LibWebRTCSocketFactory::createServerTcpSocket):
(WebKit::LibWebRTCSocketFactory::createUdpSocket):
(WebKit::LibWebRTCSocketFactory::createClientTcpSocket):
(WebKit::LibWebRTCSocketFactory::createNewConnectionSocket):

  • WebProcess/Network/webrtc/LibWebRTCSocketFactory.h:

LayoutTests:

  • platform/mac/TestExpectations:
11:13 AM Changeset in webkit [264664] by youenn@apple.com
  • 12 edits in trunk

Fetch/XHR loads done by extensions should opt out of response sanitisation done in network process
https://bugs.webkit.org/show_bug.cgi?id=214588
Source/WebKit:

<rdar://problem/65060560>

Reviewed by Alex Christensen.

Send to network process the CORS disabling patterns.
Disable sanitization for fetch/xhr loads whose pages have a matching pattern.

Covered by API test.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::setCORSDisablingPatterns):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::shouldDisableCORSForRequestTo const):
(WebKit::NetworkProcess::setCORSDisablingPatterns):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::shouldSanitizeResponse):
(WebKit::NetworkResourceLoader::sanitizeResponseIfPossible):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::parseAndAllowAccessToCORSDisablingPatterns):
(WebKit::m_limitsNavigationsToAppBoundDomains):
(WebKit::WebPage::~WebPage):
(WebKit::WebPage::updateCORSDisablingPatterns):
(WebKit::WebPage::synchronizeCORSDisablingPatternsWithNetworkProcess):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::ensureNetworkProcessConnection):

Tools:

Reviewed by Alex Christensen.

Update test to check for header. Minor modernization of the JS script to impriove readability.

  • TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:
10:46 AM Changeset in webkit [264663] by eric.carlson@apple.com
  • 29 edits
    4 copies
    1 add in trunk

Use AVRoutePickerView when available for choosing AirPlay devices
https://bugs.webkit.org/show_bug.cgi?id=213497
<rdar://problem/58610662>

Reviewed by Jer Noble.

Source/WebCore:

Use an AVRoutePickerView, the replacement for AVOutputDeviceMenuController, when
it is available to allow a user to pick an AirPlay device. To do this, create an
AVPlaybackTargetPicker abstract base and create a concrete class from the
AVOutputDeviceMenuController-specific code from MediaPlaybackTargetPickerMac, and
create a new concrete class using AVRoutePickerView.

Tested manually because these changes require an AirPlay device.

  • Modules/mediasession/WebMediaSessionManager.cpp:

(WebCore::WebMediaSessionManager::showPlaybackTargetPicker): Pass the view to the
target picker.

  • Modules/mediasession/WebMediaSessionManagerClient.h:
  • Modules/remoteplayback/RemotePlayback.cpp:

(WebCore::RemotePlayback::playbackTargetPickerWasDismissed): Drive-by fix: return
early if there are no pending promises.

  • SourcesCocoa.txt: Add new files.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • platform/graphics/MediaPlaybackTargetPicker.cpp:

(WebCore::MediaPlaybackTargetPicker::showPlaybackTargetPicker): Add new parameter.

  • platform/graphics/MediaPlaybackTargetPicker.h:
  • platform/graphics/avfoundation/objc/AVOutputDeviceMenuControllerTargetPicker.h: Copied from Source/WebCore/platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.h.
  • platform/graphics/avfoundation/objc/AVOutputDeviceMenuControllerTargetPicker.mm: Copied from Source/WebCore/platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm.

(WebCore::AVOutputDeviceMenuControllerTargetPicker::AVOutputDeviceMenuControllerTargetPicker):
(WebCore::AVOutputDeviceMenuControllerTargetPicker::~AVOutputDeviceMenuControllerTargetPicker):
(WebCore::AVOutputDeviceMenuControllerTargetPicker::devicePicker):
(WebCore::AVOutputDeviceMenuControllerTargetPicker::availableDevicesDidChange):
(WebCore::AVOutputDeviceMenuControllerTargetPicker::currentDeviceDidChange):
(WebCore::AVOutputDeviceMenuControllerTargetPicker::showPlaybackTargetPicker):
(WebCore::AVOutputDeviceMenuControllerTargetPicker::startingMonitoringPlaybackTargets):
(WebCore::AVOutputDeviceMenuControllerTargetPicker::stopMonitoringPlaybackTargets):
(WebCore::AVOutputDeviceMenuControllerTargetPicker::invalidatePlaybackTargets):
(WebCore::AVOutputDeviceMenuControllerTargetPicker::externalOutputDeviceAvailable):
(WebCore::AVOutputDeviceMenuControllerTargetPicker::outputContext):
(-[WebAVOutputDeviceMenuControllerHelper initWithCallback:]):
(-[WebAVOutputDeviceMenuControllerHelper clearCallback]):
(-[WebAVOutputDeviceMenuControllerHelper observeValueForKeyPath:ofObject:change:context:]):

  • platform/graphics/avfoundation/objc/AVPlaybackTargetPicker.h: Added.

(WebCore::AVPlaybackTargetPicker::AVPlaybackTargetPicker):
(WebCore::AVPlaybackTargetPicker::client const):

  • platform/graphics/avfoundation/objc/AVRoutePickerViewTargetPicker.h: Added.
  • platform/graphics/avfoundation/objc/AVRoutePickerViewTargetPicker.mm: Added.

(WebCore::AVRoutePickerViewTargetPicker::isAvailable):
(WebCore::AVRoutePickerViewTargetPicker::AVRoutePickerViewTargetPicker):
(WebCore::AVRoutePickerViewTargetPicker::~AVRoutePickerViewTargetPicker):
(WebCore::AVRoutePickerViewTargetPicker::outputContextInternal):
(WebCore::AVRoutePickerViewTargetPicker::devicePicker):
(WebCore::AVRoutePickerViewTargetPicker::routeDetector):
(WebCore::AVRoutePickerViewTargetPicker::showPlaybackTargetPicker):
(WebCore::AVRoutePickerViewTargetPicker::startingMonitoringPlaybackTargets):
(WebCore::AVRoutePickerViewTargetPicker::stopMonitoringPlaybackTargets):
(WebCore::AVRoutePickerViewTargetPicker::externalOutputDeviceAvailable):
(WebCore::AVRoutePickerViewTargetPicker::outputContext):
(WebCore::AVRoutePickerViewTargetPicker::invalidatePlaybackTargets):
(WebCore::AVRoutePickerViewTargetPicker::availableDevicesDidChange):
(WebCore::AVRoutePickerViewTargetPicker::currentDeviceDidChange):
(WebCore::AVRoutePickerViewTargetPicker::devicePickerWasDismissed):
(-[WebAVRoutePickerViewHelper initWithCallback:]):
(-[WebAVRoutePickerViewHelper dealloc]):
(-[WebAVRoutePickerViewHelper clearCallback]):
(-[WebAVRoutePickerViewHelper routePickerViewDidEndPresentingRoutes:]):
(-[WebAVRoutePickerViewHelper notificationHandler:]):

  • platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.h:
  • platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm:

(WebCore::MediaPlaybackTargetPickerMac::MediaPlaybackTargetPickerMac):
(WebCore::MediaPlaybackTargetPickerMac::~MediaPlaybackTargetPickerMac):
(WebCore::MediaPlaybackTargetPickerMac::externalOutputDeviceAvailable):
(WebCore::MediaPlaybackTargetPickerMac::playbackTarget):
(WebCore::MediaPlaybackTargetPickerMac::routePicker):
(WebCore::MediaPlaybackTargetPickerMac::showPlaybackTargetPicker):
(WebCore::MediaPlaybackTargetPickerMac::startingMonitoringPlaybackTargets):
(WebCore::MediaPlaybackTargetPickerMac::stopMonitoringPlaybackTargets):
(WebCore::MediaPlaybackTargetPickerMac::invalidatePlaybackTargets):
(WebCore::MediaPlaybackTargetPickerMac::pickerWasDismissed):
(WebCore::MediaPlaybackTargetPickerMac::availableDevicesChanged):
(WebCore::MediaPlaybackTargetPickerMac::currentDeviceChanged):
(WebCore::MediaPlaybackTargetPickerMac::devicePicker): Deleted.
(-[WebAVOutputDeviceMenuControllerHelper initWithCallback:]): Deleted.
(-[WebAVOutputDeviceMenuControllerHelper clearCallback]): Deleted.
(-[WebAVOutputDeviceMenuControllerHelper observeValueForKeyPath:ofObject:change:context:]): Deleted.

  • platform/mock/MediaPlaybackTargetPickerMock.cpp:

(WebCore::MediaPlaybackTargetPickerMock::showPlaybackTargetPicker):

  • platform/mock/MediaPlaybackTargetPickerMock.h:

Source/WebCore/PAL:

  • pal/cocoa/AVFoundationSoftLink.h:
  • pal/cocoa/AVFoundationSoftLink.mm: Soft link AVRoutePickerView.
  • pal/spi/cocoa/AVKitSPI.h: Declare AVRoutePickerView.

Source/WebKit:

  • UIProcess/WebPageProxy.h:
  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::platformView const): Add new override.

Source/WebKitLegacy/mac:

  • WebView/WebMediaPlaybackTargetPicker.h:

(WebMediaPlaybackTargetPicker::~WebMediaPlaybackTargetPicker): Deleted.

  • WebView/WebMediaPlaybackTargetPicker.mm:

(WebMediaPlaybackTargetPicker::create):
(WebMediaPlaybackTargetPicker::WebMediaPlaybackTargetPicker):
(WebMediaPlaybackTargetPicker::invalidate):
(WebMediaPlaybackTargetPicker::platformView const): New override.

  • WebView/WebView.mm:

(-[WebView _devicePicker]): Pass view to WebMediaPlaybackTargetPicker factory.

Source/WTF:

  • wtf/PlatformHave.h: Define HAVE_AVROUTEPICKERVIEW.

Tools:

  • TestWebKitAPI/Tests/WebCore/cocoa/AVFoundationSoftLinkTest.mm:

(TestWebKitAPI::TEST): Test AVOutputContextOutputDevicesDidChangeNotification.
Don't check AVRouteDetectorMultipleRoutesDetectedDidChangeNotification on watchOS,
we don't use it there.

10:37 AM Changeset in webkit [264662] by commit-queue@webkit.org
  • 5 edits in trunk

webgl/2.0.0/conformance2/state/gl-object-get-calls.html results appears to show an out of bounds access bug.
https://bugs.webkit.org/show_bug.cgi?id=214557

Patch by James Darpinian <James Darpinian> on 2020-07-21
Reviewed by Myles C. Maxfield.

The WebGL 2 function getActiveUniformBlockName was accidentally untested because an
unrelated bug caused the test to exit before reaching the part that tested it. The
other bug is fixed now, and this change fixes getActiveUniformBlockName to actually
work.

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::getActiveUniformBlockName):

  • platform/graphics/GraphicsContextGL.h:
  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLOpenGL::getActiveUniformBlockName):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp:

(WebCore::GraphicsContextGLOpenGL::getActiveUniformBlockName):

10:28 AM Changeset in webkit [264661] by commit-queue@webkit.org
  • 8 edits
    2 deletes in trunk

REGRESSION(r264486): ASSERTION FAILED: ASSERT_NOT_REACHED() in NetworkProcessPlatformStrategies::createBlobRegistry
https://bugs.webkit.org/show_bug.cgi?id=214425

Patch by Sihui Liu <sihui_liu@appe.com> on 2020-07-21
Reviewed by Youenn Fablet.

Source/WebCore:

In SerializedScriptValue.cpp, some kind of wrappers will not be created when global object is not
JSDOMGlobalObject, so they would not be created for IDB before r264486. After r264486, IDB uses
JSIDBSerializationGlobalObject, which is JSDOMGlobalObject, so those wrappers start to be created. To restore
the old behavior, adding checks for JSIDBSerializationGlobalObject in SerializedScriptValue.cpp.

Modify and re-enable test: LayoutTests/storage/indexeddb/structured-clone.html

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneDeserializer::CloneDeserializer):
(WebCore::CloneDeserializer::readFile):
(WebCore::CloneDeserializer::readRTCCertificate):
(WebCore::CloneDeserializer::readTerminal):

LayoutTests:

Remove storage/indexeddb/structured-clone-private.html as blob is not supported in IDB for private browsing.
Also storage/indexeddb/structured-clone.html already covers the code paths for structured clone in IDB.

  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/win/TestExpectations:
  • storage/indexeddb/resources/structured-clone.js:

(testFile):

  • storage/indexeddb/structured-clone-expected.txt:
  • storage/indexeddb/structured-clone-private-expected.txt: Removed.
  • storage/indexeddb/structured-clone-private.html: Removed.
10:18 AM Changeset in webkit [264660] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[ iOS WK2 ] fast/scrolling/ios/autoscroll-input-when-very-zoomed.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214598

Unreviewed test gardening.

Patch by Hector Lopez <Hector Lopez> on 2020-07-21

  • platform/ios-wk2/TestExpectations:
9:36 AM Changeset in webkit [264659] by jer.noble@apple.com
  • 8 edits in trunk/Source

[Cocoa] Adopt VTRegisterSupplementalVideoDecoderIfAvailable
https://bugs.webkit.org/show_bug.cgi?id=214585
<rdar://problem/65863651>

Reviewed by Youenn Fablet.

Source/WebCore:

  • WebCore.xcodeproj/project.pbxproj:
  • platform/cocoa/VideoToolboxSoftLink.cpp:
  • platform/cocoa/VideoToolboxSoftLink.h:
  • platform/graphics/cocoa/VP9UtilitiesCocoa.h:
  • platform/graphics/cocoa/VP9UtilitiesCocoa.mm:

(WebCore::registerSupplementalVP9Decoder):

Source/WebKit:

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::enableVP9Decoder):

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

[UI Events] Make mousemove cancelable
https://bugs.webkit.org/show_bug.cgi?id=214513
<rdar://problem/64267520>

Reviewed by Simon Fraser.

Source/WebCore:

This patch makes the mousemove event cancelable.
The event was initially specified to be non-cancelable in DOM Level 2 Events, but was changed to reflect existing interoperability between browsers.
The most user facing behavior change here is that when the mousemove event is prevent-defaulted (canceled) content selection is not possible.

Chrome is aligned with the latest version of the spec, the mousemove event is cancelable.
However they also have a TODO right at where the drag would happen:
TODO(crbug.com/346473): Since there is no default action for the mousemove
event we should consider doing drag&drop even when js cancels the
mouse move event.

Firefox preforms the drag(select) operation but not sure if it’s because their mousemove event is still non-cancelable or whether they already went ahead with what the TODO says.

Test: fast/text/selection-is-prevent-defaulted.html

  • dom/MouseEvent.cpp:

(WebCore::MouseEvent::create):

LayoutTests:

  • fast/text/selection-is-prevent-defaulted-expected.txt: Added.
  • fast/text/selection-is-prevent-defaulted.html: Added.
  • platform/mac/fast/events/objc-event-api-expected.txt:
9:13 AM Changeset in webkit [264657] by commit-queue@webkit.org
  • 47 edits
    2 adds in trunk

Added OfflineAudioContext constructor
https://bugs.webkit.org/show_bug.cgi?id=214577

Patch by Clark Wang <clark_wang@apple.com> on 2020-07-21
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Re-baselined existing tests. Lots of failures that fail because of unsupported sampleRate range.

  • web-platform-tests/webaudio/idlharness.https.window-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-null-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/buffer-resampling-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-scheduling-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/adding-events-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-close-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/automation-rate-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/cancel-scheduled-values-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/event-insertion-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-audiobuffersource-connections-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-audioworklet-connections.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-audioworklet.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-biquad-connection-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-biquad-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-connections-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-constant-source-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-delay-connections-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-delay-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-dynamics-compressor-connections-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-gain-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-oscillator-connections-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-oscillator-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-panner-connections-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-panner-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-stereo-panner-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/set-target-conv-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-disconnected-input.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/simple-input-output.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/suspended-context-messageport.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/convolver-upmixing-1-channel-response-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/delaynode-channel-count-1-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/maxdelay-rounding-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-offlineaudiocontext-interface/ctor-offlineaudiocontext-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-oscillatornode-interface/osc-basic-waveform-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-scriptprocessornode-interface/simple-input-output-expected.txt:

Source/WebCore:

Added OfflineAudioContext constructor and OfflineAudioContextOptions files.

Re-baselined existing tests. Lots of failures that fail because of unsupported sampleRate range.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/webaudio/OfflineAudioContext.cpp:

(WebCore::OfflineAudioContext::create):

  • Modules/webaudio/OfflineAudioContext.h:
  • Modules/webaudio/OfflineAudioContext.idl:
  • Modules/webaudio/OfflineAudioContextOptions.h: Added.
  • Modules/webaudio/OfflineAudioContextOptions.idl: Added.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
9:07 AM Changeset in webkit [264656] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Make AnyStepHandling an enum class
https://bugs.webkit.org/show_bug.cgi?id=214423

Patch by Rob Buis <rbuis@igalia.com> on 2020-07-21
Reviewed by Darin Adler.

Correct some post commit comments.

  • html/HTMLInputElement.h:
  • html/InputType.h:
  • html/StepRange.h:
8:46 AM Changeset in webkit [264655] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ Release Mac wk2 ] svg/animations/smil-leak-element-instances.svg is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=214579

Unreviewed test gardening.

Patch by Hector Lopez <Hector Lopez> on 2020-07-21

  • platform/mac-wk2/TestExpectations:
8:42 AM Changeset in webkit [264654] by youenn@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Resync filter_analyzer.cc up to upstream libwebrtc
https://bugs.webkit.org/show_bug.cgi?id=214592
<rdar://problem/65247051>

Reviewed by Eric Carlson.

  • Source/webrtc/modules/audio_processing/aec3/filter_analyzer.cc:
7:00 AM Changeset in webkit [264653] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[GTK] WebKitSettings:enable-private-browsing missing G_PARAM_DEPRECATED
https://bugs.webkit.org/show_bug.cgi?id=214554

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-07-21
Reviewed by Carlos Garcia Campos.

  • UIProcess/API/glib/WebKitSettings.cpp:

(webkit_settings_class_init):

5:46 AM Changeset in webkit [264652] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.29.1

WPE WebKit 2.29.1

5:44 AM Changeset in webkit [264651] by Adrian Perez de Castro
  • 4 edits in trunk

Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.29.1 release

.:

  • Source/cmake/OptionsWPE.cmake: Bump version numbers.

Source/WebKit:

  • wpe/NEWS: Add release notes for 2.29.1.
5:18 AM Changeset in webkit [264650] by Carlos Garcia Campos
  • 4 edits in trunk

Fix ITP data summary when using the memory store and blocking all third-party cookies
https://bugs.webkit.org/show_bug.cgi?id=214401

Reviewed by Michael Catanzaro.

Source/WebKit:

The memory store behaves differently than the database one, it only includes prevalent resources in the list,
while the database store includes all resources when cooking blocking policy is All.

  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:

(WebKit::ResourceLoadStatisticsMemoryStore::aggregatedThirdPartyData const): Only check isPrevalentResource if
third party cookie blocking mode is not All to decide whether to include the domain in the report.

Tools:

Fix GetResourceLoadStatisticsDataSummary test to actually use the memory store.

  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm:

(TEST):

2:04 AM Changeset in webkit [264649] by Philippe Normand
  • 2 edits in trunk/LayoutTests

Unreviewed WPE/GTK gardening

  • platform/glib/TestExpectations:

imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-MediaElement-srcObject.https.html
is passing since r264607.

2:03 AM Changeset in webkit [264648] by calvaris@igalia.com
  • 4 edits in trunk

[GStreamer][1.18] mediastreamsrc element hits assert in gst -core
https://bugs.webkit.org/show_bug.cgi?id=214150

Reviewed by Philippe Normand.

Source/WebCore:

Removed track pointers from observers cause the object was
self-referencing a couple of times. Observers are 1-1 with the
source so there is no need to keep an owned reference and there is
no danger of incorrect dereferencing.

Turned finalize into dispose as the work is doing is more removing
the references with other objects, which what the dispose is
about. Called the parent on that, which as missing as well.

  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:

(WebKitMediaStreamTrackObserver::WebKitMediaStreamTrackObserver):
(WebKitMediaStreamObserver::WebKitMediaStreamObserver):
(webkitMediaStreamSrcConstructed):
(webkitMediaStreamSrcDispose):
(webkit_media_stream_src_class_init):

LayoutTests:

As result of this bug
fast/mediastream/MediaStream-removeTrack-while-playing.html begins
to crash in debug mode in an assertion. When a track is removed
the observer is not removed and when it dies there are null
objects in the observer weak hash set. Still, if you do a quick
patch to remove the observer, things can still crash as track
removal is racy and in release there' other crash. All this needs
to be taclked as a general approach to fix track removal.

  • platform/glib/TestExpectations: Added

fast/mediastream/MediaStream-removeTrack-while-playing.html as
Pass Crash for release and crash for debug.

1:08 AM Changeset in webkit [264647] by Carlos Garcia Campos
  • 23 edits in trunk

[GTK] Prepare unit tests for GTK4
https://bugs.webkit.org/show_bug.cgi?id=214251

Reviewed by Adrian Perez de Castro.

Source/WebKit:

Make it possible to test input methods.

  • UIProcess/API/glib/InputMethodFilter.h:
  • UIProcess/API/gtk/InputMethodFilterGtk.cpp:

(WebKit::InputMethodFilter::filterKeyEvent): Added to receive the key event properties instead of the GdkEvent.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseSynthesizeMouseEvent): Create a GdkEvent for right clicks since it's needed by GTK3 API.
(webkitWebViewBaseSynthesizeKeyEvent): Send key press and release events to the IM filter.

Tools:

In GTK4 there isn't GTK_WINDOW_POPUP and we can't create GdkEvents, so we need to use toplevel windows
everywhere and use the new internal api to synthesize events.

  • TestWebKitAPI/Tests/WebKitGLib/TestDownloads.cpp:

(testContextMenuDownloadActions):
(testBlobDownload):

  • TestWebKitAPI/Tests/WebKitGLib/TestInputMethodContext.cpp:
  • TestWebKitAPI/Tests/WebKitGLib/TestOptionMenu.cpp:

(testOptionMenuSimple):
(testOptionMenuGroups):
(testOptionMenuActivate):
(testOptionMenuSelect):

  • TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp:

(testWebViewCreateNavigationData):
(testWebViewJavaScriptDialogs):
(testWebViewOpenWindowNoDefaultSize):
(testWebViewMouseTarget):
(testWebViewGeolocationPermissionRequests):
(testWebViewUserMediaEnumerateDevicesPermissionCheck):
(testWebViewUserMediaPermissionRequests):
(testWebViewAudioOnlyUserMediaPermissionRequests):
(testWebViewPointerLockPermissionRequest):
(testWebViewFileChooserRequest):
(testWebViewColorChooserRequest):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebExtensions.cpp:

(testWebExtensionInputElementIsUserEdited):
(testInstallMissingPluginsPermissionRequest):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitFindController.cpp:

(testFindControllerHide):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitPolicyClient.cpp:

(testAutoplayPolicy):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:

(testWebViewFullScreen):
(testWebViewSubmitForm):
(testWebViewSnapshot):
(testWebViewIsPlayingAudio):
(testWebViewPreferredSize):

  • TestWebKitAPI/Tests/WebKitGtk/TestContextMenu.cpp:

(testContextMenuDefaultMenu):
(testPopupEventSignal):
(testContextMenuKey):
(testContextMenuPopulateMenu):
(testContextMenuCustomMenu):
(testContextMenuSubMenu):
(testContextMenuDismissed):
(testContextMenuWebExtensionMenu):
(testContextMenuWebExtensionNode):
(testContextMenuLiveStream):
(beforeAll):

  • TestWebKitAPI/Tests/WebKitGtk/TestDOMDOMWindow.cpp:

(signalsNotifyCallback):

  • TestWebKitAPI/Tests/WebKitGtk/TestInspector.cpp:

(testInspectorDefault):
(testInspectorManualAttachDetach):
(testInspectorCustomContainerDestroyed):

  • TestWebKitAPI/Tests/WebKitGtk/TestInspectorServer.cpp:

(testInspectorServerPageList):

  • TestWebKitAPI/Tests/WebKitGtk/TestPrinting.cpp:

(testPrintCustomWidget):

  • TestWebKitAPI/Tests/WebKitGtk/TestWebViewEditor.cpp:
  • TestWebKitAPI/glib/WebKitGLib/WebViewTest.h:
  • TestWebKitAPI/glib/WebKitGLib/gtk/WebViewTestGtk.cpp:

(WebViewTest::quitMainLoopAfterProcessingPendingEvents):
(WebViewTest::showInWindow):
(WebViewTest::mouseMoveTo):
(WebViewTest::clickMouseButton):
(WebViewTest::keyStroke):

  • TestWebKitAPI/glib/WebKitGLib/wpe/WebViewTestWPE.cpp:

(WebViewTest::showInWindow):

  • TestWebKitAPI/gtk/PlatformWebViewGtk.cpp:

(TestWebKitAPI::toWebKitGLibAPI):
(TestWebKitAPI::PlatformWebView::simulateSpacebarKeyPress):
(TestWebKitAPI::PlatformWebView::simulateAltKeyPress):
(TestWebKitAPI::PlatformWebView::simulateRightClick):
(TestWebKitAPI::PlatformWebView::simulateMouseMove):

1:06 AM Changeset in webkit [264646] by Carlos Garcia Campos
  • 4 edits in trunk

[FreeType] Add support for text-underline-offset and text-decoration-thickness
https://bugs.webkit.org/show_bug.cgi?id=214550

Reviewed by Adrian Perez de Castro.

Source/WebCore:

Get the underline position and thickness from the font if it's scalable and set them in font metrics.

  • platform/graphics/freetype/SimpleFontDataFreeType.cpp:

(WebCore::scaledFontScaleFactor):
(WebCore::fontUnitsPerEm):
(WebCore::Font::platformInit):

LayoutTests:

Remove expectations for tests that are now passing.

  • platform/gtk/TestExpectations:
1:03 AM Changeset in webkit [264645] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[GTK][WPE] imported blink large gradient tests are crashing on debug builds
https://bugs.webkit.org/show_bug.cgi?id=214192

Reviewed by Žan Doberšek.

The assert is:

ASSERT(cairo_surface_status(m_surface.get()) == CAIRO_STATUS_SUCCESS);

and the status we are getting is CAIRO_STATUS_INVALID_SIZE, because we are reaching the cairo image size
limit. We should check the size before trying to create the image surface. This patch fixes the crash, but not
the tests themselves that will still fail due to the cairo limitation.

  • platform/graphics/cairo/ImageBufferCairoImageSurfaceBackend.cpp:

(WebCore::ImageBufferCairoImageSurfaceBackend::create): Return early if the image size is bigger than the
maximum allowed by cairo.

12:38 AM Changeset in webkit [264644] by Adrian Perez de Castro
  • 2 edits in trunk/Source/JavaScriptCore

Unreview non-unified source build fix

  • runtime/IntlDisplayNames.cpp: Add missing <unicode/ucurr.h> header.

Jul 20, 2020:

10:16 PM Changeset in webkit [264643] by mark.lam@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

TryGetById clobberize rules are wrong.
https://bugs.webkit.org/show_bug.cgi?id=163834
<rdar://problem/65625807>

Reviewed by Keith Miller.

Theoretically, TryGetById can do the same things GetById does i.e. reify lazy
properties, read the stack, etc. Hence, its clobberize rule should be clobberTop
just like GetById. However, in practice, we don't currently use @tryGetById to
access anything on the stack (and probably never will). But as a conservative
measure, we'll just treat TryGetById like it can. In clobberize terms, this
means we declare TryGetById as doing read(World) (just like GetById) instead of
read(Heap).

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGClobbersExitState.cpp:

(JSC::DFG::clobbersExitState):

5:53 PM Changeset in webkit [264642] by commit-queue@webkit.org
  • 3 edits
    3 adds in trunk

Revert r262776 for existing apps using UIWebView/WebView
https://bugs.webkit.org/show_bug.cgi?id=214528
<rdar://problem/65468982>

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

Source/WebCore:

r262776 removed Content-Type: application/x-www-form-urlencoded from POST requests with unspecified content type.
This matches the behavior of Chrome, Firefox, and WKWebView and is a change we want to make.
This doesn't match behavior of iOS 13 UIWebView, though, and given its state of being supported for compatibility until removed,
we are going to keep it behaving as it always has.

Updated WK1 test expectations.

  • platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:

(-[WebCoreResourceHandleAsOperationQueueDelegate connection:willSendRequest:redirectResponse:]):

LayoutTests:

  • platform/mac-wk1/http/tests/xmlhttprequest/post-blob-content-type-async-expected.txt: Added.
  • platform/mac-wk1/http/tests/xmlhttprequest/post-blob-content-type-sync-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/xhr/send-blob-with-no-mime-type-expected.txt: Added.
5:33 PM Changeset in webkit [264641] by Adrian Perez de Castro
  • 2 edits in trunk

[CMake] Do not use ${DEVELOPER_MODE} directly, as it may be undefined

Unreviewed build fix.

Instead of using ${DEVELOPER_MODE} directly, which might be undefined an cause errors, set
first ENABLE_DEVELOPER_MODE based on its value with SET_AND_EXPOSE_TO_BUILD(), and then use
the ${ENABLE_DEVELOPER_MODE} expansion in the rest of the file.

  • Source/cmake/OptionsWPE.cmake:
5:11 PM Changeset in webkit [264640] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix duplicate forward declaration introduced by merge conflict
https://bugs.webkit.org/show_bug.cgi?id=209779

  • runtime/IntlRelativeTimeFormat.h:
5:04 PM Changeset in webkit [264639] by ysuzuki@apple.com
  • 23 edits
    1 copy
    7 adds in trunk

[ECMA-402] Implement Intl.DisplayNames
https://bugs.webkit.org/show_bug.cgi?id=209779

Reviewed by Ross Kirsling.

JSTests:

  • stress/intl-displaynames.js: Added.

(shouldBe):
(shouldThrow):
(vm.icuVersion):

  • stress/intl-parse-unicode-subtags.js: Added.

(shouldBe):
(shouldThrow):
(vm.icuVersion):

  • test262/config.yaml:

Source/JavaScriptCore:

This patch implements Intl.DisplayNames behind useIntlDisplayNames=1 flag.
Intl.DisplayNames can offer readable "display-name" for ICU language, script, region, currency codes.
For example, it can offer "United States" string for "US" region code.
We use ICU ULocaleDisplayNames to implement it, except for currency since ULocaleDisplayNames is not supporting
currency correctly: it ignores "long", "short", and "narrow" style configurations. We need to call ucurr_getName
directly.

This patch appropriately adds unicode-language-id parsing in IntlLocale.cpp so that we can validate language id
when it is passed to Intl.DisplayNames#of as defined in the spec.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • runtime/CommonIdentifiers.h:
  • runtime/IntlDisplayNames.cpp: Added.

(JSC::IntlDisplayNames::create):
(JSC::IntlDisplayNames::createStructure):
(JSC::IntlDisplayNames::IntlDisplayNames):
(JSC::IntlDisplayNames::finishCreation):
(JSC::IntlDisplayNames::initializeDisplayNames):
(JSC::IntlDisplayNames::of const):
(JSC::IntlDisplayNames::resolvedOptions const):
(JSC::IntlDisplayNames::styleString):
(JSC::IntlDisplayNames::typeString):
(JSC::IntlDisplayNames::fallbackString):

  • runtime/IntlDisplayNames.h: Copied from Source/JavaScriptCore/runtime/IntlRelativeTimeFormat.h.
  • runtime/IntlDisplayNamesConstructor.cpp: Added.

(JSC::IntlDisplayNamesConstructor::create):
(JSC::IntlDisplayNamesConstructor::createStructure):
(JSC::IntlDisplayNamesConstructor::IntlDisplayNamesConstructor):
(JSC::IntlDisplayNamesConstructor::finishCreation):
(JSC::constructIntlDisplayNames):
(JSC::callIntlDisplayNames):
(JSC::IntlDisplayNamesConstructorSupportedLocalesOf):

  • runtime/IntlDisplayNamesConstructor.h: Added.
  • runtime/IntlDisplayNamesPrototype.cpp: Added.

(JSC::IntlDisplayNamesPrototype::create):
(JSC::IntlDisplayNamesPrototype::createStructure):
(JSC::IntlDisplayNamesPrototype::IntlDisplayNamesPrototype):
(JSC::IntlDisplayNamesPrototype::finishCreation):
(JSC::IntlDisplayNamesPrototypeFuncOf):
(JSC::IntlDisplayNamesPrototypeFuncResolvedOptions):

  • runtime/IntlDisplayNamesPrototype.h: Added.
  • runtime/IntlLocale.cpp:

(JSC::isUnicodeLanguageSubtag): Deleted.
(JSC::isUnicodeScriptSubtag): Deleted.
(JSC::isUnicodeRegionSubtag): Deleted.

  • runtime/IntlNumberFormat.cpp:

(JSC::IntlNumberFormat::initializeNumberFormat):

  • runtime/IntlObject.cpp:

(JSC::createDisplayNamesConstructor):
(JSC::IntlObject::finishCreation):
(JSC::isUnicodeLanguageSubtag):
(JSC::isUnicodeScriptSubtag):
(JSC::isUnicodeRegionSubtag):
(JSC::isUnicodeVariantSubtag):
(JSC::isUnicodeLanguageId):
(JSC::isWellFormedCurrencyCode):

  • runtime/IntlObject.h:

(JSC::intlDisplayNamesAvailableLocales):

  • runtime/IntlRelativeTimeFormat.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::displayNamesStructure):

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

(JSC::VM::VM):

  • runtime/VM.h:

Source/WTF:

  • wtf/text/StringView.h:
4:54 PM Changeset in webkit [264638] by Peng Liu
  • 4 edits in trunk/Source/WebCore

An airplaying video can enter picture-in-picture
https://bugs.webkit.org/show_bug.cgi?id=214556

Reviewed by Eric Carlson.

WebAVPlayerController replaces the AVPlayerController used by AVKit. Its property
"pictureInPicturePossible" will always be YES after VideoFullscreenInterfaceAVKit::doSetup()
sets it, even after the video enters picture-in-picture.

This patch fixes the issue by checking whether the video is airplaying (isExternalPlaybackActive)
in -[WebAVPlayerController isPictureInPicturePossible].

AVPlayerController has the logic to change the property "pictureInPicturePossible" to NO
after a video enters picture-in-picture, but we cannot use AVPlayerController's value of
"pictureInPicturePossible" as the property value of WebAVPlayerController. Because the value of
"-[AVPlayerController isPictureInPicturePossible]" depends on the value of
"[[AVAudioSession sharedInstance] isPiPAvailable]", which is always NO in the UI process.
(AVAudioSession related code is in the web process).

  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(VideoFullscreenInterfaceAVKit::doSetup):

  • platform/ios/WebAVPlayerController.h:
  • platform/ios/WebAVPlayerController.mm:

(-[WebAVPlayerController setAllowsPictureInPicture:]):
(-[WebAVPlayerController isPictureInPicturePossible]):

4:48 PM Changeset in webkit [264637] by Megan Gardner
  • 5 edits in trunk/Source

Add OK button to Date/Time form controls.
https://bugs.webkit.org/show_bug.cgi?id=214195
Source/WebCore:

Reviewed by Darin Adler.

  • en.lproj/Localizable.strings:

Source/WebKit:

<rdar://problem/65006000>

Reviewed by Darin Adler.

Add 'OK' button to add clarity to UI, and increase the default size of the control to
ensure space for both buttons. Also fixed a crash that happened when closing the control before
the animation completed.

  • UIProcess/ios/forms/WKDateTimeInputControl.mm:

(-[WKDateTimeContextMenuViewController preferredContentSize]):
(-[WKDateTimePicker contextMenuInteraction:configurationForMenuAtLocation:]):
(-[WKDateTimePicker contextMenuInteraction:willDisplayMenuForConfiguration:animator:]):
(-[WKDateTimePicker contextMenuInteraction:willEndForConfiguration:animator:]):
(-[WKDateTimePicker ok:]):

4:43 PM Changeset in webkit [264636] by Alan Coon
  • 8 edits in trunk/Source

Versioning.

WebKit-610.1.24

4:36 PM Changeset in webkit [264635] by ggaren@apple.com
  • 8 edits in trunk/Source

REGRESSION (r264242): [ macOS ] imported/w3c/web-platform-tests/wasm/jsapi/constructor/instantiate.any.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=214572

Unreviewed, reverting r264242.

Source/JavaScriptCore:

  • runtime/JSRunLoopTimer.cpp:

(JSC::epochTime):
(JSC::JSRunLoopTimer::Manager::timerDidFireCallback):
(JSC::JSRunLoopTimer::Manager::PerVMData::setRunLoop):
(JSC::JSRunLoopTimer::Manager::PerVMData::PerVMData):
(JSC::JSRunLoopTimer::Manager::PerVMData::~PerVMData):
(JSC::JSRunLoopTimer::Manager::timerDidFire):
(JSC::JSRunLoopTimer::Manager::registerVM):
(JSC::JSRunLoopTimer::Manager::scheduleTimer):
(JSC::JSRunLoopTimer::Manager::cancelTimer):
(JSC::JSRunLoopTimer::Manager::didChangeRunLoop):

  • runtime/JSRunLoopTimer.h:

(JSC::JSRunLoopTimer::Manager::PerVMData::PerVMData):

  • runtime/PromiseTimer.cpp:

(JSC::PromiseTimer::doWork):
(JSC::PromiseTimer::runRunLoop):

  • runtime/VM.cpp:

(JSC::VM::VM):
(JSC::VM::create):
(JSC::VM::tryCreate):
(JSC::VM::setRunLoop):

  • runtime/VM.h:

(JSC::VM::runLoop const):

Source/WebCore:

  • bindings/js/CommonVM.cpp:

(WebCore::commonVMSlow):

4:32 PM Changeset in webkit [264634] by keith_miller@apple.com
  • 5 edits in trunk/LayoutTests

Reduce number of iterations for weakref tests
https://bugs.webkit.org/show_bug.cgi?id=214567

Reviewed by Mark Lam.

These tests seem to time out on the watch series 3 simulator. Let's reduce the number of
iterations and see if it impacts the flakiness of the test.

  • js/script-tests/weakref-async-is-collected.js:

(turnEventLoop):

  • js/script-tests/weakref-eventually-collects-values.js:

(turnEventLoop):

  • js/script-tests/weakref-microtasks-dont-collect.js:

(turnEventLoop):

  • js/script-tests/weakref-weakset-consistency.js:

(turnEventLoop):

4:28 PM Changeset in webkit [264633] by Ross Kirsling
  • 4 edits in trunk

[JSC] eval?.() should be indirect eval
https://bugs.webkit.org/show_bug.cgi?id=214568

Reviewed by Keith Miller.

JSTests:

  • test262/expectations.yaml:

Mark two test cases as passing.

Source/JavaScriptCore:

eval?.() is specified as indirect eval, but (virtually) all implementations assumed it should be direct eval.
I raised this topic in today's TC39 meeting and we've decided to keep the spec as it is.

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::makeFunctionCallNode):
Don't use EvalFunctionCallNode for optional call of eval.

4:27 PM Changeset in webkit [264632] by Alan Coon
  • 8 edits in branches/safari-610.1.23-branch/Source

Versioning.

WebKit-610.1.23

4:24 PM Changeset in webkit [264631] by keith_miller@apple.com
  • 2 edits in trunk/JSTests

Turn on FinalizationRegistry test262 tests
https://bugs.webkit.org/show_bug.cgi?id=214576

Reviewed by Ross Kirsling.

  • test262/config.yaml:
4:18 PM Changeset in webkit [264630] by Adrian Perez de Castro
  • 14 edits
    1 add in trunk/Source

Non unified build fixes, midsummer 2020 edition
https://bugs.webkit.org/show_bug.cgi?id=213616

Unreviewed build fix.

Source/JavaScriptCore:

  • b3/air/AirTmpInlines.h:

(JSC::B3::Air::TmpWidth::widths): Moved from AirTmpWidth.h

  • b3/air/AirTmpWidth.cpp: Included AirTmpInlines.h
  • b3/air/AirTmpWidth.h: TmpWidth::widths() moved out from here.
  • runtime/ExceptionFuzz.cpp: Add missing inclusion of JSCJSValueInlines.h
  • runtime/StructureIDTable.cpp: Add missing inclusions of wtf/DataLog.h

and wtf/RawPointer.h

  • runtime/VMTraps.cpp: Ditto.

Source/WebCore:

No new tests needed.

  • inspector/InspectorInstrumentationWebKit.h: Forward-declare ResourceLoader class.

Source/WebKit:

  • NetworkProcess/soup/WebSocketTaskSoup.cpp: Add missing inclusion of NetworkProcess.h

Source/WTF:

  • wtf/text/StringParsingBuffer.h: Add missing inclusion of wtf/text/StringView.h,

and removed other now-unneeded header inclusions.

4:15 PM Changeset in webkit [264629] by Alan Coon
  • 1 copy in branches/safari-610.1.23-branch

New branch.

3:57 PM Changeset in webkit [264628] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[ Release Mac wk2 ] svg/animations/smil-leak-list-property-instances.svg is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214574

Unreviewed test gardening.

Patch by Hector Lopez <Hector Lopez> on 2020-07-20

  • platform/mac-wk2/TestExpectations:
3:53 PM Changeset in webkit [264627] by wenson_hsieh@apple.com
  • 10 edits
    2 adds in trunk

REGRESSION (r261874): Typing near the bottom of a scrollable document causes the scroll position to jump
https://bugs.webkit.org/show_bug.cgi?id=214426
<rdar://problem/65302701>

Reviewed by Simon Fraser.

Source/WebCore:

After the changes in r261874, any content size changes that trigger FrameView::adjustViewSize cause the scroll
position to be clamped to its minimum and maximum limits after the next layout pass. In the context of edit
commands, this means that the scroll position may jump erratically, since many edit commands can temporarily
leave the DOM in a state where the content size is unstable.

For example, in the test case below, deleting the only character in a div element on its own line first involves
emptying the text node underneath the div (causing it to have no height), before inserting a BR element in its
place (which restores a nonzero height). After the text node is emptied (but before we insert the BR element),
the content size of view changes due to a layout update while creating visible positions (under
VisiblePosition::canonicalPosition). If we happen to be scrolled all the way to the bottom of the main frame,
this means we'll scroll up, due to the maximum scroll position temporarily decreasing. A similar effect happens
when inserting the first character on a line, wherein the div is empty after BR element is removed but before it
is replaced with a text node.

To mitigate this, introduce a mechanism to temporarily avoid updating the scroll position, and use it when
executing edit commands. See below for more details.

Test: editing/execCommand/typing-should-not-trigger-scrolling-when-selection-is-visible.html

  • editing/CompositeEditCommand.cpp:

(WebCore::EditCommandComposition::unapply):
(WebCore::EditCommandComposition::reapply):
(WebCore::CompositeEditCommand::apply):

  • editing/Editor.cpp:

(WebCore::Editor::willApplyEditing const):
(WebCore::Editor::appliedEditing):

Add logic to specifically handle typing commands here, since we handle typing commands by adding them to the
latest "open" typing command, rather than go through the more standard codepaths in EditCommandComposition
above.

  • editing/Editor.h:
  • page/FrameView.cpp:

(WebCore::FrameView::reset):
(WebCore::FrameView::topContentDirectionDidChange):
(WebCore::FrameView::handleDeferredScrollbarsUpdate):
(WebCore::FrameView::handleDeferredPositionScrollbarLayers):

Split existing logic for handling deferred scrollbar updates and deferred calls to positionScrollbarLayers
into two separate methods, with separate boolean flags. topContentDirectionDidChange sets both of these flags
(which preserves existing behavior), while decrementProhibitsScrollingWhenChangingContentSizeCount just
requests a scrollbar update.

(WebCore::FrameView::didLayout):
(WebCore::FrameView::didFinishProhibitingScrollingWhenChangingContentSize):

After decrementing m_prohibitsScrollingWhenChangingContentSizeCount back to zero, ensure that the scroll
position ultimately remains clamped to the minimum and maximum values by either immediately calling
updateScrollbars with the current scroll position if layout and style are up to date, or by scheduling a
deferred scrollbar update if that is not the case.

(WebCore::FrameView::handleDeferredScrollbarsUpdateAfterDirectionChange): Deleted.

Rename this to just handleDeferredScrollbarsUpdate.

  • page/FrameView.h:
  • platform/ScrollView.cpp:

(WebCore::ScrollView::setContentsSize):
(WebCore::ScrollView::prohibitScrollingWhenChangingContentSizeForScope):
(WebCore::ScrollView::ProhibitScrollingWhenChangingContentSizeForScope::ProhibitScrollingWhenChangingContentSizeForScope):
(WebCore::ScrollView::ProhibitScrollingWhenChangingContentSizeForScope::~ProhibitScrollingWhenChangingContentSizeForScope):

Introduce a new token object, ProhibitScrollingWhenChangingContentSizeForScope, which increments a count on
ScrollView when created and decrements the count when destroyed. While this counter is greater than zero, we
will avoid scrolling as a result of changing content size.

  • platform/ScrollView.h:

(WebCore::ScrollView::incrementProhibitsScrollingWhenChangingContentSizeCount):
(WebCore::ScrollView::decrementProhibitsScrollingWhenChangingContentSizeCount):

LayoutTests:

Add a test to verify that the scroll position doesn't change when deleting and then reinserting the only
character on a line (i.e. div element) in a contenteditable element. This test also verifies that deleting
lines in a way that decreases the height of the document still clamps the scroll position by scrolling up.

  • editing/execCommand/typing-should-not-trigger-scrolling-when-selection-is-visible-expected.txt: Added.
  • editing/execCommand/typing-should-not-trigger-scrolling-when-selection-is-visible.html: Added.
  • platform/mac-wk1/TestExpectations:

Mark the test as failing in WebKit1 for now, which will require some additional work.

3:38 PM Changeset in webkit [264626] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] Use -q while unzipping layout-test-results.zip
https://bugs.webkit.org/show_bug.cgi?id=214571

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:
  • BuildSlaveSupport/ews-build/steps_unittest.py:
3:34 PM Changeset in webkit [264625] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[ iOS ] css3/blending/blend-mode-clip-accelerated-blending-canvas.html is passing and expectations need to be removed
https://bugs.webkit.org/show_bug.cgi?id=214570

Unreviewed test gardening.

Patch by Hector Lopez <Hector Lopez> on 2020-07-20

  • platform/ios/TestExpectations:
3:20 PM Changeset in webkit [264624] by Brian Burg
  • 2 edits in trunk/Source/WebKit

Web Inspector: developerExtrasEnabled should be respected when opening local Web Inspector
https://bugs.webkit.org/show_bug.cgi?id=214573
<rdar://problem/65848496>

Reviewed by David Kilzer.

Ensure that WKPreferences.developerExtrasEnabled is true prior to opening a Web Inspector
window. This matches the check in WebCore when deciding to show "Inspect Element" menu item.

  • UIProcess/Inspector/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::connect):
(WebKit::WebInspectorProxy::openLocalInspectorFrontend):

3:16 PM Changeset in webkit [264623] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebKit

[WPE] WebPopupItem should always be forward declared as struct
https://bugs.webkit.org/show_bug.cgi?id=214569

Unreviewed build fix.

No new tests needed.

  • UIProcess/API/wpe/WebKitWebViewClient.h: Forward-declare WebPopupItem as a struct.
3:12 PM Changeset in webkit [264622] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

CSS clip-path is applied to the <svg> root element in the view-box coordinates
https://bugs.webkit.org/show_bug.cgi?id=214418

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-07-20
Reviewed by Darin Adler.

Source/WebCore:

We need to transfer the bounding box of the SVG element renderer from the
SVG coordinates system to the CSS coordinates before calculating the clip
path. Then we need to transfer the clip path back to the SVG coordinates
before applying it to the GraphicsContext. The GraphicsContext is already
transformed by the localToPrentTransform.

Test: svg/in-html/svg-view-box-css-clip-path.html

  • rendering/svg/SVGRenderSupport.cpp:

(WebCore::SVGRenderSupport::clipContextToCSSClippingArea):

LayoutTests:

  • svg/in-html/svg-view-box-css-clip-path-expected.html: Added.
  • svg/in-html/svg-view-box-css-clip-path.html: Added.
3:01 PM Changeset in webkit [264621] by keith_miller@apple.com
  • 67 edits
    6 copies
    2 moves
    22 adds
    1 delete in trunk

[JSC] update test262 (July 2020 edition)
https://bugs.webkit.org/show_bug.cgi?id=214575

Reviewed by Ross Kirsling.

JSTests:

  • test262/expectations.yaml:
  • test262/harness/atomicsHelper.js:
  • test262/harness/testIntl.js:

(testWithIntlConstructors):

  • test262/latest-changes-summary.txt:
  • test262/test/built-ins/Array/prototype/concat/S15.4.4.4_A3_T2.js:
  • test262/test/built-ins/Array/prototype/concat/S15.4.4.4_A3_T3.js:
  • test262/test/built-ins/Atomics/exchange/nonshared-int-views.js:

(testWithTypedArrayConstructors): Deleted.

  • test262/test/built-ins/Atomics/waitAsync/bigint/negative-index-throws.js:
  • test262/test/built-ins/Atomics/waitAsync/bigint/out-of-range-index-throws.js:
  • test262/test/built-ins/Atomics/waitAsync/bigint/poisoned-object-for-timeout-throws-agent.js:

(262.agent.receiveBroadcast):
(1n.then.async agentCount):

  • test262/test/built-ins/Atomics/waitAsync/bigint/poisoned-object-for-timeout-throws.js:
  • test262/test/built-ins/Atomics/waitAsync/bigint/symbol-for-timeout-throws-agent.js:

(1n.then.async agentCount):

  • test262/test/built-ins/Atomics/waitAsync/negative-index-throws.js:
  • test262/test/built-ins/Atomics/waitAsync/null-for-timeout.js:
  • test262/test/built-ins/Atomics/waitAsync/out-of-range-index-throws.js:
  • test262/test/built-ins/Atomics/waitAsync/poisoned-object-for-timeout-throws-agent.js:

(262.agent.receiveBroadcast):
(1.then.async agentCount):

  • test262/test/built-ins/Atomics/waitAsync/poisoned-object-for-timeout-throws.js:
  • test262/test/built-ins/Atomics/waitAsync/returns-result-object-value-is-promise-resolves-to-ok.js:
  • test262/test/built-ins/Atomics/waitAsync/returns-result-object-value-is-promise-resolves-to-timed-out.js:
  • test262/test/built-ins/Atomics/waitAsync/returns-result-object-value-is-string-not-equal.js:
  • test262/test/built-ins/Atomics/waitAsync/returns-result-object-value-is-string-timed-out.js:
  • test262/test/built-ins/Atomics/waitAsync/symbol-for-index-throws.js:
  • test262/test/built-ins/Atomics/waitAsync/symbol-for-timeout-throws-agent.js:

(1.then.async agentCount):

  • test262/test/built-ins/Atomics/waitAsync/validate-arraytype-before-index-coercion.js:
  • test262/test/built-ins/Atomics/waitAsync/validate-arraytype-before-timeout-coercion.js:
  • test262/test/built-ins/Atomics/waitAsync/validate-arraytype-before-value-coercion.js:
  • test262/test/built-ins/JSON/stringify/replacer-array-proxy.js:
  • test262/test/built-ins/Promise/allSettled/resolve-from-same-thenable.js:
  • test262/test/built-ins/Promise/any/iter-returns-true-reject.js:
  • test262/test/built-ins/Promise/any/iter-returns-undefined-reject.js:
  • test262/test/built-ins/Promise/prototype/finally/resolved-observable-then-calls.js:

(then):

  • test262/test/built-ins/Promise/prototype/finally/species-constructor.js:

(then):

  • test262/test/built-ins/Promise/prototype/finally/species-symbol.js: Removed.
  • test262/test/built-ins/Promise/prototype/finally/subclass-reject-count.js:

(FooPromise.reject.finally):
(then.ERROR.catch): Deleted.

  • test262/test/built-ins/Promise/prototype/finally/subclass-resolve-count.js:

(then):

  • test262/test/intl402/DateTimeFormat/constructor-options-fractionalSecondDigits-valid.js:

(toString):
(valueOf): Deleted.

  • test262/test/intl402/DateTimeFormat/prototype/format/fractionalSecondDigits.js:
  • test262/test/intl402/DateTimeFormat/prototype/formatRange/date-undefined-throws.js:
  • test262/test/intl402/DateTimeFormat/prototype/formatRange/fractionalSecondDigits.js:
  • test262/test/intl402/DateTimeFormat/prototype/formatRangeToParts/date-undefined-throws.js:
  • test262/test/intl402/DateTimeFormat/prototype/formatRangeToParts/fractionalSecondDigits.js:
  • test262/test/intl402/DateTimeFormat/prototype/formatToParts/fractionalSecondDigits.js:
  • test262/test/intl402/DisplayNames/ctor-custom-prototype.js:
  • test262/test/intl402/DisplayNames/ctor-default-prototype.js:
  • test262/test/intl402/DisplayNames/instance-extensible.js:
  • test262/test/intl402/DisplayNames/locales-symbol-length.js:
  • test262/test/intl402/DisplayNames/options-fallback-abrupt-throws.js:
  • test262/test/intl402/DisplayNames/options-fallback-invalid-throws.js:
  • test262/test/intl402/DisplayNames/options-fallback-toString-abrupt-throws.js:

(fallback.toString):
(fallback.valueOf):
(fallback.Symbol.toPrimitive):
(options.fallback.toString): Deleted.
(options.fallback.valueOf): Deleted.
(options.fallback.Symbol.toPrimitive): Deleted.

  • test262/test/intl402/DisplayNames/options-fallback-valid.js:
  • test262/test/intl402/DisplayNames/options-localeMatcher-valid.js:
  • test262/test/intl402/DisplayNames/options-random-properties-unchecked.js:
  • test262/test/intl402/DisplayNames/options-style-valid.js:
  • test262/test/intl402/DisplayNames/options-type-invalid-throws.js:
  • test262/test/intl402/DisplayNames/options-type-valid.js:
  • test262/test/intl402/DisplayNames/proto-from-ctor-realm.js:
  • test262/test/intl402/DisplayNames/prototype/resolvedOptions/default-option-values.js:
  • test262/test/intl402/DisplayNames/prototype/resolvedOptions/option-fallback.js:
  • test262/test/intl402/DisplayNames/prototype/resolvedOptions/option-style.js:
  • test262/test/intl402/DisplayNames/prototype/resolvedOptions/return-object.js:
  • test262/test/language/computed-property-names/class/static/method-number.js:
  • test262/test/language/computed-property-names/class/static/method-string.js:
  • test262/test/language/computed-property-names/class/static/method-symbol.js:
  • test262/test/language/expressions/optional-chaining/early-errors-tail-position-template-string-esi.js: Removed.
  • test262/test/language/expressions/optional-chaining/early-errors-tail-position-template-string.js: Removed.
  • test262/test/language/expressions/optional-chaining/eval-optional-call.js:

(fn):

  • test262/test262-Revision.txt:

Tools:

test262 is now using 'main' as the default branch. Fix our import script to reflect that.

  • Scripts/test262/Import.pm:

(processCLI):

2:52 PM Changeset in webkit [264620] by commit-queue@webkit.org
  • 11 edits in trunk

Fixes to match BaseAudioContext.idl to spec
https://bugs.webkit.org/show_bug.cgi?id=214487

Patch by Clark Wang <clark_wang@apple.com> on 2020-07-20
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Re-baselined existing tests that now pass.

  • web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/delaynode-maxdelaylimit-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/pannernode-basic-expected.txt:

Source/WebCore:

Removed unrestricted keyword from certain attributes and parameters in BaseAudioContext.
Changed createPanner to call new PannerNode constructor, removed old PannerNode constructor.

Re-baselined existing tests that now pass.

  • Modules/webaudio/BaseAudioContext.cpp:

(WebCore::BaseAudioContext::createPanner):

  • Modules/webaudio/BaseAudioContext.idl:
  • Modules/webaudio/PannerNode.cpp:
  • Modules/webaudio/PannerNode.h:

LayoutTests:

Changed test for default panningModel to equalpower to match spec, Chrome and Firefox.

  • webaudio/pannernode-basic-expected.txt:
  • webaudio/pannernode-basic.html:
2:32 PM Changeset in webkit [264619] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Unreviewed test gardening, skip flaky test webgl/2.0.0/conformance2/state/gl-object-get-calls.html.

  • platform/mac-wk1/TestExpectations:
  • platform/mac/TestExpectations:
2:24 PM Changeset in webkit [264618] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[jhbuild] GStreamer broken in minimal environment
https://bugs.webkit.org/show_bug.cgi?id=214552

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

  • jhbuild/jhbuildrc_common.py:

(init): Don't set GST_PLUGIN_SYSTEM_PATH when using the minimal moduleset, because in this
case we actually have to rely on the host GStreamer installation. GStreamer is not part of
the minimal moduleset.

2:03 PM Changeset in webkit [264617] by keith_miller@apple.com
  • 32 edits
    2 copies
    2 moves
    25 adds in trunk

Add support for FinalizationRegistries
https://bugs.webkit.org/show_bug.cgi?id=199888

Reviewed by Yusuke Suzuki.

JSTests:

Shamelessly copy v8's tests and refactor them to work with conservative GC.

  • stress/resources/v8-mjsunit.js: Added.

(MjsUnitAssertionError):
(MjsUnitAssertionError.prototype.toString):
(catch):
(classOf):
(ValueOf):
(prettyPrinted):
(prettyPrintedArrayElement):
(failWithMessage):
(formatFailureText):
(fail):
(deepObjectEquals):
(deepEquals):
(assertSame):
(assertNotSame):
(assertEquals):
(assertNotEquals):
(assertEqualsDelta):
(assertArrayEquals):
(assertPropertiesEqual):
(assertToStringEquals):
(assertTrue):
(assertFalse):
(assertNull):
(assertNotNull):
(executeCode):
(checkException):
(assertThrows):
(assertThrowsEquals):
(assertThrowsAsync):
(assertInstanceof):
(assertDoesNotThrow):
(assertUnreachable):
(assertContains):
(assertMatches):
(concatenateErrors):
(assertPromiseResult):
(OptimizationStatus):
(assertUnoptimized):
(assertOptimized):
(isNeverOptimizeLiteMode):
(isNeverOptimize):
(isAlwaysOptimize):
(isInterpreted):
(isOptimized):
(isTurboFanned):
(MjsUnitAssertionError.prepareStackTrace):

  • stress/v8-cleanup-from-different-realm.js: Added.

(let.timeout_func):

  • stress/v8-cleanup-proxy-from-different-realm.js: Added.

(let.timeout_func):

  • stress/v8-finalization-registry-basics.js: Added.

(TestConstructFinalizationRegistry):
(TestFinalizationRegistryConstructorCallAsFunction):
(TestConstructFinalizationRegistryCleanupNotCallable):
(TestConstructFinalizationRegistryWithNonCallableProxyAsCleanup):
(TestRegisterTargetAndHoldingsSameValue):
(TestRegisterWithoutFinalizationRegistry):
(TestUnregisterWithNonExistentKey):
(TestUnregisterWithNonFinalizationRegistry):
(TestWeakRefConstructorWithNonObject):
(TestWeakRefWithProxy):

  • stress/v8-finalizationregistry-and-weakref.js: Added.

(let.cleanup):
(setTimeout):

  • stress/v8-finalizationregistry-keeps-holdings-alive.js: Added.

(let.cleanup):
(let.timeout_func):

  • stress/v8-finalizationregistry-scheduled-for-cleanup-multiple-times.js: Added.

(let.cleanup0):
(let.cleanup1):
(let.timeout_func):

  • stress/v8-multiple-dirty-finalization-registries.js: Added.

(let.cleanup):
(let.timeout_func):

  • stress/v8-reentrant-gc-from-cleanup.js: Added.

(let.reentrant_gc):
(setTimeout):

  • stress/v8-stress-finalizationregistry-dirty-enqueue.js: Added.

(i.registries.push.new.FinalizationRegistry):
(registries.forEach):

  • stress/v8-undefined-holdings.js: Added.

(let.cleanup):
(let.timeout_func):

  • stress/v8-unregister-after-cleanup.js: Added.

(let.cleanup):
(let.timeout_func):

  • stress/v8-unregister-before-cleanup.js: Added.

(let.cleanup):
(let.timeout_func):

  • stress/v8-unregister-called-twice.js: Added.

(let.cleanup):
(let.timeout_func):

  • stress/v8-unregister-inside-cleanup2.js: Added.

(let.cleanup):
(let.timeout_func):

  • stress/v8-unregister-inside-cleanup3.js: Added.

(let.cleanup):
(let.timeout_func):

  • stress/v8-unregister-many.js: Added.

(let.cleanup):
(let.timeout_func):

  • stress/v8-weak-unregistertoken.js: Added.

(FR.new.FinalizationRegistry):
(tryAgain):

Source/JavaScriptCore:

This patch adds support for FinalizationRegistries. There are two
main parts to this patch, the first is refactoring PromiseTimer a
more general into DeferredWorkTimer. This allows us to finally
have a "real" setTimeout on the jsc command line. The second part
is adding all the new classes needed for FinalizationRegistries.

The refactoring is mostly a rename but does two main new
things. The first is that it now notifies the VM we have finished
a synchronuous JS execution, so that WeakRefs can be
collected. The second is that it now catches any exceptions and
forwards the to a new method on the global object method
table. For WebCore, this reports the exception to the console. For
API users, this calls their exceptionHandler block. For the CLI,
it exits with exit status 3 (our general exception exit
status). Unfortunately, there's not currently an ergonomic way to
pass the expected exception from the CLI arguments to this handler
so that's not supported here.

In order to support FinalizationRegistry this patch adds a "new"
class JSDestructibleInternalFieldObjectImpl, which allows us to
have a destructible object with internal fields. Since the order
of collection doesn't matter we currently use C++ HashTables on
the FinalizationRegistry. Since users can unregister objects while
the callback is pending we have a hash table for the live entries
and a second hash table for the dead ones. Lastly, because users
are not requred to provide a token for unregistration we have two
extra Vectors containing the live/dead objects that are not
unregisterible.

  • API/JSAPIGlobalObject.cpp:
  • API/JSAPIGlobalObject.mm:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • heap/Heap.cpp:

(JSC::Heap::finalizeUnconditionalFinalizers):

  • jsc.cpp:

(functionSetTimeout):
(functionFinalizationRegistryLiveCount):
(functionFinalizationRegistryDeadCount):
(main):
(checkUncaughtException):
(checkException):
(GlobalObject::reportUncaughtExceptionAtEventLoop):
(runJSC):

  • runtime/ArrayIteratorPrototype.cpp:
  • runtime/CommonIdentifiers.h:
  • runtime/DeferredWorkTimer.cpp: Renamed from Source/JavaScriptCore/runtime/PromiseTimer.cpp.

(JSC::DeferredWorkTimer::DeferredWorkTimer):
(JSC::DeferredWorkTimer::doWork):
(JSC::DeferredWorkTimer::runRunLoop):
(JSC::DeferredWorkTimer::addPendingWork):
(JSC::DeferredWorkTimer::hasPendingWork):
(JSC::DeferredWorkTimer::hasDependancyInPendingWork):
(JSC::DeferredWorkTimer::cancelPendingWork):
(JSC::DeferredWorkTimer::scheduleWorkSoon):

  • runtime/DeferredWorkTimer.h: Renamed from Source/JavaScriptCore/runtime/PromiseTimer.h.
  • runtime/FinalizationRegistryConstructor.cpp: Added.

(JSC::FinalizationRegistryConstructor::finishCreation):
(JSC::FinalizationRegistryConstructor::FinalizationRegistryConstructor):
(JSC::callFinalizationRegistry):
(JSC::constructFinalizationRegistry):

  • runtime/FinalizationRegistryConstructor.h: Copied from Source/JavaScriptCore/API/JSAPIGlobalObject.cpp.
  • runtime/FinalizationRegistryPrototype.cpp: Added.

(JSC::FinalizationRegistryPrototype::finishCreation):
(JSC::getFinalizationRegistry):
(JSC::protoFuncFinalizationRegistryRegister):
(JSC::protoFuncFinalizationRegistryUnregister):

  • runtime/FinalizationRegistryPrototype.h: Copied from Source/JavaScriptCore/API/JSAPIGlobalObject.cpp.
  • runtime/IdentifierInlines.h:

(JSC::Identifier::Identifier):

  • runtime/JSFinalizationRegistry.cpp: Added.

(JSC::JSFinalizationRegistry::createStructure):
(JSC::JSFinalizationRegistry::create):
(JSC::JSFinalizationRegistry::finishCreation):
(JSC::JSFinalizationRegistry::visitChildren):
(JSC::JSFinalizationRegistry::destroy):
(JSC::JSFinalizationRegistry::finalizeUnconditionally):
(JSC::JSFinalizationRegistry::runFinalizationCleanup):
(JSC::JSFinalizationRegistry::takeDeadHoldingsValue):
(JSC::JSFinalizationRegistry::registerTarget):
(JSC::JSFinalizationRegistry::unregister):
(JSC::JSFinalizationRegistry::liveCount):
(JSC::JSFinalizationRegistry::deadCount):
(JSC::JSFinalizationRegistry::toStringName):

  • runtime/JSFinalizationRegistry.h: Added.
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::reportUncaughtExceptionAtEventLoop):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::stackOverflowFrameCallee const):
(JSC::JSGlobalObject::arrayIteratorProtocolWatchpointSet):
(JSC::JSGlobalObject::mapIteratorProtocolWatchpointSet):
(JSC::JSGlobalObject::setIteratorProtocolWatchpointSet):
(JSC::JSGlobalObject::stringIteratorProtocolWatchpointSet):
(JSC::JSGlobalObject::mapSetWatchpointSet):
(JSC::JSGlobalObject::setAddWatchpointSet):
(JSC::JSGlobalObject::arraySpeciesWatchpointSet):
(JSC::JSGlobalObject::arrayJoinWatchpointSet):
(JSC::JSGlobalObject::numberToStringWatchpointSet):

  • runtime/JSInternalFieldObjectImpl.h:
  • runtime/JSInternalFieldObjectImplInlines.h:

(JSC::Base>::visitChildren):
(JSC::JSInternalFieldObjectImpl<passedNumberOfInternalFields>::visitChildren): Deleted.

  • runtime/JSPromise.cpp:

(JSC::JSPromise::resolve):
(JSC::JSPromise::reject):

  • runtime/StructureIDTable.cpp:

(JSC::StructureIDTable::allocateID):
(JSC::StructureIDTable::deallocateID):

  • runtime/VM.cpp:

(JSC::VM::VM):
(JSC::VM::~VM):

  • runtime/VM.h:
  • wasm/js/JSWebAssembly.cpp:

(JSC::webAssemblyModuleValidateAsyncInternal):
(JSC::instantiate):
(JSC::compileAndInstantiate):
(JSC::webAssemblyModuleInstantinateAsyncInternal):
(JSC::webAssemblyCompileStreamingInternal):
(JSC::webAssemblyInstantiateStreamingInternal):

  • wasm/js/JSWebAssemblyCodeBlock.h:

Source/WebCore:

Refactor things for changing PromiseDeferredTimer to DeferredWorkTimer.

Also, add globalObject hook for reporting uncaught exceptions from JSC's
runloop callbacks.

  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSDOMGlobalObject::reportUncaughtExceptionAtEventLoop):

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

(WebCore::JSDOMWindowBase::compileStreaming):
(WebCore::JSDOMWindowBase::instantiateStreaming):

  • bindings/js/JSWorkerGlobalScopeBase.cpp:
  • bindings/js/JSWorkletGlobalScopeBase.cpp:
  • bindings/js/WorkerScriptController.cpp:

(WebCore::WorkerScriptController::addTimerSetNotification):
(WebCore::WorkerScriptController::removeTimerSetNotification):

  • workers/WorkerRunLoop.cpp:
  • worklets/WorkletScriptController.cpp:

LayoutTests:

  • js/script-tests/weakref-finalizationregistry.js: Added.

(makeWeakRef):
(turnEventLoop):
(async test):

  • js/weakref-finalizationregistry-expected.txt: Added.
  • js/weakref-finalizationregistry.html: Added.
1:19 PM Changeset in webkit [264616] by commit-queue@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

JSC build scripts should be quiet by default
https://bugs.webkit.org/show_bug.cgi?id=214535

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-07-20
Reviewed by Saam Barati.

There's no need for these scripts to print "Nothing changed" when they don't do anything.

  • offlineasm/asm.rb:
  • offlineasm/generate_offset_extractor.rb:
  • offlineasm/generate_settings_extractor.rb:
1:18 PM Changeset in webkit [264615] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[CG] Flushing ImageBuffer IOSurface cached image can happen when creating an image for encoding only
https://bugs.webkit.org/show_bug.cgi?id=214515
<rdar://problem/65735991>

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-07-20
Reviewed by Simon Fraser.

Drawing an empty rectangle after changing the bytes of the IOSurface was
a hack to force CG to regenerate the IOSurface cached image. This hack
was added to solve the bug in which we were getting stale data url from
the ImageBuffer after calling its putImageData() function.

Drawing the ImageBuffer to a GraphicsContext or getting its data url starts
by getting a native image from the IOSurface. The stale cached image problem
was seen only in getting the data url but when not drawing the ImageBuffer.

So to save the cost of flushing the cached image, we will delay doing the
empty rectangle hack till toCFData() is called. toCFData() is called for
all ImageBuffer data retrieval functions including toDataURL().

This gives a 15% progression to the Images test on MacBookPro15,2 because
the Images test does not call toDataURL() so it does not require flushing
the IOSurface cached image. It calls getImageData(), alter the image data
and then calls putImageData().

  • platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:

(WebCore::ImageBufferIOSurfaceBackend::toCFData const):
(WebCore::ImageBufferIOSurfaceBackend::putImageData):

  • platform/graphics/cg/ImageBufferIOSurfaceBackend.h:
1:16 PM Changeset in webkit [264614] by aakash_jain@apple.com
  • 4 edits in trunk/Tools

[build.webkit.org] Update reference to webkit-test-results in TestFailures
https://bugs.webkit.org/show_bug.cgi?id=214499

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/garden-o-matic.html:
  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders_unittests.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js:
1:12 PM Changeset in webkit [264613] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebKit

REGRESSION(r263551) Main thread often hangs while saving cookies
https://bugs.webkit.org/show_bug.cgi?id=214564
<rdar://problem/65779712>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-07-20
Reviewed by Geoffrey Garen.

I had assumed that CFNetwork wouldn't write cookies on the main thread, but I was wrong.
That change caused spins, so let's just do the work on the WebsiteDataStore's queue instead.

  • UIProcess/API/APIHTTPCookieStore.h:
  • UIProcess/API/Cocoa/APIHTTPCookieStoreCocoa.mm:

(API::HTTPCookieStore::flushDefaultUIProcessCookieStore):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::dispatchOnQueue):

  • UIProcess/WebsiteData/WebsiteDataStore.h:
1:04 PM Changeset in webkit [264612] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

Reduce logging in ews django app
https://bugs.webkit.org/show_bug.cgi?id=214562

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-app/ews/models/build.py:

(Build.update_build):

  • BuildSlaveSupport/ews-app/ews/models/step.py:

(Step.save_step):
(Step.update_step):

12:58 PM Changeset in webkit [264611] by Darin Adler
  • 2 edits in trunk/Source/WebCore

Streamline URLDecomposition::setHash
https://bugs.webkit.org/show_bug.cgi?id=214561

Reviewed by Anders Carlsson.

  • html/URLDecomposition.cpp:

(WebCore::URLDecomposition::setHash): No need to cast to StringView since we
already have a StringView. Also don't need a local variable.

12:52 PM Changeset in webkit [264610] by Darin Adler
  • 2 edits in trunk/Source/WebCore

[Cocoa] MediaSampleAVFObjC::createImageSample depends on function argument evaluation order
https://bugs.webkit.org/show_bug.cgi?id=214560

Reviewed by Anders Carlsson.

  • platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:

(WebCore::deallocateVectorBuffer): Renamed from releaseUint8Vector.
(WebCore::MediaSampleAVFObjC::createImageSample): Rearranged code so that we don't call both
data() and releaseBuffer() on the same vector in the same function call; that isn't safe because
the order of argument evaluation is not guaranteed, and so data() could be called after the
buffer is released. Also added code to deallocate the buffer if CVPixelBufferCreateWithBytes
fails. The old code would have leaked it in that case. Also made some style tweaks to use
adoptCF more consistently to handle reference counting, and slightly optimized a loop to
only get the array count once.

12:47 PM Changeset in webkit [264609] by Kate Cheney
  • 33 edits in trunk

[ iOS macOS ] http/tests/resourceLoadStatistics/grandfathering-database.html is a rare flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=213553
<rdar://problem/64696432>

Reviewed by Darin Adler.

Tools:

Registering to receive an ITP statistics processing callback should be
synchronous, otherwise processing could happen before ITP has
registered that it should be reported to the test runner.

To avoid this mistake in the future, this patch removes the
async version of this call from TestInvocation.cpp, because it should
never be used.

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::installStatisticsDidModifyDataRecordsCallback):

Update this function to look like
installStatisticsDidScanDataRecordsCallback. It is simpler to let ITP
know to send the callback response when installing the callback
instead of requiring a separate function call.

(WTR::TestRunner::installStatisticsDidScanDataRecordsCallback):
Register for a callback synchronously.

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:

Remove setStatisticsNotifyPagesWhenDataRecordsWereScanned from the idl
file so it does not accidentally get called in a layout test in the
future.

LayoutTests:

Remove unnecessary calls to register for a statistics processing
callback, now that it is done synchronously as a part of the installing function.

  • http/tests/resourceLoadStatistics/count-third-party-script-import-in-worker-database.html:
  • http/tests/resourceLoadStatistics/count-third-party-script-import-in-worker.html:
  • http/tests/resourceLoadStatistics/count-third-party-script-loads-database.html:
  • http/tests/resourceLoadStatistics/count-third-party-script-loads.html:
  • http/tests/resourceLoadStatistics/do-not-capture-statistics-for-simple-top-navigations-database.html:
  • http/tests/resourceLoadStatistics/do-not-capture-statistics-for-simple-top-navigations.html:
  • http/tests/resourceLoadStatistics/dont-count-third-party-image-as-third-party-script-database.html:
  • http/tests/resourceLoadStatistics/dont-count-third-party-image-as-third-party-script.html:
  • http/tests/resourceLoadStatistics/many-inserts-only-insert-once.html:
  • http/tests/resourceLoadStatistics/prevalent-resource-handled-keydown-database.html:
  • http/tests/resourceLoadStatistics/prevalent-resource-handled-keydown.html:
  • http/tests/resourceLoadStatistics/prevalent-resource-unhandled-keydown-database.html:
  • http/tests/resourceLoadStatistics/prevalent-resource-unhandled-keydown.html:

The testing contents should be part of the callback for setEnableFeature
to ensure setup finishes before the test is run.

  • http/tests/resourceLoadStatistics/prevalent-resource-with-user-interaction-database.html:
  • http/tests/resourceLoadStatistics/prevalent-resource-with-user-interaction-timeout-database.html:
  • http/tests/resourceLoadStatistics/prevalent-resource-with-user-interaction-timeout.html:
  • http/tests/resourceLoadStatistics/prevalent-resource-with-user-interaction.html:
  • http/tests/resourceLoadStatistics/prevalent-resource-without-user-interaction-database.html:
  • http/tests/resourceLoadStatistics/prevalent-resource-without-user-interaction.html:
  • http/tests/resourceLoadStatistics/remove-website-data-for-origin-deletes-third-party-script-loads-database.html:
  • http/tests/resourceLoadStatistics/remove-website-data-for-origin-deletes-third-party-script-loads.html:
  • http/tests/resourceLoadStatistics/resources/util.js:

(setEnableFeature):
This call is unnecessary as the parameters are cleared in
WKWebsiteDataStoreStatisticsResetToConsistentState.

  • http/tests/webAPIStatistics/canvas-read-and-write-data-collection.html:
  • http/tests/webAPIStatistics/font-load-data-collection.html:
  • http/tests/webAPIStatistics/navigator-functions-accessed-data-collection.html:
  • http/tests/webAPIStatistics/screen-functions-accessed-data-collection.html:
  • http/tests/websocket/connection-refusal-in-frame-resource-load-statistics.html:
  • platform/ios-wk2/TestExpectations:
12:32 PM Changeset in webkit [264608] by dino@apple.com
  • 2 edits in trunk/Tools

Adding James Darpinian to contributors.

  • Scripts/webkitpy/common/config/contributors.json:
11:30 AM Changeset in webkit [264607] by commit-queue@webkit.org
  • 10 edits
    2 adds
    1 delete in trunk

[GStreamer] Add support for canvas captureStream, tests failing since they were added in r213598
https://bugs.webkit.org/show_bug.cgi?id=169811

Patch by Philippe Normand <pnormand@igalia.com> on 2020-07-20
Reviewed by Darin Adler.

Source/WebCore:

Hook captureStream support in GStreamer ports. The only missing bits were:

  1. create a MediaSample from a BGRA buffer
  2. convert a MediaSample to a RGBA buffer (used only for layout tests)
  3. set video width and height tags not only on video capture tracks (tracks created from captureStream are not GStreamer capture device tracks)
  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::toMediaSample):

  • platform/graphics/avfoundation/objc/MediaSampleAVFObjC.h: Refactor createImageSample to

use unsigned for dimensions.

  • platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:
  • platform/graphics/gstreamer/MediaSampleGStreamer.cpp:

(WebCore::MediaSampleGStreamer::createImageSample):
(WebCore::MediaSampleGStreamer::getRGBAImageData const):

  • platform/graphics/gstreamer/MediaSampleGStreamer.h:
  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:

(mediaStreamTrackPrivateGetTags):

LayoutTests:

Unflag passing tests and rebaseline one platform-specific WPT test expectation which differs
from the default by only one line.

  • platform/glib/imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-MediaElement-srcObject.https-expected.txt: Added.
  • platform/gtk/TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-MediaElement-srcObject.https-expected.txt: Removed.
  • platform/wpe/TestExpectations:
11:28 AM Changeset in webkit [264606] by youenn@apple.com
  • 4 edits in trunk

Fix buggy assert in h265_vps_sps_pps_tracker.cc
https://bugs.webkit.org/show_bug.cgi?id=214545

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

  • Source/webrtc/modules/video_coding/h265_vps_sps_pps_tracker.cc:

LayoutTests:

  • platform/mac-wk2/TestExpectations:
11:12 AM Changeset in webkit [264605] by Jonathan Bedard
  • 2 edits in trunk/Tools

[webkitpy] Build with arm64e when on Apple Internal
https://bugs.webkit.org/show_bug.cgi?id=214553
<rdar://problem/65745597>

Reviewed by Tim Horton.

  • Scripts/webkitpy/port/mac.py:

(MacPort._build_driver_flags): Use arm64e instead of arm64 for Internal builds.

9:58 AM Changeset in webkit [264604] by youenn@apple.com
  • 6 edits in trunk

GenerateCertificateAsync should be called on signaling thread
https://bugs.webkit.org/show_bug.cgi?id=214447

Reviewed by Geoffrey Garen.

Source/WebCore:

As per debug assert, GenerateCertificateAsync is expected to be called in the signaling thread.
Covered by unskipped test.

  • Modules/mediastream/libwebrtc/LibWebRTCCertificateGenerator.cpp:

(WebCore::LibWebRTCCertificateGenerator::generateCertificate):

  • platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:

(WebCore::LibWebRTCProvider::prepareCertificateGenerator):
We can pass generator to a background thread as it is allocated once and does not get freed.

  • platform/mediastream/libwebrtc/LibWebRTCProvider.h:

LayoutTests:

  • platform/mac-wk2/TestExpectations:
9:26 AM Changeset in webkit [264603] by commit-queue@webkit.org
  • 5 edits in trunk/Tools

Add lock icon to MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=214438

Patch by Alex Christensen <achristensen@webkit.org> on 2020-07-20
Reviewed by Darin Adler.

  • MiniBrowser/MiniBrowser.xcodeproj/project.pbxproj:
  • MiniBrowser/mac/BrowserWindow.xib:
  • MiniBrowser/mac/BrowserWindowController.h:
  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController awakeFromNib]):
(-[WK2BrowserWindowController dealloc]):
(-[WK2BrowserWindowController showCertificate:]):
(-[WK2BrowserWindowController observeValueForKeyPath:ofObject:change:context:]):
(-[WK2BrowserWindowController updateLockButtonIcon:]):

8:17 AM Changeset in webkit [264602] by ddkilzer@apple.com
  • 4 edits in trunk/Source/WebKit

WebPageProxyIdentifier parameter of WebPageProxy::CreateNewPage() should not be Optional
<https://webkit.org/b/214542>
<rdar://problem/65768644>

Reviewed by Darin Adler.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::createNewPage):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::createNewPage):

  • UIProcess/WebPageProxy.messages.in:
  • Remove Optional<> wrapper for WebPageProxyIdentifier parameter since the value is used unconditionally.
7:24 AM Changeset in webkit [264601] by commit-queue@webkit.org
  • 10 edits
    1 add
    1 delete in trunk

Unreviewed, reverting r264596.
https://bugs.webkit.org/show_bug.cgi?id=214551

hits Debug asserts

Reverted changeset:

"[GStreamer] Add support for canvas captureStream, tests
failing since they were added in r213598"
https://bugs.webkit.org/show_bug.cgi?id=169811
https://trac.webkit.org/changeset/264596

7:13 AM Changeset in webkit [264600] by commit-queue@webkit.org
  • 16 edits in trunk/Source/WebCore

Make AnyStepHandling an enum class
https://bugs.webkit.org/show_bug.cgi?id=214423

Patch by Rob Buis <rbuis@igalia.com> on 2020-07-20
Reviewed by Youenn Fablet.

Make AnyStepHandling an enum class since this is more readable
and allows us to have less includes in header files.

  • html/BaseDateAndTimeInputType.cpp:
  • html/DateInputType.cpp:
  • html/DateTimeLocalInputType.cpp:
  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::setupDateTimeChooserParameters):

  • html/HTMLInputElement.h:
  • html/InputType.cpp:

(WebCore::InputType::rangeUnderflow const):
(WebCore::InputType::rangeOverflow const):
(WebCore::InputType::minimum const):
(WebCore::InputType::maximum const):
(WebCore::InputType::isInRange const):
(WebCore::InputType::isOutOfRange const):
(WebCore::InputType::stepMismatch const):
(WebCore::InputType::validationMessage const):
(WebCore::InputType::getAllowedValueStep const):
(WebCore::InputType::stepUp):
(WebCore::InputType::stepUpFromRenderer):

  • html/InputType.h:
  • html/MonthInputType.cpp:
  • html/NumberInputType.cpp:
  • html/RangeInputType.cpp:

(WebCore::RangeInputType::handleKeydownEvent):
(WebCore::RangeInputType::fallbackValue const):
(WebCore::RangeInputType::sanitizeValue const):

  • html/StepRange.cpp:

(WebCore::StepRange::parseStep):

  • html/StepRange.h:
  • html/TimeInputType.cpp:
  • html/WeekInputType.cpp:
  • html/shadow/SliderThumbElement.cpp:

(WebCore::sliderPosition):
(WebCore::SliderThumbElement::setPositionFromPoint):

6:51 AM Changeset in webkit [264599] by commit-queue@webkit.org
  • 9 edits in trunk

LayoutTests/imported/w3c:
Setting URL.hash to '#' should preserve '#'
https://bugs.webkit.org/show_bug.cgi?id=214318

Patch by Rob Buis <rbuis@igalia.com> on 2020-07-20
Reviewed by Youenn Fablet.

Update improved test expectation.

  • web-platform-tests/url/url-setters-expected.txt:

Source/WebCore:
Setting URL.hash to '#' should set empty fragment
https://bugs.webkit.org/show_bug.cgi?id=214318

Patch by Rob Buis <rbuis@igalia.com> on 2020-07-20
Reviewed by Youenn Fablet.

Setting URL.hash to '#' should set empty fragment
identifier [1], unlike setting it to the empty string
which drops the fragment identifier.

Behavior matches Chrome and Firefox.

[1] https://html.spec.whatwg.org/#dom-hyperlink-hash

Test: imported/w3c/web-platform-tests/url/url-setters.html

  • html/URLDecomposition.cpp:

(WebCore::URLDecomposition::setHash):

LayoutTests:
Setting URL.hash to '#' should preserve '#'
https://bugs.webkit.org/show_bug.cgi?id=214318

Patch by Rob Buis <rbuis@igalia.com> on 2020-07-20
Reviewed by Youenn Fablet.

Update test expectations to new behavior.

  • fast/dom/DOMURL/set-href-attribute-hash-expected.txt:
  • fast/dom/DOMURL/set-href-attribute-hash.html:
  • fast/dom/HTMLAnchorElement/set-href-attribute-hash-expected.txt:
  • fast/dom/HTMLAnchorElement/set-href-attribute-hash.html:
6:41 AM Changeset in webkit [264598] by Adrian Perez de Castro
  • 3 edits in trunk/Source/WebKit

Some classes have final destructors but are non-final
https://bugs.webkit.org/show_bug.cgi?id=214549

Reviewed by Youenn Fablet.

No new tests needed.

  • NetworkProcess/ServiceWorker/WebSWServerConnection.h: Mark WebSWServerConnection

class as final.

  • WebProcess/WebCoreSupport/WebMessagePortChannelProvider.h: Ditto.
6:37 AM Changeset in webkit [264597] by commit-queue@webkit.org
  • 3 edits
    2 deletes in trunk/Tools

[Flatpak SDK] Update to FDO 19.08.12 release
https://bugs.webkit.org/show_bug.cgi?id=214184

Patch by Philippe Normand <pnormand@igalia.com> on 2020-07-20
Reviewed by Žan Doberšek.

Bump to the latest 19.08 release, which ships GCC 9.3.0. Hence we can remove the
corresponding downstream patch. And the Bluez patch which was left around but not longer
applied in the FDO junction. Also integrate a non-related WPEBackend-FDO git master ref bump.

  • buildstream/elements/freedesktop-sdk.bst:
  • buildstream/patches/fdo-0001-Update-gcc-to-9.3.0.patch: Removed.
  • buildstream/patches/fdo/0003-Add-Bluez.patch: Removed.
  • buildstream/elements/sdk/wpebackend-fdo.bst:
5:37 AM Changeset in webkit [264596] by commit-queue@webkit.org
  • 10 edits
    2 adds
    1 delete in trunk

[GStreamer] Add support for canvas captureStream, tests failing since they were added in r213598
https://bugs.webkit.org/show_bug.cgi?id=169811

Patch by Philippe Normand <pnormand@igalia.com> on 2020-07-20
Reviewed by Darin Adler.

Source/WebCore:

Hook captureStream support in GStreamer ports. The only missing bits were:

  1. create a MediaSample from a BGRA buffer
  2. convert a MediaSample to a RGBA buffer (used only for layout tests)
  3. set video width and height tags not only on video capture tracks (tracks created from captureStream are not GStreamer capture device tracks)
  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::toMediaSample):

  • platform/graphics/avfoundation/objc/MediaSampleAVFObjC.h: Refactor createImageSample to

use unsigned for dimensions.

  • platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:
  • platform/graphics/gstreamer/MediaSampleGStreamer.cpp:

(WebCore::MediaSampleGStreamer::createImageSample):
(WebCore::MediaSampleGStreamer::getRGBAImageData const):

  • platform/graphics/gstreamer/MediaSampleGStreamer.h:
  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:

(mediaStreamTrackPrivateGetTags):

LayoutTests:

Unflag passing tests and rebaseline one platform-specific WPT test expectation which differs
from the default by only one line.

  • platform/glib/imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-MediaElement-srcObject.https-expected.txt: Added.
  • platform/gtk/TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-MediaElement-srcObject.https-expected.txt: Removed.
  • platform/wpe/TestExpectations:
3:26 AM Changeset in webkit [264595] by commit-queue@webkit.org
  • 5 edits in trunk

[GStreamer] ImageDecoder hits more Debug ASSERTs
https://bugs.webkit.org/show_bug.cgi?id=214191

Patch by Philippe Normand <pnormand@igalia.com> on 2020-07-20
Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

Process decoded video samples from the decoder parent thread, in order to guarantee the
underlying RefPtrs stored in the ImageDecoderGStreamerSample keep a consistent owning
runloop.

  • platform/graphics/gstreamer/ImageDecoderGStreamer.cpp:

(WebCore::ImageDecoderGStreamer::InnerDecoder::connectDecoderPad):
(WebCore::ImageDecoderGStreamer::setHasEOS):
(WebCore::ImageDecoderGStreamer::notifySample):
(WebCore::ImageDecoderGStreamer::InnerDecoder::handleMessage):
(WebCore::ImageDecoderGStreamer::pushEncodedData):

  • platform/graphics/gstreamer/ImageDecoderGStreamer.h:

LayoutTests:

  • platform/glib/TestExpectations: Unflag no-longer-crashing tests.
2:40 AM Changeset in webkit [264594] by Philippe Normand
  • 2 edits in trunk/LayoutTests

Unreviewed, GTK gardening

  • platform/gtk/TestExpectations: Unflag now-stable webrtc tests, no longer flaky since r263836.
1:37 AM Changeset in webkit [264593] by Fujii Hironori
  • 3 edits in trunk/Source/WebCore

Use forward template declarations for ColorComponents instead of including ColorComponents.h
https://bugs.webkit.org/show_bug.cgi?id=214540

Reviewed by Darin Adler.

  • platform/graphics/ColorMatrix.h:
  • platform/graphics/ColorTypes.h:
1:24 AM Changeset in webkit [264592] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

valgrind claims uninitialized memory when opening inspector (WebKit::InspectorBrowserAgent::enable(WTF::String&))
https://bugs.webkit.org/show_bug.cgi?id=209468

Reviewed by Michael Catanzaro.

Initialize m_targetAgent.

  • UIProcess/Inspector/WebPageInspectorController.h:

Jul 19, 2020:

8:31 PM Changeset in webkit [264591] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix GTK build in Debian/LTS

Like r264279, include functional to provide std::invoke.

  • platform/graphics/ColorUtilities.h:
8:24 PM Changeset in webkit [264590] by Lauro Moura
  • 3 edits
    6 deletes in trunk/LayoutTests

[GTK][WPE] Remove some deprecated expectation files and garden failures

Unreviewed test gardening.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/css/css-grid/parsing/grid-template-columns-computed-implicit-track-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/css/css-grid/parsing/grid-template-rows-computed-implicit-track-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/css/css-properties-values-api/typedom-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/css/css-properties-values-api/unit-cycles-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/css/css-grid/parsing/grid-template-columns-computed-implicit-track-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/css/css-grid/parsing/grid-template-rows-computed-implicit-track-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/css/css-properties-values-api/typedom-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/css/css-properties-values-api/unit-cycles-expected.txt: Removed.
7:04 PM Changeset in webkit [264589] by Fujii Hironori
  • 5 edits in trunk/Source/WebCore

Unreviewed, reverting r264588.

It broke Mac port.

Reverted changeset:

"Use forward template declarations for ColorComponents instead
of including ColorComponents.h as much as possible"
https://bugs.webkit.org/show_bug.cgi?id=214204
https://trac.webkit.org/changeset/264588

6:51 PM Changeset in webkit [264588] by Fujii Hironori
  • 5 edits in trunk/Source/WebCore

Use forward template declarations for ColorComponents instead of including ColorComponents.h as much as possible
https://bugs.webkit.org/show_bug.cgi?id=214204
<rdar://problem/65414170>

Unreviewed follow-up for the review feedback of r264289.

  • platform/graphics/ColorConversion.cpp:
  • platform/graphics/ColorMatrix.h:
  • platform/graphics/ColorTypes.h:
  • platform/graphics/ColorUtilities.h:
6:42 PM Changeset in webkit [264587] by Fujii Hironori
  • 6 edits in trunk/Source

Unreviewed non-unified source build fix

Source/JavaScriptCore:

  • runtime/IntlDateTimeFormat.cpp:
  • runtime/IntlRelativeTimeFormat.h:

Source/WebCore:

  • html/canvas/WebGLSync.cpp:
  • html/canvas/WebGLSync.h:
6:21 PM Changeset in webkit [264586] by ggaren@apple.com
  • 17 edits
    2 deletes in trunk/Source

There should be only one RunLoop Timer class
https://bugs.webkit.org/show_bug.cgi?id=214340

Reviewed by Darin Adler.

RunLoop::Timer wins. RunLoopTimer loses.

Source/WebCore:

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::DocumentLoader):
(WebCore::DocumentLoader::tryLoadingSubstituteData):
(WebCore::DocumentLoader::cancelMainResourceLoad):
(WebCore::DocumentLoader::startDataLoadTimer): Deleted. Use
RunLoop::dispatch instead of a timer because we have no need to control
the time period or to fire more than once. Use an explicit token so that
we can still cancel.

  • loader/DocumentLoader.h:

(WebCore::DocumentLoader::DataLoadToken::clear): Added an explicit token
class to we can cancel a data load.

  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::loadDataURL): page->scheduledRunLoopPairs()
is never null; and if it were null, data loads would always fail.

  • platform/network/DataURLDecoder.cpp:

(WebCore::DataURLDecoder::decode):
(WebCore::DataURLDecoder::DecodingResultDispatcher::dispatch): Deleted.
(WebCore::DataURLDecoder::DecodingResultDispatcher::DecodingResultDispatcher): Deleted.
(WebCore::DataURLDecoder::DecodingResultDispatcher::startTimer): Deleted.
(WebCore::DataURLDecoder::DecodingResultDispatcher::timerFired): Deleted.
No need for two code paths, now that we can just call RunLoop::dispatch.

  • platform/network/DataURLDecoder.h:

Source/WTF:

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/PlatformHave.h:
  • wtf/PlatformMac.cmake: Remove RunLoopTimer.
  • wtf/RunLoop.cpp:

(WTF::RunLoop::dispatchAfter): While we're here. let's make dispatchAfter
available on all platforms. We had cross-platform code, but it was
factored to be needlessly platform-specific.

  • wtf/RunLoop.h: Added a version of dispatch() that accepts a

SchedulePairHashSet for Cocoa. Removed some indirection from timer
stuff, since it was confusing me. Consistently named all time intervals
"interval".

  • wtf/RunLoopTimer.h: Removed.
  • wtf/cf/RunLoopCF.cpp:

(WTF::createTimer): Factored out a helper function for dispatch() to use.
(WTF::RunLoop::dispatch): This function is the meat of the patch. It's
the only unique functionality that RunLoopTimer used to provide.
(WTF::RunLoop::TimerBase::start): Adopted helper function.
(WTF::RunLoop::runForDuration): Deleted.
(WTF::RunLoop::TimerBase::timerFired): Deleted.

  • wtf/cf/RunLoopTimerCF.cpp: Removed.
  • wtf/generic/RunLoopGeneric.cpp:

(WTF::RunLoop::dispatchAfter): Deleted. Now cross-platform.

  • wtf/glib/RunLoopGLib.cpp:

(WTF::RunLoop::TimerBase::updateReadyTime):
(WTF::RunLoop::TimerBase::start):
(WTF::RunLoop::TimerBase::stop):
(WTF::DispatchAfterContext::DispatchAfterContext): Deleted.
(WTF::DispatchAfterContext::dispatch): Deleted.
(WTF::RunLoop::dispatchAfter): Deleted. Now cross-platform.

  • wtf/win/RunLoopWin.cpp:

(WTF::RunLoop::TimerBase::start):
(WTF::RunLoop::dispatchAfter): Deleted. Now cross-platform.

3:39 PM Changeset in webkit [264585] by weinig@apple.com
  • 53 edits in trunk

Rename Color::transparent to Color::transparentBlack to more clearly state what it is
https://bugs.webkit.org/show_bug.cgi?id=214522

Reviewed by Darin Adler.

Source/WebCore:

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::colorValue const):

  • accessibility/AccessibilityObject.h:
  • css/CSSValuePool.cpp:

(WebCore::StaticCSSValuePool::StaticCSSValuePool):
(WebCore::CSSValuePool::createColorValue):

  • editing/EditingStyle.cpp:

(WebCore::cssValueToColor):

  • html/HTMLInputElement.cpp:

(WebCore::autoFillStrongPasswordMaskImage):

  • html/InputType.cpp:

(WebCore::InputType::valueAsColor const):

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::State::State):
(WebCore::CanvasRenderingContext2DBase::clearRect):
(WebCore::CanvasRenderingContext2DBase::setShadow):
(WebCore::CanvasRenderingContext2DBase::clearShadow):
(WebCore::CanvasRenderingContext2DBase::applyShadow):

  • inspector/InspectorOverlay.cpp:

(WebCore::drawShapeHighlight):

  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::parseColor):

  • layout/displaytree/DisplayPainter.cpp:

(WebCore::Display::paintBoxDecoration):

  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::CaptionUserPreferencesMediaAF::captionsWindowCSS const):

  • page/DebugPageOverlays.cpp:

(WebCore::drawRightAlignedText):

  • page/FrameSnapshotting.cpp:

(WebCore::snapshotNode):

  • page/FrameView.cpp:

(WebCore::FrameView::recalculateBaseBackgroundColor):

  • page/PageOverlay.h:
  • page/TextIndicator.cpp:

(WebCore::estimatedBackgroundColorForRange):

  • page/animation/CSSPropertyAnimation.cpp:

(WebCore::shadowForBlending):

  • platform/graphics/Color.h:
  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):

  • platform/graphics/cg/ColorCG.cpp:

(WebCore::cachedCGColor):

  • platform/graphics/cg/NativeImageCG.cpp:

(WebCore::nativeImageSinglePixelSolidColor):

  • platform/graphics/filters/FilterOperation.cpp:

(WebCore::DropShadowFilterOperation::blend):

  • platform/graphics/mac/ColorMac.mm:

(WebCore::nsColor):

  • platform/graphics/nicosia/NicosiaPaintingEngineBasic.cpp:

(Nicosia::PaintingEngineBasic::paint):

  • platform/graphics/nicosia/NicosiaPaintingEngineThreaded.cpp:

(Nicosia::paintLayer):

  • platform/graphics/texmap/TextureMapperPlatformLayerBuffer.cpp:

(WebCore::TextureMapperPlatformLayerBuffer::paintToTextureMapper):

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(VideoFullscreenControllerContext::requestVideoContentLayer):
(VideoFullscreenControllerContext::returnVideoContentLayer):
(VideoFullscreenControllerContext::didSetupFullscreen):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::paintIncompleteImageOutline const):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::paintResizer):

  • rendering/RenderListMarker.cpp:

(WebCore::RenderListMarker::paint):

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::platformActiveSelectionBackgroundColor const):
(WebCore::RenderThemeIOS::platformInactiveSelectionBackgroundColor const):

  • rendering/RenderTreeAsText.cpp:

(WebCore::RenderTreeAsText::writeRenderObject):

  • rendering/mathml/RenderMathMLMenclose.cpp:

(WebCore::RenderMathMLMenclose::paint):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::visitedDependentColor const):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::initialStrokeColor):
(WebCore::RenderStyle::initialBackgroundColor):

  • style/StyleBuilderCustom.h:

(WebCore::Style::BuilderCustom::applyTextOrBoxShadowValue):

  • style/StyleBuilderState.cpp:

(WebCore::Style::BuilderState::createFilterOperations):

  • svg/SVGStopElement.cpp:

(WebCore::SVGStopElement::stopColorIncludingOpacity const):

  • testing/Internals.cpp:

(WebCore::Internals::setViewIsTransparent):
(WebCore::Internals::setViewBaseBackgroundColor):
Color::transparent to Color::transparentBlack.

Source/WebKit:

  • Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm:

(WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):

  • UIProcess/API/ios/WKWebViewIOS.mm:

(scrollViewBackgroundColor):
(-[WKWebView _setOpaqueInternal:]):

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::setDrawsBackground):

  • UIProcess/WebPageProxy.cpp:

(WebKit::m_transcodingQueue):

  • WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp:

(webkitWebPageDidReceiveMessage):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::snapshotNode):

  • WebProcess/cocoa/VideoFullscreenManager.mm:

(WebKit::VideoFullscreenManager::enterVideoFullscreenForVideoElement):
Color::transparent to Color::transparentBlack.

Source/WebKitLegacy/win:

  • WebCoreSupport/WebFrameLoaderClient.cpp:

(WebFrameLoaderClient::transitionToCommittedForNewPage):

  • WebFrame.cpp:

(WebFrame::updateBackground):
Color::transparent to Color::transparentBlack.

Tools:

  • TestWebKitAPI/cocoa/TestPDFDocument.mm:

(TestWebKitAPI::TestPDFPage::colorAtPoint const):
Update for rename from Color::transparent to Color::transparentBlack.

1:07 PM Changeset in webkit [264584] by weinig@apple.com
  • 33 edits
    1 delete in trunk/Source

Remove ColorBuilder
https://bugs.webkit.org/show_bug.cgi?id=214521

Reviewed by Darin Adler.

Source/WebCore:

ColorBuilder is unnecessary and just makes deduction contexts more complicated.
Instead, we can get the same behavior by having color types inherit from a shared
base class ColorType that uses the curiously recurring template pattern, which
exposes the colorWithAlphaByte function (renamed from colorWithAlpha for clarity
of the parameter).

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:

Remove ColorBuilder.

  • platform/graphics/ColorBuilder.h: Removed.
  • platform/graphics/Color.cpp:

(WebCore::Color::lightened const):

  • platform/graphics/Color.h:

(WebCore::Color::alphaByte const):
(WebCore::Color::alpha const): Deleted.
Stop using ColorBuilder for color named color types and rename Color::alpha to Color:alphaByte()
for consistency with colorWithAlphaByte().

  • platform/graphics/ColorTypes.h:

(WebCore::ColorType::colorWithAlphaByte const):
(WebCore::LinearSRGBA::LinearSRGBA):
(WebCore::DisplayP3::DisplayP3):
(WebCore::LinearDisplayP3::LinearDisplayP3):
(WebCore::HSLA::HSLA):
(WebCore::CMYKA::CMYKA):
(WebCore::XYZA::XYZA):
Switch each color type to inheriting from new ColorWithAlphaHelper struct. Use the opertunity to
give each color type the same construction interface as well. Now that each type has constructors,
the deduction guides are no longer necessary.

  • platform/graphics/ColorBlending.cpp:

(WebCore::blendSourceOver):
Switch from !color.alpha() to !color.isVisible() to more clearly indicate the intent.

  • accessibility/AccessibilityTable.cpp:

(WebCore::AccessibilityTable::isDataTable const):
Update to call alphaByte() and add FIXME indicating that it is probably incorrect and filed
https://bugs.webkit.org/show_bug.cgi?id=214537 to track things further.

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::createInnerTextStyle):

  • inspector/InspectorOverlay.cpp:

(WebCore::InspectorOverlay::drawPaintRects):
(WebCore::InspectorOverlay::drawBounds):
(WebCore::InspectorOverlay::drawRulers):

  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::CaptionUserPreferencesMediaAF::captionsBackgroundCSS const):

  • page/DebugPageOverlays.cpp:

(WebCore::NonFastScrollableRegionOverlay::drawRect):

  • page/DragController.cpp:

(WebCore::DragController::insertDroppedImagePlaceholdersAtCaret):

  • page/linux/ResourceUsageOverlayLinux.cpp:

(WebCore::ResourceUsageOverlay::platformInitialize):

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::draw):

  • platform/graphics/GraphicsLayer.cpp:

(WebCore::GraphicsLayer::getDebugBorderInfo const):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::recursiveCommitChanges):

  • platform/graphics/ca/PlatformCALayer.cpp:

(WebCore::PlatformCALayer::drawRepaintIndicator):

  • platform/graphics/ca/TileCoverageMap.cpp:

(WebCore::TileCoverageMap::TileCoverageMap):

  • platform/mock/ScrollbarThemeMock.cpp:

(WebCore::ScrollbarThemeMock::paintTrackBackground):

  • platform/win/DragImageWin.cpp:

(WebCore::createDragImageForLink):

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::resolveStyleForMarkedText):

  • rendering/RenderEmbeddedObject.cpp:
  • rendering/RenderLayerBacking.cpp:

(WebCore::patternForTouchAction):
(WebCore::patternForEventListenerRegionType):
(WebCore::RenderLayerBacking::paintDebugOverlays):

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::platformTapHighlightColor const):

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintMenuListButtonDecorations):

  • rendering/SimpleLineLayoutFunctions.cpp:

(WebCore::SimpleLineLayout::paintFlow):

  • testing/cocoa/WebViewVisualIdentificationOverlay.mm:

(-[WebViewVisualIdentificationOverlay initWithWebView:kind:deprecated:]):
Update to call colorWithAlphaByte rather than colorWithAlpha.

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::addRoundedBorderClip):
(WebCore::RenderThemeIOS::paintCheckboxDecorations):
(WebCore::RenderThemeIOS::paintRadioDecorations):
(WebCore::RenderThemeIOS::paintMenuListButtonDecorations):
(WebCore::RenderThemeIOS::paintSystemPreviewBadge):
Update to use colorWithAlphaByte rather than colorWithAlpha and alphaByte rather than alpha.

Source/WebKit:

  • WebProcess/Inspector/WebInspectorClient.cpp:

(WebKit::WebInspectorClient::showPaintRect):

  • WebProcess/WebPage/FindController.cpp:

(WebKit::FindController::drawRect):
Update for rename from colorWithAlpha to colorWithAlphaByte.

12:57 PM Changeset in webkit [264583] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Enable cross-platform release logging in ResourceLoadStatisticsDatabaseStore.cpp
https://bugs.webkit.org/show_bug.cgi?id=214538

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

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
12:13 PM Changeset in webkit [264582] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Remove findCharsetInMediaType
https://bugs.webkit.org/show_bug.cgi?id=214523

Patch by Rob Buis <rbuis@igalia.com> on 2020-07-19
Reviewed by Darin Adler.

Remove findCharsetInMediaType (by moving its code
into extractCharsetFromMediaType) since there are
no users for findCharsetInMediaType anymore.

  • platform/network/HTTPParsers.cpp:

(WebCore::extractCharsetFromMediaType):
(WebCore::findCharsetInMediaType): Deleted.

  • platform/network/HTTPParsers.h:
12:06 PM Changeset in webkit [264581] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

cpp.py:3688: FutureWarning: Possible nested set at position 101
https://bugs.webkit.org/show_bug.cgi?id=214536

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

The warning was added in https://bugs.python.org/issue30349. We need to escape [ when used
inside a set. That is, we have to change "[[" to "[\[".

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

(check_identifier_name_in_declaration):

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

Fix -Wdeprecated-declarations under Tools
https://bugs.webkit.org/show_bug.cgi?id=214534

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

  • TestWebKitAPI/Tests/WebKit/ReloadPageAfterCrash.cpp:

(TestWebKitAPI::didCrashCheckFrames):

  • TestWebKitAPI/Tests/WebKit/WKPreferences.cpp:

(TestWebKitAPI::TEST):

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::didCreatePage):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:
11:45 AM Changeset in webkit [264579] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

pep8.py:110: FutureWarning: Possible nested set at position 1
https://bugs.webkit.org/show_bug.cgi?id=214531

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

Update from pep8 to pycodestyle.

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

(PythonChecker.check):
(PythonChecker._check_pycodestyle):
(PythonChecker._check_pycodestyle._pycodestyle_handle_error):
(PythonChecker._check_pep8): Deleted.
(PythonChecker._check_pep8._pep8_handle_error): Deleted.

  • Scripts/webkitpy/thirdparty/init.py:

(AutoinstallImportHook.find_module):
(AutoinstallImportHook._install_keyring):
(AutoinstallImportHook._install_pep8): Deleted.

11:23 AM Changeset in webkit [264578] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

-Warray-bounds warnings in testb3 and testair
https://bugs.webkit.org/show_bug.cgi?id=214533

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

Suppress these warnings when building testb3 and testair.

  • shell/CMakeLists.txt:
10:59 AM Changeset in webkit [264577] by weinig@apple.com
  • 3 edits in trunk/Source/WebCore

Additional Color related cleanups
https://bugs.webkit.org/show_bug.cgi?id=214514

Reviewed by Darin Adler.

  • platform/graphics/ColorBuilder.h:

Remove redundant "public" and use decltype() rather than more wordy typename for static_assert.

  • platform/graphics/ColorUtilities.h:

(WebCore::clampToComponentByte):
(WebCore::clampToComponentFloat):
Templatize to support any input.

(WebCore::clampToComponentBytes):
(WebCore::clampToComponentFloats):
Templatize using variadic templates to support any input and prepare for color types with more
than four components.

(WebCore::colorByModifingEachNonAlphaComponent):
Use std::invoke to support more types of functors.

(WebCore::colorWithOverridenAlpha):
(WebCore::invertedColorWithOverridenAlpha):
Use auto more consistently.

(WebCore::invertComponent): Deleted.
Replace invertComponent functions with ComponentTraits::maxValue - value inline at callsite.

6:59 AM Changeset in webkit [264576] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

cpp_generator.py:134: SyntaxWarning: "is" with a literal. Did you mean "=="?
https://bugs.webkit.org/show_bug.cgi?id=214530

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-07-19
Reviewed by Philippe Normand.

  • inspector/scripts/codegen/cpp_generator.py:

(CppGenerator.cpp_type_for_unchecked_formal_in_parameter):

Note: See TracTimeline for information about the timeline view.