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

Timeline



Mar 27, 2020:

9:21 PM Changeset in webkit [259154] by Simon Fraser
  • 6 edits in trunk/Source

Define ENABLE_WHEEL_EVENT_LATCHING and use it to wrap wheel event latching code
https://bugs.webkit.org/show_bug.cgi?id=209693

Reviewed by Zalan Bujtas.

Source/WebCore:

Replace some #if PLATFORM(MAC) with #if ENABLE(WHEEL_EVENT_LATCHING).

ENABLE_WHEEL_EVENT_LATCHING is currently only enabled on macOS, but it's possible
that it should be defined everywhere that ENABLE_KINETIC_SCROLLING is defined.
This requires testing on WPE, GTK etc.

  • page/EventHandler.cpp:

(WebCore::handleWheelEventInAppropriateEnclosingBox):
(WebCore::EventHandler::handleWheelEvent):
(WebCore::EventHandler::clearLatchedState):
(WebCore::EventHandler::defaultWheelEventHandler):

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

Source/WTF:

Define ENABLE_WHEEL_EVENT_LATCHING for macOS.

  • wtf/PlatformEnable.h:
9:17 PM Changeset in webkit [259153] by Jack Lee
  • 3 edits
    2 adds in trunk

Nullptr crash in CompositeEditCommand::moveParagraphs when inserting OL into uneditable parent.
https://bugs.webkit.org/show_bug.cgi?id=209641
<rdar://problem/60915598>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Inserting BR in unlistifyParagraph() or OL/UL in listifyParagraph() would fail
because their insertion position is uneditable. In this case BR/OL/UL becomes
parentless and the code crashes later when their parent is dereferenced in
moveParagraphs().
In unlistifyParagraph(), only insertNodeBefore() and insertNodeAfter() are used
and both check parent of listNode for editability, so in order to avoid assertion
in the above functions, we check the editability of listNode before insertion.
In listifyParagraph() it is hard to predict where the final insertion position would be,
so we check the editability of the insertion position after it is finalized.

Test: editing/inserting/insert-ol-uneditable-parent.html

  • editing/InsertListCommand.cpp:

(WebCore::InsertListCommand::unlistifyParagraph):
(WebCore::InsertListCommand::listifyParagraph):

LayoutTests:

Added a regression test for the crash.

  • editing/inserting/insert-ol-uneditable-parent-expected.txt: Added.
  • editing/inserting/insert-ol-uneditable-parent.html: Added.
9:00 PM Changeset in webkit [259152] by commit-queue@webkit.org
  • 3 edits
    4 adds in trunk

Source/WebCore:
Fix null pointer crash in RenderBox::styleDidChange
https://bugs.webkit.org/show_bug.cgi?id=208311

Patch by Eugene But <eugenebut@chromium.org> on 2020-03-27
Reviewed by Ryosuke Niwa.

RenderBox::styleDidChange crashes when changing style for HTMLBodyElement element.
Crash happens on dereferencing null document().documentElement()->renderer() pointer:

if (....
!documentElementRenderer->style().hasExplicitlySetWritingMode())) {

That HTMLBodyElement was added as the second child of document, which is not allowed per spec:

If parent is a document, and any of the statements below, switched on node,
are true, then throw a "HierarchyRequestError" DOMException:

.......
element

parent has an element child that is not child or a doctype is following child.

......

https://dom.spec.whatwg.org/#concept-node-replace

This patch prevents adding HTMLBodyElement as the second child by running more strict checks
inside WebCore::Document::canAcceptChild(). Previously canAcceptChild() would allow all
Replace operations if new child had the same type as old child, even if old child has changed the parent.

If old child has changed the parent (parent is not document), it means that child was removed from document
and it is possible that mutation event handler has already added a new child to document. This is normal
situation, but it means that canAcceptChild() can not short circuit only on comparing the types of old and
new child, and has to run all checks listed in https://dom.spec.whatwg.org/#concept-node-replace

Tests: fast/dom/add-document-child-during-document-child-replacement.html

fast/dom/add-document-child-and-reparent-old-child-during-document-child-replacement.html

  • Source/WebCore/dom/Document.cpp:

(WebCore::Document::canAcceptChild):

LayoutTests:
Test for RenderBox::styleDidChange crash fix
https://bugs.webkit.org/show_bug.cgi?id=208311

Patch by Eugene But <eugenebut@chromium.org> on 2020-03-27
Reviewed by Ryosuke Niwa

add-document-child-during-document-child-replacement.html test adds svg child to a document
from mutation event observer while existing document child is being replaced.
After adding svg child, the document should reject the replacement of existing child, per spec:

If parent is a document, and any of the statements below, switched on node,
are true, then throw a "HierarchyRequestError" DOMException:

.......
element

parent has an element child that is not child or a doctype is following child.

......

https://dom.spec.whatwg.org/#concept-node-replace

add-document-child-and-reparent-old-child-during-document-child-replacement.html reparents the old child
to create slightly different state where old child still has a parent but that parent is not document.

  • add-document-child-during-document-child-replacement.html:
  • add-document-child-and-reparent-old-child-during-document-child-replacement.html:
8:05 PM Changeset in webkit [259151] by Wenson Hsieh
  • 18 edits in trunk/Source

Web content processes should not be able to arbitrarily request pasteboard data from the UI process
https://bugs.webkit.org/show_bug.cgi?id=209657
<rdar://problem/59611585>

Reviewed by Geoff Garen.

Source/WebCore:

Match macOS behavior in the iOS implementation of Pasteboard::createForCopyAndPaste by using the name of the
general pasteboard by default, when initializing a Pasteboard for copying and pasting. In WebKit2, this allows
us to grant permission to the web process when reading from the general pasteboard.

  • platform/ios/PasteboardIOS.mm:

(WebCore::Pasteboard::createForCopyAndPaste):

Source/WebCore/PAL:

Soft-link the string constant UIPasteboardNameGeneral. See WebKit/ChangeLog for more details.

  • pal/ios/UIKitSoftLink.h:
  • pal/ios/UIKitSoftLink.mm:

Source/WebKit:

This patch adds a mechanism to prevent the UI process from sending pasteboard data to the web process in
response to WebPasteboardProxy IPC messages, unless the user (or the WebKit client, on behalf of the user) has
explicitly made the contents of the pasteboard available to a page in that web process. We determine the latter
by maintaining information about the changeCounts of each pasteboard we allow each web process to read. This
mapping is updated when either the user interacts with trusted UI (context menus, DOM paste menu) for pasting,
or an API client calls into -[WKWebView paste:], as is the case when pasting via the callout bar on iOS or
pasting via keyboard shortcuts (i.e. cmd + V) on macOS and iOS.

See per-change comments below for more details. Under normal circumstances, there should be no change in
behavior; refer to the radar for more context.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::grantAccessToCurrentPasteboardData):

Add a helper method to grant access to the data currently on the pasteboard with the given name; for now, this
grants access to all related pages that reside in the same web process, but this may be refactored in a future
change to make the mapping granular to each WebPageProxy rather than WebProcessProxy.

(Note: it is _critical_ that this method is never invoked as a result of IPC from the web process.)

  • UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:

(WebKit::WebPasteboardProxy::grantAccessToCurrentData):

Helper method to grant access to the current contents on the named pasteboard. Calling this method updates
m_pasteboardNameToChangeCountAndProcessesMap, such that the given web process is able to read from the
pasteboard with the given name, as long as the changeCount is still the same. To implement this behavior,
we either (1) add the process to an existing WeakHashSet of process proxies in the case where the
changeCount is the same as it was when we added the existing WeakHashSet, or in all other cases, (2) add a
replace the current (changeCount, processes) pair with the new change count and a weak set containing only the
given WebProcessProxy.

(WebKit::WebPasteboardProxy::revokeAccessToAllData):

Helper method to revoke all pasteboard access for the given WebProcessProxy. Called when resetting state, e.g.
after web process termination.

(WebKit::WebPasteboardProxy::canAccessPasteboardData const):

Private helper method to check whether an IPC message can access pasteboard data, based on the IPC::Connection
used to receive the message. This helper method returns true if either the WebKit client has used SPI
(both DOMPasteAllowed and JavaScriptCanAccessClipboard) to grant unmitigated access to the clipboard from the
web process, or access has been previously granted due to user interaction in the UI process or API calls made
directly by the WebKit client.

(WebKit::WebPasteboardProxy::didModifyContentsOfPasteboard):

Private helper method to update the pasteboard changeCount that has been granted to a given web process, in the
case where that web process was also responsible for writing data to the pasteboard and the pasteboard
changeCount prior to modifying the pasteboard was still valid. In other words, we should always allow a web
process to read contents it has just written. This allows us to maintain the use case where a WKWebView client
copies and pastes using back-to-back API calls:

`
[webView copy:nil];
[webView paste:nil];
`

(WebKit::WebPasteboardProxy::getPasteboardPathnamesForType):

Add a FIXME to add the canAccessPasteboardData check here as well. We can't do this yet because the web
process currently relies on being able to read the full list of pasteboard path names when dragging over the
page, but this will be fixed in a followup patch in the near future (see https://webkit.org/b/209671).

(WebKit::WebPasteboardProxy::getPasteboardStringForType):
(WebKit::WebPasteboardProxy::getPasteboardStringsForType):
(WebKit::WebPasteboardProxy::getPasteboardBufferForType):
(WebKit::WebPasteboardProxy::getPasteboardColor):
(WebKit::WebPasteboardProxy::getPasteboardURL):

In all the call sites where we ask for pasteboard data (with the exception of getPasteboardPathnamesForType, for
the time being), check whether we're allowed to read pasteboard data by consulting canAccessPasteboardData. If
not, return early with no data.

(WebKit::WebPasteboardProxy::addPasteboardTypes):
(WebKit::WebPasteboardProxy::setPasteboardTypes):
(WebKit::WebPasteboardProxy::setPasteboardURL):
(WebKit::WebPasteboardProxy::setPasteboardColor):
(WebKit::WebPasteboardProxy::setPasteboardStringForType):

In all the call sites where we knowingly mutate the pasteboard (and bump the changeCount as a result),
additionally update the changeCount to which we've granted access on behalf of the web process that is modifying
the pasteboard.

(WebKit::WebPasteboardProxy::urlStringSuitableForLoading):
(WebKit::WebPasteboardProxy::setPasteboardBufferForType):
(WebKit::WebPasteboardProxy::writeCustomData):
(WebKit::WebPasteboardProxy::readStringFromPasteboard):
(WebKit::WebPasteboardProxy::readURLFromPasteboard):
(WebKit::WebPasteboardProxy::readBufferFromPasteboard):
(WebKit::WebPasteboardProxy::writeURLToPasteboard):
(WebKit::WebPasteboardProxy::writeWebContentToPasteboard):
(WebKit::WebPasteboardProxy::writeImageToPasteboard):
(WebKit::WebPasteboardProxy::writeStringToPasteboard):

(See comments above).

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::performDragOperation):

When performing a drop on macOS, grant temporary access to the drag pasteboard.

(WebKit::WebViewImpl::requestDOMPasteAccess):
(WebKit::WebViewImpl::handleDOMPasteRequestWithResult):

If the user has granted DOM paste access, additionally grant access to the general pasteboard.

  • UIProcess/WebPageProxy.cpp:

(WebKit::isPasteCommandName):
(WebKit::WebPageProxy::executeEditCommand):

When executing an edit command on behalf of a WebKit client, check to see if it is a paste command (one of
the four that are defined in EditorCommand.cpp). If so, we grant access to the current contents of the general
pasteboard.

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

(WebKit::WebPasteboardProxy::webProcessProxyForConnection const):

Add a helper method to map a given IPC::Connection to a WebProcessProxy. While we have a list of WebProcessProxy
objects, we know a priori that at most one of them will have the given connection, so returning a single
WebProcessProxy* here is sufficient (rather than a list of WebProcessProxy*s).

(WebKit::WebPasteboardProxy::allPasteboardItemInfo):
(WebKit::WebPasteboardProxy::informationForItemAtIndex):
(WebKit::WebPasteboardProxy::getPasteboardItemsCount):
(WebKit::WebPasteboardProxy::readURLFromPasteboard):
(WebKit::WebPasteboardProxy::readBufferFromPasteboard):
(WebKit::WebPasteboardProxy::readStringFromPasteboard):
(WebKit::WebPasteboardProxy::urlStringSuitableForLoading):

Update interface stubs for non-Cocoa platforms.

  • UIProcess/WebPasteboardProxy.h:
  • UIProcess/WebPasteboardProxy.messages.in:

Decorate more IPC endpoints with WantsConnection, so that we can reason about the IPC::Connections used to
receive pasteboard messages.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _handleDOMPasteRequestWithResult:]):

If the user has granted DOM paste access, additionally grant access to the general pasteboard.

(-[WKContentView dropInteraction:performDrop:]):

When performing a drop on iOS, grant temporary access to the drag pasteboard.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::willPerformPasteCommand):

  • UIProcess/libwpe/WebPasteboardProxyLibWPE.cpp:

(WebKit::WebPasteboardProxy::readStringFromPasteboard):

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::platformDidSelectItemFromActiveContextMenu):

Grant pasteboard access when using the context menu to paste on macOS.

(WebKit::WebPageProxy::willPerformPasteCommand):

Grant pasteboard access when triggering the "Paste" edit command using WebKit SPI.

7:47 PM Changeset in webkit [259150] by Ross Kirsling
  • 5 edits in trunk/Source/JavaScriptCore

[JSC] Make Operator an enum class to avoid Op* identifiers
https://bugs.webkit.org/show_bug.cgi?id=209637

Reviewed by Darin Adler.

Currently, (e.g.) OpLShift is a value of enum Operator while OpLshift is an opcode.
Capitalization aside, it's confusing to be using Op* for disparate purposes like this.
Let's modernize the enum so that this confusion can go away as a side effect.

  • bytecompiler/NodesCodegen.cpp:

(JSC::emitIncOrDec):
(JSC::PostfixNode::emitBytecode):
(JSC::PrefixNode::emitBytecode):
(JSC::LogicalOpNode::emitBytecode):
(JSC::LogicalOpNode::emitBytecodeInConditionContext):
(JSC::emitReadModifyAssignment):
(JSC::ReadModifyDotNode::emitBytecode):
(JSC::ReadModifyBracketNode::emitBytecode):

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::makeBinaryNode):
(JSC::ASTBuilder::makeAssignNode):

  • parser/Nodes.h:
  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseAssignmentExpression):
(JSC::Parser<LexerType>::parseUnaryExpression):

5:56 PM Changeset in webkit [259149] by mark.lam@apple.com
  • 2 edits in trunk/JSTests

Skip stress/test-out-of-memory.js on memory limited devices.
https://bugs.webkit.org/show_bug.cgi?id=209690
<rdar://problem/60659198>

Reviewed by Keith Miller.

  • stress/test-out-of-memory.js:
5:45 PM Changeset in webkit [259148] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

REGRESSION (r256577): Previous page continues to display after navigating to media document
https://bugs.webkit.org/show_bug.cgi?id=209630
<rdar://problem/60609318>

Reviewed by Simon Fraser.

Add a way for non-HTML documents to signal visually non-empty state (for example when media document constructs the controls for the media content.)

  • html/FTPDirectoryDocument.cpp:

(WebCore::FTPDirectoryDocumentParser::appendEntry):

  • html/MediaDocument.cpp:

(WebCore::MediaDocumentParser::createDocumentStructure):

  • html/PluginDocument.cpp:

(WebCore::PluginDocumentParser::createDocumentStructure):

  • page/FrameView.cpp:

(WebCore::FrameView::resetLayoutMilestones):
(WebCore::FrameView::checkAndDispatchDidReachVisuallyNonEmptyState):

  • page/FrameView.h:
4:51 PM Changeset in webkit [259147] by Simon Fraser
  • 7 edits in trunk/Source/WebCore

Change SVGRenderingContext::renderSubtreeToImageBuffer() to SVGRenderingContext::renderSubtreeToContext()
https://bugs.webkit.org/show_bug.cgi?id=209679

Reviewed by Said Abou-Hallawa.

renderSubtreeToImageBuffer() just gets the context from the buffer, so change the name and signature
and just pass a GraphicsContext.

  • rendering/svg/RenderSVGResourceClipper.cpp:

(WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):

  • rendering/svg/RenderSVGResourceMasker.cpp:

(WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage):

  • rendering/svg/RenderSVGResourcePattern.cpp:

(WebCore::RenderSVGResourcePattern::createTileImage const):

  • rendering/svg/SVGRenderingContext.cpp:

(WebCore::SVGRenderingContext::renderSubtreeToContext):
(WebCore::SVGRenderingContext::renderSubtreeToImageBuffer): Deleted.

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

(WebCore::FEImage::platformApplySoftware):

4:44 PM Changeset in webkit [259146] by Chris Dumez
  • 6 edits in trunk/Source/WebKit

[iOS] Delay process suspension for a while after loading an app link
https://bugs.webkit.org/show_bug.cgi?id=209686
<rdar://problem/60888891>

Reviewed by Darin Adler.

Delay process suspension for a while after loading an app link. This will allow the page's script to pass
information more reliably to the native app handling the navigation.

This patch adds a [WKWebView _willOpenAppLink] SPI that the client needs to call before opening the
app link.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _willOpenAppLink]):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::close):

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

(WebKit::WebPageProxy::willOpenAppLink):

4:25 PM Changeset in webkit [259145] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 ] MediaPlayerPrivateInterface crash in WebKit::VideoFullscreenManager
https://bugs.webkit.org/show_bug.cgi?id=209688

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
4:13 PM Changeset in webkit [259144] by Russell Epstein
  • 1 copy in tags/Safari-609.2.1.2.10

Tag Safari-609.2.1.2.10.

3:26 PM Changeset in webkit [259143] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac Debug ] imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/autoplay.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=209684

Unreviewed test gardening.

  • platform/mac/TestExpectations:
3:00 PM Changeset in webkit [259142] by Alan Coon
  • 1 copy in tags/Safari-609.2.2

Tag Safari-609.2.2.

2:32 PM Changeset in webkit [259141] by Devin Rousso
  • 5 edits in trunk

Web Inspector: should also escape the method when Copy as cURL
https://bugs.webkit.org/show_bug.cgi?id=209665
<rdar://problem/58432154>

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

  • UserInterface/Models/Resource.js:

(WI.Resource.prototype.generateCURLCommand):
(WI.Resource.prototype.generateCURLCommand.escapeStringPosix):
The method could be maliciously crafted, so we should also escape it (if needed).

LayoutTests:

  • http/tests/inspector/network/copy-as-curl.html:
2:25 PM Changeset in webkit [259140] by ysuzuki@apple.com
  • 4 edits in trunk/Source/WebCore

Use EnsureStillAliveScope to keep JSValues alive
https://bugs.webkit.org/show_bug.cgi?id=209577

Reviewed by Geoffrey Garen.

Some of WebCore code is using JSC::Strong<> to ensure JSC value alive while doing some operations.
But JSC::EnsureStillAliveScope is sufficient for this use case. This patch replaces these Strong<> use
with JSC::EnsureStillAliveScope.

  • bindings/js/JSEventListener.h:

(WebCore::JSEventListener::ensureJSFunction const):

  • bindings/js/JSWindowProxy.cpp:

(WebCore::JSWindowProxy::setWindow):

  • bindings/js/WorkerScriptController.cpp:

(WebCore::WorkerScriptController::initScript):

2:08 PM Changeset in webkit [259139] by commit-queue@webkit.org
  • 52 edits
    2 copies
    1 add
    3 deletes in trunk

Use ANGLE_robust_client_memory to replace framebuffer/texture validation
https://bugs.webkit.org/show_bug.cgi?id=209098

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

Source/ThirdParty/ANGLE:

Incorporated fix from anglebug.com/4504 to make
fast/canvas/webgl/uninitialized-test.html pass.

Incorporated fix from anglebug.com/4518 to make:

webgl/2.0.0/conformance2/renderbuffers/invalidate-framebuffer.html
webgl/2.0.0/conformance2/rendering/blitframebuffer-test.html
webgl/2.0.0/conformance2/rendering/rgb-format-support.html
webgl/2.0.0/conformance2/state/gl-object-get-calls.html
webgl/2.0.0/conformance2/textures/misc/tex-new-formats.html

pass.

  • src/libANGLE/Texture.cpp:

(gl::Texture::copySubImage):
(gl::Texture::ensureSubImageInitialized):

  • src/libANGLE/renderer/gl/renderergl_utils.cpp:

(rx::nativegl_gl::InitializeFeatures):

Source/WebCore:

Original patch by James Darpinian.

Delegate most framebuffer, compressed texture, renderbuffer, draw call,
clear, and ReadPixels validation to the ANGLE_robust_client_memory
extension. Delegate much, but not all, texture validation as well.
Remove tracking of textures' levels and immutability state, framebuffer
size and format, and unrenderable texture units from WebCore; these are
now handled by ANGLE. Hook up WebGL 2.0 draw/read framebuffer support
and BlitFramebuffer.

Disable WebGL 2.0 for non-ANGLE backends. It is infeasible to maintain
correctness of GraphicsContextGLOpenGL and GraphicsContextGLOpenGLES
under relaxed OpenGL ES 3.0 constraints.

Covered by existing WebGL layout tests. Several more webgl/2.0.0 tests
pass completely with this change.

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::blitFramebuffer):
(WebCore::WebGL2RenderingContext::getInternalformatParameter):
(WebCore::WebGL2RenderingContext::readBuffer):
(WebCore::WebGL2RenderingContext::renderbufferStorageMultisample):
(WebCore::WebGL2RenderingContext::texStorage2D):
(WebCore::WebGL2RenderingContext::clear):
(WebCore::WebGL2RenderingContext::renderbufferStorage):
(WebCore::WebGL2RenderingContext::baseInternalFormatFromInternalFormat):

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

(WebCore::WebGLRenderingContext::clear):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::create):
(WebCore::WebGLRenderingContextBase::initializeNewContext):
(WebCore::WebGLRenderingContextBase::clearIfComposited):
(WebCore::WebGLRenderingContextBase::reshape):
(WebCore::WebGLRenderingContextBase::bindFramebuffer):
(WebCore::WebGLRenderingContextBase::bindTexture):
(WebCore::WebGLRenderingContextBase::checkFramebufferStatus):
(WebCore::WebGLRenderingContextBase::compressedTexImage2D):
(WebCore::WebGLRenderingContextBase::compressedTexSubImage2D):
(WebCore::WebGLRenderingContextBase::copyTexSubImage2D):
(WebCore::WebGLRenderingContextBase::deleteTexture):
(WebCore::WebGLRenderingContextBase::validateVertexAttributes):
(WebCore::WebGLRenderingContextBase::drawArrays):
(WebCore::WebGLRenderingContextBase::drawElements):
(WebCore::WebGLRenderingContextBase::generateMipmap):
(WebCore::WebGLRenderingContextBase::readPixels):
(WebCore::WebGLRenderingContextBase::texImageSource2D):
(WebCore::WebGLRenderingContextBase::texImage2DBase):
(WebCore::WebGLRenderingContextBase::texImage2DImpl):
(WebCore::WebGLRenderingContextBase::validateTexFunc):
(WebCore::WebGLRenderingContextBase::texImage2D):
(WebCore::WebGLRenderingContextBase::texSubImage2DImpl):
(WebCore::WebGLRenderingContextBase::texSubImage2D):
(WebCore::WebGLRenderingContextBase::validateTexFuncFormatAndType):
(WebCore::WebGLRenderingContextBase::texSubImage2DBase):
(WebCore::WebGLRenderingContextBase::copyTexImage2D):
(WebCore::WebGLRenderingContextBase::texParameter):
(WebCore::WebGLRenderingContextBase::getBoundReadFramebufferColorFormat):
(WebCore::WebGLRenderingContextBase::getBoundReadFramebufferWidth):
(WebCore::WebGLRenderingContextBase::getBoundReadFramebufferHeight):
(WebCore::WebGLRenderingContextBase::validateTextureBinding):
(WebCore::WebGLRenderingContextBase::validateTexFuncLevel):
(WebCore::WebGLRenderingContextBase::restoreCurrentFramebuffer):
(WebCore::WebGLRenderingContextBase::restoreCurrentTexture2D):
(WebCore::WebGLRenderingContextBase::drawArraysInstanced):
(WebCore::WebGLRenderingContextBase::drawElementsInstanced):
(WebCore::WebGLRenderingContextBase::getBoundFramebufferColorFormat): Deleted.
(WebCore::WebGLRenderingContextBase::getBoundFramebufferWidth): Deleted.
(WebCore::WebGLRenderingContextBase::getBoundFramebufferHeight): Deleted.

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

(WebCore::WebGLTexture::WebGLTexture):
(WebCore::WebGLTexture::setTarget):
(WebCore::WebGLTexture::deleteObjectImpl):
(WebCore::WebGLTexture::computeLevelCount):
(WebCore::WebGLTexture::canGenerateMipmaps):

  • html/canvas/WebGLTexture.h:
  • platform/graphics/ExtensionsGL.h:
  • platform/graphics/angle/ExtensionsGLANGLE.cpp:

(WebCore::ExtensionsGLANGLE::getBooleanvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getBufferParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getFloatvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getFramebufferAttachmentParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getIntegervRobustANGLE):
(WebCore::ExtensionsGLANGLE::getProgramivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getRenderbufferParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getShaderivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getTexParameterfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getTexParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getUniformfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getUniformivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getVertexAttribfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getVertexAttribivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getVertexAttribPointervRobustANGLE):
(WebCore::ExtensionsGLANGLE::readPixelsRobustANGLE):
(WebCore::ExtensionsGLANGLE::texImage2DRobustANGLE):
(WebCore::ExtensionsGLANGLE::texParameterfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::texParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::texSubImage2DRobustANGLE):
(WebCore::ExtensionsGLANGLE::compressedTexImage2DRobustANGLE):
(WebCore::ExtensionsGLANGLE::compressedTexSubImage2DRobustANGLE):
(WebCore::ExtensionsGLANGLE::compressedTexImage3DRobustANGLE):
(WebCore::ExtensionsGLANGLE::compressedTexSubImage3DRobustANGLE):
(WebCore::ExtensionsGLANGLE::texImage3DRobustANGLE):
(WebCore::ExtensionsGLANGLE::texSubImage3DRobustANGLE):
(WebCore::ExtensionsGLANGLE::getQueryivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getQueryObjectuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getBufferPointervRobustANGLE):
(WebCore::ExtensionsGLANGLE::getIntegeri_vRobustANGLE):
(WebCore::ExtensionsGLANGLE::getInternalformativRobustANGLE):
(WebCore::ExtensionsGLANGLE::getVertexAttribIivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getVertexAttribIuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getUniformuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getActiveUniformBlockivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getInteger64vRobustANGLE):
(WebCore::ExtensionsGLANGLE::getInteger64i_vRobustANGLE):
(WebCore::ExtensionsGLANGLE::getBufferParameteri64vRobustANGLE):
(WebCore::ExtensionsGLANGLE::samplerParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::samplerParameterfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getSamplerParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getSamplerParameterfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getFramebufferParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getProgramInterfaceivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getBooleani_vRobustANGLE):
(WebCore::ExtensionsGLANGLE::getMultisamplefvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getTexLevelParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getTexLevelParameterfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getPointervRobustANGLERobustANGLE):
(WebCore::wipeAlphaChannelFromPixels):
(WebCore::ExtensionsGLANGLE::readnPixelsRobustANGLE):
(WebCore::ExtensionsGLANGLE::getnUniformfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getnUniformivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getnUniformuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::texParameterIivRobustANGLE):
(WebCore::ExtensionsGLANGLE::texParameterIuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getTexParameterIivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getTexParameterIuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::samplerParameterIivRobustANGLE):
(WebCore::ExtensionsGLANGLE::samplerParameterIuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getSamplerParameterIivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getSamplerParameterIuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getQueryObjectivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getQueryObjecti64vRobustANGLE):
(WebCore::ExtensionsGLANGLE::getQueryObjectui64vRobustANGLE):

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

(WebCore::GraphicsContextGLOpenGL::reshapeFBOs):
(WebCore::GraphicsContextGLOpenGL::readPixels):
(WebCore::GraphicsContextGLOpenGL::readRenderingResults):
(WebCore::GraphicsContextGLOpenGL::reshape):
(WebCore::GraphicsContextGLOpenGL::bindFramebuffer):
(WebCore::GraphicsContextGLOpenGL::copyTexImage2D):
(WebCore::GraphicsContextGLOpenGL::copyTexSubImage2D):
(WebCore::GraphicsContextGLOpenGL::deleteFramebuffer):
(WebCore::GraphicsContextGLOpenGL::blitFramebuffer):
(WebCore::GraphicsContextGLOpenGL::readBuffer):

  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:

(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):

  • platform/graphics/opengl/ExtensionsGLOpenGLCommon.cpp:

(WebCore::ExtensionsGLOpenGLCommon::getTranslatedShaderSourceANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getBooleanvRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getBufferParameterivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getFloatvRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getFramebufferAttachmentParameterivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getIntegervRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getProgramivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getRenderbufferParameterivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getShaderivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getTexParameterfvRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getTexParameterivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getUniformfvRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getUniformivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getVertexAttribfvRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getVertexAttribivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getVertexAttribPointervRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::readPixelsRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::texImage2DRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::texParameterfvRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::texParameterivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::texSubImage2DRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::compressedTexImage2DRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::compressedTexSubImage2DRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::compressedTexImage3DRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::compressedTexSubImage3DRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::texImage3DRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::texSubImage3DRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getQueryivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getQueryObjectuivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getBufferPointervRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getIntegeri_vRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getInternalformativRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getVertexAttribIivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getVertexAttribIuivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getUniformuivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getActiveUniformBlockivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getInteger64vRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getInteger64i_vRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getBufferParameteri64vRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::samplerParameterivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::samplerParameterfvRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getSamplerParameterivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getSamplerParameterfvRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getFramebufferParameterivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getProgramInterfaceivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getBooleani_vRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getMultisamplefvRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getTexLevelParameterivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getTexLevelParameterfvRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getPointervRobustANGLERobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::readnPixelsRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getnUniformfvRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getnUniformivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getnUniformuivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::texParameterIivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::texParameterIuivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getTexParameterIivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getTexParameterIuivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::samplerParameterIivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::samplerParameterIuivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getSamplerParameterIivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getSamplerParameterIuivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getQueryObjectivRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getQueryObjecti64vRobustANGLE):
(WebCore::ExtensionsGLOpenGLCommon::getQueryObjectui64vRobustANGLE):

  • platform/graphics/opengl/ExtensionsGLOpenGLCommon.h:
  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • platform/graphics/opengl/GraphicsContextGLOpenGLBase.cpp:

(WebCore::GraphicsContextGLOpenGL::reshapeFBOs):
(WebCore::GraphicsContextGLOpenGL::readPixels):

  • platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp:

(WebCore::GraphicsContextGLOpenGL::prepareTexture):
(WebCore::GraphicsContextGLOpenGL::readRenderingResults):
(WebCore::GraphicsContextGLOpenGL::reshape):
(WebCore::GraphicsContextGLOpenGL::bindFramebuffer):
(WebCore::GraphicsContextGLOpenGL::copyTexImage2D):
(WebCore::GraphicsContextGLOpenGL::copyTexSubImage2D):
(WebCore::GraphicsContextGLOpenGL::deleteFramebuffer):

  • platform/graphics/opengl/GraphicsContextGLOpenGLES.cpp:

(WebCore::GraphicsContextGLOpenGL::readPixels):
(WebCore::GraphicsContextGLOpenGL::reshapeFBOs):
(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):

  • platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:

(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):

LayoutTests:

Several more webgl/2.0.0 tests pass completely with these changes.
Rebaseline all WebGL-related layout tests. Nearly all diffs are forward
progressions. All will eventually be passed as more of WebGL 2.0 is
implemented.

Removed fast/canvas/webgl/webgl-specific.html test, which was
duplicated in webgl/1.0.3 and webgl/2.0.0 and which was testing
behavior from an old version of the WebGL specification.

Revised uninitialized-test.html to test current WebGL
specification; copyTexSubImage2D now leaves out-of-range
pixels untouched, rather than zeroing them.

  • fast/canvas/webgl/uninitialized-test.html:
  • fast/canvas/webgl/webgl-specific-expected.txt: Removed.
  • fast/canvas/webgl/webgl-specific.html: Removed.
  • fast/canvas/webgl/webgl2-texStorage-expected.txt:
  • platform/gtk/webgl/1.0.3/conformance/extensions/webgl-compressed-texture-size-limit-expected.txt: Copied from LayoutTests/webgl/1.0.3/conformance/extensions/webgl-compressed-texture-size-limit-expected.txt.
  • platform/ios/webgl/1.0.3/conformance/extensions/webgl-compressed-texture-size-limit-expected.txt: Removed.
  • platform/mac/TestExpectations:
  • platform/wpe/TestExpectations:
  • platform/wpe/webgl/1.0.3/conformance/extensions/webgl-compressed-texture-size-limit-expected.txt: Copied from LayoutTests/webgl/1.0.3/conformance/extensions/webgl-compressed-texture-size-limit-expected.txt.
  • webgl/1.0.3/conformance/extensions/webgl-compressed-texture-size-limit-expected.txt:
  • webgl/2.0.0/conformance/textures/misc/copy-tex-image-and-sub-image-2d-expected.txt:
  • webgl/2.0.0/conformance/textures/misc/tex-sub-image-2d-bad-args-expected.txt:
  • webgl/2.0.0/conformance2/reading/read-pixels-from-fbo-test-expected.txt:
  • webgl/2.0.0/conformance2/renderbuffers/framebuffer-object-attachment-expected.txt:
  • webgl/2.0.0/conformance2/renderbuffers/readbuffer-expected.txt:
  • webgl/2.0.0/conformance2/rendering/blitframebuffer-filter-outofbounds-expected.txt:
  • webgl/2.0.0/conformance2/rendering/blitframebuffer-filter-srgb-expected.txt:
  • webgl/2.0.0/conformance2/rendering/blitframebuffer-multisampled-readbuffer-expected.txt:
  • webgl/2.0.0/conformance2/rendering/blitframebuffer-outside-readbuffer-expected.txt:
  • webgl/2.0.0/conformance2/rendering/blitframebuffer-size-overflow-expected.txt:
  • webgl/2.0.0/conformance2/rendering/blitframebuffer-srgb-and-linear-drawbuffers-expected.txt:
  • webgl/2.0.0/conformance2/rendering/blitframebuffer-stencil-only-expected.txt:
  • webgl/2.0.0/conformance2/rendering/blitframebuffer-test-expected.txt:
  • webgl/2.0.0/conformance2/rendering/clear-func-buffer-type-match-expected.txt:
  • webgl/2.0.0/conformance2/rendering/instanced-arrays-expected.txt:
  • webgl/2.0.0/conformance2/state/gl-object-get-calls-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/copy-texture-image-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/tex-new-formats-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/tex-storage-2d-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/texture-npot-expected.txt:
2:07 PM Changeset in webkit [259138] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

HTMLTrackElement should be pending while it is waiting for LoadableTextTrack request
https://bugs.webkit.org/show_bug.cgi?id=208798
<rdar://problem/60325421>

Reviewed by Geoffrey Garen.

Have HTMLTrackElement and subclass ActiveDOMObject::hasPendingActivity() to keeps its
wrapper alive if its in LOADING state and the page's script has relevant load events
event listeners registered.

No new tests, covered by media/track/track-disabled-addcue.html.

  • html/HTMLTrackElement.cpp:

(WebCore::HTMLTrackElement::HTMLTrackElement):
(WebCore::HTMLTrackElement::create):
(WebCore::HTMLTrackElement::didCompleteLoad):
(WebCore::HTMLTrackElement::readyState const):
(WebCore::HTMLTrackElement::activeDOMObjectName const):
(WebCore::HTMLTrackElement::eventListenersDidChange):
(WebCore::HTMLTrackElement::hasPendingActivity const):
(WebCore::HTMLTrackElement::readyState): Deleted.

  • html/HTMLTrackElement.h:
  • html/HTMLTrackElement.idl:
1:57 PM Changeset in webkit [259137] by Simon Fraser
  • 7 edits
    4 adds in trunk

Hovering over countries at https://covidinc.io/ shows bizarre rendering artifacts
https://bugs.webkit.org/show_bug.cgi?id=209635
<rdar://problem/60935010>

Reviewed by Said Abou-Hallawa.
Source/WebCore:

RenderSVGResourceClipper::applyClippingToContext() cached an ImageBuffer per RenderObject
when using a image buffer mask. However, the function created and rendered into this image buffer
using repaintRect, which can change between invocations. Painting with different repaintRects
is very common when rendering into page tiles.

The buffer can only be re-used if the inputs used to create the buffer (objectBoundingBox, absoluteTransform)
are the same, so store those and compare them when determining when to use the cached buffer, and
don't use repaintRect when setting up the buffer.

This revealed another problem where renderers with visual overflow could be truncated by
the clipping, tested by imported/mozilla/svg/svg-integration/clipPath-html-03.xhtml, which occurred
because RenderLayer::setupClipPath() used the 'svgReferenceBox' for the clipping bounds, which
is the content box of the renderer excluding overflow. Fix this by using the bounds of the layer,
which includes the bounds of descendants.

Tests: svg/clip-path/clip-path-on-overflowing.html

svg/clip-path/resource-clipper-multiple-repaints.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::setupClipPath):

  • rendering/svg/RenderSVGResourceClipper.cpp:

(WebCore::RenderSVGResourceClipper::removeAllClientsFromCache):
(WebCore::RenderSVGResourceClipper::applyClippingToContext):
(WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):
(WebCore::RenderSVGResourceClipper::addRendererToClipper):
(WebCore::RenderSVGResourceClipper::resourceBoundingBox):

  • rendering/svg/RenderSVGResourceClipper.h:

LayoutTests:

Ref test that exercises the code path by painting into a tiled compositing
layer.

  • svg/clip-path/clip-path-on-overflowing-expected.html: Added.
  • svg/clip-path/clip-path-on-overflowing.html: Added.
  • svg/clip-path/mask-nested-clip-path-010-expected.svg:
  • svg/clip-path/mask-nested-clip-path-010.svg: Copied from imported/mozilla/svg/svg-integration/clipPath-html-03.xhtml,

and modified to have a non-zero offset for better testing of the clipping bounds computation.

  • svg/clip-path/resource-clipper-multiple-repaints-expected.html: Added.
  • svg/clip-path/resource-clipper-multiple-repaints.html: Added.
1:53 PM Changeset in webkit [259136] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

NetworkConnectionToWebProcess::registerBlobURLOptionallyFileBacked should validate its parameters
<https://webkit.org/b/209614>
<rdar://problem/60096304>

Reviewed by Alex Christensen.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(NETWORK_PROCESS_MESSAGE_CHECK):

  • Define/undef macro for killing WebContent process when an invalid IPC message is received.

(WebKit::NetworkConnectionToWebProcess::registerBlobURLOptionallyFileBacked):

  • Use NETWORK_PROCESS_MESSAGE_CHECK to validate its parameters.
1:33 PM Changeset in webkit [259135] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

[StressGC] ASSERTION FAILED: m_wrapper under WebCore::MediaRecorder::dispatchError
https://bugs.webkit.org/show_bug.cgi?id=209674
<rdar://problem/60541201>

Reviewed by Darin Adler.

Keep the MediaRecorder wrapper alive while its state is not inactive (i.e. it is recording
or paused), as it may still dispatch events.

Also drop MediaRecorder::scheduleDeferredTask() and use the utility functions in
ActiveDOMObject instead to achieve the same thing.

No new tests, already covered by http/wpt/mediarecorder/MediaRecorder-onremovetrack.html.

  • Modules/mediarecorder/MediaRecorder.cpp:

(WebCore::MediaRecorder::suspend):
(WebCore::MediaRecorder::stopRecording):
(WebCore::MediaRecorder::didAddOrRemoveTrack):
(WebCore::MediaRecorder::hasPendingActivity const):
(WebCore::MediaRecorder::scheduleDeferredTask): Deleted.

  • Modules/mediarecorder/MediaRecorder.h:
12:48 PM Changeset in webkit [259134] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

REGRESSION(r258857): Broke aarch64 JSCOnly CI
https://bugs.webkit.org/show_bug.cgi?id=209670

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-03-27
Reviewed by Carlos Alberto Lopez Perez.

Change aarch64 to use 4 KB rather than 64 KB as the ceiling on page size.

This change is definitely incorrect, because it will break our internal aarch64 CI that uses
64 KB pages. But maybe it will fix the public aarch64 CI bot that is using 4 KB pages?
Further investigation is required, because 64 KB should have been a safe value for all
platforms, but first step is to commit this and see what happens.

  • wtf/PageBlock.h:
12:43 PM Changeset in webkit [259133] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Unable to build WebKit with iOS 13.4 SDK
https://bugs.webkit.org/show_bug.cgi?id=209317

Reviewed by Dean Jackson.

  • Platform/spi/ios/UIKitSPI.h:

One more attempt. IPHONE_OS_VERSION_MAX_ALLOWED is inaccurate.

12:12 PM Changeset in webkit [259132] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 ] ASSERTION FAILED: m_messageEventCount @ WebCore::ServiceWorkerThread::finishedFiringMessageEvent()
https://bugs.webkit.org/show_bug.cgi?id=209672

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
11:39 AM Changeset in webkit [259131] by Tadeu Zagallo
  • 21 edits in trunk/Source/JavaScriptCore

Fix instances of new.target that should be syntax errors
https://bugs.webkit.org/show_bug.cgi?id=208040
<rdar://problem/59653142>

Reviewed by Michael Saboff.

We were not throwing the appropriate syntax errors for the following usages of new.target:

  • Class field initializers outside ordinary functions: we were missing a check that the closestOrdinaryFunctionScope was not the global scope.
  • Within an eval inside an arrow function: we were only checking that the EvalContextType should be FunctionEvalContext, but that does not tell us whether it's an arrow function or an ordinary function. To fix that we must thread that information from the executables to the parser.
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finishCreation):

  • bytecode/UnlinkedFunctionExecutable.cpp:

(JSC::UnlinkedFunctionExecutable::link):

  • bytecode/UnlinkedFunctionExecutable.h:
  • debugger/DebuggerCallFrame.cpp:

(JSC::DebuggerCallFrame::evaluateWithScopeExtension):

  • interpreter/Interpreter.cpp:

(JSC::eval):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::Parser):
(JSC::Parser<LexerType>::parseMemberExpression):

  • parser/Parser.h:

(JSC::parse):

  • runtime/CodeCache.cpp:

(JSC::generateUnlinkedCodeBlockImpl):

  • runtime/DirectEvalExecutable.cpp:

(JSC::DirectEvalExecutable::create):
(JSC::DirectEvalExecutable::DirectEvalExecutable):

  • runtime/DirectEvalExecutable.h:
  • runtime/EvalExecutable.cpp:

(JSC::EvalExecutable::EvalExecutable):

  • runtime/EvalExecutable.h:
  • runtime/FunctionExecutable.cpp:

(JSC::FunctionExecutable::FunctionExecutable):

  • runtime/FunctionExecutable.h:
  • runtime/GlobalExecutable.h:

(JSC::GlobalExecutable::GlobalExecutable):

  • runtime/IndirectEvalExecutable.cpp:

(JSC::IndirectEvalExecutable::IndirectEvalExecutable):

  • runtime/ModuleProgramExecutable.cpp:

(JSC::ModuleProgramExecutable::ModuleProgramExecutable):

  • runtime/ProgramExecutable.cpp:

(JSC::ProgramExecutable::ProgramExecutable):

  • runtime/ScriptExecutable.cpp:

(JSC::ScriptExecutable::ScriptExecutable):

  • runtime/ScriptExecutable.h:

(JSC::ScriptExecutable::isInsideOrdinaryFunction const):

11:30 AM Changeset in webkit [259130] by Chris Dumez
  • 7 edits in trunk/Source/WebCore

[StressGC] ASSERTION FAILED: m_wrapper under WebCore::WebGLRenderingContextBase::dispatchContextLostEvent
https://bugs.webkit.org/show_bug.cgi?id=209660
<rdar://problem/60541733>

Reviewed by Darin Adler.

Make HTMLCanvasElement an ActiveDOMObject since WebGLRenderingContextBase needs to dispatch events
asynchronously on its canvas element. Update WebGLRenderingContextBase to use the HTML event loop
to dispatch those events asynchronously instead of using suspendible timers.

No new tests, already covered by webgl/max-active-contexts-webglcontextlost-prevent-default.html.

  • dom/TaskSource.h:
  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::HTMLCanvasElement):
(WebCore::HTMLCanvasElement::create):
(WebCore::HTMLCanvasElement::activeDOMObjectName const):

  • html/HTMLCanvasElement.h:
  • html/HTMLCanvasElement.idl:
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::WebGLRenderingContextBase):
(WebCore::WebGLRenderingContextBase::loseContextImpl):
(WebCore::WebGLRenderingContextBase::scheduleTaskToDispatchContextLostEvent):
(WebCore::WebGLRenderingContextBase::dispatchContextChangedNotification):
(WebCore::WebGLRenderingContextBase::dispatchContextLostEvent): Deleted.
(WebCore::WebGLRenderingContextBase::dispatchContextChangedEvent): Deleted.

  • html/canvas/WebGLRenderingContextBase.h:
11:21 AM Changeset in webkit [259129] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 Release ] media/modern-media-controls/seek-backward-support/seek-backward-support.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=209668

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
11:07 AM Changeset in webkit [259128] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Use Optional<> for a lazily-computed bounds rectangle
https://bugs.webkit.org/show_bug.cgi?id=209659

Reviewed by Zalan Bujtas.

Replace LayoutRect& rootRelativeBounds, bool& rootRelativeBoundsComputed with Optional<LayoutRect>.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::setupClipPath):
(WebCore::RenderLayer::setupFilters):
(WebCore::RenderLayer::paintLayerContents):

  • rendering/RenderLayer.h:
11:05 AM Changeset in webkit [259127] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Add missing scope release to DataView's buffer getter
https://bugs.webkit.org/show_bug.cgi?id=209663

Reviewed by Yusuke Suzuki.

  • runtime/JSDataViewPrototype.cpp:

(JSC::dataViewProtoGetterBuffer):

10:58 AM Changeset in webkit [259126] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit

Use -_hasFocusedElement in -_didUpdateInputMode
https://bugs.webkit.org/show_bug.cgi?id=209662

Reviewed by Wenson Hsieh.

Remove duplication by using -_hasFocusedElement.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _didUpdateInputMode:]):

10:54 AM Changeset in webkit [259125] by commit-queue@webkit.org
  • 2 edits in trunk/JSTests

Skip new memory test stress/typed-array-oom-in... in memory limited devices
https://bugs.webkit.org/show_bug.cgi?id=209661

Patch by Paulo Matos <Paulo Matos> on 2020-03-27
Reviewed by Keith Miller.

  • stress/typed-array-oom-in-buffer-accessor.js:
10:00 AM Changeset in webkit [259124] by Wenson Hsieh
  • 17 edits in trunk/Source

DragData::containsURL() should avoid reading URL strings from the pasteboard
https://bugs.webkit.org/show_bug.cgi?id=209642
Work towards <rdar://problem/59611585>

Reviewed by Tim Horton.

Source/WebCore:

Refactor the implementation of DragData::containsURL(), such that in WebKit2, the web process never needs to
reason about the value of any string data in the pasteboard. We move most of the Cocoa-specific logic in
DragData::containsURL into PlatformPasteboard, and add new PasteboardStrategy methods in support of this. See
below for more details. There should be no change in behavior; however, this has the minor benefit of reducing
the number of sync IPC to 1 (2 in the case of macOS) in both containsURL and asURL.

  • platform/PasteboardStrategy.h:

Add new strategy methods containsURLStringSuitableForLoading and urlStringSuitableForLoading, which are used in
DragData::containsURL and DragData::asURL, respectively.

  • platform/PlatformPasteboard.h:
  • platform/cocoa/DragDataCocoa.mm:

(WebCore::DragData::containsURL const):

In Cocoa platforms, the argument to containsURL was effectively unused. Leave only the type behind, now that we
don't need to plumb it through to asURL() anymore.

(WebCore::DragData::asURL const):

In both asURL and containsURL, use the new PasteboardStrategy helpers to get information about loadable URLs in
the drag pasteboard. A bit of macOS-specific code remains here since it relies on DragData::fileNames() --
information which is not present in the platform pasteboard.

  • platform/cocoa/PlatformPasteboardCocoa.mm:

(WebCore::PlatformPasteboard::urlStringSuitableForLoading):

Move the Cocoa-specific implementation of DragData::asURL into PlatformPasteboardCocoa, since the implementation
is mostly the same (with some minor additions for macOS). The only minor changes here (and below, in
containsURLStringSuitableForLoading) is the use of URL::protocolIsInHTTPFamily() instead of checking that
-[NSURL scheme] is equal to either @"http" or @"https".

  • platform/ios/PlatformPasteboardIOS.mm:

(WebCore::PlatformPasteboard::containsURLStringSuitableForLoading):

Move the platform-dependent implementations of DragData::containsURL to PlatformPasteboardIOS and
PlatformPasteboardMac. These implementations were already quite different, so this split into -IOS and -Mac
files is cleaner than using #if and #else in the same method implementation.

  • platform/mac/PlatformPasteboardMac.mm:

(WebCore::PlatformPasteboard::containsURLStringSuitableForLoading):

Source/WebKit:

See WebCore/ChangeLog for more details.

  • UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:

(WebKit::WebPasteboardProxy::containsURLStringSuitableForLoading):
(WebKit::WebPasteboardProxy::urlStringSuitableForLoading):

  • UIProcess/WebPasteboardProxy.cpp:

(WebKit::WebPasteboardProxy::containsURLStringSuitableForLoading):
(WebKit::WebPasteboardProxy::urlStringSuitableForLoading):

  • UIProcess/WebPasteboardProxy.h:
  • UIProcess/WebPasteboardProxy.messages.in:

Add IPC plumbing for the new pasteboard strategy methods: containsURLStringSuitableForLoading and
urlStringSuitableForLoading.

  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::containsURLStringSuitableForLoading):
(WebKit::WebPlatformStrategies::urlStringSuitableForLoading):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.h:

Source/WebKitLegacy/mac:

See WebCore/ChangeLog for more details.

  • WebCoreSupport/WebPlatformStrategies.h:
  • WebCoreSupport/WebPlatformStrategies.mm:

(WebPlatformStrategies::containsURLStringSuitableForLoading):
(WebPlatformStrategies::urlStringSuitableForLoading):

9:54 AM Changeset in webkit [259123] by Alan Coon
  • 8 edits in branches/safari-610.1.7-branch/Source

Versioning.

9:53 AM Changeset in webkit [259122] by Chris Dumez
  • 12 edits in trunk/Source/WebCore

[StressGC] ASSERTION FAILED: m_wrapper under WebCore::MainThreadGenericEventQueue::dispatchOneEvent
https://bugs.webkit.org/show_bug.cgi?id=209655
<rdar://problem/60541442>

Reviewed by Geoffrey Garen.

TrackListBase should subclass ActiveDOMObject and keep its wrapper alive when there are pending
events to be dispatched. TrackListBase has a queue to dispatch events asynchronously.

No new tests, covered by media/track/track-remove-track.html.

  • html/track/AudioTrackList.cpp:

(WebCore::AudioTrackList::activeDOMObjectName const):

  • html/track/AudioTrackList.h:
  • html/track/AudioTrackList.idl:
  • html/track/TextTrackList.cpp:

(WebCore::TextTrackList::activeDOMObjectName const):

  • html/track/TextTrackList.h:
  • html/track/TextTrackList.idl:
  • html/track/TrackListBase.cpp:

(WebCore::TrackListBase::TrackListBase):
(WebCore::TrackListBase::hasPendingActivity const):

  • html/track/TrackListBase.h:
  • html/track/VideoTrackList.cpp:

(WebCore::VideoTrackList::activeDOMObjectName const):

  • html/track/VideoTrackList.h:
  • html/track/VideoTrackList.idl:
9:45 AM Changeset in webkit [259121] by Simon Fraser
  • 34 edits in trunk/LayoutTests

Clean up fast/scrolling/latching tests
https://bugs.webkit.org/show_bug.cgi?id=209629

Reviewed by Zalan Bujtas.

These tests had a bunch of issues:

  • mixture of waitUntilDone/jsTestIsAsync
  • not all used eventSender.monitorWheelEvents
  • script in the body for no reason
  • commented out code, unused variables
  • confusing comments
  • contradictory test content
  • fast/scrolling/latching/iframe_in_iframe-expected.txt:
  • fast/scrolling/latching/iframe_in_iframe.html:
  • fast/scrolling/latching/resources/inner_content.html:
  • fast/scrolling/latching/resources/scroll_nested_iframe_test_inner.html:
  • fast/scrolling/latching/scroll-div-latched-div-expected.txt:
  • fast/scrolling/latching/scroll-div-latched-div.html:
  • fast/scrolling/latching/scroll-div-latched-mainframe-expected.txt:
  • fast/scrolling/latching/scroll-div-latched-mainframe.html:
  • fast/scrolling/latching/scroll-div-no-latching-expected.txt:
  • fast/scrolling/latching/scroll-div-no-latching.html:
  • fast/scrolling/latching/scroll-div-with-nested-nonscrollable-iframe-expected.txt:
  • fast/scrolling/latching/scroll-div-with-nested-nonscrollable-iframe.html:
  • fast/scrolling/latching/scroll-iframe-fragment-expected.txt:
  • fast/scrolling/latching/scroll-iframe-fragment.html:
  • fast/scrolling/latching/scroll-iframe-in-overflow-expected.txt:
  • fast/scrolling/latching/scroll-iframe-in-overflow.html:
  • fast/scrolling/latching/scroll-iframe-latched-iframe-expected.txt:
  • fast/scrolling/latching/scroll-iframe-latched-iframe.html:
  • fast/scrolling/latching/scroll-iframe-latched-mainframe-expected.txt:
  • fast/scrolling/latching/scroll-iframe-latched-mainframe.html:
  • fast/scrolling/latching/scroll-iframe-webkit1-latching-bug-expected.txt:
  • fast/scrolling/latching/scroll-iframe-webkit1-latching-bug.html:
  • fast/scrolling/latching/scroll-latched-nested-div-expected.txt:
  • fast/scrolling/latching/scroll-latched-nested-div.html:
  • fast/scrolling/latching/scroll-nested-iframe-expected.txt:
  • fast/scrolling/latching/scroll-nested-iframe.html:
  • fast/scrolling/latching/scroll-select-bottom-test-expected.txt:
  • fast/scrolling/latching/scroll-select-bottom-test.html:
  • fast/scrolling/latching/scroll-select-latched-mainframe-expected.txt:
  • fast/scrolling/latching/scroll-select-latched-mainframe.html:
  • fast/scrolling/latching/scroll-select-latched-select-expected.txt:
  • fast/scrolling/latching/scroll-select-latched-select.html:
  • platform/mac-wk2/TestExpectations:
9:41 AM Changeset in webkit [259120] by Kate Cheney
  • 2 edits in trunk/LayoutTests

[ macOS wk2 ] http/tests/resourceLoadStatistics/user-interaction-only-reported-once-within-short-period-of-time-database.html is flaky failing on safari-609-branch
<rdar://problem/60940165>

Unreviewed test gardening. Updating expectations for ITP test which
should be skipped due to a short timestampResolution.

  • platform/mac-wk2/TestExpectations:
9:37 AM Changeset in webkit [259119] by Russell Epstein
  • 2 edits in branches/safari-609.2.1.2-branch/Source/WebCore

Cherry-pick r257640. rdar://problem/60919944

updateCSSTransitionsForElementAndProperty should clone RenderStyles
https://bugs.webkit.org/show_bug.cgi?id=208356
rdar://59869560

Reviewed by Antti Koivisto.

Make ownership of the local variable clear by cloning the RenderStyles
used in updateCSSTransitionsForElementAndProperty rather than referencing
different versions.

  • animation/AnimationTimeline.cpp: (WebCore::AnimationTimeline::updateCSSTransitionsForElementAndProperty):

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

9:37 AM Changeset in webkit [259118] by Russell Epstein
  • 15 edits in branches/safari-609.2.1.2-branch

Cherry-pick r256627. rdar://problem/60919944

[Web Animations] Style changes due to Web Animations should not trigger CSS Transitions
https://bugs.webkit.org/show_bug.cgi?id=207760
<rdar://problem/59458111>

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Mark Web Platform Tests progressions.

  • web-platform-tests/web-animations/interfaces/Animatable/animate-expected.txt:
  • web-platform-tests/web-animations/interfaces/Animation/style-change-events-expected.txt:
  • web-platform-tests/web-animations/interfaces/DocumentTimeline/style-change-events-expected.txt:
  • web-platform-tests/web-animations/interfaces/KeyframeEffect/style-change-events-expected.txt:

Source/WebCore:

While we would consider the unanimated style of CSS Animations specifically when considering what the "start" style values (before-change style in spec terminology)
should be when considering whether to start a CSS Transition during style resolution, we would not consider other types of animations, specifically JS-created Web
Animations. However, Web Platform Tests specifically test whether changes made using the Web Animations API may trigger transitions, and until now they would because
the RenderStyle used to determine the before-change style was the style from the previous resolution, which would include animated values.

To fix this, we make it so that KeyframeEffect objects now keep a copy of the unanimated style used when blending animated values for the very first time. That style
is cleared each time keyframes change, which is rare, but may happen through the Web Animations API. Then in AnimationTimeline::updateCSSTransitionsForElementAndProperty(),
we look for a KeyframeEffect currently affecting the property for which we're considering starting a CSS Transition, and use its unanimated style.

If that unanimated style has not been set yet, this is because the KeyframeEffect has not had a chance to apply itself with a non-null progress. In this case, the before-change
and after-change styles should be the same in order to prevent a transition from being triggered as the unanimated style for this keyframe effect will most likely be this
after-change style, or any future style change that may happen before the keyframe effect starts blending animated values.

Finally, tracking the unanimated style at the KeyframeEffect level means we no longer to track it specifically for CSSAnimation.

  • animation/AnimationTimeline.cpp: (WebCore::keyframeEffectForElementAndProperty): (WebCore::AnimationTimeline::updateCSSTransitionsForElementAndProperty):
  • animation/AnimationTimeline.h:
  • animation/CSSAnimation.cpp: (WebCore::CSSAnimation::create): (WebCore::CSSAnimation::CSSAnimation):
  • animation/CSSAnimation.h:
  • animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::animatesProperty const): Because the backing KeyframeList object may not have been created by the first time we query a KeyframeEffect during CSS Transitions resolution, we provide a method that will check the values provided by the Web Animations API to determine whether it targets a given CSS property. (WebCore::KeyframeEffect::clearBlendingKeyframes): (WebCore::KeyframeEffect::computeDeclarativeAnimationBlendingKeyframes): (WebCore::KeyframeEffect::computeCSSAnimationBlendingKeyframes): (WebCore::KeyframeEffect::apply):
  • animation/KeyframeEffect.h: (WebCore::KeyframeEffect::unanimatedStyle const):
  • style/StyleTreeResolver.cpp: (WebCore::Style::TreeResolver::createAnimatedElementUpdate):

LayoutTests:

Mark that a couple of tests are no longer flaky.

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

9:37 AM Changeset in webkit [259117] by Russell Epstein
  • 1 edit in branches/safari-609.2.1.2-branch/Source/WebCore/ChangeLog

Revert "Cherry-pick r257640. rdar://problem/60260332"

This reverts commit r258426.

9:17 AM WebKitGTK/2.28.x edited by Michael Catanzaro
(diff)
9:12 AM Changeset in webkit [259116] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebCore

Move applyUserAgentIfNeeded calls to a more central place
https://bugs.webkit.org/show_bug.cgi?id=209587

Patch by Rob Buis <rbuis@igalia.com> on 2020-03-27
Reviewed by Darin Adler.

Make main resource loads stop calling applyUserAgentIfNeeded
and instead do it in the CachedResourceLoader.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::addExtraFieldsToRequest):

  • loader/appcache/ApplicationCacheGroup.cpp:

(WebCore::ApplicationCacheGroup::createRequest):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::updateHTTPRequestHeaders):
(WebCore::CachedResourceLoader::requestResource):

  • loader/cache/CachedResourceLoader.h:
  • loader/cache/CachedResourceRequest.cpp:

(WebCore::CachedResourceRequest::updateReferrerAndOriginHeaders):
(WebCore::CachedResourceRequest::updateUserAgentHeader):
(WebCore::CachedResourceRequest::updateReferrerOriginAndUserAgentHeaders): Deleted.

  • loader/cache/CachedResourceRequest.h:
9:11 AM Changeset in webkit [259115] by youenn@apple.com
  • 19 edits
    1 add in trunk/Source

Filter DOMCache records in network process to reduce the number of records being sent to WebProcess
https://bugs.webkit.org/show_bug.cgi?id=209469
<rdar://problem/55207565>

Reviewed by Alex Christensen.

Source/WebCore:

Instead of retrieving all records and filtering them in WebProcess, WebProcess is now
sending filtering options to NetworkProcess.
In case of keys, ask network process to not send back any response.

Covered by existing tests.

  • Headers.cmake:
  • Modules/cache/CacheStorageConnection.h:
  • Modules/cache/DOMCache.cpp:

(WebCore::DOMCache::doMatch):
(WebCore::DOMCache::matchAll):
(WebCore::DOMCache::keys):
(WebCore::DOMCache::queryCache):
(WebCore::DOMCache::retrieveRecords): Deleted.
(WebCore::DOMCache::queryCacheWithTargetStorage): Deleted.

  • Modules/cache/DOMCache.h:
  • Modules/cache/WorkerCacheStorageConnection.cpp:

(WebCore::WorkerCacheStorageConnection::retrieveRecords):

  • Modules/cache/WorkerCacheStorageConnection.h:
  • WebCore.xcodeproj/project.pbxproj:
  • page/CacheStorageProvider.h:

Source/WebKit:

Receive new retrieve record options and make use of them to filter the records sent back to the WebProcess.
This includes filtering the records for a given requests.
This includes removing responses in case the request is made to gather all requests for Cache.keys().

  • NetworkProcess/cache/CacheStorageEngine.cpp:

(WebKit::CacheStorage::Engine::retrieveRecords):

  • NetworkProcess/cache/CacheStorageEngine.h:
  • NetworkProcess/cache/CacheStorageEngineCache.cpp:

(WebKit::CacheStorage::Cache::retrieveRecords):

  • NetworkProcess/cache/CacheStorageEngineCache.h:
  • NetworkProcess/cache/CacheStorageEngineConnection.cpp:

(WebKit::CacheStorageEngineConnection::retrieveRecords):

  • NetworkProcess/cache/CacheStorageEngineConnection.h:
  • NetworkProcess/cache/CacheStorageEngineConnection.messages.in:
  • WebProcess/Cache/WebCacheStorageConnection.cpp:

(WebKit::WebCacheStorageConnection::retrieveRecords):

  • WebProcess/Cache/WebCacheStorageConnection.h:
7:51 AM Changeset in webkit [259114] by commit-queue@webkit.org
  • 2 edits
    1 delete in trunk/JSTests

Pass hardness for test numberingSystemsForLocale-cached-... through test header
https://bugs.webkit.org/show_bug.cgi?id=209476

Patch by Paulo Matos <Paulo Matos> on 2020-03-27
Reviewed by Yusuke Suzuki.

Improvement over change r258190. Instead of creating a new test file
duplicating contents where a hardness parameter is different, pass this
through the test header using the -e flag to jsc.

  • stress/numberingSystemsForLocale-cached-strings-should-be-immortal-and-safe-for-concurrent-access.js:
  • stress/numberingSystemsForLocale-cached-strings-should-be-immortal-and-safe-for-concurrent-access_memory-limited.js: Removed.
6:20 AM WebKitGTK/2.28.x edited by magomez@igalia.com
(diff)
6:14 AM Changeset in webkit [259113] by magomez@igalia.com
  • 3 edits in trunk/Source/WebCore

[WPE] Unnecessary gl synchronization when using an OpenMAX video decoder and GLES2
https://bugs.webkit.org/show_bug.cgi?id=209647

Reviewed by Adrian Perez de Castro.

Don't perform the call to gst_gl_sync_meta_wait_cpu() when using an OpenMAX decoder,
as we don't need synchronization in that case and the internal call to glFinish()
casues an important fps drop.

  • platform/graphics/gstreamer/GStreamerCommon.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::GstVideoFrameHolder::waitForCPUSync):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):

5:54 AM Changeset in webkit [259112] by Chris Lord
  • 22 edits in trunk/Source

Source/WebCore:
[GTK][WPE] Enable kinetic scrolling with async rendering
https://bugs.webkit.org/show_bug.cgi?id=209230

Reviewed by Žan Doberšek.

Refactor ScrollAnimationKinetic so that it no longer depends on
ScrollableArea, uses RunLoop::Timer and is responsible for tracking
the history of scroll events. This allows it to be used in
ScrollingTree*ScrollingNodeNicosia to provide kinetic scrolling when
async scrolling is enabled, on GTK and WPE.

No new tests, this just enables existing functionality in more situations.

  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::scrollTo):

  • page/scrolling/ScrollingTreeScrollingNode.h:
  • page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp:

(WebCore::ScrollingTreeFrameScrollingNodeNicosia::ScrollingTreeFrameScrollingNodeNicosia):
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::handleWheelEvent):
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::stopScrollAnimations):

  • page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.h:
  • page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp:

(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::ScrollingTreeOverflowScrollingNodeNicosia):
(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::handleWheelEvent):
(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::stopScrollAnimations):

  • page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.h:
  • platform/ScrollAnimationKinetic.cpp:

(WebCore::ScrollAnimationKinetic::ScrollAnimationKinetic):
(WebCore::ScrollAnimationKinetic::appendToScrollHistory):
(WebCore::ScrollAnimationKinetic::clearScrollHistory):
(WebCore::ScrollAnimationKinetic::computeVelocity):
(WebCore::ScrollAnimationKinetic::start):

  • platform/ScrollAnimationKinetic.h:
  • platform/generic/ScrollAnimatorGeneric.cpp:

(WebCore::ScrollAnimatorGeneric::ScrollAnimatorGeneric):
(WebCore::ScrollAnimatorGeneric::scrollToOffsetWithoutAnimation):
(WebCore::ScrollAnimatorGeneric::handleWheelEvent):
(WebCore::ScrollAnimatorGeneric::willEndLiveResize):
(WebCore::ScrollAnimatorGeneric::didAddVerticalScrollbar):
(WebCore::ScrollAnimatorGeneric::didAddHorizontalScrollbar):

  • platform/generic/ScrollAnimatorGeneric.h:

Source/WebKit:
[GTK][WPE] Enable kinetic scrolling with async scrolling
https://bugs.webkit.org/show_bug.cgi?id=209230

Reviewed by Žan Doberšek.

Modify WPE mousewheel event delivery so that it includes the necessary
phases needed to infer press/release times and allow for kinetic
scrolling.

  • Shared/NativeWebWheelEvent.h:
  • Shared/WebEvent.h:
  • Shared/WebWheelEvent.cpp:

(WebKit::WebWheelEvent::encode const):
(WebKit::WebWheelEvent::decode):

  • Shared/libwpe/NativeWebWheelEventLibWPE.cpp:

(WebKit::NativeWebWheelEvent::NativeWebWheelEvent):

  • Shared/libwpe/WebEventFactory.cpp:

(WebKit::WebEventFactory::createWebWheelEvent):

  • Shared/libwpe/WebEventFactory.h:
  • UIProcess/API/wpe/PageClientImpl.cpp:

(WebKit::PageClientImpl::doneWithTouchEvent):

  • UIProcess/API/wpe/ScrollGestureController.cpp:

(WebKit::ScrollGestureController::handleEvent):

  • UIProcess/API/wpe/ScrollGestureController.h:

(WebKit::ScrollGestureController::phase):

  • UIProcess/API/wpe/WPEView.cpp:

(WKWPE::m_backend):

3:36 AM Changeset in webkit [259111] by youenn@apple.com
  • 361 edits
    8 adds
    20 deletes in trunk/Source/ThirdParty/libwebrtc

Bump boringssl version to M82
https://bugs.webkit.org/show_bug.cgi?id=209538

Reviewed by Eric Carlson.

  • CMakeLists.txt:
  • Source/third_party/boringssl: Updated.
  • WebKit/0001-Tweaking-boringssl-include-of-internal.h.patch: Removed.
  • libwebrtc.xcodeproj/project.pbxproj:
2:53 AM Changeset in webkit [259110] 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=209631

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-03-27
Reviewed by Carlos Garcia Campos.

  • platform/UserAgentQuirks.cpp:

(WebCore::UserAgentQuirks::stringForQuirk):

2:53 AM Changeset in webkit [259109] by Philippe Normand
  • 2 edits in trunk/Tools

[Flatpak SDK] Allow passing gst-build Meson options
https://bugs.webkit.org/show_bug.cgi?id=209608

Reviewed by Žan Doberšek.

Add support for the GST_BUILD_ARGS env var storing gst-build Meson options.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.setup_gstbuild):

2:52 AM Changeset in webkit [259108] by Philippe Normand
  • 2 edits in trunk/Tools

[Flatpak SDK] Warn when gst-build support was requested but GST_BUILD_PATH is not set
https://bugs.webkit.org/show_bug.cgi?id=209599

Reviewed by Žan Doberšek.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.setup_gstbuild):
(WebkitFlatpak.setup_dev_env):

Mar 26, 2020:

11:38 PM Changeset in webkit [259107] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Clear the entropy bits in the encodedStructureBits when deallocating a structureID.
https://bugs.webkit.org/show_bug.cgi?id=209632
<rdar://problem/60943876>

Reviewed by Saam Barati.

We currently only use a 32-bit offset in the StructureIDTable's StructureOrOffset.
Though we will never store an offset value that is near 32-bit in size, let alone
64-bit, there's no reason why we can't just use all 64-bits for the offset.
Doing so will also have the benefit of zero'ing out the entropy bits in the old
encodedStructureBits. This guarantees that there's no chance of coalition between
a "freed" structureID's entropy bits and the entropy bits in a dead cell due to
GC bugs.

  • runtime/StructureIDTable.h:
11:03 PM Changeset in webkit [259106] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening for iOS.

  • platform/ios-wk2/TestExpectations:
10:13 PM Changeset in webkit [259105] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

NetworkConnectionToWebProcess::domCookiesForHost should validate its host parameter
<https://webkit.org/b/209612>
<rdar://problem/60097830>

Reviewed by Alex Christensen.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(NETWORK_PROCESS_MESSAGE_CHECK_COMPLETION):

  • Define/undef macro for killing WebContent process when an invalid IPC message is received.

(WebKit::NetworkConnectionToWebProcess::domCookiesForHost):

  • Use NETWORK_PROCESS_MESSAGE_CHECK_COMPLETION) to validate host parameter.
9:31 PM Changeset in webkit [259104] by don.olmstead@sony.com
  • 4 edits in trunk

[MSVC] Remove experimental lambda processor usage
https://bugs.webkit.org/show_bug.cgi?id=209358

Reviewed by Fujii Hironori.

.:

Remove /experimental:newLambdaProcessor since WebKit is no longer able to build
with this setting as of Visual Studio 16.5.0.

  • Source/cmake/OptionsMSVC.cmake:

Source/WebCore:

Fix build for Visual Studio scoping issue for lambdas. The experimental lambada
processor did build this code but is now failing to build WebKit at all.

  • dom/DocumentStorageAccess.cpp:

(WebCore::DocumentStorageAccess::requestStorageAccess):

9:20 PM Changeset in webkit [259103] by Chris Dumez
  • 6 edits in trunk

REGRESSION: Unable to show Web Inspector on empty tabs in Safari
https://bugs.webkit.org/show_bug.cgi?id=209639
<rdar://problem/60937524>

Reviewed by Darin Adler.

Source/WebKit:

Make sure we launch the WebPageProxy's initial process when trying to inspect the
page using Web Inspector (i.e. WebInspectorProxy::connect() is called).

  • UIProcess/Inspector/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::WebInspectorProxy):

  • Take in a reference instead of a raw pointer as it could never be null.
  • Store the inspected page and add the message receiver to its process, even if the process is the dummy one (due to delayed process launch).

(WebKit::WebInspectorProxy::invalidate):
Call reset() to avoid code duplication.

(WebKit::WebInspectorProxy::connect):
Launch the page's initial process if necessary before trying to send IPC to that
process.

(WebKit::WebInspectorProxy::updateForNewPageProcess):
Take in a reference instead of a raw pointer as it could never be null.

  • UIProcess/Inspector/WebInspectorProxy.h:

(WebKit::WebInspectorProxy::create):
Take in a reference instead of a raw pointer as it could never be null.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::launchProcess):
Call WebInspectorProxy::reset() before launching and connecting to the new process.
This is important now that the WebInspectorProxy connect to the dummy process proxy.
We need to make sure the WebInspectorProxy disconnects from the dummy process proxy
because we connect it to the newly launched process.

(WebKit::WebPageProxy::finishAttachingToWebProcess):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
9:13 PM Changeset in webkit [259102] by Fujii Hironori
  • 7 edits in trunk

[Win] lld-link: error: /manifestdependency: is not allowed in .drectve
https://bugs.webkit.org/show_bug.cgi?id=204831

Reviewed by Ross Kirsling.

.:

  • Source/cmake/WebKitMacros.cmake (WEBKIT_EXECUTABLE): Added /manifestdependency linkder option if WIN32.

Source/JavaScriptCore:

  • shell/DLLLauncherMain.cpp: Removed /manifestdependency for Microsoft.VC80.CRT which seems leftover of Bug 116562 (r178530).

Tools:

  • TestWebKitAPI/win/main.cpp:
  • win/DLLLauncher/DLLLauncherMain.cpp:
8:07 PM Changeset in webkit [259101] by Devin Rousso
  • 18 edits in trunk/Source/WebInspectorUI

Web Inspector: add keyboard shortcut to tooltip of pinned tabs
https://bugs.webkit.org/show_bug.cgi?id=209640

Reviewed by Timothy Hatcher.

  • UserInterface/Views/TabBarItem.js:

(WI.TabBarItem):
(WI.TabBarItem.prototype.get displayName): Added.
(WI.TabBarItem.prototype.set displayName): Added.
(WI.TabBarItem.prototype.set title):
(WI.TabBarItem.prototype.titleDidChange): Deleted.

  • UserInterface/Views/GeneralTabBarItem.js:

(WI.GeneralTabBarItem.fromTabContentView):
(WI.GeneralTabBarItem.prototype.get displayName): Added.
(WI.GeneralTabBarItem.prototype.set displayName): Added.
(WI.GeneralTabBarItem.prototype.get title): Deleted.
(WI.GeneralTabBarItem.prototype.set title): Deleted.

  • UserInterface/Views/PinnedTabBarItem.js:

(WI.PinnedTabBarItem):
(WI.PinnedTabBarItem.fromTabContentView):
(WI.PinnedTabBarItem.titleDidChange): Deleted.

  • UserInterface/Views/TabBar.css:

(.tab-bar > .tabs > .item > .name): Added.
(body.window-inactive .tab-bar > .tabs > .item > .name): Added.
(.tab-bar > .tabs > .item > .name > .content): Added.
(.tab-bar > .tabs > .item:not(.selected):hover > .name): Added.
(.tab-bar > .tabs > .item:not(.disabled).selected > .name): Added.
(body.window-inactive .tab-bar > .tabs > .item:not(.disabled).selected > .name): Added.
(.tab-bar > .tabs > .item > .title): Deleted.
(body.window-inactive .tab-bar > .tabs > .item > .title): Deleted.
(.tab-bar > .tabs > .item > .title > .content): Deleted.
(.tab-bar > .tabs > .item:not(.selected):hover > .title): Deleted.
(.tab-bar > .tabs > .item:not(.disabled).selected > .title): Deleted.
(body.window-inactive .tab-bar > .tabs > .item:not(.disabled).selected > .title): Deleted.
Separate the shown name of the tab (displayName) from the tooltip text (title).

  • UserInterface/Views/SearchTabContentView.js:

(WI.SearchTabContentView.tabInfo):

  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.tabInfo):
Move the current title value to displayName and add a new title value with the
keyboard shortcut in parenthesis.

  • UserInterface/Views/AuditTabContentView.js:

(WI.AuditTabContentView.tabInfo):

  • UserInterface/Views/ConsoleTabContentView.js:

(WI.ConsoleTabContentView.tabInfo):

  • UserInterface/Views/ElementsTabContentView.js:

(WI.ElementsTabContentView.tabInfo):

  • UserInterface/Views/GraphicsTabContentView.js:

(WI.GraphicsTabContentView.tabInfo):

  • UserInterface/Views/LayersTabContentView.js:

(WI.LayersTabContentView.tabInfo):

  • UserInterface/Views/NetworkTabContentView.js:

(WI.NetworkTabContentView.tabInfo):

  • UserInterface/Views/SourcesTabContentView.js:

(WI.SourcesTabContentView.tabInfo):

  • UserInterface/Views/StorageTabContentView.js:

(WI.StorageTabContentView.tabInfo):

  • UserInterface/Views/TimelineTabContentView.js:

(WI.TimelineTabContentView.tabInfo):
Use displayName instead of title since the name is shown in the UI.

  • UserInterface/Base/Main.js:

(WI.contentLoaded):
Make the Settings Tab shortcut public.

  • Localizations/en.lproj/localizedStrings.js:
7:31 PM Changeset in webkit [259100] by Ryan Haddad
  • 2 edits in trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa

Unreviewed iOS API test gardening for rdar://59611168.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/QuickLook.mm:
7:31 PM Changeset in webkit [259099] by Ryan Haddad
  • 3 edits in trunk/Tools

Unreviewed test gardening for iOS API tests.

  • TestWebKitAPI/Tests/WebKitCocoa/ContextMenus.mm:

(TEST):

  • TestWebKitAPI/Tests/ios/FocusPreservationTests.mm:

(TestWebKitAPI::TEST):

7:05 PM Changeset in webkit [259098] by sbarati@apple.com
  • 2 edits in trunk/PerformanceTests

Make it so RAMification can be run with python 3 and 2 and that it recognizes the new JavaScriptCore.framework directory structure
https://bugs.webkit.org/show_bug.cgi?id=209636

Reviewed by Yusuke Suzuki.

  • JavaScriptCore builds now put the jsc shell under JavaScriptCore.framework/Helpers/jsc, not JavaScriptCore.framework/Resources/jsc
  • It's also helpful to be able to run RAMification with python3.7 and 2.7, since there are some contexts where 3.7 is all we have.
  • JetStream2/RAMification.py:

(frameworkPathFromExecutablePath):
(BaseRunner.processLine):
(LocalRunner.runOneTest):
(main.runTestList):
(main):

6:35 PM Changeset in webkit [259097] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Regression: Unable to trigger context menu on empty tabs in Safari
https://bugs.webkit.org/show_bug.cgi?id=209628

Reviewed by Geoffrey Garen.

Launch the WebPageProxy's initial process if it starts processing mouse events.
As an optimization, the WebPageProxy only launches its initial process when it
really needs to.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::handleMouseEvent):

5:34 PM Changeset in webkit [259096] by Ross Kirsling
  • 6 edits in trunk/Source/JavaScriptCore

[JSC] Rename ANDEQUAL to BITANDEQUAL (etc.) throughout frontend
https://bugs.webkit.org/show_bug.cgi?id=209626

Reviewed by Mark Lam.

Our frontend refers to &= |= ^= as ANDEQUAL OREQUAL XOREQUAL, leaving the bitwiseness implied.
It's important to resolve this ambiguity now, as &&= ||= ??= are expected to reach Stage 3 next week.

  • bytecompiler/NodesCodegen.cpp:

(JSC::emitReadModifyAssignment):

  • parser/Lexer.cpp:

(JSC::Lexer<T>::lexWithoutClearingLineTerminator):

  • parser/Nodes.h:
  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseAssignmentExpression):

  • parser/ParserTokens.h:
5:13 PM Changeset in webkit [259095] by Peng Liu
  • 2 edits in trunk/Source/WebCore

Swipe down gestures cause the video layer to stick for a moment before bouncing back into place
https://bugs.webkit.org/show_bug.cgi?id=209610

Reviewed by Eric Carlson.

Fix an exit fullscreen animation issue by firing the end fullscreen event
to let the page change the video element back to its original position/size
before exiting fullscreen.

Covered by existing tests.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::dispatchEvent):
(WebCore::HTMLMediaElement::exitFullscreen):

5:11 PM Changeset in webkit [259094] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: RTL: ArrowLeft and ArrowRight keys select wrong navigation bar items
https://bugs.webkit.org/show_bug.cgi?id=209617

Reviewed by Devin Rousso.

  • UserInterface/Views/NavigationBar.js:

(WI.NavigationBar.prototype._keyDown):
Reverse direction for RTL mode.

4:54 PM Changeset in webkit [259093] by commit-queue@webkit.org
  • 8 edits in trunk/Source

Fix various compiler warnings
https://bugs.webkit.org/show_bug.cgi?id=209438

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-03-26
Reviewed by Darin Adler.

Source/WebCore:

  • dom/Element.cpp: Fix -Wunused-variable warnings.

(WebCore::Element::webAnimations const):
(WebCore::Element::cssAnimations const):
(WebCore::Element::transitions const):
(WebCore::Element::hasCompletedTransitionsForProperty const):
(WebCore::Element::hasRunningTransitionsForProperty const):
(WebCore::Element::hasRunningTransitions const):

  • page/scrolling/ThreadedScrollingTree.cpp: Fix -Wunused-variable warning.

(WebCore::ThreadedScrollingTree::scrollingTreeNodeDidScroll):

  • platform/network/HTTPParsers.h: Fix -Wredundant-move warning.

(WebCore::parseAccessControlAllowList):

Source/WebKit:

  • UIProcess/API/C/WKPage.cpp: Suppress -Wdeprecated-declaration warnings.

(WKPageSetPageLoaderClient):
(WKPageSetPagePolicyClient):

Source/WTF:

Suppress -Wclass-memaccess warning. ConcurrentBuffer is documented to support types that are
bit-copyable but not copy-constructable. This is strange, but who am I to question it?

  • wtf/ConcurrentBuffer.h:
4:27 PM Changeset in webkit [259092] by msaboff@apple.com
  • 14 edits
    1 add
    1 delete in trunk

Refactor YARR Stack Overflow Checks
https://bugs.webkit.org/show_bug.cgi?id=209435
rdar://problem/58988252

Reviewed by Mark Lam.

JSTests:

Added a new test and removed a now obsolete test.

  • stress/regexp-compile-oom.js: Removed because the test is no longer valid.

Previously when therer where different stack check mechanisims we failed different.
This test was based on the different failure modes. With these changes, most of
the contain subtests no longer throw as this test expects.

  • stress/regexp-huge-oom.js: Added.

(shouldBe):
(shouldThrow):

Source/JavaScriptCore:

Refactored stack checks in YARR code including adding a stack check to the YARR JIT'ed code.
The C++ code including the parser, byte code compiler and interpreter now all use StackCheck.
The JIT'ed code needs a stack limit passed via a parameter since the JIT'ed code can be
called from the compiler thread when compiling DFG / FTL code.

Instead of adding a new parameter, consolidated the two pattern context buffer values, buffer
pointer and size, with the new stack limit into a new MatchingContextHolder, an RAII object.
The MatchingContextHolder constructor uses either the VM stack limit or the current thread's
stack limit depending on how it is called.

  • runtime/RegExp.cpp:

(JSC::RegExp::finishCreation):
(JSC::RegExp::byteCodeCompileIfNecessary):
(JSC::RegExp::compile):
(JSC::RegExp::matchConcurrently):
(JSC::RegExp::compileMatchOnly):

  • runtime/RegExp.h:
  • runtime/RegExpInlines.h:

(JSC::RegExp::matchInline):
(JSC::PatternContextBufferHolder::PatternContextBufferHolder): Deleted.
(JSC::PatternContextBufferHolder::~PatternContextBufferHolder): Deleted.
(JSC::PatternContextBufferHolder::buffer): Deleted.
(JSC::PatternContextBufferHolder::size): Deleted.
(): Deleted.

  • yarr/Yarr.h:
  • yarr/YarrInterpreter.cpp:

(JSC::Yarr::Interpreter::matchDisjunction):
(JSC::Yarr::Interpreter::isSafeToRecurse):

  • yarr/YarrJIT.cpp:

(JSC::Yarr::MatchingContextHolder::MatchingContextHolder):
(JSC::Yarr::MatchingContextHolder::~MatchingContextHolder):
(JSC::Yarr::YarrGenerator::initParenContextFreeList):
(JSC::Yarr::YarrGenerator::alignCallFrameSizeInBytes):
(JSC::Yarr::YarrGenerator::compile):
(JSC::Yarr::YarrGenerator::initCallFrame): Deleted.

  • yarr/YarrJIT.h:

(JSC::Yarr::MatchingContextHolder::offsetOfStackLimit):
(JSC::Yarr::MatchingContextHolder::offsetOfPatternContextBuffer):
(JSC::Yarr::MatchingContextHolder::offsetOfPatternContextBufferSize):
(JSC::Yarr::YarrCodeBlock::execute):

  • yarr/YarrPattern.cpp:

(JSC::Yarr::YarrPatternConstructor::YarrPatternConstructor):
(JSC::Yarr::YarrPatternConstructor::isSafeToRecurse):
(JSC::Yarr::YarrPattern::compile):
(JSC::Yarr::YarrPattern::YarrPattern):
(JSC::Yarr::YarrPatternConstructor::isSafeToRecurse const): Deleted.

  • yarr/YarrPattern.h:

LayoutTests:

Updated test for improved stack overflow checking.

  • js/script-tests/stack-overflow-regexp.js:

(shouldThrow.recursiveCall):
(shouldThrow):
(recursiveCall):

  • js/stack-overflow-regexp-expected.txt:
4:10 PM Changeset in webkit [259091] by dbates@webkit.org
  • 3 edits in trunk/Source/WebKit

Rename -_isInteractingWithFocusedElement, add it to the header, and replace calls to hasFocusedElement() with it
https://bugs.webkit.org/show_bug.cgi?id=209623

Reviewed by Simon Fraser.

Rename -_isInteractingWithFocusedElement to -_hasFocusedElement. For now, standardize around
the convention of using -_hasFocusedElement instead of hasFocusedElement(_focusedElementInformation).

I think in the ideal world -_hasFocusedElement would not exist and instead -_elementDidBlur would
reset the state of _focusedElementInformation to what it was when a page is first loaded. I will
look to do this in a subsequent patch because it is risky. Doing so requires a careful audit of all
call sites that use _focusedElementInformation as they may have inadvertently depended on stale state.

While I am here, I added -_hasFocusedElement to WKContentViewInteraction.h so that I can make use
of it in the fix for <rdar://problem/60871807>.

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

(-[WKContentView _didGetTapHighlightForRequest:color:quads:topLeftRadius:topRightRadius:bottomLeftRadius:bottomRightRadius:nodeHasBuiltInClickHandling:]):
(-[WKContentView inputViewForWebView]):
(-[WKContentView _selectionClipRect]):
(-[WKContentView gestureRecognizerShouldBegin:]):
(-[WKContentView canPerformActionForWebView:withSender:]):
(-[WKContentView _hasFocusedElement]):
(-[WKContentView changeSelectionWithGestureAt:withGesture:withState:withFlags:]):
(-[WKContentView selectPositionAtPoint:completionHandler:]):
(-[WKContentView selectPositionAtBoundary:inDirection:fromPoint:completionHandler:]):
(-[WKContentView selectTextWithGranularity:atPoint:completionHandler:]):
(-[WKContentView updateSelectionWithExtentPoint:completionHandler:]):
(-[WKContentView updateSelectionWithExtentPoint:withBoundary:completionHandler:]):
(-[WKContentView setSelectedTextRange:]):
(-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:activityStateChanges:userObject:]):
(-[WKContentView _updateInputContextAfterBlurringAndRefocusingElement]):
(-[WKContentView _updateSelectionAssistantSuppressionState]):
(-[WKContentView _autofillContext]):
(hasFocusedElement): Deleted.
(-[WKContentView _isInteractingWithFocusedElement]): Deleted.

4:09 PM Changeset in webkit [259090] by sihui_liu@apple.com
  • 3 edits in trunk/Source/WebCore

REGRESSION(r259034): access to null UniqueIDBDatabase in UniqueIDBDatabaseConnection::~UniqueIDBDatabaseConnection()
https://bugs.webkit.org/show_bug.cgi?id=209618
<rdar://problem/60919105>

Reviewed by Geoffrey Garen.

It's possible UniqueIDBDatabase is destroyed before UniqueIDBDatabaseConnection in
UniqueIDBDatabase::connectionClosedFromClient, so it's better not access
UniqueIDBDatabase in ~UniqueIDBDatabaseConnection() and let UniqueIDBDatabaseConnection have a IDBServer member.

  • Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:

(WebCore::IDBServer::UniqueIDBDatabaseConnection::UniqueIDBDatabaseConnection):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::~UniqueIDBDatabaseConnection):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::abortTransactionWithoutCallback):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::connectionClosedFromClient):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::didFireVersionChangeEvent):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::didFinishHandlingVersionChange):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::establishTransaction):

  • Modules/indexeddb/server/UniqueIDBDatabaseConnection.h:

(WebCore::IDBServer::UniqueIDBDatabaseConnection::database):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::server):

4:06 PM Changeset in webkit [259089] by dbates@webkit.org
  • 6 edits in trunk/Source

Remove hitTestOrder from ElementContext as it is no longer need
https://bugs.webkit.org/show_bug.cgi?id=209561
<rdar://problem/60888305>

Reviewed by Wenson Hsieh.

Revert the temporary workaround made in r257749 as <rdar://problem/59602885>
Source/WebCore:

has been fixed.

  • dom/ElementContext.h:

(WebCore::ElementContext::encode const):
(WebCore::ElementContext::decode):

Source/WebKit:

has been fixed: WebKit no longer needs to explicitly annotate the resulting
elements found in textInputContextsInRect() with their hit test order.
Instead client code has been updated to assume these elements are returned
in hit test order.

  • UIProcess/API/Cocoa/_WKTextInputContext.mm:

(-[_WKTextInputContext _hitTestOrder]): Deleted.

  • UIProcess/API/Cocoa/_WKTextInputContextInternal.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::textInputContextsInRect):
(WebKit::WebPage::contextForElement const):

3:57 PM Changeset in webkit [259088] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 Release ] 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:
3:40 PM Changeset in webkit [259087] by Alan Coon
  • 7 edits in branches/safari-609.2.1.2-branch/Source

Cherry-pick r258267, r258062, r258038, r258381, r255997.

3:39 PM Changeset in webkit [259086] by Alan Coon
  • 8 edits in branches/safari-609.2.1.2-branch/Source

Versioning.

3:37 PM Changeset in webkit [259085] by timothy_horton@apple.com
  • 9 edits in trunk/Source

Pinch to zoom gesture has to be repeated twice if the cursor isn't moved between gestures
https://bugs.webkit.org/show_bug.cgi?id=203132
<rdar://problem/27439348>

Reviewed by Simon Fraser.

  • page/EventHandler.h:
  • UIProcess/WebPageProxy.cpp:
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/mac/ViewGestureControllerMac.mm:

(WebKit::ViewGestureController::endMagnificationGesture):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::didEndMagnificationGesture):
Plumb the end of a pinch-zoom gesture to EventHandler.

3:22 PM Changeset in webkit [259084] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 ] http/tests/eventsource/eventsource-reconnect-during-navigate-crash.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209622

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:01 PM Changeset in webkit [259083] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Regression(r258949) Safari sometimes crashes when becoming the foreground application
https://bugs.webkit.org/show_bug.cgi?id=209620
<rdar://problem/60930466>

Reviewed by Per Arne Vollan.

Make sure m_activationObserver gets unregistered on all Cocoa platforms, not just on iOS.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::unregisterNotificationObservers):

2:50 PM Changeset in webkit [259082] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk1 ] fast/loader/child-frame-add-after-back-forward.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=209621

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
2:36 PM Changeset in webkit [259081] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

[StressGC] ASSERTION FAILED: m_wrapper under WebCore::HTMLMediaElement::dispatchEvent
https://bugs.webkit.org/show_bug.cgi?id=209616
<rdar://problem/60541294>

Reviewed by Saam Barati.

HTMLMediaElement::hasPendingActivity() should return true if there are pending tasks on
m_playbackTargetIsWirelessQueue since the tasks we enqueue there dispatch events.

No new tests, covered by media/modern-media-controls/placard-support/placard-support-airplay.html.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::hasPendingActivity const):

2:33 PM Changeset in webkit [259080] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

[ Mac wk1] ASSERTION FAILED: m_wrapper under WebCore::XMLHttpRequestUpload::dispatchProgressEvent
https://bugs.webkit.org/show_bug.cgi?id=209560
<rdar://problem/60887773>

Reviewed by Geoffrey Garen.

XMLHttpRequest::hasPendingActivity() was returning false if the XMLHttpRequest object did not
have any relevant event listeners. However, the XMLHttpRequestUpload's wrapper lifetime is tried
to the lifetime of its XMLHttpRequest wrapper. As a result, both the XMLHttpRequest and
XMLHttpRequestUpload wrappers could get garbage collected if the XMLHttpRequest did not have a
relevant listener, even though XMLHttpRequestUpload may have a relevant event listeners. We would
then hit the assertion when trying to fire an event on this XMLHttpRequestUpload object.

To address the issue, we update XMLHttpRequest::hasPendingActivity() to return false if both
XMLHttpRequest AND XMLHttpRequestUpload have no relevant event listeners.

No new tests, covered by imported/w3c/web-platform-tests/xhr/send-response-upload-event-progress.htm

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::hasPendingActivity const):

  • xml/XMLHttpRequestUpload.cpp:

(WebCore::XMLHttpRequestUpload::eventListenersDidChange):

  • xml/XMLHttpRequestUpload.h:
2:25 PM Changeset in webkit [259079] by rniwa@webkit.org
  • 3 edits
    2 adds in trunk

Crash in RadioButtonGroups::requiredStateChanged
https://bugs.webkit.org/show_bug.cgi?id=209585

Reviewed by Zalan Bujtas.

Source/WebCore:

Like r254722, radio group could be null in RadioButtonGroups::requiredStateChanged. Added a null check.

Test: fast/forms/update-required-state-on-radio-before-finalizing-tree-insertion-crash.html

  • dom/RadioButtonGroups.cpp:

(WebCore::RadioButtonGroups::requiredStateChanged):

LayoutTests:

Added a regression test.

  • fast/forms/update-required-state-on-radio-before-finalizing-tree-insertion-crash-expected.txt: Added.
  • fast/forms/update-required-state-on-radio-before-finalizing-tree-insertion-crash.html: Added.
2:10 PM Changeset in webkit [259078] by dbates@webkit.org
  • 4 edits in trunk

WebPage::selectPositionAtPoint() does not focus an element in a non-focused frame
https://bugs.webkit.org/show_bug.cgi?id=209559
<rdar://problem/60887055>

Reviewed by Wenson Hsieh.

Source/WebKit:

Call setFocusedFrameBeforeSelectingTextAtLocation() in WebPage::selectPositionAtPoint() to
update the focused frame before performing the selection. This way the target element will
be focused by the selection, if not already focused.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::selectPositionAtPoint):

Tools:

Add a test.

  • TestWebKitAPI/Tests/ios/UIWKInteractionViewProtocol.mm:

(TEST):

1:59 PM Changeset in webkit [259077] by Alan Coon
  • 1 copy in tags/Safari-610.1.7.6

Tag Safari-610.1.7.6.

1:57 PM Changeset in webkit [259076] by Fujii Hironori
  • 6 edits in trunk

WebKitTestRunner should enable ResourceLoadStatistics also for non-Cocoa ports
https://bugs.webkit.org/show_bug.cgi?id=209410

Reviewed by Youenn Fablet.

Source/WebKit:

NetworkSession's member variables for ResourceLoadStatistics were
initialized only for Cocoa port. They also should be initialized
for non-Cocoa ports.

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::NetworkSession): Added member initializers for ResourceLoadStatistics.

  • NetworkProcess/NetworkSession.h: Have m_resourceLoadStatisticsDirectory only if ENABLE(RESOURCE_LOAD_STATISTICS).
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::NetworkSessionCocoa): Removed the code to initialize member variables for ResourceLoadStatistics.

Tools:

Cocoa WebKitTestRunner always enables ResourceLoadStatistics.
Other ports should do so.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::platformAdjustContext): Enable ResourceLoadStatistics
by using WKWebsiteDataStoreSetResourceLoadStatisticsEnabled.

1:48 PM Changeset in webkit [259075] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Catalina ] compositing/clipping/border-radius-async-overflow-stacking.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209619

Unreviewed test gardening.

  • platform/mac/TestExpectations:
1:45 PM Changeset in webkit [259074] by Kate Cheney
  • 4 edits in trunk

Guard AppBound domain protections with PLATFORM(iOS_FAMILY)
https://bugs.webkit.org/show_bug.cgi?id=209615
<rdar://problem/60931014>

Reviewed by Darin Adler.

Source/WebKit:

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setIsNavigatingToAppBoundDomain):

Tools:

Tests should only be run on iOS.

  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:
1:43 PM Changeset in webkit [259073] by cturner@igalia.com
  • 2 edits in trunk/Source/WebCore

[GStreamer] Fix missing NULL-check in setSyncOnClock
https://bugs.webkit.org/show_bug.cgi?id=209609

Unreviewed, simple fix.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::setSyncOnClock): Some systems are configured so that
audio sinks are not available. Make sure not to crash when asking
to sync with a NULL sink.

1:33 PM Changeset in webkit [259072] by Brent Fulgham
  • 4 edits in trunk/Source/WebKit

[iOS] Deny mach lookup to 'com.apple.webinspector' in the WebContent process.
https://bugs.webkit.org/show_bug.cgi?id=207170
<rdar://problem/59134038>

Reviewed by Per Arne Vollan.

We now dynamically add access to the 'com.apple.webinspector' service, so we should remove the blanket
allow rule from the sandbox.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
1:29 PM Changeset in webkit [259071] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit

REGRESSION (r258989): ASSERTION FAILED: !isMissingPostLayoutData in WebKit::EditorState::PostLayoutData
https://bugs.webkit.org/show_bug.cgi?id=209570
<rdar://problem/60895050>

Reviewed by Darin Adler.

Send an editor state update before responding to a request for position information
to ensure that the UI process has up-to-date selection state. Otherwise, calling code
that uses this information to determine whether to query for the selection text will
cause an assertion failure.

This fixes the test failure TestWebKitAPI.ActionSheetTests.DataDetectorsLinkIsNotPresentedAsALink
caused by r258989. Following r258989 WebKit now accurately reports whether editor state
has or does not have post-layout details. Prior to this the default EditorState was marked
as having post-layout data even if it did not actually have such data.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getPositionInformation):
(WebKit::WebPage::requestPositionInformation):

1:27 PM Changeset in webkit [259070] by commit-queue@webkit.org
  • 5 edits in trunk/LayoutTests

[ iOS ] http/tests/security/contentSecurityPolicy/block-all-mixed-content/data-url-iframe-in-main-frame.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=206763

Patch by Alex Christensen <achristensen@webkit.org> on 2020-03-26
Reviewed by Youenn Fablet.

  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/data-url-iframe-in-main-frame.html:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/resources/frame-with-data-url-iframe.html:
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/data-url-iframe-in-main-frame-expected.txt:
1:27 PM Changeset in webkit [259069] by keith_miller@apple.com
  • 8 edits
    1 add in trunk

TypedArrays should more gracefully handle OOM during slowDownAndWasteMemory
https://bugs.webkit.org/show_bug.cgi?id=209611

Reviewed by Tadeu Zagallo.

JSTests:

  • stress/typed-array-oom-in-buffer-accessor.js: Added.

(try.foo):

Source/JavaScriptCore:

Right now if we cannot allocate an ArrayBuffer for a TypedArray we
crash. However, since we use the primitive gigacage for
ArrayBuffer allocations we can likely still allocate an OOM error
object. In order to do this some changes were needed in
slowDownAndWasteMemory. Namely, we should not allocate the
butterfly until we know we have an ArrayBuffer. I also check that
all the transitive callers of slowDownAndWasteMemory can handle
failure.

Lastly, this patch makes it so failure to allocate an ArrayBuffer
for a TypeArray during DFG watchpoint addition causes the code
block to be thrown away, rather than crash the process.

  • API/JSTypedArray.cpp:

(JSObjectGetTypedArrayBytesPtr):
(JSObjectGetTypedArrayBuffer):

  • bytecode/Watchpoint.h:
  • dfg/DFGDesiredWatchpoints.cpp:

(JSC::DFG::ArrayBufferViewWatchpointAdaptor::add):

  • runtime/GenericTypedArrayViewInlines.h:

(JSC::GenericTypedArrayView<Adaptor>::tryCreate):

  • runtime/JSArrayBufferView.cpp:

(JSC::JSArrayBufferView::unsharedBuffer):
(JSC::JSArrayBufferView::unsharedJSBuffer):
(JSC::JSArrayBufferView::possiblySharedJSBuffer):
(JSC::JSArrayBufferView::slowDownAndWasteMemory):
(JSC::JSArrayBufferView::possiblySharedImpl):

  • runtime/JSArrayBufferViewInlines.h:

(JSC::JSArrayBufferView::byteOffsetImpl):

1:25 PM Changeset in webkit [259068] by Chris Dumez
  • 4 edits in trunk

REGRESSION: ASSERTION FAILED: m_wrapper on storage/indexeddb/modern/abort-requests tests
https://bugs.webkit.org/show_bug.cgi?id=209499
<rdar://problem/60842165>

Reviewed by Alex Christensen.

Source/WebCore:

IDBTransaction::hasPendingActivity() was failing to consult ActiveDOMObject::hasPendingActivity()
so the JS wrapper would get garbage collected even though the ActiveDOMObject base class was
aware of some pending activity.

No new tests, unskipped existing tests.

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::hasPendingActivity const):

LayoutTests:

Unskip tests that should no longer be flaky.

  • platform/mac-wk1/TestExpectations:
1:22 PM Changeset in webkit [259067] by Ryan Haddad
  • 2 edits in branches/safari-609-branch/LayoutTests

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
1:12 PM Changeset in webkit [259066] by Russell Epstein
  • 1 copy in tags/Safari-609.2.1.2.2

Tag Safari-609.2.1.2.2.

12:58 PM Changeset in webkit [259065] by rniwa@webkit.org
  • 4 edits
    2 adds in trunk

Sequential focus navigation can't get out of a descendent of a slot element in a document tree
https://bugs.webkit.org/show_bug.cgi?id=199633

Reviewed by Darin Adler.

Source/WebCore:

The bug was caused by slot element outside a shadow tree not being treated as a focus navigation
scope owner as specified in the HTML5 specification:
https://html.spec.whatwg.org/multipage/interaction.html#focus-navigation-scope-owner

Fixed the bug by treating it as such unless custom focusing behavior is used.

Test: fast/shadow-dom/focus-across-slot-outside-shadow-tree.html

  • page/FocusController.cpp:

(WebCore::isFocusScopeOwner):

LayoutTests:

Skip the newly added test in iOS since eventSender isn't supported on iOS.

  • platform/ios/TestExpectations:
  • fast/shadow-dom/focus-across-slot-outside-shadow-tree-expected.txt: Added.
  • fast/shadow-dom/focus-across-slot-outside-shadow-tree.html: Added.
12:26 PM Changeset in webkit [259064] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] status-bubble for tester queues should point to tester queue while waiting in queue (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=209598

Unreviewed follow-up fix.

  • BuildSlaveSupport/ews-app/ews/views/statusbubble.py:

(StatusBubble._build_bubble): Display the tester name in tester's status-bubble hover-over message.

12:05 PM Changeset in webkit [259063] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] status-bubble for tester queues should point to tester queue while waiting in queue
https://bugs.webkit.org/show_bug.cgi?id=209598

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-app/ews/views/statusbubble.py:

(StatusBubble._build_bubble):

12:00 PM Changeset in webkit [259062] by Kate Cheney
  • 2 edits in trunk/Source/WebCore

ScopeRuleSets::initializeUserStyle() should not add console logging if there are no injected user style sheets
https://bugs.webkit.org/show_bug.cgi?id=209548
<rdar://problem/60851745>

Reviewed by Darin Adler.

Logging when there are no injected user style sheets is unnecessary and confusing.

  • style/StyleScopeRuleSets.cpp:

(WebCore::Style::ScopeRuleSets::initializeUserStyle):

11:58 AM Changeset in webkit [259061] by david_quesada@apple.com
  • 11 edits in trunk/Source/WebKit

Add SPI to specify whether file upload panels are uploading to an enterprise-managed destination
https://bugs.webkit.org/show_bug.cgi?id=209607
rdar://problem/60888386

Reviewed by Darin Adler.

When presenting the file upload panel, set the UIDocumentPickerViewController.isContentManaged
property to a value ultimately provided by the UI delegate. This can be used to prevent the upload
of personal data to enterprise websites on managed devices configured to prevent such a transfer.

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/PageClient.h:

(WebKit::PageClient::handleRunOpenPanel):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::runOpenPanel):

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

(WebKit::PageClientImpl::handleRunOpenPanel):

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

(-[WKContentView _showRunOpenPanel:frameInfo:resultListener:]):
(-[WKContentView fileUploadPanelDestinationIsManaged:]):
(-[WKContentView _showRunOpenPanel:resultListener:]): Deleted.

  • UIProcess/ios/forms/WKFileUploadPanel.h:
  • UIProcess/ios/forms/WKFileUploadPanel.mm:

(-[WKFileUploadPanel showFilePickerMenu]):

11:44 AM Changeset in webkit [259060] by Chris Fleizach
  • 2 edits in trunk/Tools

AX: WKTR: Don't update isolated tree mode behavior if not required
https://bugs.webkit.org/show_bug.cgi?id=209555
<rdar://problem/60885094>

Reviewed by Darin Adler.

If the isolated tree mode has not changed, then we should not poke at the mechanisms for turning it on/off.
This might have the side effect of turning on accessibility unexpectedly.

  • WebKitTestRunner/InjectedBundle/AccessibilityController.cpp:

(WTR::AccessibilityController::setAccessibilityIsolatedTreeMode):

11:41 AM Changeset in webkit [259059] by Alexey Shvayka
  • 9 edits
    45 adds
    1 delete in trunk/LayoutTests

Sync wpt/domxpath and re-sync wpt/css/cssom-view from upstream
https://bugs.webkit.org/show_bug.cgi?id=209574

Reviewed by Antti Koivisto.

web-platform-tests revision: 1137f4bff2b7

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/css/cssom-view/*: Updated.
  • web-platform-tests/domxpath/*: Added.
11:40 AM Changeset in webkit [259058] by Alan Coon
  • 7 edits in branches/safari-609.2.1.2-branch/Source

Revert cherry-picks of r258267, r258062, r258038, r258381, r255997.

11:40 AM Changeset in webkit [259057] by Alan Coon
  • 2 edits in branches/safari-609.2.1.2-branch/Source/WebCore

Revert r258246. rdar://problem/60880507

11:00 AM Changeset in webkit [259056] by dino@apple.com
  • 2 edits in trunk/Source/WebKit

Force Touch preview on file:/// URL works while clicking on the URL is blocked
https://bugs.webkit.org/show_bug.cgi?id=209589
<rdar://57687893>

Reviewed by Antoine Quint.

The immediate action for links should never trigger on file: URLs.

  • UIProcess/mac/WKImmediateActionController.mm:

(-[WKImmediateActionController _defaultAnimationController]):

10:58 AM Changeset in webkit [259055] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[win] animations/many-pseudo-animations.html is failing
https://bugs.webkit.org/show_bug.cgi?id=209601

Unreviewed test gardening.

  • platform/win/TestExpectations: Mark test as failing.
10:51 AM Changeset in webkit [259054] by ap@apple.com
  • 369 edits
    20 copies
    8 deletes in trunk

REGRESSION(r259042): It creates some test failures (Requested by youenn on #webkit).
Roll back the patch.

10:47 AM Changeset in webkit [259053] by aboya@igalia.com
  • 2 edits in trunk/LayoutTests

Unreviewed GTK debug multimedia gardening
https://bugs.webkit.org/show_bug.cgi?id=209603

I need a clean baseline to check for regressions.

  • platform/gtk/TestExpectations:
10:47 AM Changeset in webkit [259052] by pvollan@apple.com
  • 5 edits in trunk

[iOS] Deny mach lookup access to frontboard services in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=209604

Reviewed by Darin Adler.

Source/WebKit:

Deny mach lookup access to "com.apple.frontboard.systemappservices" in the WebContent process on iOS.

Test: fast/sandbox/ios/sandbox-mach-lookup.html

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

LayoutTests:

  • fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
  • fast/sandbox/ios/sandbox-mach-lookup.html:
10:44 AM Changeset in webkit [259051] by Antti Koivisto
  • 5 edits
    2 adds in trunk

REGRESSION (r254669): Expand media button doesn't work on first try on photos on reddit.com
https://bugs.webkit.org/show_bug.cgi?id=209590
<rdar://problem/60461809>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-aspect-ratio-expected.txt:

Failure here shifts to a different subtest. This one uses fractional pixels and LayoutUnit accuracy is not sufficient to compute the exact ratio.

Source/WebCore:

Image intrinsic size computed from width/height attributes is ignored during preferred width computation
(used for float sizing in this case). This creates a mismatch between layout and preferred width computation,
causing the final image size to be miscomputed.

Test: fast/images/preferred-width-computation-with-attribute-intrinsic-size.html

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::computePreferredLogicalWidths const):

Compute attribute based intrinsic size already during preferred width computation if needed.

LayoutTests:

  • fast/images/preferred-width-computation-with-attribute-intrinsic-size-expected.html: Added.
  • fast/images/preferred-width-computation-with-attribute-intrinsic-size.html: Added.
10:42 AM Changeset in webkit [259050] by Nikos Mouchtaris
  • 2 edits in trunk/Source/WebCore

Remove manual redacting of billing contact after wallet fix for rdar://problem/59075234
https://bugs.webkit.org/show_bug.cgi?id=209557
<rdar://problem/60883506>

Reviewed by Andy Estes.

Removed manual redaction of billing address after wallet fixed
their redaction code.

No new tests. Current tests cover this functionality.

  • Modules/applepay/cocoa/PaymentMethodCocoa.mm:

(WebCore::convert):

10:04 AM Changeset in webkit [259049] by pvollan@apple.com
  • 16 edits
    1 add in trunk/Source

[iOS] Adopt ScreenProperties class.
https://bugs.webkit.org/show_bug.cgi?id=191767

Reviewed by Brent Fulgham.

Source/WebCore:

On macOS, the ScreenProperties class is used to collect screen properties in the UI process
and forward these to the Web process. We should also do this on iOS, in order to be able
to block frontboard services.

No new tests. Covered by existing tests.

  • Sources.txt:
  • platform/PlatformScreen.h:
  • platform/ScreenProperties.h:

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

  • platform/ios/PlatformScreenIOS.mm:

(WebCore::screenIsMonochrome):
(WebCore::screenHasInvertedColors):
(WebCore::screenSupportsExtendedColor):
(WebCore::collectScreenProperties):

  • platform/mac/PlatformScreenMac.mm:

(WebCore::primaryOpenGLDisplayMask):
(WebCore::displayMaskForDisplay):
(WebCore::primaryGPUID):
(WebCore::gpuIDForDisplay):
(WebCore::screenIsMonochrome):
(WebCore::screenHasInvertedColors):
(WebCore::screenDepth):
(WebCore::screenDepthPerComponent):
(WebCore::screenRectForDisplay):
(WebCore::screenRect):
(WebCore::screenAvailableRect):
(WebCore::screenColorSpace):
(WebCore::screenSupportsExtendedColor):
(WebCore::screenProperties): Deleted.
(WebCore::primaryScreenDisplayID): Deleted.
(WebCore::setScreenProperties): Deleted.
(WebCore::screenData): Deleted.
(WebCore::getScreenProperties): Deleted.

Source/WebKit:

Make relevent macOS platform code cross platform.

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::setScreenProperties):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
9:58 AM WebKitGTK/2.28.x edited by Michael Catanzaro
(diff)
9:51 AM Changeset in webkit [259048] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, make GC a bit less aggressive on test to decrease runtime.

  • http/tests/inspector/network/har/har-page-aggressive-gc.html:
9:26 AM Changeset in webkit [259047] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

MESSAGE_CHECK base macros should use UNLIKELY()
<https://webkit.org/b/209581>
<rdar://problem/60901307>

Reviewed by Youenn Fablet.

  • Platform/IPC/Connection.h:

(MESSAGE_CHECK_COMPLETION_BASE):
(MESSAGE_CHECK_WITH_RETURN_VALUE_BASE):

  • Add UNLIKELY() macro since these code paths should not be taken under normal conditions.
  • Add curly braces to multi-line do-while loops per WebKit style guidelines, and is required after moving the ASSERT().
  • Move the ASSERT() outside the if statement since that's more idomatic.
9:12 AM Changeset in webkit [259046] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[Cocoa] Fix incorrect rebase
https://bugs.webkit.org/show_bug.cgi?id=209600

Reviewed by Brent Fulgham.

A rebase went wrong in <https://bugs.webkit.org/show_bug.cgi?id=203214> and placed the method call to
enableRemoteInspectorIfNeeded() in the wrong method. It should be called in WebProcessProxy::didFinishLaunching.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::mayBecomeUnresponsive):
(WebKit::WebProcessProxy::didFinishLaunching):

8:24 AM Changeset in webkit [259045] by Philippe Normand
  • 2 edits in trunk/Tools

[Flatpak SDK] Pass all the arguments of build-webkit to webkit-flatpak
https://bugs.webkit.org/show_bug.cgi?id=209558

Reviewed by Žan Doberšek.

When using flatpak some of the arguments we pass to build-webkit
are not meant to be used by that script but by webkit-flatpak. However we are
not passing all of them to webkit-flatpak but just the configuration ones
(port, release/debug...). This means that all the arguments that configure the
behaviour of webkit-flatpak are lost.

  • Scripts/webkitdirs.pm:

(runInFlatpak): Filter-out Flatpak SDK-specific arguments to a
separate array, passed to webkit-flatpak.

8:22 AM Changeset in webkit [259044] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[GTK] Crash in WebKit::LayerTreeHost::LayerTreeHost with bubblewrap sandbox enabled
https://bugs.webkit.org/show_bug.cgi?id=209106

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-03-26
Reviewed by Carlos Garcia Campos.

Don't bind the WaylandCompositor socket unless we're running under Wayland and it's actually
started successfully.

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::bindWayland):

7:31 AM Changeset in webkit [259043] by commit-queue@webkit.org
  • 7 edits in trunk

Unreviewed, reverting r259035.
https://bugs.webkit.org/show_bug.cgi?id=209597

broke windows layout-tests (Requested by aakashjain on
#webkit).

Reverted changeset:

"[Win] lld-link: error: /manifestdependency: is not allowed in
.drectve"
https://bugs.webkit.org/show_bug.cgi?id=204831
https://trac.webkit.org/changeset/259035

4:43 AM Changeset in webkit [259042] by youenn@apple.com
  • 367 edits
    8 adds
    20 deletes in trunk

Bump boringssl version to M82
https://bugs.webkit.org/show_bug.cgi?id=209538

Reviewed by Eric Carlson.

  • CMakeLists.txt:
  • Source/third_party/boringssl: Updated.
  • WebKit/0001-Tweaking-boringssl-include-of-internal.h.patch: Removed.
  • libwebrtc.xcodeproj/project.pbxproj:
3:39 AM Changeset in webkit [259041] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

VideoFullscreenManagerProxy::setupFullscreenWithID should message check videoLayerID
<https://webkit.org/b/209578>
<rdar://problem/60703503>

Reviewed by Eric Carlson.

  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:

(MESSAGE_CHECK): Define (and undef) new macro for assertions.
(WebKit::VideoFullscreenManagerProxy::setupFullscreenWithID):
Change ASSERT() to MESSAGE_CHECK().

3:10 AM Changeset in webkit [259040] by Diego Pino Garcia
  • 1 edit
    20 adds in trunk/LayoutTests

[GTK] Gardening, add missing expectation files
https://bugs.webkit.org/show_bug.cgi?id=209588

Unreviewed gardening.

  • platform/gtk/editing/selection/vertical-rl-rtl-extend-line-backward-br-mixed-expected.txt: Added.
  • platform/gtk/editing/selection/vertical-rl-rtl-extend-line-backward-p-mixed-expected.txt: Added.
  • platform/gtk/editing/selection/vertical-rl-rtl-extend-line-forward-br-mixed-expected.txt: Added.
  • platform/gtk/editing/selection/vertical-rl-rtl-extend-line-forward-p-mixed-expected.txt: Added.
  • platform/gtk/fast/css/vertical-text-overflow-ellipsis-text-align-center-mixed-expected.txt: Added.
  • platform/gtk/fast/css/vertical-text-overflow-ellipsis-text-align-justify-mixed-expected.txt: Added.
  • platform/gtk/fast/css/vertical-text-overflow-ellipsis-text-align-left-mixed-expected.txt: Added.
  • platform/gtk/fast/css/vertical-text-overflow-ellipsis-text-align-right-mixed-expected.txt: Added.
  • platform/gtk/fast/html/details-marker-style-mixed-expected.txt: Added.
  • platform/gtk/fast/html/details-writing-mode-mixed-expected.txt: Added.
  • platform/gtk/fast/multicol/tall-image-behavior-lr-mixed-expected.txt: Added.
  • platform/gtk/fast/text/vertical-rl-rtl-linebreak-mixed-expected.txt: Added.
  • platform/gtk/fast/writing-mode/background-vertical-lr-mixed-expected.txt: Added.
  • platform/gtk/fast/writing-mode/background-vertical-rl-mixed-expected.txt: Added.
  • platform/gtk/fast/writing-mode/basic-vertical-line-mixed-expected.txt: Added.
  • platform/gtk/fast/writing-mode/border-styles-vertical-lr-mixed-expected.txt: Added.
  • platform/gtk/fast/writing-mode/border-styles-vertical-rl-mixed-expected.txt: Added.
  • platform/gtk/fast/writing-mode/vertical-baseline-alignment-mixed-expected.txt: Added.
  • platform/gtk/fast/writing-mode/vertical-lr-replaced-selection-mixed-expected.txt: Added.
  • platform/gtk/fast/writing-mode/vertical-rl-replaced-selection-mixed-expected.txt: Added.
3:06 AM Changeset in webkit [259039] by Philippe Normand
  • 2 edits in trunk/Tools

[Flatpak SDK] update-webkitgtk-libs fails
https://bugs.webkit.org/show_bug.cgi?id=209546

Reviewed by Žan Doberšek.

Simplify the code a bit, add a --assumeyes argument to the
flatpak update command to make it non-interactive and improve
error handling/reporting a bit as well.

  • flatpak/flatpakutils.py:

(FlatpakObject.flatpak):
(WebkitFlatpak.main):
(WebkitFlatpak.run):
(WebkitFlatpak.install_all):
(WebkitFlatpak.update_all): Deleted.

3:05 AM Changeset in webkit [259038] by Philippe Normand
  • 2 edits in trunk/Tools

[Flatpak SDK] Crash post-mortem debugging is broken
https://bugs.webkit.org/show_bug.cgi?id=209537

Reviewed by Žan Doberšek.

webkit-flatpak --gdb now properly launches gdb to inspect the last
crash reported to coredumpctl. The -m argument can be used to
select another crash dump.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.clean_args):
(WebkitFlatpak.run_in_sandbox):
(WebkitFlatpak.run_gdb):

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

Syscall param sendmsg(msg.msg_iov[0]) points to uninitialised byte(s) in IPC::Connection::sendOutgoingMessage
https://bugs.webkit.org/show_bug.cgi?id=146729

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-03-26
Reviewed by Carlos Garcia Campos.

The entire MessageInfo is passed to write(), so we have to zero the padding bytes to avoid
writing uninitialized memory.

  • Platform/IPC/unix/UnixMessage.h:

(IPC::MessageInfo::MessageInfo):

12:38 AM Changeset in webkit [259036] by commit-queue@webkit.org
  • 10 edits in trunk/Source/WebCore

Take into account referrer-policy in append Origin header algorithm
https://bugs.webkit.org/show_bug.cgi?id=209066

Patch by Rob Buis <rbuis@igalia.com> on 2020-03-26
Reviewed by Youenn Fablet.

Start taking into account referrer-policy in more places when we
append the origin header [1]. To prevent computing SecurityOrigin
needlessly add a helper function doesRequestNeedHTTPOriginHeader.

[1] https://fetch.spec.whatwg.org/#append-a-request-origin-header

  • loader/FormSubmission.cpp:

(WebCore::FormSubmission::populateFrameLoadRequest):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::addExtraFieldsToRequest):
(WebCore::FrameLoader::loadResourceSynchronously):
(WebCore::FrameLoader::loadDifferentDocumentItem):
(WebCore::FrameLoader::addHTTPOriginIfNeeded): Deleted.

  • loader/FrameLoader.h:
  • loader/NavigationScheduler.cpp:
  • loader/PingLoader.cpp:

(WebCore::PingLoader::sendPing):

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::checkRedirectionCrossOriginAccessControl):

  • loader/cache/CachedResourceRequest.cpp:

(WebCore::CachedResourceRequest::updateReferrerOriginAndUserAgentHeaders):

  • platform/network/ResourceRequestBase.cpp:

(WebCore::doesRequestNeedHTTPOriginHeader):

  • platform/network/ResourceRequestBase.h:
Note: See TracTimeline for information about the timeline view.