Timeline



Jan 13, 2020:

11:55 PM Changeset in webkit [254498] by Alexey Shvayka
  • 4 edits in trunk

<iframe> attributes should be processed on "srcdoc" attribute removal
https://bugs.webkit.org/show_bug.cgi?id=205995

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/srcdoc_process_attributes-expected.txt:

Source/WebCore:

Test: imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/srcdoc_process_attributes.html

Per spec, "srcdoc" attribute of an <iframe> takes precedence over "src" [1].
Before this change, "srcdoc" handling in HTMLFrameElementBase::parseAttribute didn't check whether
the attribute was set or removed. As a result, removal of "srcdoc" attribute navigated the <iframe>
to "about:srcdoc" instead of URL in value of "src" attribute.

With this change, <iframe> attributes processing matches Chrome and Firefox.

[1] https://html.spec.whatwg.org/multipage/iframe-embed-object.html#process-the-iframe-attributes

  • html/HTMLFrameElementBase.cpp:

(WebCore::HTMLFrameElementBase::parseAttribute):

11:18 PM Changeset in webkit [254497] by Simon Fraser
  • 5 edits
    2 adds in trunk

REGRESSION (Catalina) non-scrolling iframe prevents document scrolling
https://bugs.webkit.org/show_bug.cgi?id=202687

Reviewed by Tim Horton.

Source/WebCore:

Latching code in EventHandlerMac would consider <iframe scrolling=no> to be a latching
candidate, which would cause mousewheel scrolling in a <iframe scrolling=no> nested inside
a scrollable frame to not scroll. This affected ads and twitch.tv.

Fix by having scrolledToEdgeInDominantDirection() return true for non-scrollable iframes.

Test: tiled-drawing/scrolling/scrolling-no-iframe-latching.html

  • page/mac/EventHandlerMac.mm:

(WebCore::scrolledToEdgeInDominantDirection):

  • platform/ScrollView.h:

(WebCore::ScrollView::canHaveScrollbars const): Deleted.

  • platform/ScrollableArea.h:

(WebCore::ScrollableArea::canHaveScrollbars const):

LayoutTests:

  • tiled-drawing/scrolling/scrolling-no-iframe-latching-expected.txt: Added.
  • tiled-drawing/scrolling/scrolling-no-iframe-latching.html: Added.
11:03 PM Changeset in webkit [254496] by sbarati@apple.com
  • 2 edits in trunk/JSTests

Unreviewed. Change useLLInt=0 to forceBaseline=1

  • stress/racy-gc-cleanup-of-identifier-after-mutator-stops-running.js:
10:41 PM Changeset in webkit [254495] by don.olmstead@sony.com
  • 2 edits in trunk/Source/WebKit

[WebAuthn] Support CTAP Client Pin
https://bugs.webkit.org/show_bug.cgi?id=191516
<rdar://problem/56558558>

Unreviewed build fix after r254439.

CryptoKeyEC was forward declared into WebCore but the namespace was not used in
continueGetPinTokenAfterRequestPin. Looks like something in the unified sources
was covering this issue.

  • UIProcess/WebAuthentication/fido/CtapAuthenticator.h:
10:24 PM Changeset in webkit [254494] by Ross Kirsling
  • 3 edits in trunk/Source/WebKit

Expose Phase on all WebWheelEvent implementations
https://bugs.webkit.org/show_bug.cgi?id=206195

Reviewed by Don Olmstead.

No change to behavior; just unhide what needn't be hidden.

  • Shared/WebEvent.h:

(WebKit::WebWheelEvent::directionInvertedFromDevice const):
(WebKit::WebWheelEvent::momentumPhase const):

  • Shared/WebWheelEvent.cpp:

(WebKit::WebWheelEvent::WebWheelEvent):

9:56 PM Changeset in webkit [254493] by Fujii Hironori
  • 4 edits in trunk

Unreviewed sort-Xcode-project-file

Source/JavaScriptCore:

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
9:40 PM Changeset in webkit [254492] by Simon Fraser
  • 4 edits in trunk

Scrollbar hiding on iOS via ::-webkit-scrollbar { display: none } doesn't work
https://bugs.webkit.org/show_bug.cgi?id=206197

Reviewed by Tim Horton.
Source/WebCore:

The logic added in r251369 was reversed, causing scrollbar hiding to not work correctly.

Tested by fast/scrolling/ios/scrollbar-hiding.html

  • rendering/RenderScrollbar.cpp:

(WebCore::RenderScrollbar::isHiddenByStyle const):

LayoutTests:

The logic added in r251369 was reversed, causing scrollbar hiding to not work correctly.

  • fast/scrolling/ios/scrollbar-hiding-expected.txt:
9:24 PM Changeset in webkit [254491] by keith_miller@apple.com
  • 4 edits
    1 add in trunk

scanSideState scans too much side state
https://bugs.webkit.org/show_bug.cgi?id=206166

Reviewed by Tadeu Zagallo.

JSTests:

  • stress/checkpoint-side-state-gc-tmps-overflow.js: Added.

(v8):

Source/JavaScriptCore:

The old code would would scan tmps + sizeof(tmps) but sizeof(tmps)
is not the length of the array. instead we should scan tmps +
maxNumCheckpointTmps.

  • interpreter/CheckpointOSRExitSideState.h:
  • runtime/VM.cpp:

(JSC::VM::scanSideState const):

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

[WK1][iOS] VideoFullscreenControllerContext uses UIKit on the WebThread
https://bugs.webkit.org/show_bug.cgi?id=206203
<rdar://problem/48742782>

Reviewed by Simon Fraser.

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(VideoFullscreenControllerContext::setVideoLayerFrame):

8:53 PM Changeset in webkit [254489] by don.olmstead@sony.com
  • 8 edits
    1 move
    2 deletes in trunk/Source/WebKit

Share WebPreferences stub for ports without an implementation
https://bugs.webkit.org/show_bug.cgi?id=206186

Reviewed by Alex Christensen.

No new tests. No change in behavior.

Moved the platform agnostic stubs that were common in the GTK, WPE and Windows ports
into WebPreferences.cpp. Only Cocoa ports are implementing the platform specific parts
of WebPreferences.

Also moving WebPreferencesMac.mm to WebPreferencesCocoa.mm. There were no platform guards
for iOS family code and there was no iOS specific implementation.

  • PlatformFTW.cmake:
  • PlatformWin.cmake:
  • SourcesCocoa.txt:
  • SourcesWPE.txt:
  • UIProcess/Cocoa/WebPreferencesCocoa.mm: Renamed from Source/WebKit/UIProcess/mac/WebPreferencesMac.mm.
  • UIProcess/WebPreferences.cpp:

(WebKit::WebPreferences::platformInitializeStore):
(WebKit::WebPreferences::platformUpdateStringValueForKey):
(WebKit::WebPreferences::platformUpdateBoolValueForKey):
(WebKit::WebPreferences::platformUpdateUInt32ValueForKey):
(WebKit::WebPreferences::platformUpdateDoubleValueForKey):
(WebKit::WebPreferences::platformUpdateFloatValueForKey):
(WebKit::WebPreferences::platformDeleteKey):
(WebKit::WebPreferences::platformGetStringUserValueForKey):
(WebKit::WebPreferences::platformGetBoolUserValueForKey):
(WebKit::WebPreferences::platformGetUInt32UserValueForKey):
(WebKit::WebPreferences::platformGetDoubleUserValueForKey):

  • UIProcess/gtk/WebPreferencesGtk.cpp:

(WebKit::WebPreferences::platformUpdateStringValueForKey): Deleted.
(WebKit::WebPreferences::platformUpdateBoolValueForKey): Deleted.
(WebKit::WebPreferences::platformUpdateUInt32ValueForKey): Deleted.
(WebKit::WebPreferences::platformUpdateDoubleValueForKey): Deleted.
(WebKit::WebPreferences::platformUpdateFloatValueForKey): Deleted.
(WebKit::WebPreferences::platformDeleteKey): Deleted.
(WebKit::WebPreferences::platformGetStringUserValueForKey): Deleted.
(WebKit::WebPreferences::platformGetBoolUserValueForKey): Deleted.
(WebKit::WebPreferences::platformGetUInt32UserValueForKey): Deleted.
(WebKit::WebPreferences::platformGetDoubleUserValueForKey): Deleted.

  • UIProcess/win/WebPreferencesWin.cpp: Removed.
  • UIProcess/wpe/WebPreferencesWPE.cpp: Removed.
  • WebKit.xcodeproj/project.pbxproj:
8:37 PM Changeset in webkit [254488] by Jon Davis
  • 1 edit
    3 adds in trunk/Websites/webkit.org

Add support for Web Inspector pages and topic taxonomy
https://bugs.webkit.org/show_bug.cgi?id=206034

Reviewed by Devin Rousso.

  • wp-content/plugins/web-inspector-pages.php: Added.
  • wp-content/themes/webkit/archive-web_inspector_page.php: Added.
  • wp-content/themes/webkit/single-web_inspector_page.php: Added.
8:21 PM Changeset in webkit [254487] by Keith Rollin
  • 3 edits in trunk/Source/WebKit

Reformat WebProcessPool logging
https://bugs.webkit.org/show_bug.cgi?id=205882
<rdar://problem/58384349>

Reviewed by Brent Fulgham.

Update the format used by WebProcessPool in its RELEASE_LOG logging.
Use the format used by WebPageProxy and NetworkResourceLoader, which
is generally of the form:

<object-address> - [<values that help thread together operations>] <class>::<method>: <message and other useful values>

So, for example:

Using prewarmed process 0

becomes:

0x7f81e8804008 - WebProcessPool::processForRegistrableDomain: Using prewarmed process (process=0x1471c2a00, PID=64197)

No new tests - no added or changed functionality.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::applicationIsAboutToSuspend):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::establishWorkerContextConnectionToNetworkProcess):
(WebKit::WebProcessPool::tryTakePrewarmedProcess):
(WebKit::WebProcessPool::prewarmProcess):
(WebKit::WebProcessPool::processForRegistrableDomain):
(WebKit::WebProcessPool::didReachGoodTimeToPrewarm):
(WebKit::WebProcessPool::handleMemoryPressureWarning):
(WebKit::WebProcessPool::processForNavigation):
(WebKit::WebProcessPool::processForNavigationInternal):
(WebKit::WebProcessPool::setWebProcessHasUploads):
(WebKit::WebProcessPool::clearWebProcessHasUploads):
(WebKit::WebProcessPool::setWebProcessIsPlayingAudibleMedia):
(WebKit::WebProcessPool::clearWebProcessIsPlayingAudibleMedia):
(WebKit::WebProcessPool::setUseSeparateServiceWorkerProcess):

8:05 PM Changeset in webkit [254486] by Pablo Saavedra
  • 11 edits in trunk/LayoutTests

[GTK] Many imported/w3c/web-platform-tests/html/ tests failing after r253791
https://bugs.webkit.org/show_bug.cgi?id=206127

Reviewed by Philippe Normand.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/autoplay-with-slow-text-tracks-expected.txt:

LayoutTests:

  • platform/gtk/TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/the-form-element/form-autocomplete-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-showModal-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/interfaces-expected.txt:
  • platform/wpe/TestExpectations:
  • platform/wpe/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-showModal-expected.txt:
7:44 PM Changeset in webkit [254485] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: "Enable Local Override" and "Delete Local Override" are displayed twice in the contextual menu
https://bugs.webkit.org/show_bug.cgi?id=206184
<rdar://problem/58409880>

Reviewed by Brian Burg.

  • UserInterface/Views/ContextMenuUtilities.js:

(WI.appendContextMenuItemsForSourceCode):

  • UserInterface/Views/LocalResourceOverrideTreeElement.js:

(WI.LocalResourceOverrideTreeElement.prototype.populateContextMenu):
Add an expando flag that can be set by WI.LocalResourceOverrideTreeElement to ensure that
the local override context menu items aren't added again by WI.ResourceTreeElement.

7:28 PM Changeset in webkit [254484] by Alan Bujtas
  • 3 edits
    2 adds in trunk

RenderTreeBuilder::Block::attachIgnoringContinuation should handle inline-block anonymous containers.
https://bugs.webkit.org/show_bug.cgi?id=202913
<rdar://problem/56233694>

Reviewed by Simon Fraser.

Source/WebCore:

When the before child happens to be a block level box wrapped in an anonymous inline-block (e.g. ruby),
let's attach this new child before the anonymous inline-block wrapper instead.

Test: fast/ruby/before-child-is-block-after.html

  • rendering/updating/RenderTreeBuilderBlock.cpp:

(WebCore::RenderTreeBuilder::Block::attachIgnoringContinuation):

LayoutTests:

  • fast/ruby/before-child-is-block-after-expected.txt: Added.
  • fast/ruby/before-child-is-block-after.html: Added.
7:18 PM Changeset in webkit [254483] by Darin Adler
  • 8 edits in trunk/Source/WebCore

Remove the "needsFullOrderingComparisons" feature from PODRedBlackTree
https://bugs.webkit.org/show_bug.cgi?id=205238

Reviewed by Sam Weinig.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::updateActiveTextTrackCues): Simplified code and
eliminate uses of the createInterval function to construct PODInterval objects.
(WebCore::HTMLMediaElement::textTrackAddCue): Ditto.
(WebCore::HTMLMediaElement::textTrackRemoveCue): Ditto.

  • html/HTMLMediaElement.h: Removed unnecessary include of PODInterval.h.
  • html/shadow/MediaControlElements.cpp: Added include of PODInterval.h.
  • platform/PODInterval.h: Changed operator< to compare low, high, and user

data, not just low and high so it's consistent with operator== and we
can use it to search a tree. Added a partial specialization for WeakPtr
since a WeakPtr's value can change (to null) so it can't be used for
ordering and equality checks; luckily the clients don't need to use it
that way; they build an interval tree but never search for anything or
remove anything from the tree.

  • platform/PODIntervalTree.h: Make the search adapter used to find overlaps

a member class instead of a top level class template and simplified it a bit.
Removed the unneeded createInterval function. Stopped passing true for
"needsFullOrderingComparisons" since it's not needed any more due to the
changes to PODInterval.

  • platform/PODRedBlackTree.h: Removed the "needsFullOrderingComparisons"

template argument for the PODRedBlackTree class template.
(WebCore::PODRedBlackTree::Node::moveDataFrom): Take a reference (why not,
since this always requires a non-null pointer).
(WebCore::PODRedBlackTree::updateNode): Ditto.
(WebCore::PODRedBlackTree::treeSearch const): Merged the three search
functions into a single one since we don't need the peculiar
"full comparisons" mode.
(WebCore::PODRedBlackTree::propagateUpdates): Simplified logic to remove
the boolean local variable.
(WebCore::PODRedBlackTree::dumpSubtree const): Renamed from dumpFromNode
since the comment said "dumps the subtree". Also removed the comment now
that the function name says what it said.

  • rendering/FloatingObjects.h: Removed unnecessary include of PODInterval.h.
7:15 PM Changeset in webkit [254482] by wilander@apple.com
  • 3 edits in trunk/LayoutTests

Remove calls to testRunner.installStatisticsDidModifyDataRecordsCallback() in http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins*
https://bugs.webkit.org/show_bug.cgi?id=206188
<rdar://problem/58540033>

Unreviewed test gardening.

Removed the calls to testRunner.installStatisticsDidModifyDataRecordsCallback()
to address flakiness.

  • http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins-database.html:
  • http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins.html:
6:34 PM Changeset in webkit [254481] by Justin Fan
  • 19 edits in trunk

[WebGL 2] Implement transform feedback and pass transform feedback conformance tests
https://bugs.webkit.org/show_bug.cgi?id=205823

Reviewed by Dean Jackson.

Source/WebCore:

Covered by webgl/2.0.0/conformance2/transform_feedback conformance tests.

  • bindings/js/JSDOMConvertWebGL.cpp:

(WebCore::convertToJSValue):

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::WebGL2RenderingContext):
(WebCore::WebGL2RenderingContext::~WebGL2RenderingContext):
(WebCore::WebGL2RenderingContext::initializeTransformFeedbackBufferCache):
(WebCore::WebGL2RenderingContext::getBufferSubData): ANGLE validation in mapBufferRange may fail; prevent copying from a nullptr.
(WebCore::WebGL2RenderingContext::vertexAttribIPointer):

Bare minimum stubs to get WebGLQuery passing transform_feedback tests:
(WebCore::WebGL2RenderingContext::createQuery):
(WebCore::WebGL2RenderingContext::beginQuery):
(WebCore::WebGL2RenderingContext::endQuery):
(WebCore::WebGL2RenderingContext::getQueryParameter):
(WebCore::WebGLQuery::WebGLQuery):

  • html/canvas/WebGLQuery.h:

Transform feedback functions:
(WebCore::WebGL2RenderingContext::createTransformFeedback):
(WebCore::WebGL2RenderingContext::deleteTransformFeedback):
(WebCore::WebGL2RenderingContext::isTransformFeedback):
(WebCore::WebGL2RenderingContext::bindTransformFeedback):
(WebCore::WebGL2RenderingContext::beginTransformFeedback):
(WebCore::WebGL2RenderingContext::endTransformFeedback):
(WebCore::WebGL2RenderingContext::transformFeedbackVaryings):
(WebCore::WebGL2RenderingContext::getTransformFeedbackVarying):

  • html/canvas/WebGLTransformFeedback.cpp:

(WebCore::WebGLTransformFeedback::WebGLTransformFeedback):
(WebCore::WebGLTransformFeedback::deleteObjectImpl):

Misc functions that needed added functionality:
(WebCore::WebGL2RenderingContext::bindBufferBase):
(WebCore::WebGL2RenderingContext::getIndexedParameter):
(WebCore::WebGL2RenderingContext::getParameter):

Helper functions to track WebGL2 state/objects:
(WebCore::WebGL2RenderingContext::uncacheDeletedBuffer):

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

(WebCore::WebGLBuffer::setTarget):

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

(WebCore::WebGLRenderingContextBase::validateAndCacheBufferBinding):
(WebCore::WebGLRenderingContextBase::bindBuffer):
(WebCore::WebGLRenderingContextBase::uncacheDeletedBuffer):
(WebCore::WebGLRenderingContextBase::deleteBuffer):
(WebCore::WebGLRenderingContextBase::getProgramParameter):

  • html/canvas/WebGLRenderingContextBase.h:

Pipe new GraphicsContextGL methods to ANGLE:

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

(WebCore::GraphicsContextGLOpenGL::vertexAttribIPointer):
(WebCore::GraphicsContextGLOpenGL::createQuery):
(WebCore::GraphicsContextGLOpenGL::beginQuery):
(WebCore::GraphicsContextGLOpenGL::endQuery):
(WebCore::GraphicsContextGLOpenGL::getQueryObjectuiv):
(WebCore::GraphicsContextGLOpenGL::createTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::deleteTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::isTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::bindTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::beginTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::endTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::transformFeedbackVaryings):
(WebCore::GraphicsContextGLOpenGL::getTransformFeedbackVarying):
(WebCore::GraphicsContextGLOpenGL::bindBufferBase):

Add missing unrelated GraphicsContextGL stubs for ANGLE builds:

  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLOpenGL::vertexAttribIPointer):
(WebCore::GraphicsContextGLOpenGL::getUniformBlockIndex):
(WebCore::GraphicsContextGLOpenGL::getActiveUniformBlockiv):
(WebCore::GraphicsContextGLOpenGL::getActiveUniformBlockName):
(WebCore::GraphicsContextGLOpenGL::uniformBlockBinding):
(WebCore::GraphicsContextGLOpenGL::createQuery):
(WebCore::GraphicsContextGLOpenGL::beginQuery):
(WebCore::GraphicsContextGLOpenGL::endQuery):
(WebCore::GraphicsContextGLOpenGL::getQueryObjectuiv):
(WebCore::GraphicsContextGLOpenGL::createTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::deleteTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::isTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::bindTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::beginTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::endTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::transformFeedbackVaryings):
(WebCore::GraphicsContextGLOpenGL::getTransformFeedbackVarying):
(WebCore::GraphicsContextGLOpenGL::bindBufferBase):
(WebCore::GraphicsContextGLOpenGL::bufferData):
(WebCore::GraphicsContextGLOpenGL::bufferSubData):
(WebCore::GraphicsContextGLOpenGL::getBufferSubData):
(WebCore::GraphicsContextGLOpenGL::blitFramebuffer):
(WebCore::GraphicsContextGLOpenGL::framebufferTextureLayer):
(WebCore::GraphicsContextGLOpenGL::invalidateFramebuffer):
(WebCore::GraphicsContextGLOpenGL::invalidateSubFramebuffer):
(WebCore::GraphicsContextGLOpenGL::readBuffer):
(WebCore::GraphicsContextGLOpenGL::texImage3D):
(WebCore::GraphicsContextGLOpenGL::texSubImage3D):
(WebCore::GraphicsContextGLOpenGL::copyTexSubImage3D):
(WebCore::GraphicsContextGLOpenGL::compressedTexImage3D):
(WebCore::GraphicsContextGLOpenGL::compressedTexSubImage3D):
(WebCore::GraphicsContextGLOpenGL::getFragDataLocation):
(WebCore::GraphicsContextGLOpenGL::uniform1ui):
(WebCore::GraphicsContextGLOpenGL::uniform2ui):
(WebCore::GraphicsContextGLOpenGL::uniform3ui):
(WebCore::GraphicsContextGLOpenGL::uniform4ui):
(WebCore::GraphicsContextGLOpenGL::uniform1uiv):
(WebCore::GraphicsContextGLOpenGL::uniform2uiv):
(WebCore::GraphicsContextGLOpenGL::uniform3uiv):
(WebCore::GraphicsContextGLOpenGL::uniform4uiv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix2x3fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix3x2fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix2x4fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix4x2fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix3x4fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix4x3fv):
(WebCore::GraphicsContextGLOpenGL::vertexAttribI4i):
(WebCore::GraphicsContextGLOpenGL::vertexAttribI4iv):
(WebCore::GraphicsContextGLOpenGL::vertexAttribI4ui):
(WebCore::GraphicsContextGLOpenGL::vertexAttribI4uiv):
(WebCore::GraphicsContextGLOpenGL::drawRangeElements):
(WebCore::GraphicsContextGLOpenGL::drawBuffers):
(WebCore::GraphicsContextGLOpenGL::clearBufferiv):
(WebCore::GraphicsContextGLOpenGL::clearBufferuiv):
(WebCore::GraphicsContextGLOpenGL::clearBufferfv):
(WebCore::GraphicsContextGLOpenGL::clearBufferfi):
(WebCore::GraphicsContextGLOpenGL::deleteQuery):
(WebCore::GraphicsContextGLOpenGL::isQuery):
(WebCore::GraphicsContextGLOpenGL::getQuery):
(WebCore::GraphicsContextGLOpenGL::createSampler):
(WebCore::GraphicsContextGLOpenGL::deleteSampler):
(WebCore::GraphicsContextGLOpenGL::isSampler):
(WebCore::GraphicsContextGLOpenGL::bindSampler):
(WebCore::GraphicsContextGLOpenGL::samplerParameteri):
(WebCore::GraphicsContextGLOpenGL::samplerParameterf):
(WebCore::GraphicsContextGLOpenGL::getSamplerParameterfv):
(WebCore::GraphicsContextGLOpenGL::getSamplerParameteriv):
(WebCore::GraphicsContextGLOpenGL::fenceSync):
(WebCore::GraphicsContextGLOpenGL::isSync):
(WebCore::GraphicsContextGLOpenGL::deleteSync):
(WebCore::GraphicsContextGLOpenGL::clientWaitSync):
(WebCore::GraphicsContextGLOpenGL::waitSync):
(WebCore::GraphicsContextGLOpenGL::getSynciv):
(WebCore::GraphicsContextGLOpenGL::pauseTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::resumeTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::bindBufferRange):
(WebCore::GraphicsContextGLOpenGL::getUniformIndices):
(WebCore::GraphicsContextGLOpenGL::texImage2D):
(WebCore::GraphicsContextGLOpenGL::texSubImage2D):
(WebCore::GraphicsContextGLOpenGL::compressedTexImage2D):
(WebCore::GraphicsContextGLOpenGL::compressedTexSubImage2D):
(WebCore::GraphicsContextGLOpenGL::uniform1fv):
(WebCore::GraphicsContextGLOpenGL::uniform2fv):
(WebCore::GraphicsContextGLOpenGL::uniform3fv):
(WebCore::GraphicsContextGLOpenGL::uniform4fv):
(WebCore::GraphicsContextGLOpenGL::uniform1iv):
(WebCore::GraphicsContextGLOpenGL::uniform2iv):
(WebCore::GraphicsContextGLOpenGL::uniform3iv):
(WebCore::GraphicsContextGLOpenGL::uniform4iv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix2fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix3fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix4fv):
(WebCore::GraphicsContextGLOpenGL::readPixels):

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

(WebCore::GraphicsContextGLOpenGL::getQueryObjectuiv):
(WebCore::GraphicsContextGLOpenGL::getTransformFeedbackVarying):
(WebCore::GraphicsContextGLOpenGL::glGetQueryObjectuiv): Deleted.

LayoutTests:

Add passing results for transform_feedback, as expected when ANGLE is enabled.

  • webgl/2.0.0/conformance2/transform_feedback/two-unreferenced-varyings-expected.txt:
  • webgl/2.0.0/conformance2/transform_feedback/unwritten-output-defaults-to-zero-expected.txt:
5:43 PM Changeset in webkit [254480] by sbarati@apple.com
  • 25 edits in trunk

Throw away baseline code if there is an optimized replacement
https://bugs.webkit.org/show_bug.cgi?id=202503

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/dfg-compare-eq-via-nonSpeculativeNonPeepholeCompareNullOrUndefined.js:
  • stress/getter-setter-inlining-should-emit-movhint.js:
  • stress/make-dictionary-repatch.js:
  • stress/merging-ic-variants-should-bail-if-structures-overlap.js:
  • stress/proxy-getter-stack-overflow.js:
  • stress/regress-192717.js:
  • stress/retry-cache-later.js:

Source/JavaScriptCore:

This patch's goal is to help us save JIT executable memory by throwing
away baseline code when it has an optimized replacement. To make it
easy to reason about, we do this when finalizing a GC, and when the
CodeBlock is not on the stack. When we do this, we throw away all JIT
data and unlink all incoming calls.

This patch also paves the way for the LOL tier by making it so we always
exit to the LLInt. This allows the code in CodeBlock finalization to not
have to consider whether or not an an OSR exit is wired to baseline
JIT code, since all exits are now to the LLInt. Because of this, this
patch removes the forceOSRExitToLLInt option. Also, this patch renames
the useLLInt option to forceBaseline and inverts its meaning.
Options::forceBaseline=true implies that code will start off executing in
the baseline JIT instead of the LLInt. However, it won't prevent us from
emitting an OSR exit which jumps to LLInt code.

  • API/tests/ExecutionTimeLimitTest.cpp:

(testExecutionTimeLimit):

  • API/tests/PingPongStackOverflowTest.cpp:

(testPingPongStackOverflow):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::finalizeUnconditionally):
(JSC::CodeBlock::resetJITData):
(JSC::CodeBlock::optimizedReplacement):
(JSC::CodeBlock::hasOptimizedReplacement):
(JSC::CodeBlock::tallyFrequentExitSites):
(JSC::CodeBlock::findStubInfo): Deleted.
(JSC::CodeBlock::getCallLinkInfoForBytecodeIndex): Deleted.

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::setJITCode):

  • dfg/DFGDriver.cpp:

(JSC::DFG::compileImpl):

  • dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::callerReturnPC):
(JSC::DFG::reifyInlinedCallFrames):
(JSC::DFG::adjustAndJumpToTarget):

  • dfg/DFGOSRExitCompilerCommon.h:
  • heap/CodeBlockSet.cpp:

(JSC::CodeBlockSet::isCurrentlyExecuting):

  • heap/CodeBlockSet.h:
  • heap/Heap.cpp:

(JSC::Heap::finalizeUnconditionalFinalizers):
(JSC::Heap::runEndPhase):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::dispatchToNextInstruction):

  • runtime/Options.cpp:

(JSC::recomputeDependentOptions):
(JSC::Options::initialize):
(JSC::Options::ensureOptionsAreCoherent):

  • runtime/OptionsList.h:
  • runtime/ScriptExecutable.cpp:

(JSC::ScriptExecutable::prepareForExecutionImpl):

Tools:

  • Scripts/run-jsc-stress-tests:
5:37 PM Changeset in webkit [254479] by yoshiaki.jitsukawa@sony.com
  • 3 edits in trunk/Tools

Fix path-specific filters on Windows
https://bugs.webkit.org/show_bug.cgi?id=205786

Reviewed by David Kilzer.

  • Scripts/webkitpy/style/filter.py:

(FilterConfiguration._path_rules_from_path):
Convert forward slashes to backward slashes on Windows by using
os.path.normcase(). Nothing changed on other OSs.

  • Scripts/webkitpy/style/filter_unittest.py:

(FilterConfigurationTest.test_path_with_different_case):

5:10 PM Changeset in webkit [254478] by Alan Coon
  • 2 edits in branches/safari-609-branch/Tools

Cherry-pick r254440. rdar://problem/58530962

Don't softlink AVCapture classes on watchOS or tvOS
https://bugs.webkit.org/show_bug.cgi?id=205974
<rdar://problem/58427281>

Unreviewed test fix after r254257.

  • TestWebKitAPI/Tests/WebCore/cocoa/AVFoundationSoftLinkTest.mm: (TestWebKitAPI::TEST):

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

5:10 PM Changeset in webkit [254477] by Alan Coon
  • 3 edits
    4 adds in branches/safari-609-branch

Cherry-pick r254349. rdar://problem/58529720

ObjectAllocationSinkingPhase doesn't model pointers to allocations in control flow properly
https://bugs.webkit.org/show_bug.cgi?id=204738
<rdar://problem/57553238>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/allocation-sinking-must-model-allocation-pointers-properly-2.js: Added. (assert): (v9):
  • stress/allocation-sinking-must-model-allocation-pointers-properly-3.js: Added. (assert): (v9):
  • stress/allocation-sinking-must-model-allocation-pointers-properly-4.js: Added. (bool): (effects): (escape): (bar):
  • stress/allocation-sinking-must-model-allocation-pointers-properly.js: Added. (alwaysFalse): (sometimesZero): (assert): (v9):

Source/JavaScriptCore:

Allocation sinking phase conducts a points to analysis. It uses this
information for programs like:

`
1: NewObject
2: NewObject
3: PutByOffset(@2, @1, "x")
4: GetByOffset(@2, "x")
`

It solves the points to problem knowing @4 points to @1.

It tracks this data in the LocalHeap data structure. This is used to track
the heap across blocks, and it includes a merge function to handle control
flow merges. However, this merge function would not always merge the pointer
sets together. It sometimes would merge them together, since it had a fast
path check inside merge, which would just copy the contents of the block to be
merged with itself if it were this block's first time merging. This fast path happened
to hide the bug in general case merge code. If we didn't take this fast path,
we would just never transfer pointer sets from predecessor to successor. This
could lead to all kinds of issues, including using the incorrect phantom node
in IR instead of its materialized version. It could also lead to the phase not
sinking objects it is capable of sinking.

This patch makes it so that we merge together the pointer sets. We always add
new pointers to the set. So in pointer A->B, if the set has yet to see A, we
add it. If the set already contains pointer A->B, and we encounter a new
pointer A->C, or if we encounter a merge without any A->* pointer, we mark
the A pointer as top, marking it A->TOP. We do this to ensure that we fixpoint.
We're guaranteed that m_pointers is monotonically increasing (module liveness
pruning, which is a constant). And once something is TOP, it never becomes
anything else. (Instead of marking a pointer top, we used to just remove it
from the set, but this has issues, as it could lead to us ping-ponging in
our fixpoint analysis, add, remove, add, remove, etc.)

So the merge rules are:
{A->B} merge {A->B} => {A->B}
{A->B} merge {A->C} => {A->TOP}
{A->B} merge {A->TOP} => {A->TOP}
{A->B} merge {} => {A->TOP}

Thanks to Samuel Groß of Google Project Zero for identifying this bug.

  • dfg/DFGObjectAllocationSinkingPhase.cpp:

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

5:10 PM Changeset in webkit [254476] by Alan Coon
  • 3 edits in branches/safari-609-branch/Source/WebCore/PAL

Cherry-pick r254257. rdar://problem/58530962

Don't softlink AVCapture classes on watchOS or tvOS
https://bugs.webkit.org/show_bug.cgi?id=205974
<rdar://problem/45508044>

Reviewed by Jon Lee.

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

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

5:10 PM Changeset in webkit [254475] by Alan Coon
  • 3 edits
    2 adds in branches/safari-609-branch

Cherry-pick r254220. rdar://problem/58429234

Fix specification violation in Font Loading API
https://bugs.webkit.org/show_bug.cgi?id=205901
<rdar://problem/58083743>

Reviewed by Brent Fulgham.

Source/WebCore:

Our Font Loading API does not comply with the spec:

If the parsed value is a CSS-wide keyword, return a syntax error.

Rather than crashing, we should return a syntax error.

Test: fast/text/font-loading-global-keyword.html

  • css/CSSFontFaceSet.cpp: (WebCore::computeFontSelectionRequest): (WebCore::CSSFontFaceSet::matchingFacesExcludingPreinstalledFonts):

LayoutTests:

Test all the entry points to the CSS Font Loading API that accept CSS keywords.

  • fast/text/font-loading-global-keyword-expected.txt: Added.
  • fast/text/font-loading-global-keyword.html: Added.

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

5:10 PM Changeset in webkit [254474] by Alan Coon
  • 7 edits in branches/safari-609-branch/Source/WebKit

Cherry-pick r254101. rdar://problem/58535157

[iOS] Get display level in the UI process for all iOS platforms
https://bugs.webkit.org/show_bug.cgi?id=205835
<rdar://problem/58116883>

Reviewed by Brent Fulgham.

This was previously only done for iOS, but should be done for all iOS platforms.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::registerNotificationObservers):
  • UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::initializeNewWebProcess):
  • UIProcess/WebProcessPool.h:
  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
  • WebProcess/cocoa/WebProcessCocoa.mm:

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

5:08 PM Changeset in webkit [254473] by ddkilzer@apple.com
  • 2 edits in trunk/Tools

WTR::TestController::decidePolicyForPluginLoad() should output bundle identifier on release assert
<https://webkit.org/b/206105>

Reviewed by Brent Fulgham.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::decidePolicyForPluginLoad): Change
RELEASE_ASSERT_NOT_REACHED() to
RELEASE_ASSERT_NOT_REACHED_WITH_MESSAGE() with bundle
identifier.

4:39 PM Changeset in webkit [254472] by Kate Cheney
  • 4 edits in trunk/Source/WebKit

_WKResourceLoadStatisticsFirstParty should be forward declared not imported in _WKResourceLoadStatisticsThirdParty
https://bugs.webkit.org/show_bug.cgi?id=206183
<rdar://problem/58535245>

Reviewed by Alex Christensen.

  • UIProcess/API/Cocoa/_WKResourceLoadStatisticsFirstParty.h:
  • UIProcess/API/Cocoa/_WKResourceLoadStatisticsThirdParty.h:
  • UIProcess/API/Cocoa/_WKResourceLoadStatisticsThirdParty.mm:

The additional import statement here was unnecessary because
this file imports _WKResourceLoadStatisticsThirdPartyInternal.h
which forward declares the _WKResourceLoadStatisticsFirstParty class.

4:28 PM Changeset in webkit [254471] by Ross Kirsling
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix for PlayStation and clang-cl.

clang for Windows (< v10.0.0) cannot destructure a const class. See also r249524.

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::collectMarkedTextsForHighlights const):

4:15 PM Changeset in webkit [254470] by Alan Coon
  • 8 edits in branches/safari-609-branch/Source

Versioning.

4:13 PM Changeset in webkit [254469] by Kate Cheney
  • 2 edits in trunk/Source/WebKit

Unreviewed followup fix to: https://bugs.webkit.org/show_bug.cgi?id=205288.
This flag should be off-by-default.

  • Shared/WebPreferences.yaml:
4:11 PM Changeset in webkit [254468] by Truitt Savell
  • 2 edits in trunk/Source/WebCore

Unreviewed, rolling out r254463.

Broke all Mac and iOS Builds.

Reverted changeset:

"Unreviewed build fix for PlayStation and clang-cl."
https://trac.webkit.org/changeset/254463

4:08 PM Changeset in webkit [254467] by commit-queue@webkit.org
  • 1568 edits
    2 copies
    39 adds
    2 deletes in trunk/LayoutTests

REGRESSION(r253683): [GTK][WPE] Lots of offscreen-canvas WPT tests failing
https://bugs.webkit.org/show_bug.cgi?id=205445

Patch by Chris Lord <Chris Lord> on 2020-01-13
Reviewed by Carlos Alberto Lopez Perez.

Bug 205445 - Update and re-enable OffscreenCanvas tests

LayoutTests/imported/w3c:

  • resources/import-expectations.json:
  • web-platform-tests/fetch/nosniff/image-expected.txt: Newly passing test, presumable due to previously missing resource.
  • web-platform-tests/images/*: Updated.
  • web-platform-tests/offscreen-canvas/*: Updated.

LayoutTests:

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
4:05 PM Changeset in webkit [254466] by Alan Coon
  • 8 edits in branches/safari-609.1.14-branch/Source

Versioning.

3:57 PM Changeset in webkit [254465] by youenn@apple.com
  • 3 edits in trunk/Source/WebCore

Clean-up MediaPlayerPrivateMediaStreamAVFObjC.h/.mm
https://bugs.webkit.org/show_bug.cgi?id=206060

Reviewed by Eric Carlson.

No change of behavior.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
3:55 PM Changeset in webkit [254464] by mark.lam@apple.com
  • 45 edits
    4 adds in trunk

Replace uses of Box<Identifier> with a new CacheableIdentifier class.
https://bugs.webkit.org/show_bug.cgi?id=205544
<rdar://problem/58041800>

Reviewed by Saam Barati.

JSTests:

  • stress/racy-gc-cleanup-of-identifier-after-mutator-stops-running.js: Added.

Source/JavaScriptCore:

The introduction of the use of Box<Identifier> was to get around having to
ref/deref the underlying UniqedStringImpl in Identifiers from the compiler
and GC threads. However, it proves to be difficult to control when these
Box<Identifier>s get destructed, and requires that we find all the places in
the compier and GC threads where this can happen, and apply keep alive tactics
there to defer destruction of the Box<Identifier> to the mutator thread.

This patch fixes this by replacing uses of Box<Identifier> with
CacheableIdentifier, which is effectively a tagged union of a JSCell* or a
UniquedStringImpl*. The JSCell*, in this case, can be either a Symbol* or a
JSString* that is backed by an atom string. The VM runtime ensures that we'll
never try to cache an identifier from a JSCell that is not one of these. This
CacheableIdentifier can be destructed from the compiler or GC thread. Since it
doesn't hold a ref of the underlying UniquedStringImpl, it won't try to deref
it on destruction.

Instead, we'll need to visit CacheableIdentifiers during GC scans to keep the
JSCell in it alive, and that JSCell will, in turn, keep the underlying
UniquedStringImpl alive.

This patch also does the following:

  1. Add a visitAggregate() method to StructureStubInfo, PolymorphicAccess, and AccessCase to visit the CacheableIdentifier's JSCell identifier. This visitAggregate() is called from CodeBlock::stronglyVisitStrongReferences().

When we write barrier a CodeBlock, it guarantees that its visitAggregate()
methods is called. However, it does not guarantee that its propagateTransitions()
method will be called. Since the CacheableIdentifier's reference to a cell
should be a strong reference, visiting it via a StructureStubInfo::visitAggregate()
method is the right thing to do.
See https://bugs.webkit.org/show_bug.cgi?id=205544#c7 for an example of why
propagateTransitions() doesn't always do the job.

StructureStubInfo::visitWeakReferences() is also inappropriate for this
because it is only called after all marking is done. It is also not meant
to keep cells alive but merely for clearing weak references to dead cells.

  1. Also add to visitAggregate() for ModuleNamespaceData's m_identifier in GetByStatus::markIfCheap().
  1. Remove previously applied keep alive tactics to work around Box<Identifier> destruction. This also retores the allowance to destruct DFG::Plans on a compiler thread.
  1. Added a JSString:getValueImpl() helper.
  1. Added a write barrier in DFG and FTL JITFinalizer's finalizeCommon() to ensure that frozen values are scanned by the GC.

During compilation, the frozen values were previously protected by the Plan.
After finalization, they should be protected by the CodeBlock. Hence, we
should barrier the CodeBlock since the last GC scan of the CodeBlock may have
happened before the frozen values were registered with the CodeBlock.

GC considerations:
==================
The following also addresses Yusuke's concerns in https://bugs.webkit.org/show_bug.cgi?id=205544#c10.

CacheableIdentifier is only stored as fields in 4 classes/structs:

  1. AccessCase::m_identifier
  2. GetByIdVariant::m_identifier
  3. ModuleNamespaceData::m_identifier
  4. StructureStubInfo::m_getByIdSelfIdentifier

AccessCase::m_identifier
========================
While the access case is being created and added in tryCacheGetBy(), the
CacheableIdentifier is still on the stack and protected from the GC. At the
bottom of tryCacheGetBy(), StructureStubInfo::addAccessCase() is called to add
the access case.

StructureStubInfo::addAccessCase() will barrier the owner CodeBlock at its end,
and CodeBlock::stronglyVisitStrongReferences() will visit the StructureStubInfo,
which in turn visits the AccessCase. StructureStubInfo::visitAggregate() has
been added for this purpose.

GetByIdVariant::m_identifier
============================
GetByIdVariant is only stored in GetByStatus. Both GetByIdVariant and GetByStatus
are only created and handled in the DFG/FTL compiler threads. While the compiler
thread is working with them, they are safe from the GC because the GC won't collect
objects until the compiler thread is at a SafePoint.

At compiler SafePoints, any GetByStatus that needs to be persisted is stored in
DFG::Plan::m_recordedStatuses. The Plan will visit the m_recordedStatuses in
Plan::checkLivenessAndVisitChildren().

At the end of compilation, Plan::m_recordedStatuses is transferred over to the owner
CodeBlock's DFG::CommonData in Plan::finalizeWithoutNotifyingCallback().
Plan::finalizeWithoutNotifyingCallback() will also barrier the owner CodeBlock at
its end.

Thereafter, CodeBlock::stronglyVisitStrongReferences() will visit the recordedStatuses.

ModuleNamespaceData::m_identifier
=================================
ModuleNamespaceData is only stored in a GetByStatus, and is therefore protected
similarly as the GetByIdVariant::m_identifier case above.

StructureStubInfo::m_getByIdSelfIdentifier
==========================================
StructureStubInfo::initGetByIdSelf() is called from inside tryCacheGetBy().
StructureStubInfo::initGetByIdSelf() will barrier the owner CodeBlock. The
CacheableIdentifier here is protected in the same way as the AccessCase::m_identifier
case above.

DesiredIdentifiers
==================
The compiler thread may also stash a CacheableIdentifier's uid in its
DesiredIdentifiers. Normally, the identifiers stashed in DesiredIdentifiers are
from identifiers that the CodeBlock already knows abut and manages (e.g. from
GetByIds). For uids from a cell-based CacheableIdentifier variable is passed to
a GetByVal, we need kep the cell alive in order to keep the uid alive. This is
achieved by freezing the cell with freezeStrong() in the op_get_by_val case in
the DFG BytecodeParser.

Reseting a StructureStubInfo while its IC code is still executing on the stack
==============================================================================
The concern is that IC code may call slow path / getter functions that may in turn:

  1. reset the IC, and
  2. run the GC.

This can be a problem if:

  1. there is a scenario where we return from the slow path / getter function and run IC code that uses the cell / uid from the CacheableIdentifier.

This is because the StructureStubInfo is what visits the that cell, which
in turn its uid alive. Once the StructureStubInfo is reset, it will no
longer be associated with any AccessCase or the m_getByIdSelfIdentifier.
As such they will not be visited, and the CacheableIdentifier may be collected
by the GC.

In practice, the generated IC code never uses the cell / uid after it calls
any slow path / getter function. I've verified this by auditing the code
generation in InlineAccess::generateSelfInAccess() and PolymorphicAccess::regenerate().
Hence, there's no issue with using a collected cell / uid.

  1. there is a scenario where a slow path / getter function makes use of the cell / uid from the CacheableIdentifier but does not protect it.

The only 2 slow path functions:

operationGetByValGeneric()
operationGetByValOptimize()

operationGetByValGeneric() does not use any CacheableIdentifier from the StructureStubInfo.

operationGetByValOptimize() modifies the StructureStubInfo in tryCacheGetBy()
under the protection of a GCSafeConcurrentJSLocker, and can reset the
StructureStubInfo. However, it does not use any CacheableIdentifier after
that.

Hence, there's also no GC issue here.

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

(JSC::AccessCase::AccessCase):
(JSC::AccessCase::create):
(JSC::AccessCase::fromStructureStubInfo):
(JSC::AccessCase::commit):
(JSC::AccessCase::canReplace const):
(JSC::AccessCase::dump const):
(JSC::AccessCase::visitAggregate const):
(JSC::AccessCase::generateWithGuard):
(JSC::AccessCase::generateImpl):

  • bytecode/AccessCase.h:

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

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::propagateTransitions):
(JSC::CodeBlock::stronglyVisitStrongReferences):

  • bytecode/GetByIdVariant.cpp:

(JSC::GetByIdVariant::GetByIdVariant):
(JSC::GetByIdVariant::attemptToMerge):
(JSC::GetByIdVariant::visitAggregate):
(JSC::GetByIdVariant::dumpInContext const):

  • bytecode/GetByIdVariant.h:

(JSC::GetByIdVariant::identifier const):
(JSC::GetByIdVariant::overlaps):

  • bytecode/GetByStatus.cpp:

(JSC::GetByStatus::computeFromLLInt):
(JSC::GetByStatus::computeFor):
(JSC::GetByStatus::computeForStubInfoWithoutExitSiteFeedback):
(JSC::GetByStatus::visitAggregate):
(JSC::GetByStatus::singleIdentifier const):

  • bytecode/GetByStatus.h:
  • bytecode/GetterSetterAccessCase.cpp:

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

  • bytecode/GetterSetterAccessCase.h:
  • bytecode/InstanceOfAccessCase.cpp:

(JSC::InstanceOfAccessCase::InstanceOfAccessCase):

  • bytecode/IntrinsicGetterAccessCase.cpp:

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

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

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

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

(JSC::PolymorphicAccess::visitAggregate):
(JSC::PolymorphicAccess::regenerate):

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

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

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

(JSC::RecordedStatuses::visitAggregate):

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

(JSC::StructureStubInfo::initGetByIdSelf):
(JSC::StructureStubInfo::addAccessCase):
(JSC::StructureStubInfo::visitAggregate):

  • bytecode/StructureStubInfo.h:

(JSC::StructureStubInfo::getByIdSelfIdentifier):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseGetById):
(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGDesiredIdentifiers.cpp:

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

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

(JSC::DFG::JITFinalizer::finalizeCommon):

  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::~Plan):
(JSC::DFG::Plan::checkLivenessAndVisitChildren):
(JSC::DFG::Plan::cancel):

  • dfg/DFGPlan.h:

(JSC::DFG::Plan::keepAliveIdentifier): Deleted.

  • dfg/DFGWorklist.cpp:

(JSC::DFG::Worklist::removeAllReadyPlansForVM):
(JSC::DFG::Worklist::removeDeadPlans):
(JSC::DFG::Worklist::removeNonCompilingPlansForVM):
(JSC::DFG::Worklist::deleteCancelledPlansForVM): Deleted.

  • dfg/DFGWorklist.h:
  • ftl/FTLJITFinalizer.cpp:

(JSC::FTL::JITFinalizer::finalizeCommon):

  • jit/JITOperations.cpp:
  • jit/Repatch.cpp:

(JSC::tryCacheGetBy):
(JSC::repatchGetBy):
(JSC::tryCacheArrayGetByVal):
(JSC::tryCacheInstanceOf):

  • jit/Repatch.h:
  • runtime/CacheableIdentifier.cpp: Added.

(JSC::CacheableIdentifier::dump const):

  • runtime/CacheableIdentifier.h: Added.

(JSC::CacheableIdentifier::CacheableIdentifier):
(JSC::CacheableIdentifier::isUid const):
(JSC::CacheableIdentifier::isCell const):
(JSC::CacheableIdentifier::isSymbol const):
(JSC::CacheableIdentifier::operator bool const):

  • runtime/CacheableIdentifierInlines.h: Added.

(JSC::CacheableIdentifier::CacheableIdentifier):
(JSC::CacheableIdentifier::cell const):
(JSC::CacheableIdentifier::uid const):
(JSC::CacheableIdentifier::isCacheableIdentifierCell):
(JSC::CacheableIdentifier::isSymbolCell const):
(JSC::CacheableIdentifier::isStringCell const):
(JSC::CacheableIdentifier::setCellBits):
(JSC::CacheableIdentifier::setUidBits):
(JSC::CacheableIdentifier::visitAggregate const):
(JSC::CacheableIdentifier::operator== const):
(JSC::CacheableIdentifier::operator!= const):

  • runtime/ExceptionHelpers.cpp:

(JSC::functionCallBase):

  • runtime/JSString.h:

(JSC::JSString::getValueImpl const):

  • runtime/VM.cpp:

(JSC::VM::ensureWatchpointSetForImpureProperty):
(JSC::VM::addImpureProperty):
(JSC::VM::registerWatchpointForImpureProperty): Deleted.

  • runtime/VM.h:

Source/WebCore:

  • bindings/js/CommonVM.cpp:

(WebCore::addImpureProperty):

3:52 PM Changeset in webkit [254463] by Ross Kirsling
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix for PlayStation and clang-cl.

clang for Windows (< v10.0.0) cannot destructure a const class. See also r249524.

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::collectMarkedTextsForHighlights const):

3:37 PM Changeset in webkit [254462] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Propogate UIEdgeInsets from WKWebView to WKSafeBrowsingWarning on iOS
https://bugs.webkit.org/show_bug.cgi?id=206201
<rdar://problem/57135847>

Reviewed by Tim Horton.

Manually verified this fixes the radar.

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _computedObscuredInsetForSafeBrowsingWarning]):
(-[WKWebView safeAreaInsetsDidChange]):
(-[WKWebView _setObscuredInsets:]):

3:35 PM Changeset in webkit [254461] by cathiechen
  • 8 edits in trunk/LayoutTests/imported/w3c

Import the update of img-aspect-ratio.html.
https://bugs.webkit.org/show_bug.cgi?id=206160

Reviewed by Frédéric Wang

Use parseFloat() instead of parseInt() in img-aspect-ratio.html.
The resource location was changed to relative in bug 205678. To keep them consistent with others, restore them.

  • web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/align.html:
  • web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/canvas-aspect-ratio.html:
  • web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/content-aspect-ratio.html:
  • web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-aspect-ratio.html:
  • web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-no-alt-replaced.html:
  • web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-replaced-box-while-loading.html:
  • web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/video-aspect-ratio.html:
3:20 PM Changeset in webkit [254460] by Alan Coon
  • 8 edits in branches/safari-609-branch/Source

Revert "Versioning."

This reverts revision 254459.

3:17 PM Changeset in webkit [254459] by Alan Coon
  • 8 edits in branches/safari-609-branch/Source

Versioning.

3:06 PM Changeset in webkit [254458] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Fix computeFloatVisibleRectInContainer to handle non-SVG object parent
https://bugs.webkit.org/show_bug.cgi?id=205282
Source/WebCore:

<rdar://problem/57975185>

Patch by Sunny He <sunny_he@apple.com> on 2020-01-13
Reviewed by Darin Adler.

Test: svg/dom/replaceChild-document-crash.html

  • rendering/svg/SVGRenderSupport.cpp:

(WebCore::SVGRenderSupport::computeFloatVisibleRectInContainer):

LayoutTests:

Patch by Sunny He <sunny_he@apple.com> on 2020-01-13
Reviewed by Darin Adler.

  • svg/dom/replaceChild-document-crash-expected.txt: Added.
  • svg/dom/replaceChild-document-crash.html: Added.
3:02 PM Changeset in webkit [254457] by Alan Coon
  • 1 copy in branches/safari-609.1.14-branch

New branch.

3:02 PM Changeset in webkit [254456] by Alan Coon
  • 1 delete in branches/safari-609.1.14-branch

Delete branch.

2:54 PM Changeset in webkit [254455] by Alan Coon
  • 1 copy in branches/safari-610.1.1-branch

New branch.

2:27 PM Changeset in webkit [254454] by eric.carlson@apple.com
  • 21 edits
    6 adds in trunk

Expose audio tracks for media files in the GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=206152
<rdar://problem/58513227>

Reviewed by youenn fablet.

Source/WebCore:

No new tests, un-skipped existing tests that pass because of this change.

  • platform/graphics/AudioTrackPrivate.h:
  • platform/graphics/TrackPrivateBase.h:

Source/WebKit:

  • GPUProcess/media/RemoteAudioTrackProxy.cpp: Added.

(WebKit::RemoteAudioTrackProxy::RemoteAudioTrackProxy):
(WebKit::RemoteAudioTrackProxy::configuration):
(WebKit::RemoteAudioTrackProxy::configurationChanged):
(WebKit::RemoteAudioTrackProxy::willRemove):
(WebKit::RemoteAudioTrackProxy::enabledChanged):
(WebKit::RemoteAudioTrackProxy::idChanged):
(WebKit::RemoteAudioTrackProxy::labelChanged):
(WebKit::RemoteAudioTrackProxy::languageChanged):

  • GPUProcess/media/RemoteAudioTrackProxy.h: Added.
  • GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:

(WebKit::RemoteMediaPlayerManagerProxy::setRate):
(WebKit::RemoteMediaPlayerManagerProxy::audioTrackSetEnabled):

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in:
  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::mediaPlayerDidAddAudioTrack):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerDidRemoveAudioTrack):
(WebKit::RemoteMediaPlayerProxy::audioTrackSetEnabled):

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/TrackPrivateRemoteConfiguration.h: Added.

(WebKit::TrackPrivateRemoteConfiguration::encode const):
(WebKit::TrackPrivateRemoteConfiguration::decode):

  • GPUProcess/media/TrackPrivateRemoteIdentifier.h: Added.
  • Scripts/webkit/messages.py:
  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/media/AudioTrackPrivateRemote.cpp: Added.

(WebKit::AudioTrackPrivateRemote::AudioTrackPrivateRemote):
(WebKit::AudioTrackPrivateRemote::setEnabled):
(WebKit::AudioTrackPrivateRemote::updateConfiguration):

  • WebProcess/GPU/media/AudioTrackPrivateRemote.h: Added.

(WebKit::AudioTrackPrivateRemote::create):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::addRemoteAudioTrack):
(WebKit::MediaPlayerPrivateRemote::removeRemoteAudioTrack):
(WebKit::MediaPlayerPrivateRemote::remoteAudioTrackConfigurationChanged):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:

(WebKit::RemoteMediaPlayerManager::timeChanged):
(WebKit::RemoteMediaPlayerManager::durationChanged):
(WebKit::RemoteMediaPlayerManager::engineFailedToLoad):
(WebKit::RemoteMediaPlayerManager::characteristicChanged):
(WebKit::RemoteMediaPlayerManager::sizeChanged):
(WebKit::RemoteMediaPlayerManager::addRemoteAudioTrack):
(WebKit::RemoteMediaPlayerManager::removeRemoteAudioTrack):
(WebKit::RemoteMediaPlayerManager::remoteAudioTrackConfigurationChanged):
(WebKit::RemoteMediaPlayerManager::updateCachedState):

  • WebProcess/GPU/media/RemoteMediaPlayerManager.h:
  • WebProcess/GPU/media/RemoteMediaPlayerManager.messages.in:
  • WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:

LayoutTests:

  • gpu-process/TestExpectations:
2:26 PM Changeset in webkit [254453] by Alan Bujtas
  • 1 edit
    2 adds in trunk/LayoutTests

Add a simple trailing letter-spacing test case
https://bugs.webkit.org/show_bug.cgi?id=206185
<rdar://problem/58535841>

Reviewed by Antti Koivisto.

  • fast/text/trailing-letter-spacing-long-expected.html: Added.
  • fast/text/trailing-letter-spacing-long.html: Added.
1:49 PM Changeset in webkit [254452] by weinig@apple.com
  • 3 edits in trunk/Source/WTF

Platform.h is out of control Part 3: Move all ENABLE_* macros definitions in FeatureDefines.h
https://bugs.webkit.org/show_bug.cgi?id=206139

Reviewed by Anders Carlsson.

  • Moves all remaining ENABLE_* defines out of Platform.h and into FeatureDefines.h
  • Moves most, USE_UDIS86 and USE_ARM64_DISASSEMBLER are tangled up in the JIT definitions still, HAVE_* and USE_* defines out of FeatureDefines.h and into Platform.h
  • Where straigthforward, convert macro definitions into a canonical 3 line entry of the form:


#if !defined(MACRO_NAME) && (<CONDITIONS HERE>)
#define MACRO_NAME 1
#endif

There is rarely (if ever) a resone to undefine or define one of these platform related
macros to 0 as the usage macros (e.g. HAVE(...), ENABLE(...), etc.) handle undefined as 0.

  • Added a guard so that FeatureDefines.h can't be included directly, and must be included via Platform.h. This is necessary as it depends heavily on macros defined in Platform.h
  • Added numerous FIXMEs detailing follow up cleaning.
  • wtf/FeatureDefines.h:
  • wtf/Platform.h:
1:42 PM Changeset in webkit [254451] by Alan Coon
  • 3 edits
    4 adds in branches/safari-608.5.7.3-branch

Cherry-pick r254349. rdar://problem/58529694

ObjectAllocationSinkingPhase doesn't model pointers to allocations in control flow properly
https://bugs.webkit.org/show_bug.cgi?id=204738
<rdar://problem/57553238>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/allocation-sinking-must-model-allocation-pointers-properly-2.js: Added. (assert): (v9):
  • stress/allocation-sinking-must-model-allocation-pointers-properly-3.js: Added. (assert): (v9):
  • stress/allocation-sinking-must-model-allocation-pointers-properly-4.js: Added. (bool): (effects): (escape): (bar):
  • stress/allocation-sinking-must-model-allocation-pointers-properly.js: Added. (alwaysFalse): (sometimesZero): (assert): (v9):

Source/JavaScriptCore:

Allocation sinking phase conducts a points to analysis. It uses this
information for programs like:

`
1: NewObject
2: NewObject
3: PutByOffset(@2, @1, "x")
4: GetByOffset(@2, "x")
`

It solves the points to problem knowing @4 points to @1.

It tracks this data in the LocalHeap data structure. This is used to track
the heap across blocks, and it includes a merge function to handle control
flow merges. However, this merge function would not always merge the pointer
sets together. It sometimes would merge them together, since it had a fast
path check inside merge, which would just copy the contents of the block to be
merged with itself if it were this block's first time merging. This fast path happened
to hide the bug in general case merge code. If we didn't take this fast path,
we would just never transfer pointer sets from predecessor to successor. This
could lead to all kinds of issues, including using the incorrect phantom node
in IR instead of its materialized version. It could also lead to the phase not
sinking objects it is capable of sinking.

This patch makes it so that we merge together the pointer sets. We always add
new pointers to the set. So in pointer A->B, if the set has yet to see A, we
add it. If the set already contains pointer A->B, and we encounter a new
pointer A->C, or if we encounter a merge without any A->* pointer, we mark
the A pointer as top, marking it A->TOP. We do this to ensure that we fixpoint.
We're guaranteed that m_pointers is monotonically increasing (module liveness
pruning, which is a constant). And once something is TOP, it never becomes
anything else. (Instead of marking a pointer top, we used to just remove it
from the set, but this has issues, as it could lead to us ping-ponging in
our fixpoint analysis, add, remove, add, remove, etc.)

So the merge rules are:
{A->B} merge {A->B} => {A->B}
{A->B} merge {A->C} => {A->TOP}
{A->B} merge {A->TOP} => {A->TOP}
{A->B} merge {} => {A->TOP}

Thanks to Samuel Groß of Google Project Zero for identifying this bug.

  • dfg/DFGObjectAllocationSinkingPhase.cpp:

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

1:37 PM Changeset in webkit [254450] by Alan Coon
  • 3 edits
    4 deletes in branches/safari-608.5.0.2-branch

Revert r254349. rdar://problem/58529691

This reverts commit r254445.

1:37 PM Changeset in webkit [254449] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Flaky Test: imported/w3c/web-platform-tests/svg/import/struct-dom-06-b-manual.svg
https://bugs.webkit.org/show_bug.cgi?id=204312

Unreviewed test gardening.

  • platform/mac/TestExpectations:
1:33 PM Changeset in webkit [254448] by aakash_jain@apple.com
  • 1 edit
    1 add in trunk/Tools

[EWS] Add unit tests for factories
https://bugs.webkit.org/show_bug.cgi?id=206159

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/factories_unittest.py: Added unit tests for factories.
1:28 PM Changeset in webkit [254447] by ysuzuki@apple.com
  • 9 edits
    2 deletes in trunk/Source/JavaScriptCore

[JSC] Put JSProxy in IsoSubspace
https://bugs.webkit.org/show_bug.cgi?id=206187

Reviewed by Mark Lam.

  1. Put JSProxy in IsoSubspace.
  2. Make JSProxy non-destructible since derived class JSWindowProxy is having its own IsoSubspace with destructibility.
  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::resetPrototype):
(JSC::JSGlobalObject::finishCreation):

  • runtime/JSNonDestructibleProxy.cpp: Removed.
  • runtime/JSNonDestructibleProxy.h: Removed.
  • runtime/JSProxy.h:

(JSC::JSProxy::subspaceFor):

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

(JSC::VM::VM):

  • runtime/VM.h:
12:21 PM Changeset in webkit [254446] by youenn@apple.com
  • 11 edits
    1 copy
    2 moves
    2 adds in trunk/Source/WebCore

Split AudioTrackPrivateMediaStreamCocoa to implement remote audio rendering
https://bugs.webkit.org/show_bug.cgi?id=206172

Reviewed by Eric Carlson.

Refactor code to allow in the future rendering of media stream audio tracks in a remote process.
For that purpose, split AudioTrackPrivateMediaStreamCocoa functionality in two parts.
The first part is moved back to AudioTrackPrivateMediaStream.
The second part is platform specific and is defined in terms of an interface AudioMediaStreamTrackRenderer
and an in process implementation named AudioMediaStreamTrackRendererCocoa.

Make TrackPrivateBase and MediaStreamTrackPrivate public LoggerHelper.
This allows making AudioMediaStreamTrackRenderer and AudioSampleDataSource to take a LoggerHelper instead of a derived instance.

No change of behavior.

  • Sources.txt:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/audio/mac/AudioSampleDataSource.h:
  • platform/audio/mac/AudioSampleDataSource.mm:

(WebCore::AudioSampleDataSource::create):
(WebCore::AudioSampleDataSource::AudioSampleDataSource):

  • platform/graphics/TrackPrivateBase.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateTracks):

  • platform/mediastream/AudioMediaStreamTrackRenderer.h: Added.

(WebCore::AudioMediaStreamTrackRenderer::setMuted):
(WebCore::AudioMediaStreamTrackRenderer::setVolume):
(WebCore::AudioMediaStreamTrackRenderer::volume const):
(WebCore::AudioMediaStreamTrackRenderer::isMuted const):

  • platform/mediastream/AudioTrackPrivateMediaStream.cpp: Added.

(WebCore::AudioTrackPrivateMediaStream::setLogger):
(WebCore::AudioTrackPrivateMediaStream::AudioTrackPrivateMediaStream):
(WebCore::AudioTrackPrivateMediaStream::~AudioTrackPrivateMediaStream):
(WebCore::AudioTrackPrivateMediaStream::clear):
(WebCore::AudioTrackPrivateMediaStream::playInternal):
(WebCore::AudioTrackPrivateMediaStream::play):
(WebCore::AudioTrackPrivateMediaStream::pause):
(WebCore::AudioTrackPrivateMediaStream::setVolume):
(WebCore::AudioTrackPrivateMediaStream::volume const):
(WebCore::AudioTrackPrivateMediaStream::audioSamplesAvailable):
(WebCore::AudioTrackPrivateMediaStream::trackMutedChanged):
(WebCore::AudioTrackPrivateMediaStream::trackEnabledChanged):
(WebCore::AudioTrackPrivateMediaStream::updateRendererMutedState):
(WebCore::AudioTrackPrivateMediaStream::trackEnded):

  • platform/mediastream/AudioTrackPrivateMediaStream.h:
  • platform/mediastream/MediaStreamTrackPrivate.h:
  • platform/mediastream/mac/AudioMediaStreamTrackRendererCocoa.cpp: Added.

(WebCore::AudioMediaStreamTrackRendererCocoa::stop):
(WebCore::AudioMediaStreamTrackRendererCocoa::clear):
(WebCore::AudioMediaStreamTrackRendererCocoa::setPaused):
(WebCore::AudioMediaStreamTrackRendererCocoa::createAudioUnit):
(WebCore::AudioMediaStreamTrackRendererCocoa::pushSamples):
(WebCore::AudioMediaStreamTrackRendererCocoa::render):
(WebCore::AudioMediaStreamTrackRendererCocoa::inputProc):

  • platform/mediastream/mac/AudioMediaStreamTrackRendererCocoa.h: Added.
  • platform/mediastream/mac/AudioTrackPrivateMediaStreamCocoa.h: Removed.
11:57 AM Changeset in webkit [254445] by Alan Coon
  • 3 edits
    4 adds in branches/safari-608.5.0.2-branch

Cherry-pick r254349. rdar://problem/58529691

ObjectAllocationSinkingPhase doesn't model pointers to allocations in control flow properly
https://bugs.webkit.org/show_bug.cgi?id=204738
<rdar://problem/57553238>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/allocation-sinking-must-model-allocation-pointers-properly-2.js: Added. (assert): (v9):
  • stress/allocation-sinking-must-model-allocation-pointers-properly-3.js: Added. (assert): (v9):
  • stress/allocation-sinking-must-model-allocation-pointers-properly-4.js: Added. (bool): (effects): (escape): (bar):
  • stress/allocation-sinking-must-model-allocation-pointers-properly.js: Added. (alwaysFalse): (sometimesZero): (assert): (v9):

Source/JavaScriptCore:

Allocation sinking phase conducts a points to analysis. It uses this
information for programs like:

`
1: NewObject
2: NewObject
3: PutByOffset(@2, @1, "x")
4: GetByOffset(@2, "x")
`

It solves the points to problem knowing @4 points to @1.

It tracks this data in the LocalHeap data structure. This is used to track
the heap across blocks, and it includes a merge function to handle control
flow merges. However, this merge function would not always merge the pointer
sets together. It sometimes would merge them together, since it had a fast
path check inside merge, which would just copy the contents of the block to be
merged with itself if it were this block's first time merging. This fast path happened
to hide the bug in general case merge code. If we didn't take this fast path,
we would just never transfer pointer sets from predecessor to successor. This
could lead to all kinds of issues, including using the incorrect phantom node
in IR instead of its materialized version. It could also lead to the phase not
sinking objects it is capable of sinking.

This patch makes it so that we merge together the pointer sets. We always add
new pointers to the set. So in pointer A->B, if the set has yet to see A, we
add it. If the set already contains pointer A->B, and we encounter a new
pointer A->C, or if we encounter a merge without any A->* pointer, we mark
the A pointer as top, marking it A->TOP. We do this to ensure that we fixpoint.
We're guaranteed that m_pointers is monotonically increasing (module liveness
pruning, which is a constant). And once something is TOP, it never becomes
anything else. (Instead of marking a pointer top, we used to just remove it
from the set, but this has issues, as it could lead to us ping-ponging in
our fixpoint analysis, add, remove, add, remove, etc.)

So the merge rules are:
{A->B} merge {A->B} => {A->B}
{A->B} merge {A->C} => {A->TOP}
{A->B} merge {A->TOP} => {A->TOP}
{A->B} merge {} => {A->TOP}

Thanks to Samuel Groß of Google Project Zero for identifying this bug.

  • dfg/DFGObjectAllocationSinkingPhase.cpp:

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

11:51 AM Changeset in webkit [254444] by Alan Coon
  • 7 edits in branches/safari-608.5.7.3-branch/Source

Versioning.

11:48 AM Changeset in webkit [254443] by Alan Coon
  • 3 edits
    4 adds in branches/safari-608-branch

Cherry-pick r254349. rdar://problem/58529693

ObjectAllocationSinkingPhase doesn't model pointers to allocations in control flow properly
https://bugs.webkit.org/show_bug.cgi?id=204738
<rdar://problem/57553238>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/allocation-sinking-must-model-allocation-pointers-properly-2.js: Added. (assert): (v9):
  • stress/allocation-sinking-must-model-allocation-pointers-properly-3.js: Added. (assert): (v9):
  • stress/allocation-sinking-must-model-allocation-pointers-properly-4.js: Added. (bool): (effects): (escape): (bar):
  • stress/allocation-sinking-must-model-allocation-pointers-properly.js: Added. (alwaysFalse): (sometimesZero): (assert): (v9):

Source/JavaScriptCore:

Allocation sinking phase conducts a points to analysis. It uses this
information for programs like:

`
1: NewObject
2: NewObject
3: PutByOffset(@2, @1, "x")
4: GetByOffset(@2, "x")
`

It solves the points to problem knowing @4 points to @1.

It tracks this data in the LocalHeap data structure. This is used to track
the heap across blocks, and it includes a merge function to handle control
flow merges. However, this merge function would not always merge the pointer
sets together. It sometimes would merge them together, since it had a fast
path check inside merge, which would just copy the contents of the block to be
merged with itself if it were this block's first time merging. This fast path happened
to hide the bug in general case merge code. If we didn't take this fast path,
we would just never transfer pointer sets from predecessor to successor. This
could lead to all kinds of issues, including using the incorrect phantom node
in IR instead of its materialized version. It could also lead to the phase not
sinking objects it is capable of sinking.

This patch makes it so that we merge together the pointer sets. We always add
new pointers to the set. So in pointer A->B, if the set has yet to see A, we
add it. If the set already contains pointer A->B, and we encounter a new
pointer A->C, or if we encounter a merge without any A->* pointer, we mark
the A pointer as top, marking it A->TOP. We do this to ensure that we fixpoint.
We're guaranteed that m_pointers is monotonically increasing (module liveness
pruning, which is a constant). And once something is TOP, it never becomes
anything else. (Instead of marking a pointer top, we used to just remove it
from the set, but this has issues, as it could lead to us ping-ponging in
our fixpoint analysis, add, remove, add, remove, etc.)

So the merge rules are:
{A->B} merge {A->B} => {A->B}
{A->B} merge {A->C} => {A->TOP}
{A->B} merge {A->TOP} => {A->TOP}
{A->B} merge {} => {A->TOP}

Thanks to Samuel Groß of Google Project Zero for identifying this bug.

  • dfg/DFGObjectAllocationSinkingPhase.cpp:

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

11:42 AM Changeset in webkit [254442] by Alan Coon
  • 7 edits in branches/safari-608-branch/Source

Versioning.

11:32 AM Changeset in webkit [254441] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

Explain why we started skipping "insert-span-into-long-text-bug-28245.html" in debug.

11:26 AM Changeset in webkit [254440] by eric.carlson@apple.com
  • 2 edits in trunk/Tools

Don't softlink AVCapture classes on watchOS or tvOS
https://bugs.webkit.org/show_bug.cgi?id=205974
<rdar://problem/58427281>

Unreviewed test fix after r254257.

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

(TestWebKitAPI::TEST):

10:53 AM Changeset in webkit [254439] by jiewen_tan@apple.com
  • 24 edits
    5 adds in trunk

[WebAuthn] Support CTAP Client Pin
https://bugs.webkit.org/show_bug.cgi?id=191516
<rdar://problem/56558558>

Reviewed by Brent Fulgham.

Source/WebCore:

Covered by API tests.

  • Modules/webauthn/fido/DeviceRequestConverter.cpp:

(fido::encodeMakeCredenitalRequestAsCBOR):
(fido::encodeGetAssertionRequestAsCBOR):

  • Modules/webauthn/fido/Pin.cpp:

(fido::pin::RetriesResponse::parse):
(fido::pin::TokenResponse::parse):
(fido::pin::TokenRequest::tryCreate):
(fido::pin::encodeAsCBOR):

  • Modules/webauthn/fido/Pin.h:
  • crypto/algorithms/CryptoAlgorithmAES_CBC.h:
  • crypto/gcrypt/CryptoAlgorithmAES_CBCGCrypt.cpp:

(WebCore::CryptoAlgorithmAES_CBC::platformEncrypt):
(WebCore::CryptoAlgorithmAES_CBC::platformDecrypt):

  • crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:

(WebCore::transformAES_CBC):
(WebCore::CryptoAlgorithmAES_CBC::platformEncrypt):
(WebCore::CryptoAlgorithmAES_CBC::platformDecrypt):

  • testing/MockWebAuthenticationConfiguration.h:

(WebCore::MockWebAuthenticationConfiguration::HidConfiguration::encode const):
(WebCore::MockWebAuthenticationConfiguration::HidConfiguration::decode):

  • testing/MockWebAuthenticationConfiguration.idl:

Source/WebKit:

This patch implements authenticatorClientPIN from the spec:
https://fidoalliance.org/specs/fido-v2.0-ps-20190130/fido-client-to-authenticator-protocol-v2.0-ps-20190130.html#authenticatorClientPIN
Specifically, it implements section 5.5.1, 5.5.3, 5.5.4, 5.5.7, and 5.5.8.

Here is the flow how makeCredential/getAssertion works with a PIN in our implementation:

  1. Determine if the connected authenticator has a PIN;
  2. If yes, send the makeCredential/getAssertion request to the authenticator with an empty pinAuth

such that the authenticator will wink for user gestures. This step intends to confirm the authenticator
is the one the user wants to use. Otherwise, we don't know which authenticator to send the PIN
if multiple are connected;

  1. Once the user confirms the authetnicator, it will return either CTAP2_ERR_PIN_INVALID or

CTAP2_ERR_PIN_AUTH_INVALID. Some authenticators return CTAP2_ERR_PIN_AUTH_INVALID even though
it is not suggested by the spec;

  1. Get retries from the authenticator;
  2. Get key agreement from the authenticator;
  3. Ask the UI client for the PIN and at the meantime inform it the retries;
  4. Get pin token from the authenticator;
  5. Resend the makeCredential/getAssertion request with the desired pinAuth.

Besides implementating the above flow, this patch also fixes some bugs within the PIN commands encoder:

  1. pinAuth/pinProtocol are wrongly encoded for makeCredential/getAssertion;
  2. AES CBC should be called without any padding. Therefore, CryptoAlgorithmAES_CBC adds a no padding mode;
  3. The sharedSecret is the SHA256 digest of the ECDH key agreement instead of the raw key agreement.
  • UIProcess/API/APIWebAuthenticationPanelClient.h:

(API::WebAuthenticationPanelClient::requestPin const):

  • UIProcess/WebAuthentication/Authenticator.h:
  • UIProcess/WebAuthentication/AuthenticatorManager.cpp:

(WebKit::AuthenticatorManager::requestPin):

  • UIProcess/WebAuthentication/AuthenticatorManager.h:
  • UIProcess/WebAuthentication/Cocoa/WebAuthenticationPanelClient.h:
  • UIProcess/WebAuthentication/Cocoa/WebAuthenticationPanelClient.mm:

(WebKit::WebAuthenticationPanelClient::WebAuthenticationPanelClient):
(WebKit::WebAuthenticationPanelClient::requestPin const):

  • UIProcess/WebAuthentication/Mock/MockHidConnection.cpp:

(WebKit::MockHidConnection::feedReports):

  • UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp:

(WebKit::CtapAuthenticator::makeCredential):
(WebKit::CtapAuthenticator::continueMakeCredentialAfterResponseReceived):
(WebKit::CtapAuthenticator::getAssertion):
(WebKit::CtapAuthenticator::continueGetAssertionAfterResponseReceived):
(WebKit::CtapAuthenticator::getRetries):
(WebKit::CtapAuthenticator::continueGetKeyAgreementAfterGetRetries):
(WebKit::CtapAuthenticator::continueRequestPinAfterGetKeyAgreement):
(WebKit::CtapAuthenticator::continueGetPinTokenAfterRequestPin):
(WebKit::CtapAuthenticator::continueRequestAfterGetPinToken):
(WebKit::CtapAuthenticator::continueMakeCredentialAfterResponseReceived const): Deleted.

  • UIProcess/WebAuthentication/fido/CtapAuthenticator.h:

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/CtapPinTest.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/FidoTestData.h:
  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(-[TestWebAuthenticationPanelDelegate panel:requestPINWithRemainingRetries:completionHandler:]):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/web-authentication-get-assertion-hid-pin.html: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/web-authentication-make-credential-hid-pin-get-key-agreement-error.html: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/web-authentication-make-credential-hid-pin-get-pin-token-error.html: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/web-authentication-make-credential-hid-pin-get-retries-error.html: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/web-authentication-make-credential-hid-pin.html: Added.
10:34 AM Changeset in webkit [254438] by Alan Bujtas
  • 4 edits in trunk

[LFC][Integration] Turn off trailing letter-space trimming for the LineBreaker content
https://bugs.webkit.org/show_bug.cgi?id=206181
<rdar://problem/58532931>

Reviewed by Antti Koivisto.

Source/WebCore:

Do not mark trailing letter-spacing as trimmable in the "continuous content" we feed in to line breaking.
This causes different and unexpected line breaking behavior as we don't try to fit the letter-spacing after the last character.

  • layout/inlineformatting/InlineLineBreaker.cpp:

(WebCore::Layout::ContinuousContent::ContinuousContent):

LayoutTests:

  • platform/ios/css1/text_properties/letter_spacing-expected.txt: Undo the rebaselining.
9:52 AM Changeset in webkit [254437] by Wenson Hsieh
  • 2 edits in trunk/LayoutTests

[iOS] editing/selection/ios/clear-selection-after-tap-in-large-selected-non-editable-text.html times out
https://bugs.webkit.org/show_bug.cgi?id=206126
<rdar://problem/58060387>

Reviewed by Tim Horton.

This test is intended to verify that when ranged selection UI covers up most of the view, tapping the selection
will clear the selection instead of toggling the callout bar. However, there are a couple of issues that make
this test fail:

  • The long press that is intended to select text ends up under the "Sel" in select and above the "ect" that

wraps to the next line, which causes the word to not be selected. To fix this, I changed the tap location from
the center of the view to somewhere in the top half of the view, near the middle of "Sel".

  • The callout bar appears in the center of the screen with the "Look up" action in the middle, so tapping the

center of the view again causes a view controller to be presented when looking up the selected word ("Select").
We can avoid this by also moving the tap location away from the center of the view.

  • On iPad, the word "Select" isn't big enough to encompass most of the screen even at 250px, so the test fails.

We fix this by making the "Select" text much bigger (500px), and then make the body overflow: hidden so that
selecting the word on iPhone's smaller screen doesn't cause scrolling.

  • editing/selection/ios/clear-selection-after-tap-in-large-selected-non-editable-text.html:
9:39 AM Changeset in webkit [254436] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[iOS] Remove 'com.apple.diagnosticd' from WebContent process sandbox
https://bugs.webkit.org/show_bug.cgi?id=206114
<rdar://problem/58496791>

Reviewed by Per Arne Vollan.

In Bug 205292 we began dynamically adding a sandbox extension for 'com.apple.diagnosticd' when needed.
We should remove the blanket permission from the sandbox.

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

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
9:35 AM Changeset in webkit [254435] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Correct test expectations after r254428
https://bugs.webkit.org/show_bug.cgi?id=206164

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
9:19 AM Changeset in webkit [254434] by keith_miller@apple.com
  • 4 edits
    1 add in trunk

CheckNeutered needs to claim it reads JSType in clobberize.
https://bugs.webkit.org/show_bug.cgi?id=206136

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/check-neutered-clobberize-reads-jstype.js: Added.

(foo):

Source/JavaScriptCore:

CheckNeutered needs to read JSType otherwise it can get hoisted
past the TypedArray check guarding it.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

9:14 AM Changeset in webkit [254433] by Wenson Hsieh
  • 7 edits in trunk/Source/WebKit

[macCatalyst] UI process crashes on launch after r254101
https://bugs.webkit.org/show_bug.cgi?id=206156
<rdar://problem/58514942>

Reviewed by Brent Fulgham.

Fixes the crash by not soft-linking BackBoardServices in an attempt to invoke BKSDisplayBrightnessGetCurrent on
macCatalyst. Prior to r254101, this was only defined on iOS and not watchOS or tvOS; after this change, it
should be defined only on iOS, watchOS and tvOS.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::registerNotificationObservers):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::initializeNewWebProcess):

  • UIProcess/WebProcessPool.h:
  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
  • WebProcess/cocoa/WebProcessCocoa.mm:
9:06 AM Changeset in webkit [254432] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Unreviewed gardening after r254409
https://bugs.webkit.org/show_bug.cgi?id=206150

  • platform/gtk/TestExpectations:
8:09 AM Changeset in webkit [254431] by Antti Koivisto
  • 4 edits in trunk

[LFC][Integration] editing/text-iterator/findString.html fails on iOS
https://bugs.webkit.org/show_bug.cgi?id=206164

Reviewed by Zalan Bujtas.

Source/WebCore:

  • rendering/line/LineLayoutTraversalDisplayRunPath.h:

(WebCore::LineLayoutTraversal::DisplayRunPath::isLastOnLine const):

The test here was reversed.

LayoutTests:

  • platform/ios/TestExpectations:
8:02 AM Changeset in webkit [254430] by Antti Koivisto
  • 2 edits in trunk/LayoutTests

[iOS] Unreviewed test gardening after r254428.

  • platform/ios/css1/text_properties/letter_spacing-expected.txt:
7:04 AM Changeset in webkit [254429] by Alan Bujtas
  • 3 edits in trunk/LayoutTests

[Win] Unreviewed test gardening after r254421.

  • platform/win/css1/text_properties/text_indent-expected.txt:
  • platform/win/css2.1/t1601-c547-indent-01-d-expected.txt:
4:47 AM Changeset in webkit [254428] by Antti Koivisto
  • 16 edits in trunk

[LFC][Integration] Enable LFC integration
https://bugs.webkit.org/show_bug.cgi?id=206128

Reviewed by Zalan Bujtas.

Source/WebCore:

Enable the new line layout path.

  • page/RuntimeEnabledFeatures.h:

Source/WebKit:

  • Shared/WebPreferences.yaml:

LayoutTests:

Rebase for some progressions.

  • fast/dom/Range/getBoundingClientRect-expected.txt:
  • fast/dom/Range/getBoundingClientRect.html:

Update the test for new results. These match the complex line layout results (simple lines produce wrong results).

  • platform/ios/fast/text/whitespace/pre-break-word-expected.txt:
  • platform/ios/fast/text/word-break-expected.txt:
  • platform/mac/fast/text/hyphenate-limit-lines-expected.txt:
  • platform/mac/fast/text/whitespace/pre-break-word-expected.txt:
  • platform/mac/fast/text/word-break-expected.txt:

Line breaking and white-space progressions.

  • platform/ios/TestExpectations:

A subtest of editing/text-iterator/findString.html fails on iOS. This needs futher analysis.

  • platform/win/TestExpectations:

fast/dom/Range/getBoundingClientRect.html now fails on windows because LFC is not enabled there.

3:54 AM Changeset in webkit [254427] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] imported/blink/fast/shapes/crash-caused-by-dirtying-a-shape-while-computing-it-requires-a-long-filename-to-crash.html crashes on iOS
https://bugs.webkit.org/show_bug.cgi?id=206151

Reviewed by Zalan Bujtas.

  • layout/layouttree/LayoutTreeBuilder.cpp:

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

LFC doesn't expect line break boxes with float set (other layout systems just ignore it).

2:14 AM Changeset in webkit [254426] by Antti Koivisto
  • 7 edits in trunk/LayoutTests

[LFC][Integration] Ensure that simple line layout tests stays don't turn into LFC tests
https://bugs.webkit.org/show_bug.cgi?id=206153

Reviewed by Zalan Bujtas.

We have a handful of SLL tests that document non-standard behaviors. Keep these SLL only with LFC enabled.

  • fast/text/embed-at-end-of-pre-wrap-line-simple-lines-expected.html:
  • fast/text/embed-at-end-of-pre-wrap-line-simple-lines.html:
  • fast/text/simple-line-layout-leading-whitespace-with-soft-hard-linebreak-expected.html:
  • fast/text/simple-line-layout-leading-whitespace-with-soft-hard-linebreak.html:
  • fast/text/whitespace/pre-wrap-long-word-simple-lines-expected.html:
  • fast/text/whitespace/pre-wrap-long-word-simple-lines.html:
2:11 AM Changeset in webkit [254425] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] fast/text/fast-run-width-vs-slow-run-width.html is failing
https://bugs.webkit.org/show_bug.cgi?id=206143

Reviewed by Zalan Bujtas.

The test is constructed so that the preferred width computation produces float value that maps exactly to LayoutUnit
(usually it gets ceiled up). This get converted back to float and the same input widths are substracted from
the total during inline layout. Due to nature of floating point arithmetic this ends up producing slightly
different result and the last word doesn't fit.

  • layout/inlineformatting/InlineLineBreaker.cpp:

(WebCore::Layout::LineBreaker::tryWrappingInlineContent const):

When using floats, do an additional equality comparison that accepts values within scaled float epsilon as equal.

1:31 AM Changeset in webkit [254424] by Carlos Garcia Campos
  • 5 edits in trunk/Source

WebDriver: pressed virtual keys not correctly handled in action sequences
https://bugs.webkit.org/show_bug.cgi?id=205997

Reviewed by Brian Burg.

Source/WebDriver:

We are assuming that only one virtual key can be pressed and that a key up always releases the pressed virtual
key if any. We should keep a list of pressed keys and remove them from the list when key up happens for them.

Fixes: imported/w3c/webdriver/tests/perform_actions/key_modifiers.py::test_shift_modifier_generates_capital_letters[\ue008]

imported/w3c/webdriver/tests/perform_actions/key_modifiers.py::test_shift_modifier_generates_capital_letters[\ue050]

  • Session.cpp:

(WebDriver::Session::performActions):

  • Session.h:

Source/WebKit:

When modifiers are present we need to translate the keys that might be affected by the modifiers.

  • UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp:

(WebKit::doKeyStrokeEvent):

1:27 AM Changeset in webkit [254423] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit

Unreviewed. [GTK][WPE] Add missing autocleanup definition for WebKitInputMethodContext

I forgot to add it in r253749.

  • UIProcess/API/gtk/WebKitAutocleanups.h:
  • UIProcess/API/wpe/WebKitAutocleanups.h:

Jan 12, 2020:

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

Remove CorePDF linkage in WebKit
https://bugs.webkit.org/show_bug.cgi?id=206103
<rdar://problem/58490563>

Reviewed by Wenson Hsieh.

  • Configurations/WebKit.xcconfig:
7:40 PM Changeset in webkit [254421] by Alan Bujtas
  • 7 edits in trunk

Text-indent with percentage value should resolve against the available width
https://bugs.webkit.org/show_bug.cgi?id=206155
<rdar://problem/58514882>

Reviewed by Antti Koivisto.

Source/WebCore:

https://www.w3.org/TR/css-text-3/#text-indent-property
"<percentage> Gives the amount of the indent as a percentage of the block container’s own logical width"

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::textIndentOffset const):

LayoutTests:

  • platform/mac/css1/text_properties/text_indent-expected.txt:
  • platform/mac/css2.1/t1601-c547-indent-01-d-expected.txt:
7:12 PM Changeset in webkit [254420] by ysuzuki@apple.com
  • 19 edits in trunk

[JSC] Use internal object field mechanism to implement JSStringIterator
https://bugs.webkit.org/show_bug.cgi?id=206144

Reviewed by Ross Kirsling.

JSTests:

  • stress/string-iterators.js:
  • stress/tailCallForwardArguments.js:

(putFuncToPrivateName.createBuiltin):
(createTailCallForwardingFuncWith):

Source/JavaScriptCore:

This patch uses internal object field mechanism to implement JSStringIterator,
and we also put JSStringIterator into IsoSubspace.

  • builtins/BuiltinNames.h:
  • builtins/StringIteratorPrototype.js:

(next):

  • bytecode/BytecodeIntrinsicRegistry.cpp:

(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):

  • bytecode/BytecodeIntrinsicRegistry.h:
  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::emitIsStringIterator):

  • bytecompiler/NodesCodegen.cpp:

(JSC::stringIteratorInternalFieldIndex):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_getStringIteratorInternalField):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_putStringIteratorInternalField):

  • inspector/JSInjectedScriptHost.cpp:

(Inspector::JSInjectedScriptHost::getInternalProperties):

  • runtime/JSCast.h:
  • runtime/JSStringIterator.cpp:

(JSC::JSStringIterator::finishCreation):
(JSC::JSStringIterator::clone):
(JSC::JSStringIterator::visitChildren):
(JSC::JSStringIterator::iteratedValue const): Deleted.

  • runtime/JSStringIterator.h:
  • runtime/JSType.cpp:

(WTF::printInternal):

  • runtime/JSType.h:
  • runtime/StringPrototype.cpp:

(JSC::stringProtoFuncIterator):

  • runtime/VM.cpp:
  • runtime/VM.h:
7:10 PM Changeset in webkit [254419] by ysuzuki@apple.com
  • 12 edits in trunk/Source/JavaScriptCore

[JSC] Remove IsDone from JSArrayIterator
https://bugs.webkit.org/show_bug.cgi?id=206140

Reviewed by Keith Miller.

We can store -1 in Index field to represent whether the iterator is closed.
While this patch does not change the allocation size of JSArrayIterator, this style can
shrink the size of JSStringIterator when we implement it in the same style.

We also rename iterationKindKeyValue to iterationKindEntries.

  • builtins/ArrayIteratorPrototype.js:

(globalPrivate.arrayIteratorNextHelper):

  • builtins/MapIteratorPrototype.js:

(globalPrivate.mapIteratorNext):

  • builtins/MapPrototype.js:

(entries):

  • builtins/SetIteratorPrototype.js:

(globalPrivate.setIteratorNext):

  • builtins/SetPrototype.js:

(entries):

  • bytecode/BytecodeIntrinsicRegistry.cpp:

(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):

  • bytecode/BytecodeIntrinsicRegistry.h:
  • bytecompiler/NodesCodegen.cpp:

(JSC::arrayIteratorInternalFieldIndex):

  • inspector/JSInjectedScriptHost.cpp:

(Inspector::cloneArrayIteratorObject):

  • runtime/JSArrayIterator.cpp:

(JSC::JSArrayIterator::finishCreation):

  • runtime/JSArrayIterator.h:
5:18 PM Changeset in webkit [254418] by ysuzuki@apple.com
  • 13 edits in trunk/Source/JavaScriptCore

[JSC] Consistently use "var" in builtin JS
https://bugs.webkit.org/show_bug.cgi?id=206157

Reviewed by Mark Lam.

let / const requires additional bytecode to make it Empty initialized for now.
For builtin JS, we would like to keep it as efficient and compact as we can
so we should use var consistently.

  • builtins/ArrayPrototype.js:

(sort.stringComparator):
(sort.compactSparse):
(sort.compactSlow):
(sort.compact):
(sort.merge):
(sort.mergeSort):
(sort.bucketSort):
(sort.comparatorSort):
(sort.stringSort):
(sort):
(globalPrivate.concatSlowPath):
(concat):

  • builtins/FunctionPrototype.js:

(call):
(overriddenName.string_appeared_here.symbolHasInstance):

  • builtins/GlobalOperations.js:

(globalPrivate.copyDataProperties):
(globalPrivate.copyDataPropertiesNoExclusions):

  • builtins/IteratorHelpers.js:

(performIteration):

  • builtins/ModuleLoader.js:

(async loadModule):
(async loadAndEvaluateModule):
(async requestImportModule):
(dependencyKeysIfEvaluated):

  • builtins/ObjectConstructor.js:

(fromEntries):

  • builtins/PromisePrototype.js:

(finally):
(valueThunk):
(globalPrivate.getThenFinally):
(thrower):
(globalPrivate.getCatchFinally):
(const.valueThunk): Deleted.
(const.thrower): Deleted.

  • builtins/RegExpPrototype.js:

(globalPrivate.advanceStringIndex):
(globalPrivate.regExpExec):
(globalPrivate.hasObservableSideEffectsForRegExpMatch):
(globalPrivate.matchSlow):
(overriddenName.string_appeared_here.match):
(overriddenName.string_appeared_here.matchAll):
(getSubstitution):
(overriddenName.string_appeared_here.replace):
(overriddenName.string_appeared_here.search):
(globalPrivate.hasObservableSideEffectsForRegExpSplit):
(overriddenName.string_appeared_here.split):
(intrinsic.RegExpTestIntrinsic.test):

  • builtins/RegExpStringIteratorPrototype.js:

(next):

  • builtins/StringPrototype.js:

(match):
(matchAll):
(globalPrivate.hasObservableSideEffectsForStringReplace):
(intrinsic.StringPrototypeReplaceIntrinsic.replace):
(globalPrivate.createHTML):

  • builtins/TypedArrayConstructor.js:

(of):
(from):

  • builtins/TypedArrayPrototype.js:

(globalPrivate.typedArraySpeciesConstructor):
(globalPrivate.typedArrayClampArgumentToStartOrEnd):
(fill):
(find):
(subarray):

4:21 PM Changeset in webkit [254417] by weinig@apple.com
  • 4 edits
    1 copy in trunk/Source/WTF

Platform.h is out of control Part 2: Split WTF_OS_* macro definitions out of Platform.h and into a new OS.h
https://bugs.webkit.org/show_bug.cgi?id=206138

Reviewed by Anders Carlsson.

As a another step towards cleaning up Platform.h, split out OS related
macros into their own file.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/OS.h: Copied from Source/WTF/wtf/Platform.h.
  • wtf/Platform.h:
2:42 PM Changeset in webkit [254416] by ysuzuki@apple.com
  • 6 edits in trunk/Source

[WebCore] Reorganize JSType in WebCore to offer more bits to JSC
https://bugs.webkit.org/show_bug.cgi?id=206141

Reviewed by Keith Miller.

Source/JavaScriptCore:

  • runtime/JSType.h:

Source/WebCore:

This patch reorganize JSType a bit to offer more bits to JSC. Then JSC can use JSType for types easily.

  • bindings/js/JSDOMWrapper.h:
  • bindings/js/JSElementCustom.h:

(JSC::JSCastingHelpers::InheritsTraits<WebCore::JSElement>::inherits):

  • domjit/DOMJITHelpers.h:

(WebCore::DOMJIT::branchIfElement):
(WebCore::DOMJIT::branchIfNotElement):

1:30 PM Changeset in webkit [254415] by mmaxfield@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION(r185816): In the Hong Kong locale, navigator.language reports it's in the Taiwan locale
https://bugs.webkit.org/show_bug.cgi?id=200043

Make iOS bots green until they can be updated.

Unreviewed.

  • platform/ios/TestExpectations:
11:10 AM Changeset in webkit [254414] by Darin Adler
  • 5 edits in trunk/Source/WebCore

Remove unneeded MemoryIDBBackingStore::create
https://bugs.webkit.org/show_bug.cgi?id=205512

Reviewed by Youenn Fablet.

  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::createBackingStore): Call makeUnique
instead of MemoryIDBBackingStore::create.

  • Modules/indexeddb/server/MemoryCursor.cpp: Removed unneeded include

of MemoryIDBBackingStore.h.

  • Modules/indexeddb/server/MemoryIDBBackingStore.cpp: Fixed a comment

and replaced a global variable with a constant.
(WebCore::IDBServer::MemoryIDBBackingStore::create): Deleted.

  • Modules/indexeddb/server/MemoryIDBBackingStore.h: Made the class

final, made more of the member functions private, and moved a couple
function members out from in between the data members.

Jan 11, 2020:

11:44 PM Changeset in webkit [254413] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WTF

REGRESSION(r185816): In the Hong Kong locale, navigator.language reports it's in the Taiwan locale
https://bugs.webkit.org/show_bug.cgi?id=200043

Unreviewed.

Fix build.

  • wtf/cocoa/LanguageCocoa.mm:

(WTF::canMinimizeLanguages):

11:16 PM Changeset in webkit [254412] by mmaxfield@apple.com
  • 22 edits in trunk

REGRESSION(r185816): In the Hong Kong locale, navigator.language reports it's in the Taiwan locale
https://bugs.webkit.org/show_bug.cgi?id=200043

Unreviewed.

Addressing additional review comments.

Source/WTF:

  • wtf/cocoa/LanguageCocoa.mm:

(WTF::canMinimizeLanguages):

LayoutTests:

  • fast/text/international/system-language/navigator-language/navigator-language-en-GB.html:
  • fast/text/international/system-language/navigator-language/navigator-language-en-US.html:
  • fast/text/international/system-language/navigator-language/navigator-language-en.html:
  • fast/text/international/system-language/navigator-language/navigator-language-es-419.html:
  • fast/text/international/system-language/navigator-language/navigator-language-es-ES.html:
  • fast/text/international/system-language/navigator-language/navigator-language-es-MX.html:
  • fast/text/international/system-language/navigator-language/navigator-language-es.html:
  • fast/text/international/system-language/navigator-language/navigator-language-fr-CA.html:
  • fast/text/international/system-language/navigator-language/navigator-language-fr.html:
  • fast/text/international/system-language/navigator-language/navigator-language-hi.html:
  • fast/text/international/system-language/navigator-language/navigator-language-ja.html:
  • fast/text/international/system-language/navigator-language/navigator-language-pt-BR.html:
  • fast/text/international/system-language/navigator-language/navigator-language-pt-PT.html:
  • fast/text/international/system-language/navigator-language/navigator-language-ru.html:
  • fast/text/international/system-language/navigator-language/navigator-language-zh-HK.html:
  • fast/text/international/system-language/navigator-language/navigator-language-zh-Hans.html:
  • fast/text/international/system-language/navigator-language/navigator-language-zh-Hant-HK.html:
  • fast/text/international/system-language/navigator-language/navigator-language-zh-Hant.html:
  • fast/text/international/system-language/navigator-language/navigator-language-zh-TW.html:
10:57 PM Changeset in webkit [254411] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WTF

Fix internal Apple builds after r254389
https://bugs.webkit.org/show_bug.cgi?id=206135

Rubber stamped by Zalan Bujtas.

  • wtf/spi/cocoa/NSLocaleSPI.h:
8:21 PM Changeset in webkit [254410] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC] Introduce the concept of independent formatting context
https://bugs.webkit.org/show_bug.cgi?id=206137
<rdar://problem/58508015>

Reviewed by Sam Weinig.

At this point it is just about absolute positioned block level boxes since we don't support the "contain" property.
https://www.w3.org/TR/css-display-3/#independent-formatting-context

  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::establishesFormattingContext const):
(WebCore::Layout::Box::establishesIndependentFormattingContext const):

  • layout/layouttree/LayoutBox.h:
5:46 PM Changeset in webkit [254409] by achristensen@apple.com
  • 23 edits in trunk

Expose frame information on _WKResourceLoadInfo
https://bugs.webkit.org/show_bug.cgi?id=206104
<rdar://problem/57132290>

Reviewed by Dean Jackson.

Source/WebCore:

Covered by API tests.

  • page/FrameIdentifier.h:

(WebCore::frameIdentifierFromID): Deleted.

Source/WebKit:

  • NetworkProcess/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::encode const):
(WebKit::NetworkResourceLoadParameters::decode):

  • NetworkProcess/NetworkResourceLoadParameters.h:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::resourceLoadInfo):

  • Shared/API/Cocoa/_WKFrameHandle.h:
  • Shared/API/Cocoa/_WKFrameHandle.mm:

(-[_WKFrameHandle frameID]):
(-[_WKFrameHandle initWithCoder:]):
(-[_WKFrameHandle encodeWithCoder:]):
(-[_WKFrameHandle _frameID]): Deleted.

  • Shared/API/Cocoa/_WKFrameHandleInternal.h:
  • Shared/ResourceLoadInfo.h:

(WebKit::ResourceLoadInfo::encode const):
(WebKit::ResourceLoadInfo::decode):

  • UIProcess/API/APIResourceLoadInfo.h:
  • UIProcess/API/Cocoa/_WKInspector.mm:

(-[_WKInspector showMainResourceForFrame:]):

  • UIProcess/API/Cocoa/_WKResourceLoadInfo.h:
  • UIProcess/API/Cocoa/_WKResourceLoadInfo.mm:

(-[_WKResourceLoadInfo frame]):
(-[_WKResourceLoadInfo parentFrame]):

  • UIProcess/API/mac/WKWebViewMac.mm:

(-[WKWebView _canChangeFrameLayout:]):
(-[WKWebView _printOperationWithPrintInfo:forFrame:]):

  • UIProcess/Cocoa/WKReloadFrameErrorRecoveryAttempter.mm:

(-[WKReloadFrameErrorRecoveryAttempter attemptRecovery]):

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _wk_pageCountForPrintFormatter:]):

  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::evaluateJavaScriptCallback):

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:

(+[WKWebProcessPlugInFrame lookUpFrameFromHandle:]):

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::addParametersFromFrame):
(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):
(WebKit::WebLoaderStrategy::loadResourceSynchronously):
(WebKit::WebLoaderStrategy::startPingLoad):

  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::installServiceWorker):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadDelegate.mm:

(TEST):

5:25 PM Changeset in webkit [254408] by ysuzuki@apple.com
  • 8 edits in trunk

[WebCore] Fix crash in module loader due to change in fragment reservation
https://bugs.webkit.org/show_bug.cgi?id=206125

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/import-meta/import-meta-url-expected.txt:

Source/WebCore:

At some point, CachedResource::url() starts returning URL without fragment.
However, this was invariant in ScriptModuleLoader, so one of WPT test is crashing.

We save source URL so that we preserve fragment information.
Still we need to have fragment information after the redirect to fix a bug filed in [1].

[1]: https://bugs.webkit.org/show_bug.cgi?id=205294

  • bindings/js/CachedModuleScriptLoader.cpp:

(WebCore::CachedModuleScriptLoader::load):

  • bindings/js/CachedModuleScriptLoader.h:
  • bindings/js/ScriptModuleLoader.cpp:

(WebCore::ScriptModuleLoader::notifyFinished):

LayoutTests:

4:49 PM Changeset in webkit [254407] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC] isOkToAccessDisplayBox should return false on formatting context root access.
https://bugs.webkit.org/show_bug.cgi?id=206123
<rdar://problem/58500267>

Reviewed by Antti Koivisto.

From now on any geometry access outside of the formatting context without a valid reason is considered an escape.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::geometryForBox const):

4:29 PM Changeset in webkit [254406] by commit-queue@webkit.org
  • 7 edits
    2 adds in trunk

Support image-set() standard syntax
https://bugs.webkit.org/show_bug.cgi?id=160934
<rdar://problem/27891501>

Patch by Noam Rosenthal <Noam Rosenthal> on 2020-01-11
Source/WebCore:

Reviewed by Simon Fraser.

Inside image-set, image URLs can use regular quotes, not necessarily with url().
See https://drafts.csswg.org/css-images-4/#image-set-notation

Test: fast/hidpi/image-set-as-background-quotes.html

  • css/parser/CSSPropertyParserHelpers.cpp:

Update CSS parser to allow raw strings as URLs inside image-set.

(WebCore::CSSPropertyParserHelpers::consumeUrlOrStringAsStringView):
(WebCore::CSSPropertyParserHelpers::consumeImageSet):

LayoutTests:

Reviewed by Dean Jackson.

  • fast/css/image-set-parsing-invalid.html:
  • fast/css/image-set-parsing.html:

Update parsing to include raw strings

  • fast/hidpi/image-set-as-background-quotes-expected.html: Added.
  • fast/hidpi/image-set-as-background-quotes.html: Added.

Added ref-test for image-set without url().

4:16 PM Changeset in webkit [254405] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC] BlockFormattingContext::verticalPositionWithMargin should take VerticalConstraints
https://bugs.webkit.org/show_bug.cgi?id=206122
<rdar://problem/58500207>

Reviewed by Antti Koivisto.

This prevents verticalPositionWithMargin from reading geometry outside of the formatting context.

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):
(WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot):
(WebCore::Layout::BlockFormattingContext::computeStaticVerticalPosition):
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPosition):
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPositionForAncestors):
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPositionForFormattingRoot):
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPositionForFloatClear):
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::verticalPositionWithMargin const):

  • layout/blockformatting/BlockFormattingContext.h:
4:05 PM Changeset in webkit [254404] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][BFC] BlockFormattingContext::computeEstimatedVerticalPositionForAncestors should take ConstraintsPair<HorizontalConstraints>
https://bugs.webkit.org/show_bug.cgi?id=206121
<rdar://problem/58499492>

Reviewed by Antti Koivisto.

This prevents computeEstimatedVerticalPositionForAncestors from reading geometry outside of the formatting context.

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot):
(WebCore::Layout::BlockFormattingContext::computeStaticVerticalPosition):
(WebCore::Layout::BlockFormattingContext::computeStaticPosition):
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPosition):
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPositionForAncestors):
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPositionForFormattingRoot):
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPositionForFloatClear):

  • layout/blockformatting/BlockFormattingContext.h:
4:03 PM Changeset in webkit [254403] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC] Introduce BlockFormattingContext::ConstraintsPair
https://bugs.webkit.org/show_bug.cgi?id=206119
<rdar://problem/58498745>

Reviewed by Antti Koivisto.

This is in preparation for passing rootHorizontalConstraints all the way to BlockFormattingContext::computeEstimatedVerticalPosition().

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::ConstraintsPair<T>::ConstraintsPair):
(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):
(WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot):
(WebCore::Layout::BlockFormattingContext::placeInFlowPositionedChildren):
(WebCore::Layout::BlockFormattingContext::computeStaticVerticalPosition):
(WebCore::Layout::BlockFormattingContext::computeStaticHorizontalPosition):
(WebCore::Layout::BlockFormattingContext::computeStaticPosition):
(WebCore::Layout::BlockFormattingContext::computeWidthAndMargin):
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):

  • layout/blockformatting/BlockFormattingContext.h:

(WebCore::Layout::BlockFormattingContext::ConstraintsPair::operator* const):
(WebCore::Layout::BlockFormattingContext::ConstraintsPair::root const):

3:47 PM Changeset in webkit [254402] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Visually collapse hanging pre-wrap content.
https://bugs.webkit.org/show_bug.cgi?id=206133
<rdar://problem/58505750>

Reviewed by Antti Koivisto.

This change is to comply with other rendering engines when it comes to visually collapsing hanging pre-wrap content.

https://www.w3.org/TR/css-text-3/#white-space-phase-2
"If white-space is set to pre-wrap, the UA must (unconditionally) hang this sequence, unless the sequence
is followed by a forced line break, in which case it must conditionally hang the sequence is instead.
It _may_ also visually collapse the character advance widths of any that would otherwise overflow."

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::close):
(WebCore::Layout::LineBuilder::visuallyCollapsePreWrapOverflowContent):

  • layout/inlineformatting/InlineLineBuilder.h:

(WebCore::Layout::LineBuilder::InlineItemRun::adjustLogicalWidth):

10:07 AM Changeset in webkit [254401] by weinig@apple.com
  • 4 edits
    1 copy in trunk/Source/WTF

Platform.h is out of control Part 1: Split WTF_CPU_* macro definitions out of Platform.h and into a new CPU.h
https://bugs.webkit.org/show_bug.cgi?id=206124

Reviewed by Anders Carlsson.

As a step towards cleaning up Platform.h, split out CPU related
macros into their own file.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/CPU.h: Copied from Source/WTF/wtf/Platform.h.
  • wtf/Platform.h:
9:42 AM Changeset in webkit [254400] by dino@apple.com
  • 9 edits in trunk

[WebGL] Clarify USE_OPENGL_ES_3
https://bugs.webkit.org/show_bug.cgi?id=206081
<rdar://problem/58486798>

Reviewed by Simon Fraser.

Make it clear that USE_ANGLE | USE_OPENGL | USE_OPENGL_ES are exclusive,
and that the availability of OpenGL ES 3 is a separate query.

.:

  • Source/cmake/OptionsFTW.cmake:
  • Source/cmake/OptionsWPE.cmake:
  • Source/cmake/OptionsWinCairo.cmake:

Source/WebCore:

  • platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp:

Source/WTF:

  • wtf/Platform.h:
9:31 AM Changeset in webkit [254399] by cathiechen
  • 13 edits
    2 deletes in trunk/LayoutTests

Import WPT test cases for 2dcontext/imagebitmap
https://bugs.webkit.org/show_bug.cgi?id=205908

Reviewed by Manuel Rego Casasnovas

LayoutTests/imported/w3c:

  • web-platform-tests/2dcontext/imagebitmap/canvas-createImageBitmap-video-resize-expected.txt:
  • web-platform-tests/2dcontext/imagebitmap/canvas-createImageBitmap-video-resize.html:
  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-serializable-expected.txt:
  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-serializable.html:
  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-transfer-expected.txt:
  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-transfer.html:
  • web-platform-tests/2dcontext/imagebitmap/no-coop-coep.https.window.html: Removed.
  • web-platform-tests/2dcontext/imagebitmap/no-coop-coep.https.window.js: Removed.
  • web-platform-tests/2dcontext/imagebitmap/w3c-import.log:

LayoutTests:

Update the expected files.

  • platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-serializable-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-transfer-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-serializable-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-transfer-expected.txt:
9:02 AM Changeset in webkit [254398] by Antti Koivisto
  • 3 edits in trunk/LayoutTests

[LFC][Integration] fast/text/simple-lines-float.html should be about simple line layout only
https://bugs.webkit.org/show_bug.cgi?id=206129

Reviewed by Zalan Bujtas.

Explicitly disable LFC in this SLL feature test.

  • fast/text/simple-lines-float-expected.html:
  • fast/text/simple-lines-float.html:
6:57 AM Changeset in webkit [254397] by Kate Cheney
  • 11 edits in trunk

Add correct grandfathering functionality to the ITP database backend
https://bugs.webkit.org/show_bug.cgi?id=205844
<rdar://problem/58360450>

Reviewed by John Wilander.

Source/WebKit:

This patch adds functionality for grandfathering statistics upon
creation of a new ITP database file. The memory store relies on
the presence of the ITP plist to indicate whether the data should
be grandfathered. Since the database does not use a plist, this patch
adds a boolean variable to track whether the database file previously
existed or not to indicate when to grandfather.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::openITPDatabase):

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:

The boolean variable m_isNewResourceLoadStatisticDatabaseFile is set
to true if the database file did not previously exist, indicating ITP
is being used for the first time and data should be grandfathered.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::populateMemoryStoreFromDisk):
This is where the grandfathering happens. The call to logTestingEvent
is for API testing purposes only.

(WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent):
If a scheduleClearInMemoryAndPersistent is called, the plist is
deleted, and data will be grandfathered upon recreation. To mimic
this, the ITP database store is cleared and becomes "new" again, so
the boolean is set to true.

  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetIsITPDatabaseEnabled):
(WKPreferencesGetIsITPDatabaseEnabled):

  • UIProcess/API/C/WKPreferencesRef.h:
  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _isITPDatabaseEnabled]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:

In order to properly run the grandfathering
API tests, the 'isITPDatabaseEnabled' boolean needs to be exposed from
Web Preferences.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

The API tests rely on the ITP database flag being set correctly. Since
being on-by-default, the ITP database flag does not show up in the
user defaults menu if enabled. This patch fixes this by first checking
to see if the value is in the defaults menu, otherwise returning the
default preferences value. This ensures the preferences value matches
the actual store being initialized.

Tools:

In order to test both the ITP database and memory stores, this patch
had to restructure the grandfathering API tests.

If the test is for the database backend (ends in *Database), it will
check if the default store matches. If so, it continues on with the
normal test. If not, it has to use an API call to reconstruct the
new store and ensure the grandfathering still happens. Vice versa for
the memory store tests.

  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm:

(isITPDatabaseEnabled):
(TEST):

12:27 AM Changeset in webkit [254396] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, suppress warnings in GCC, part 2
https://bugs.webkit.org/show_bug.cgi?id=202832

  • bytecode/ArithProfile.h:
12:18 AM Changeset in webkit [254395] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, suppress warnings in GCC
https://bugs.webkit.org/show_bug.cgi?id=202832

  • bytecode/ArithProfile.h:
12:07 AM Changeset in webkit [254394] by ysuzuki@apple.com
  • 2 edits in trunk/Source/WTF

Unreviewed, fix RunLoopGeneric's RunLoop::cycle

  • wtf/generic/RunLoopGeneric.cpp:

(WTF::RunLoop::cycle):

Jan 10, 2020:

10:54 PM Changeset in webkit [254393] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

[JSC] Flush old tables in End phase
https://bugs.webkit.org/show_bug.cgi?id=206120
<rdar://problem/58039989>

Reviewed by Mark Lam.

JSTests:

  • stress/create-many-realms.js: Added.

(foo):

Source/JavaScriptCore:

stopThePeriphery is stopping compiler threads and main thread (mutator), which means making m_worldIsStopped = true.
It is not for stopping all heap threads including a concurrent marker. The concurrent collector can work while executing
stopThePeriphery. This means that concurrent collectors can access to the old StructureIDTable while it is destroyed
in stopThePeriphery. Destroying old StructureIDTable in GC End phase, this is appropriate phase that we can ensure no
other threads (accessing to heap) are working including concurrent markers, mutator, and compiler threads.

  • heap/Heap.cpp:

(JSC::Heap::runEndPhase):
(JSC::Heap::stopThePeriphery):

9:32 PM Changeset in webkit [254392] by eric.carlson@apple.com
  • 23 edits in trunk

[Media in GPU process] Extend the GPU process sandbox to allow access to local files when necessary
https://bugs.webkit.org/show_bug.cgi?id=205967
<rdar://problem/58425020>

Reviewed by youenn fablet.

Source/WebKit:

No new tests, un-skipped existing tests that pass because of this change.

The GPU process sandbox does not allow access to local files so extend it before
attempting to open a file:// url, and revoke the extension when the file is closed.

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:

(WebKit::RemoteMediaPlayerManagerProxy::load):

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in:
  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::invalidate):
(WebKit::RemoteMediaPlayerProxy::load):

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::GPUProcessProxy::openGPUProcessConnection):

  • UIProcess/GPU/GPUProcessProxy.h:
  • UIProcess/WebProcessProxy.cpp:
  • UIProcess/WebProcessProxy.h:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/GPUProcessConnection.h:

(WebKit::GPUProcessConnection::setAuditToken):
(WebKit::GPUProcessConnection::auditToken const):

  • WebProcess/GPU/GPUProcessConnectionInfo.h:

(WebKit::GPUProcessConnectionInfo::encode const):
(WebKit::GPUProcessConnectionInfo::decode):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::prepareForPlayback):
(WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote::load):
(WebKit::MediaPlayerPrivateRemote::cancelLoad):
(WebKit::MediaPlayerPrivateRemote::prepareToPlay):
(WebKit::MediaPlayerPrivateRemote::play):
(WebKit::MediaPlayerPrivateRemote::pause):
(WebKit::MediaPlayerPrivateRemote::setPreservesPitch):
(WebKit::MediaPlayerPrivateRemote::setVolumeDouble):
(WebKit::MediaPlayerPrivateRemote::setMuted):
(WebKit::MediaPlayerPrivateRemote::setPreload):
(WebKit::MediaPlayerPrivateRemote::setPrivateBrowsingMode):
(WebKit::MediaPlayerPrivateRemote::seek):
(WebKit::MediaPlayerPrivateRemote::seekWithTolerance):
(WebKit::MediaPlayerPrivateRemote::prepareForRendering):
(WebKit::MediaPlayerPrivateRemote::setSize):
(WebKit::MediaPlayerPrivateRemote::setVisible):
(WebKit::MediaPlayerPrivateRemote::setShouldMaintainAspectRatio):
(WebKit::MediaPlayerPrivateRemote::setVideoFullscreenFrame):
(WebKit::MediaPlayerPrivateRemote::setVideoFullscreenGravity):
(WebKit::MediaPlayerPrivateRemote::acceleratedRenderingStateChanged):
(WebKit::MediaPlayerPrivateRemote::setShouldDisableSleep):
(WebKit::MediaPlayerPrivateRemote::requestResource):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/RemoteMediaPlayerMIMETypeCache.cpp:

(WebKit::RemoteMediaPlayerMIMETypeCache::canDecodeExtendedType):
(WebKit::RemoteMediaPlayerMIMETypeCache::supportsTypeAndCodecs):
(WebKit::RemoteMediaPlayerMIMETypeCache::initializeCache):

  • WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:

(WebKit::RemoteMediaPlayerManager::createRemoteMediaPlayer):
(WebKit::RemoteMediaPlayerManager::deleteRemoteMediaPlayer):
(WebKit::RemoteMediaPlayerManager::getSupportedTypes):
(WebKit::RemoteMediaPlayerManager::originsInMediaCache):
(WebKit::RemoteMediaPlayerManager::clearMediaCache):
(WebKit::RemoteMediaPlayerManager::clearMediaCacheForOrigins):
(WebKit::RemoteMediaPlayerManager::gpuProcessConnection const):

  • WebProcess/GPU/media/RemoteMediaPlayerManager.h:

(WebKit::RemoteMediaPlayerManager::parentProcess const):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::ensureGPUProcessConnection):

LayoutTests:

  • gpu-process/TestExpectations:
8:57 PM Changeset in webkit [254391] by mmaxfield@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION(r185816): In the Hong Kong locale, navigator.language reports it's in the Taiwan locale
https://bugs.webkit.org/show_bug.cgi?id=200043

Temporarily mark the navigator-language tests as flakey until I can figure out what to do with them.

Unreviewed.

  • platform/mac/TestExpectations:
7:17 PM Changeset in webkit [254390] by Alexey Shvayka
  • 4 edits in trunk

Object.keys should throw if called on module namespace object with uninitialized binding
https://bugs.webkit.org/show_bug.cgi?id=205983

Reviewed by Yusuke Suzuki.

JSTests:

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

Source/JavaScriptCore:

If JSModuleNamespaceObject::getOwnPropertyNames method is called by
Object.keys or for/in loop, it should invoke GetOwnProperty? on
every binding so a ReferenceError is thrown if the binding is uninitialized.

Complete call stack of internal methods and abstract ops is in "info" meta of
JSTests/test262/test/language/module-code/namespace/internals/object-keys-binding-uninit.js

  • runtime/JSModuleNamespaceObject.cpp:

(JSC::JSModuleNamespaceObject::getOwnPropertyNames):

7:05 PM Changeset in webkit [254389] by mmaxfield@apple.com
  • 11 edits
    41 adds
    1 delete in trunk

REGRESSION(r185816): In the Hong Kong locale, navigator.language reports it's in the Taiwan locale
https://bugs.webkit.org/show_bug.cgi?id=200043
Source/WTF:

<rdar://problem/44119496>

Reviewed by Dean Jackson.

We ask the system for the current locale using CFLocaleCopyPreferredLanguages(), and then round-trip
it through CFBundleGetLocalizationInfoForLocalization() / CFBundleCopyLocalizationForLocalizationInfo().
This was to work around the fact that CFLocaleCopyPreferredLanguages() previously didn't report BCP47
language codes. However, that round-tripping was introducing errors, such as "zh-Hant-HK" was getting
turned into "zh-Hant-TW" which is clearly wrong. The CFBundle functions were never supposed to be used
in this way.

Instead, we can use CFLocaleCreateCanonicalLanguageIdentifierFromString() which is intended to
canonicalize locale identifiers, and does return BCP47 language codes. However, this function preserves
more fingerprinting entropy than the old code path, so we pass the input through new NSLocale SPI to
minimize the entropy revealed.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/Language.h:
  • wtf/Platform.h:
  • wtf/PlatformMac.cmake:
  • wtf/cf/LanguageCF.cpp:

(WTF::httpStyleLanguageCode):
(WTF::platformUserPreferredLanguages):

  • wtf/cocoa/LanguageCocoa.mm: Added.

(WTF::minimizedLanguagesFromLanguages):

  • wtf/spi/cocoa/NSLocaleSPI.h: Added.

Tools:

Reviewed by Dean Jackson.

Migrate system language tests to LayoutTests, to match the rest of our system language tests.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/mac/NavigatorLanguage.mm: Removed.

LayoutTests:

<rdar://problem/44119496>

Reviewed by Dean Jackson.

Migrate and update tests from TestWebKitAPI to LayoutTests, to match the rest of our system language tests.

  • platform/mac/TestExpectations: Mark these tests as possibly failing on older versions of macOS.
  • fast/text/international/system-language/navigator-language/navigator-language-en-GB-expected.txt: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-en-GB.html: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-en-US-expected.txt: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-en-US.html: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-en-expected.txt: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-en.html: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-es-419-expected.txt: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-es-419.html: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-es-ES-expected.txt: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-es-ES.html: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-es-MX-expected.txt: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-es-MX.html: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-es-expected.txt: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-es.html: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-fr-CA-expected.txt: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-fr-CA.html: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-fr-expected.txt: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-fr.html: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-hi-expected.txt: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-hi.html: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-ja-expected.txt: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-ja.html: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-pt-BR-expected.txt: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-pt-BR.html: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-pt-PT-expected.txt: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-pt-PT.html: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-ru-expected.txt: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-ru.html: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-zh-HK-expected.txt: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-zh-HK.html: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-zh-Hans-expected.txt: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-zh-Hans.html: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-zh-Hant-HK-expected.txt: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-zh-Hant-HK.html: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-zh-Hant-expected.txt: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-zh-Hant.html: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-zh-TW-expected.txt: Added.
  • fast/text/international/system-language/navigator-language/navigator-language-zh-TW.html: Added.
  • js/dom/navigator-language-expected.txt:
6:49 PM Changeset in webkit [254388] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC] TableFormattingContext::layoutTableCellBox should take HorizontalConstraints
https://bugs.webkit.org/show_bug.cgi?id=206075
<rdar://problem/58483791>

Reviewed by Antti Koivisto.

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::layoutInFlowContent):
(WebCore::Layout::TableFormattingContext::layoutTableCellBox):

  • layout/tableformatting/TableFormattingContext.h:
6:32 PM Changeset in webkit [254387] by jer.noble@apple.com
  • 10 edits
    1 add in trunk

[iOS] Audio from non-frontmost tab continues when app is backgrounded
https://bugs.webkit.org/show_bug.cgi?id=206101
<rdar://problem/58089916>

Reviewed by Eric Carlson.

Source/WebKit:

Tests: WKWebViewPausePlayingAudioTests.InWindow

WKWebViewPausePlayingAudioTests.OutOfWindow

The ApplicationStateTracker will only send notifications about application state to
WebPageProxies when those proxies' views are actually in-window. Add a separate application
state observer strictly for media which fires only when application state notifications are
received while the view is not in-window.

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

(-[WKContentView _commonInitializationWithProcessPool:configuration:]):
(-[WKContentView _applicationDidEnterBackground:]):
(-[WKContentView _applicationWillEnterForeground:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::applicationDidEnterBackgroundForMedia):
(WebKit::WebPageProxy::applicationWillEnterForegroundForMedia):

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

(WebKit::WebPage::applicationDidEnterBackgroundForMedia):
(WebKit::WebPage::applicationWillEnterForegroundForMedia):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/ios/WKWebViewPausePlayingAudioTests.mm: Added.

(TestWebKitAPI::autoplayingConfiguration):
(TestWebKitAPI::TEST):

5:52 PM Changeset in webkit [254386] by wilander@apple.com
  • 3 edits in trunk/LayoutTests

Make http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins* use resource/util.js
https://bugs.webkit.org/show_bug.cgi?id=206100
<rdar://problem/58492335>

Unreviewed test gardening.

  • http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins-database.html:
  • http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins.html:

These two tests now use setEnableFeature() in resources/util.js which makes sure
testRunner.setStatisticsNotifyPagesWhenDataRecordsWereScanned() is called with
false before ending the test.

5:29 PM Changeset in webkit [254385] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

3 editing/spelling test failures on Mojave Release WK1
https://bugs.webkit.org/show_bug.cgi?id=206071

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations: Update test expectations to disable failing tests.
5:27 PM Changeset in webkit [254384] by Simon Fraser
  • 16 edits in trunk/Source

Introduce ENABLE_META_VIEWPORT and use it in some WK2 code
https://bugs.webkit.org/show_bug.cgi?id=206091

Reviewed by Tim Horton.
Source/WebCore:

didDispatchViewportPropertiesChanged() is used for a Coordinated Graphics assertion, so
should be #if ASSERT_ENABLED rather than #ifndef NDEBUG.

  • dom/Document.cpp:

(WebCore::Document::updateViewportArguments):
(WebCore::Document::suspend):

  • dom/Document.h:

Source/WebKit:

Use ENABLE(META_VIEWPORT) rather than PLATFORM(IOS_FAMILY) to enable various
bits of viewport-related code.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<ViewportArguments>::decode):
(IPC::ArgumentCoder<ViewportAttributes>::encode):
(IPC::ArgumentCoder<ViewportAttributes>::decode):

  • Shared/WebCoreArgumentCoders.h:
  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:
  • UIProcess/API/C/WKPage.cpp:

(WKPageSetIgnoresViewportScaleLimits):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):

  • UIProcess/WebPageProxy.cpp:
  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didCommitLoad):

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::viewportConfiguration const):

Source/WTF:

Define ENABLE_META_VIEWPORT for iOS.

  • wtf/FeatureDefines.h:
5:06 PM Changeset in webkit [254383] by Jonathan Bedard
  • 6 edits in trunk

Python3: Support Source/WebKit/Scripts/webkit
https://bugs.webkit.org/show_bug.cgi?id=206078

Reviewed by Stephanie Lewis.

Source/WebKit:

Covered by existing unit tests.

  • Scripts/webkit/LegacyMessages-expected.h: Sort forward declarations.
  • Scripts/webkit/Messages-expected.h: Ditto.
  • Scripts/webkit/messages.py: Sort printed outputs.

Tools:

  • Scripts/test-webkitpy-python3: Call test-webkitpy with Python 3 since

everything is now compatible.

4:48 PM Changeset in webkit [254382] by Jonathan Bedard
  • 3 edits in trunk/Tools

webkit-patch crashes when creating new bug with Python 3
https://bugs.webkit.org/show_bug.cgi?id=205911

Reviewed by Stephanie Lewis.

  • Scripts/webkitpy/common/net/bugzilla/bugzilla.py:

(BugzillaQueries.is_invalid_bugzilla_email): Decode page before applying regex.
(Bugzilla.authenticate): Decode group before printing.
(Bugzilla._parse_attachment_id_from_add_patch_to_bug_response): Ensure HTML response
Is a string before applying the regex.
(Bugzilla._check_create_bug_response): Ditto.

  • Scripts/webkitpy/common/net/bugzilla/bugzilla_unittest.py: Attachment ID should be a string,

not a byte array.

4:45 PM Changeset in webkit [254381] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[iOS] Remove reporting for some well-understood sandbox rules
https://bugs.webkit.org/show_bug.cgi?id=206111

Reviewed by Per Arne Vollan.

Remove sandbox rules designed to generate reporting about resource use for some well-understood
items that are frequently hit in WebKit use.

No new tests. No change in behavior.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
4:32 PM Changeset in webkit [254380] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC] Add missing escape reason to BlockFormattingContext::Quirks::stretchedInFlowHeight
https://bugs.webkit.org/show_bug.cgi?id=206076
<rdar://problem/58483919>

Reviewed by Antti Koivisto.

This is also a valid formatting context escape.

  • layout/blockformatting/BlockFormattingContextQuirks.cpp:

(WebCore::Layout::BlockFormattingContext::Quirks::stretchedInFlowHeight):

4:21 PM Changeset in webkit [254379] by Brent Fulgham
  • 5 edits in trunk

[iOS] Remove used media-related mach services from the WebContent process sandbox
https://bugs.webkit.org/show_bug.cgi?id=206089
<rdar://problem/58489478>

Reviewed by Per Arne Vollan.

After conducting multiple test passes and large-scale living-on testing with telemetry, we have
confirmed that the following XPC services are not used by the media logic in WebKit, and can be
removed:

com.apple.coremedia.cpeprotector.xpc
com.apple.coremedia.figcontentkeysession.xpc
com.apple.coremedia.routingsessionmanager.xpc
com.apple.coremedia.sts

Source/WebKit:

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:
4:13 PM Changeset in webkit [254378] by Antti Koivisto
  • 7 edits
    2 adds in trunk

[LFC][Integration] Update style for layout boxes
https://bugs.webkit.org/show_bug.cgi?id=206074

Reviewed by Zalan Bujtas.

Source/WebCore:

Test: fast/css/simple-color-change.html

For simple style changes we may keep the existing layout boxes. In this case we need to update the style.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::updateStyle):

Update style in layout boxes.

(WebCore::LayoutIntegration::LineLayout::rootLayoutBox):

  • layout/integration/LayoutIntegrationLineLayout.h:

Make root non-const.

  • layout/layouttree/LayoutBox.h:

(WebCore::Layout::Box::nextSibling):

  • layout/layouttree/LayoutContainer.h:

Expose non-const accessors.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::styleDidChange):

Invoke LineLayout::updateStyle

LayoutTests:

  • fast/css/simple-color-change-expected.html: Added.
  • fast/css/simple-color-change.html: Added.
4:01 PM Changeset in webkit [254377] by Alan Coon
  • 1 copy in tags/Safari-608.5.11

Tag Safari-608.5.11.

4:00 PM Changeset in webkit [254376] by Brent Fulgham
  • 5 edits in trunk

[iOS] Remove 'com.apple.awdd' from the WebContent process sandbox
https://bugs.webkit.org/show_bug.cgi?id=206095
<rdar://problem/56871147>

Reviewed by Per Arne Vollan.

We no longer need access to 'com.apple.awdd' in the iOS WebContent sandbox. We should remove
it from the sandbox.

Source/WebKit:

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:
3:59 PM Changeset in webkit [254375] by Alan Coon
  • 1 copy in tags/Safari-608.5.7.3.2

Tag Safari-608.5.7.3.2.

3:48 PM Changeset in webkit [254374] by wilander@apple.com
  • 2 edits in trunk/Source/WebCore

Resource Load Statistics: Align WebCore::NetworkStorageSession's m_thirdPartyCookieBlockingMode init value with r254239
https://bugs.webkit.org/show_bug.cgi?id=206082
<rdar://problem/58487498>

Unreviewed minor, follow-up fix.

  • platform/network/NetworkStorageSession.h:

The init value of m_thirdPartyCookieBlockingMode was changed to
ThirdPartyCookieBlockingMode::All to align it with r254239.

3:39 PM Changeset in webkit [254373] by pvollan@apple.com
  • 17 edits
    4 adds in trunk

Map CSS value ID to system color in the UI process
https://bugs.webkit.org/show_bug.cgi?id=204314

Reviewed by Dean Jackson.

Source/WebCore:

Currently, RenderThemeIOS is mapping CSS value IDs to system colors in the WebContent process. This mapping leads to
invoking selectors on UITraitCollection and UIColor, which will send messages to the runningboard daemon. Since we
will be blocking access to this daemon in the WebContent process, this mapping should be moved to the UI process.
The UI process will create a mapping between CSS value IDs and system colors, and pass it to the WebContent process.

Test: fast/css/ios/system-color-for-css-value.html

  • WebCore.xcodeproj/project.pbxproj:
  • css/StyleColor.h:
  • css/parser/CSSPropertyParser.h:
  • rendering/CSSValueKey.h: Added.

(WebCore::operator==):
(WebCore::CSSValueKey::encode const):
(WebCore::CSSValueKey::decode):
(WebCore::CSSValueKey::hash const):
(WTF::CSSValueKeyHash::hash):
(WTF::CSSValueKeyHash::equal):
(WTF::HashTraits<WebCore::CSSValueKey>::emptyValue):
(WTF::HashTraits<WebCore::CSSValueKey>::constructDeletedValue):
(WTF::HashTraits<WebCore::CSSValueKey>::isDeletedValue):

  • rendering/RenderThemeIOS.h:
  • rendering/RenderThemeIOS.mm:

(WebCore::cssValueIDSelectorList):
(WebCore::systemColorFromCSSValueID):
(WebCore::globalCSSValueToSystemColorMap):
(WebCore::RenderThemeIOS::getOrCreateCSSValueToSystemColorMap):
(WebCore::RenderThemeIOS::setCSSValueToSystemColorMap):
(WebCore::RenderThemeIOS::systemColor const):

  • testing/Internals.cpp:

(WebCore::Internals::systemColorForCSSValue):

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

Source/WebKit:

Create mapping between CSS value IDs and system colors in the UI process and send to the WebContent process
on process startup.

  • Shared/WebProcessCreationParameters.cpp:

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

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

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

LayoutTests:

  • TestExpectations:
  • fast/css/ios: Added.
  • fast/css/ios/system-color-for-css-value-expected.txt: Added.
  • fast/css/ios/system-color-for-css-value.html: Added.
  • platform/ios/TestExpectations:
3:29 PM Changeset in webkit [254372] by Pablo Saavedra
  • 3 edits in trunk/LayoutTests

[WPE][GTK] Gardening after r254357
https://bugs.webkit.org/show_bug.cgi?id=206079

Unreviewed WPE and GTK+ gardening after r254357.

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
3:13 PM Changeset in webkit [254371] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Fix accessibility/deleting-iframe-destroys-axcache.html and accessibility/div-within-anchors-causes-crash.html
https://bugs.webkit.org/show_bug.cgi?id=206072

Reviewed by Zalan Bujtas.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::lineCount const):

We may have a line layout with 0 runs but 1 line. In these cases line count must return 0
to match other systems.

2:52 PM Changeset in webkit [254370] by mark.lam@apple.com
  • 2 edits in trunk/Source/WebKit

Gardening: simple build fix after r254119.

Not reviewed.

We should be using ASSERT_ENABLED instead of ASSERT_DSIABLED.

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::sendRequestCallback):

2:48 PM Changeset in webkit [254369] by Alan Coon
  • 1 copy in tags/Safari-609.1.14

Tag Safari-609.1.14.

2:48 PM Changeset in webkit [254368] by Alan Coon
  • 1 delete in tags/Safari-609.1.14

Delete tag.

2:38 PM Changeset in webkit [254367] by achristensen@apple.com
  • 3 edits in trunk/Tools

Fix test assertions after r254345
https://bugs.webkit.org/show_bug.cgi?id=206037

There were two assertions being hit in the new tests:

  1. Beacon sends POST requests, so the HTTP server that receives them needs to be able to handle POST requests.
  2. There was an assertion in the destructor of NetworkResourceLoader because we were destroying a WKWebView during a sync xhr.

This isn't a problem in practice, but we may as well wait for the sync xhr to finish before completing the test so we can
keep the sync xhr assertion, which is useful to prevent hangs.

  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadDelegate.mm:

(-[TestUIDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
(TEST):

  • TestWebKitAPI/cocoa/HTTPServer.mm:

(TestWebKitAPI::HTTPServer::respondToRequests):

2:21 PM Changeset in webkit [254366] by Brent Fulgham
  • 5 edits in trunk

[iOS] Remove 'com.apple.powerlog.plxpclogger.xpc' from the WebContent process sandbox
https://bugs.webkit.org/show_bug.cgi?id=206086
<rdar://problem/57195681>

Reviewed by Per Arne Vollan.

Source/WebKit:

Telemetry and testing have confirmed that we no longer need a mach connection to the
'com.apple.powerlog.plxpclogger.xpc' service. We should remove it from the WebContent process sandbox.

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:
2:17 PM Changeset in webkit [254365] by Brent Fulgham
  • 6 edits in trunk

Remove 'com.apple.iohideventsystem' from the WebContent process sandbox
https://bugs.webkit.org/show_bug.cgi?id=206085
<rdar://problem/36085204>

Reviewed by Alex Christensen.

After r253357 we no longer need access to 'com.apple.iohideventsystem', and should remove it from
the WebContent process sandbox.

Source/WebKit:

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

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

LayoutTests:

  • fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
  • fast/sandbox/ios/sandbox-mach-lookup.html:
1:38 PM Changeset in webkit [254364] by Brent Fulgham
  • 5 edits in trunk

[iOS] Remove 'com.apple.cookied' from the WebContent process sandbox
https://bugs.webkit.org/show_bug.cgi?id=206083
<rdar://problem/56963865>

Reviewed by Per Arne Vollan.

Telemetry and testing have confirmed that we no longer use the 'com.apple.cookied' mach connection
in the WebContent process on iOS. We should remove this from the WebContent process sandbox

Source/WebKit:

Tested by 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:
12:39 PM Changeset in webkit [254363] by Brent Fulgham
  • 6 edits in trunk

Remove com.apple.locationd.registration from the WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=206021
<rdar://problem/58451384>

Reviewed by Per Arne Vollan.

Now that we generate a dynamic extension for 'com.apple.locationd.registration', we should remove
the blanket allow rule from the sandbox.

Source/WebKit:

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

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

LayoutTests:

  • fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
  • fast/sandbox/ios/sandbox-mach-lookup.html:
12:32 PM Changeset in webkit [254362] by Alan Coon
  • 3 edits
    2 adds in branches/safari-609-branch

Revert "Revert "Cherry-pick r254301. rdar://problem/58346124""

11:56 AM Changeset in webkit [254361] by Simon Fraser
  • 2 edits in trunk/Source/WebKit

Clean up -[WKWebView _didCommitLayerTree:]
https://bugs.webkit.org/show_bug.cgi?id=206049

Reviewed by Tim Horton.

In preparation for sharing more of this code with macOS, factors parts of -[WKWebView _didCommitLayerTree:]
into new functions.

Also pull out part of -[WKWebView _updateVisibleContentRects] into its own function.

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _trackTransactionCommit:]):
(-[WKWebView _updateScrollViewForTransaction:]):
(-[WKWebView _restoreScrollAndZoomStateForTransaction:]):
(-[WKWebView _didCommitLayerTree:]):
(-[WKWebView _allowsDoubleTapGestures]):
(-[WKWebView currentlyVisibleContentInsetsWithScale:obscuredInsets:]):
(-[WKWebView _updateVisibleContentRects]):
(areEssentiallyEqualAsFloat): Deleted.

11:56 AM Changeset in webkit [254360] by Simon Fraser
  • 7 edits
    4 adds in trunk/Source/WebKit

[macOS UI-side compositing] Introduce WKScrollView and WKContentView for macOS
https://bugs.webkit.org/show_bug.cgi?id=206042

Reviewed by Tim Horton.

Add WKScrollViewMac and WKWebViewMac, with bare-bones implementations. WKScrollViewMac
has a WKScrollViewDelegate to make it more iOS-like, to avoid clients having to register
boundsDidChange notifications, and WKWebView on macOS becomes the delegate.

These views are only created when UI-side compositing is enabled.

  • SourcesCocoa.txt:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/API/mac/WKContentViewMac.h: Added.
  • UIProcess/API/mac/WKContentViewMac.mm: Added.

(-[WKContentView initWithFrame:page:]):
(-[WKContentView isFlipped]):
(-[WKContentView _setAcceleratedCompositingRootLayer:]):

  • UIProcess/API/mac/WKScrollViewMac.h: Added.
  • UIProcess/API/mac/WKScrollViewMac.mm: Added.

(+[WKScrollView isCompatibleWithResponsiveScrolling]):
(-[WKScrollView initWithFrame:]):
(-[WKScrollView dealloc]):
(-[WKScrollView delegate]):
(-[WKScrollView setDelegate:]):
(-[WKScrollView contentOffset]):
(-[WKScrollView boundsDidChange:]):
(-[WKScrollView setContentInsets:]):

  • UIProcess/API/mac/WKWebViewMac.h:
  • UIProcess/API/mac/WKWebViewMac.mm:

(-[WKWebView scrollViewDidScroll:]):
(-[WKWebView scrollViewContentInsetsDidChange:]):
(-[WKWebView _setupScrollAndContentViews]):

  • UIProcess/ios/WebPageProxyIOS.mm:
  • WebKit.xcodeproj/project.pbxproj:
11:36 AM Changeset in webkit [254359] by clopez@igalia.com
  • 5 edits in trunk/Tools

[GTK][WPE] EWS should not wipe the JHBuild in the unapply patch step
https://bugs.webkit.org/show_bug.cgi?id=206061

Reviewed by Aakash Jain.

The current unapply patch step on the EWS calls the script clean-webkit, which wipes everything.
Rebuilding the JHBuild takes around 30 minutes, even with ccache.
And its not needed to wipe the JHBuild directories on the clean-webkit step, because the WebKit
tooling for building the JHBuild (update-webkitgtk-libs) already detects when the moduleset has
been modified and wipes it when necessary.

This patch adds the optional argument --keep-jhbuild-directory to the script clean-webkit,
that the EWS will pass when doing the unapply patch step for platform GTK or WPE.

  • BuildSlaveSupport/ews-build/steps.py:

(CleanWorkingDirectory.start):

  • Scripts/clean-webkit:

(main):

  • Scripts/webkitpy/common/checkout/scm/scm.py:

(SCM.discard_untracked_files):

  • Scripts/webkitpy/common/checkout/scm/scm_unittest.py:
11:32 AM Changeset in webkit [254358] by Alan Coon
  • 3 edits
    2 adds in branches/safari-608.5.7.3-branch

Cherry-pick r254301. rdar://problem/58480222

REGRESSION (r253662): Large Data URLs are not being handled properly
https://bugs.webkit.org/show_bug.cgi?id=205979
<rdar://problem/58346124>

Reviewed by Youenn Fablet.

Source/WebCore:

The URL size limitation added in r253662 was too low. We should bump it to handle
reasonable data URI sizes.

Test: fast/url/data-url-large.html.

  • page/SecurityOrigin.cpp:

LayoutTests:

  • fast/url/data-url-large-expected.txt: Added.
  • fast/url/data-url-large.html: Added.

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

11:16 AM Changeset in webkit [254357] by achristensen@apple.com
  • 2 edits in trunk/Tools

Build fix for builds without libwebrtc's BoringSSL.
https://bugs.webkit.org/show_bug.cgi?id=206037

  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadDelegate.mm:
11:06 AM Changeset in webkit [254356] by jiewen_tan@apple.com
  • 20 edits in trunk

[WebAuthn] Support authenticatorGetNextAssertion
https://bugs.webkit.org/show_bug.cgi?id=203346
<rdar://problem/56558488>

Reviewed by Brent Fulgham.

Source/WebCore:

Covered by new tests within existing test files.

  • Modules/webauthn/AuthenticatorAssertionResponse.h:

(WebCore::AuthenticatorAssertionResponse::setName):
(WebCore::AuthenticatorAssertionResponse::name const):
(WebCore::AuthenticatorAssertionResponse::setDisplayName):
(WebCore::AuthenticatorAssertionResponse::displayName const):
(WebCore::AuthenticatorAssertionResponse::setNumberOfCredentials):
(WebCore::AuthenticatorAssertionResponse::numberOfCredentials const):
Adds new members to store new fields of the response from the authenticator. Field "icon"
is omitted given it could be used to track users according to https://github.com/w3c/webauthn/issues/1285.

  • Modules/webauthn/fido/DeviceResponseConverter.cpp:

(fido::readCTAPGetAssertionResponse):
Adds new logic to parse above fields from an authenticator response.

Source/WebKit:

This patch implements authenticatorGetNextAssertion as suggested by the spec:
https://fidoalliance.org/specs/fido-v2.0-ps-20190130/fido-client-to-authenticator-protocol-v2.0-ps-20190130.html#authenticatorGetNextAssertion

The work flow is as follow:
1) When a valid assertion response is received, check its numberOfCredentials member;
2) When it is larger then 1, use authenticatorGetNextAssertion to get all remaining responses;
3) Once all responses are gathered, ask UI clients to pick one to return.

  • UIProcess/API/APIWebAuthenticationPanelClient.h:

(API::WebAuthenticationPanelClient::selectAssertionResponses const):

  • UIProcess/WebAuthentication/Authenticator.h:
  • UIProcess/WebAuthentication/AuthenticatorManager.cpp:

(WebKit::AuthenticatorManager::selectAssertionResponses):

  • UIProcess/WebAuthentication/AuthenticatorManager.h:
  • UIProcess/WebAuthentication/Mock/MockHidConnection.cpp:

(WebKit::MockHidConnection::parseRequest):

  • UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp:

(WebKit::CtapAuthenticator::continueGetAssertionAfterResponseReceived):
(WebKit::CtapAuthenticator::continueGetNextAssertionAfterResponseReceived):

  • UIProcess/WebAuthentication/fido/CtapAuthenticator.h:

Tools:

  • TestWebKitAPI/Tests/WebCore/CtapResponseTest.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/FidoTestData.h:

Adds new test case for new logic in DeviceResponseConverter.

LayoutTests:

  • http/wpt/webauthn/public-key-credential-get-failure-hid.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-failure-hid.https.html:
  • http/wpt/webauthn/public-key-credential-get-success-hid.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-success-hid.https.html:
  • http/wpt/webauthn/resources/util.js:
11:02 AM Changeset in webkit [254355] by Alan Coon
  • 7 edits in branches/safari-608.5.7.3-branch/Source

Versioning.

10:56 AM Changeset in webkit [254354] by Alan Coon
  • 7 edits in branches/safari-608.5.0.2-branch/Source

Versioning.

10:55 AM Changeset in webkit [254353] by Alan Coon
  • 3 edits
    2 adds in branches/safari-608-branch

Cherry-pick r254301. rdar://problem/58467176

REGRESSION (r253662): Large Data URLs are not being handled properly
https://bugs.webkit.org/show_bug.cgi?id=205979
<rdar://problem/58346124>

Reviewed by Youenn Fablet.

Source/WebCore:

The URL size limitation added in r253662 was too low. We should bump it to handle
reasonable data URI sizes.

Test: fast/url/data-url-large.html.

  • page/SecurityOrigin.cpp:

LayoutTests:

  • fast/url/data-url-large-expected.txt: Added.
  • fast/url/data-url-large.html: Added.

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

10:54 AM Changeset in webkit [254352] by Alan Coon
  • 7 edits in branches/safari-608-branch/Source

Versioning.

10:54 AM Changeset in webkit [254351] by Brent Fulgham
  • 10 edits in trunk

Remove 'com.apple.nehelper' from the WebContent sandbox.
https://bugs.webkit.org/show_bug.cgi?id=206025
<rdar://problem/58453508>

Reviewed by Per Arne Vollan.

Now that we generate a dynamic extension for 'com.apple.nehelper' and 'com.apple.nesessionmanager.content-filter',
we should remove the blanket allow rules from the sandbox.

Tests: fast/sandbox/ios/sandbox-mach-lookup.html, fast/sandbox/mac/sandbox-mach-lookup.html

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • WebProcess/com.apple.WebProcess.sb.in:
10:50 AM Changeset in webkit [254350] by dino@apple.com
  • 4 edits in trunk/Source/WebCore

[WebGL] Add all remaining WebGL2 implementation functions to GraphicsContextGL
https://bugs.webkit.org/show_bug.cgi?id=206038
<rdar://problem/58459051>

Reviewed by Simon Fraser.

Add stubs for all the GraphicsContextGL methods that will be
necessary to implement WebGL2.

While here, rearrange the header file to mirror the way
WebGL2RenderingContext orders the methods, and mark all the
GraphicsContextGLOpenGL methods as final (rather than override).

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

(WebCore::GraphicsContextGLOpenGL::bufferData):
(WebCore::GraphicsContextGLOpenGL::bufferSubData):
(WebCore::GraphicsContextGLOpenGL::copyBufferSubData):
(WebCore::GraphicsContextGLOpenGL::getBufferSubData):
(WebCore::GraphicsContextGLOpenGL::mapBufferRange):
(WebCore::GraphicsContextGLOpenGL::unmapBuffer):
(WebCore::GraphicsContextGLOpenGL::blitFramebuffer):
(WebCore::GraphicsContextGLOpenGL::framebufferTextureLayer):
(WebCore::GraphicsContextGLOpenGL::invalidateFramebuffer):
(WebCore::GraphicsContextGLOpenGL::invalidateSubFramebuffer):
(WebCore::GraphicsContextGLOpenGL::readBuffer):
(WebCore::GraphicsContextGLOpenGL::getInternalformativ):
(WebCore::GraphicsContextGLOpenGL::renderbufferStorageMultisample):
(WebCore::GraphicsContextGLOpenGL::texStorage2D):
(WebCore::GraphicsContextGLOpenGL::texStorage3D):
(WebCore::GraphicsContextGLOpenGL::texImage3D):
(WebCore::GraphicsContextGLOpenGL::texSubImage3D):
(WebCore::GraphicsContextGLOpenGL::copyTexSubImage3D):
(WebCore::GraphicsContextGLOpenGL::compressedTexImage3D):
(WebCore::GraphicsContextGLOpenGL::compressedTexSubImage3D):
(WebCore::GraphicsContextGLOpenGL::getFragDataLocation):
(WebCore::GraphicsContextGLOpenGL::uniform1ui):
(WebCore::GraphicsContextGLOpenGL::uniform2ui):
(WebCore::GraphicsContextGLOpenGL::uniform3ui):
(WebCore::GraphicsContextGLOpenGL::uniform4ui):
(WebCore::GraphicsContextGLOpenGL::uniform1uiv):
(WebCore::GraphicsContextGLOpenGL::uniform2uiv):
(WebCore::GraphicsContextGLOpenGL::uniform3uiv):
(WebCore::GraphicsContextGLOpenGL::uniform4uiv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix2x3fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix3x2fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix2x4fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix4x2fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix3x4fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix4x3fv):
(WebCore::GraphicsContextGLOpenGL::vertexAttribI4i):
(WebCore::GraphicsContextGLOpenGL::vertexAttribI4iv):
(WebCore::GraphicsContextGLOpenGL::vertexAttribI4ui):
(WebCore::GraphicsContextGLOpenGL::vertexAttribI4uiv):
(WebCore::GraphicsContextGLOpenGL::vertexAttribIPointer):
(WebCore::GraphicsContextGLOpenGL::drawRangeElements):
(WebCore::GraphicsContextGLOpenGL::drawBuffers):
(WebCore::GraphicsContextGLOpenGL::clearBufferiv):
(WebCore::GraphicsContextGLOpenGL::clearBufferuiv):
(WebCore::GraphicsContextGLOpenGL::clearBufferfv):
(WebCore::GraphicsContextGLOpenGL::clearBufferfi):
(WebCore::GraphicsContextGLOpenGL::createQuery):
(WebCore::GraphicsContextGLOpenGL::deleteQuery):
(WebCore::GraphicsContextGLOpenGL::isQuery):
(WebCore::GraphicsContextGLOpenGL::beginQuery):
(WebCore::GraphicsContextGLOpenGL::endQuery):
(WebCore::GraphicsContextGLOpenGL::getQuery):
(WebCore::GraphicsContextGLOpenGL::glGetQueryObjectuiv):
(WebCore::GraphicsContextGLOpenGL::createSampler):
(WebCore::GraphicsContextGLOpenGL::deleteSampler):
(WebCore::GraphicsContextGLOpenGL::isSampler):
(WebCore::GraphicsContextGLOpenGL::bindSampler):
(WebCore::GraphicsContextGLOpenGL::samplerParameteri):
(WebCore::GraphicsContextGLOpenGL::samplerParameterf):
(WebCore::GraphicsContextGLOpenGL::getSamplerParameterfv):
(WebCore::GraphicsContextGLOpenGL::getSamplerParameteriv):
(WebCore::GraphicsContextGLOpenGL::fenceSync):
(WebCore::GraphicsContextGLOpenGL::isSync):
(WebCore::GraphicsContextGLOpenGL::deleteSync):
(WebCore::GraphicsContextGLOpenGL::clientWaitSync):
(WebCore::GraphicsContextGLOpenGL::waitSync):
(WebCore::GraphicsContextGLOpenGL::getSynciv):
(WebCore::GraphicsContextGLOpenGL::createTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::deleteTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::isTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::bindTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::beginTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::endTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::transformFeedbackVaryings):
(WebCore::GraphicsContextGLOpenGL::getTransformFeedbackVarying):
(WebCore::GraphicsContextGLOpenGL::pauseTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::resumeTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::bindBufferBase):
(WebCore::GraphicsContextGLOpenGL::bindBufferRange):
(WebCore::GraphicsContextGLOpenGL::getUniformIndices):
(WebCore::GraphicsContextGLOpenGL::getActiveUniforms):
(WebCore::GraphicsContextGLOpenGL::getUniformBlockIndex):
(WebCore::GraphicsContextGLOpenGL::getActiveUniformBlockiv):
(WebCore::GraphicsContextGLOpenGL::getActiveUniformBlockName):
(WebCore::GraphicsContextGLOpenGL::uniformBlockBinding):
(WebCore::GraphicsContextGLOpenGL::texImage2D):
(WebCore::GraphicsContextGLOpenGL::texSubImage2D):
(WebCore::GraphicsContextGLOpenGL::compressedTexImage2D):
(WebCore::GraphicsContextGLOpenGL::compressedTexSubImage2D):
(WebCore::GraphicsContextGLOpenGL::uniform1fv):
(WebCore::GraphicsContextGLOpenGL::uniform2fv):
(WebCore::GraphicsContextGLOpenGL::uniform3fv):
(WebCore::GraphicsContextGLOpenGL::uniform4fv):
(WebCore::GraphicsContextGLOpenGL::uniform1iv):
(WebCore::GraphicsContextGLOpenGL::uniform2iv):
(WebCore::GraphicsContextGLOpenGL::uniform3iv):
(WebCore::GraphicsContextGLOpenGL::uniform4iv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix2fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix3fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix4fv):
(WebCore::GraphicsContextGLOpenGL::readPixels):

10:49 AM Changeset in webkit [254349] by sbarati@apple.com
  • 3 edits
    4 adds in trunk

ObjectAllocationSinkingPhase doesn't model pointers to allocations in control flow properly
https://bugs.webkit.org/show_bug.cgi?id=204738
<rdar://problem/57553238>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/allocation-sinking-must-model-allocation-pointers-properly-2.js: Added.

(assert):
(v9):

  • stress/allocation-sinking-must-model-allocation-pointers-properly-3.js: Added.

(assert):
(v9):

  • stress/allocation-sinking-must-model-allocation-pointers-properly-4.js: Added.

(bool):
(effects):
(escape):
(bar):

  • stress/allocation-sinking-must-model-allocation-pointers-properly.js: Added.

(alwaysFalse):
(sometimesZero):
(assert):
(v9):

Source/JavaScriptCore:

Allocation sinking phase conducts a points to analysis. It uses this
information for programs like:

`
1: NewObject
2: NewObject
3: PutByOffset(@2, @1, "x")
4: GetByOffset(@2, "x")
`

It solves the points to problem knowing @4 points to @1.

It tracks this data in the LocalHeap data structure. This is used to track
the heap across blocks, and it includes a merge function to handle control
flow merges. However, this merge function would not always merge the pointer
sets together. It sometimes would merge them together, since it had a fast
path check inside merge, which would just copy the contents of the block to be
merged with itself if it were this block's first time merging. This fast path happened
to hide the bug in general case merge code. If we didn't take this fast path,
we would just never transfer pointer sets from predecessor to successor. This
could lead to all kinds of issues, including using the incorrect phantom node
in IR instead of its materialized version. It could also lead to the phase not
sinking objects it is capable of sinking.

This patch makes it so that we merge together the pointer sets. We always add
new pointers to the set. So in pointer A->B, if the set has yet to see A, we
add it. If the set already contains pointer A->B, and we encounter a new
pointer A->C, or if we encounter a merge without any A->* pointer, we mark
the A pointer as top, marking it A->TOP. We do this to ensure that we fixpoint.
We're guaranteed that m_pointers is monotonically increasing (module liveness
pruning, which is a constant). And once something is TOP, it never becomes
anything else. (Instead of marking a pointer top, we used to just remove it
from the set, but this has issues, as it could lead to us ping-ponging in
our fixpoint analysis, add, remove, add, remove, etc.)

So the merge rules are:
{A->B} merge {A->B} => {A->B}
{A->B} merge {A->C} => {A->TOP}
{A->B} merge {A->TOP} => {A->TOP}
{A->B} merge {} => {A->TOP}


Thanks to Samuel Groß of Google Project Zero for identifying this bug.

  • dfg/DFGObjectAllocationSinkingPhase.cpp:
10:48 AM Changeset in webkit [254348] by Jonathan Bedard
  • 1 edit
    3 deletes in trunk/WebKitLibraries

WebKitLibraries: Remove old private framework stubs
https://bugs.webkit.org/show_bug.cgi?id=206067
<rdar://problem/58479518>

Reviewed by Alexey Proskuryakov.

  • WebKitPrivateFrameworkStubs/iOS/10: Removed.
  • WebKitPrivateFrameworkStubs/iOS/11: Removed.
  • WebKitPrivateFrameworkStubs/iOS/12: Removed.
10:32 AM Changeset in webkit [254347] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Silence compiler warning
https://bugs.webkit.org/show_bug.cgi?id=206070

Patch by Víctor Manuel Jáquez Leal <vjaquez@igalia.com> on 2020-01-10
Reviewed by Chris Dumez.

Silence compiler by using the proper formatter for log out.

No functional changes.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::didReceiveMessage):

10:14 AM Changeset in webkit [254346] by Jonathan Bedard
  • 2 edits in trunk/Tools

Python 3: Add support to run-webkit-tests (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=205291

Unreviewed follow-up fix.

  • Scripts/webkitpy/port/port_testcase.py:

(PortTestCase.test_diff_image): Diff output is byte array, not string.
(PortTestCase.test_diff_image_failed): Ditto.
(PortTestCase.test_diff_image_crashed): Ditto.

10:06 AM Changeset in webkit [254345] by achristensen@apple.com
  • 27 edits
    6 adds in trunk

Expand _WKResourceLoadDelegate callbacks
https://bugs.webkit.org/show_bug.cgi?id=206037
Source/WebKit:

<rdar://problem/57132290>

Reviewed by Youenn Fablet.

Add 5 informative delegate callbacks at these times during the loading process:

  1. When a request is sent.
  2. When a redirect happens.
  3. When a challenge happens.
  4. When a response is received.
  5. When loading completes or fails.

As mentioned in r254183 these callbacks are only called when a _WKResourceLoadDelegate is given to a WKWebView.
We add a new struct ResourceLoadInfo which will need to be expanded containing currently only the load identifier.
Covered by new API tests which verify the validity of the sent information.

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::didReceiveChallenge):

  • NetworkProcess/NetworkLoadClient.h:

(WebKit::NetworkLoadClient::didReceiveChallenge):

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::generateResourceLoadID):
(WebKit::NetworkResourceLoader::startNetworkLoad):
(WebKit::NetworkResourceLoader::resourceLoadInfo):
(WebKit::NetworkResourceLoader::didReceiveResponse):
(WebKit::NetworkResourceLoader::didFinishLoading):
(WebKit::NetworkResourceLoader::didFailLoading):
(WebKit::NetworkResourceLoader::didReceiveChallenge):
Add a way to send a message informing that a challenge happened with information gathered from the NetworkResourceLoader,
which previously was not informed of challenges because the challenges went directly from the NetworkLoad to the AuthenticationManager.
(WebKit::NetworkResourceLoader::willSendRedirectedRequest):
(WebKit::NetworkResourceLoader::continueWillSendRequest):
(WebKit::m_shouldCaptureExtraNetworkLoadMetrics): Deleted.

  • NetworkProcess/NetworkResourceLoader.h:
  • Shared/API/APIObject.h:
  • Shared/Cocoa/APIObject.mm:

(API::Object::newObject):

  • Shared/ResourceLoadInfo.h: Added.

(WebKit::ResourceLoadInfo::encode const):
(WebKit::ResourceLoadInfo::decode):

  • SourcesCocoa.txt:
  • UIProcess/API/APIResourceLoadClient.h:
  • UIProcess/API/APIResourceLoadInfo.h: Added.
  • UIProcess/API/Cocoa/_WKResourceLoadDelegate.h:
  • UIProcess/API/Cocoa/_WKResourceLoadInfo.h: Added.
  • UIProcess/API/Cocoa/_WKResourceLoadInfo.mm: Added.

(-[_WKResourceLoadInfo dealloc]):
(-[_WKResourceLoadInfo resourceLoadID]):
(-[_WKResourceLoadInfo _apiObject]):

  • UIProcess/API/Cocoa/_WKResourceLoadInfoInternal.h: Added.
  • UIProcess/Authentication/AuthenticationChallengeProxy.cpp:

(WebKit::AuthenticationChallengeProxy::AuthenticationChallengeProxy):
An AuthenticationChallengeProxy was only used for challenges that needed credentials, so they wrapped a CompletionHandler.
This new type of informative-only challenge will be given a null CompletionHandler, which means no action can be taken.

  • UIProcess/Cocoa/ResourceLoadDelegate.h:
  • UIProcess/Cocoa/ResourceLoadDelegate.mm:

(WebKit::ResourceLoadDelegate::setDelegate):
(WebKit::ResourceLoadDelegate::ResourceLoadClient::didSendRequest const):
(WebKit::ResourceLoadDelegate::ResourceLoadClient::didPerformHTTPRedirection const):
(WebKit::ResourceLoadDelegate::ResourceLoadClient::didReceiveChallenge const):
(WebKit::ResourceLoadDelegate::ResourceLoadClient::didReceiveResponse const):
(WebKit::ResourceLoadDelegate::ResourceLoadClient::didCompleteWithError const):
(WebKit::ResourceLoadDelegate::ResourceLoadClient::willSendRequest const): Deleted.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::resourceLoadDidSendRequest):
(WebKit::NetworkProcessProxy::resourceLoadDidPerformHTTPRedirection):
(WebKit::NetworkProcessProxy::resourceLoadDidReceiveChallenge):
(WebKit::NetworkProcessProxy::resourceLoadDidReceiveResponse):
(WebKit::NetworkProcessProxy::resourceLoadDidCompleteWithError):
(WebKit::NetworkProcessProxy::pageWillSendRequest): Deleted.

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/WebPageProxy.cpp:
  • UIProcess/WebPageProxy.h:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::loadResourceSynchronously):
(WebKit::WebLoaderStrategy::startPingLoad):

  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::willSendRequest):

Tools:

Reviewed by Youenn Fablet.

  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadDelegate.mm:

(-[TestResourceLoadDelegate webView:resourceLoad:didSendRequest:]):
(-[TestResourceLoadDelegate webView:resourceLoad:didPerformHTTPRedirection:newRequest:]):
(-[TestResourceLoadDelegate webView:resourceLoad:didReceiveChallenge:]):
(-[TestResourceLoadDelegate webView:resourceLoad:didReceiveResponse:]):
(-[TestResourceLoadDelegate webView:resourceLoad:didCompleteWithError:]):
(TEST):
(-[TestResourceLoadDelegate webView:willSendRequest:]): Deleted.

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

(TEST):

  • TestWebKitAPI/cocoa/HTTPServer.h:

(TestWebKitAPI::HTTPServer::HTTPResponse::HTTPResponse):
Add the ability to have non-200 status codes in responses.
Also switch the order of parameters to reflect the fact that header fields are sent before the body.

  • TestWebKitAPI/cocoa/HTTPServer.mm:

(TestWebKitAPI::statusText):
(TestWebKitAPI::HTTPServer::respondToRequests):

9:57 AM Changeset in webkit [254344] by commit-queue@webkit.org
  • 8 edits in trunk

Add SPI to enable TLS 1.0 and 1.1 in WKWebViews
https://bugs.webkit.org/show_bug.cgi?id=206046

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

Source/WebKit:

This is needed for <rdar://problem/58464912>
Covered by API tests.

  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:
  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm:

(-[_WKWebsiteDataStoreConfiguration legacyTLSEnabled]):
(-[_WKWebsiteDataStoreConfiguration setLegacyTLSEnabled:]):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::parameters):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:

(WebKit::WebsiteDataStoreConfiguration::copy const):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:

(WebKit::WebsiteDataStoreConfiguration::legacyTLSEnabled const):
(WebKit::WebsiteDataStoreConfiguration::setLegacyTLSEnabled):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/TLSDeprecation.mm:

(TestWebKitAPI::TEST):

9:52 AM Changeset in webkit [254343] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

[macOS] Issue sandbox extension to "com.apple.nesessionmanager" prior to 10.15
https://bugs.webkit.org/show_bug.cgi?id=206031
<rdar://problem/58455467>

Reviewed by Per Arne Vollan.

The mach name of 'com.apple.nesessionmanager' changed between macOS 10.14 and 10.15.
We should continue to issue the old name when building for older operating systems."

Covered by existing tests.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

9:40 AM Changeset in webkit [254342] by commit-queue@webkit.org
  • 11 edits in trunk

Remove WebsiteDataStore::setCacheStorageDirectory which has been replaced by WebsiteDataStoreConfiguration::setCacheStorageDirectory
https://bugs.webkit.org/show_bug.cgi?id=205841

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

Source/WebKit:

  • UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.cpp:

(WKWebsiteDataStoreConfigurationCopyCacheStorageDirectory):
(WKWebsiteDataStoreConfigurationSetCacheStorageDirectory):

  • UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.h:
  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _cacheStorageDirectory]): Deleted.
(-[WKWebsiteDataStore _setCacheStorageDirectory:]): Deleted.

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::retrieveCacheStorageParameters):

  • UIProcess/WebsiteData/WebsiteDataStore.h:

(WebKit::WebsiteDataStore::cacheStorageDirectory const):
(WebKit::WebsiteDataStore::setCacheStorageDirectory): Deleted.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::websiteDataStore):

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::initializeWebViewConfiguration):

8:48 AM Changeset in webkit [254341] by youenn@apple.com
  • 8 edits in trunk

[WTR] Use short heart beat timer as a TestOption
https://bugs.webkit.org/show_bug.cgi?id=205795

Reviewed by Chris Dumez.

Tools:

Using short service worker heartbeat timeout values creates flakiness on slow bots.
By default, use regular service worker heartbeat timeout values for layout tests.
Add a WTR option value to use short service worker timeout values.
Use this option for service worker spinning layout tests.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):
(WTR::updateTestOptionsFromTestHeader):

  • WebKitTestRunner/TestOptions.h:

(WTR::TestOptions::hasSameInitializationOptions const):

LayoutTests:

  • http/wpt/service-workers/service-worker-spinning-activate.https.html:
  • http/wpt/service-workers/service-worker-spinning-fetch.https.html:
  • http/wpt/service-workers/service-worker-spinning-install.https.html:
  • http/wpt/service-workers/service-worker-spinning-message.https.html:
8:16 AM Changeset in webkit [254340] by Jonathan Bedard
  • 23 edits in trunk/Tools

Python 3: Add support to run-webkit-tests
https://bugs.webkit.org/show_bug.cgi?id=205291

Reviewed by Stephanie Lewis.

  • Scripts/test-webkitpy-python3: Add webkitpy.layout_tests.
  • Scripts/webkitpy/common/message_pool.py:

(_MessagePool._loop): Move exception inside of loop.
(_Message.repr): Use .format strings.
(_Worker.init): Ditto.

  • Scripts/webkitpy/common/wavediff.py:

(WaveDiff.init): Use Python 3 compatible BytesIO and StringIO.

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

(LayoutTestFinder._read_test_names_from_file): Use .format string.
(LayoutTestFinder.split_into_chunks): Explicitly use integer division.

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

(Manager._get_test_inputs): Use range over xrange.

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

(SingleTestRunner._handle_error): Use .format strings.

  • Scripts/webkitpy/layout_tests/layout_package/json_layout_results_generator.py:

(JSONLayoutResultsGenerator._insert_failure_summaries): Use Python 3 compatible itervalues.

  • Scripts/webkitpy/layout_tests/models/test_results.py:

(TestResult.init): Sort type list.

  • Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:

(RunTest.setUp): Multiple processes are buggy in test-webkitpy.
(RunTest.test_basic): replace buflist with getvalue().
(RunTest.test_child_processes_2): Ditto.
(RunTest.test_child_processes_min): Ditto.
(RunTest.test_keyboard_interrupt): Ditto.
(RunTest.test_missing_and_unexpected_results): Compare dictionaries instead of json strings.
(RunTest.test_crash_with_stderr): Ditto.
(RunTest.test_reftest_should_not_use_naming_convention_if_not_listed_in_reftestlist): Ditto.
(EndToEndTest.test_reftest_with_two_notrefs): Ditto.

  • Scripts/webkitpy/layout_tests/views/metered_stream.py:

(MeteredStream.write): Flush stream after writing.
(MeteredStream._erase_last_partial_line): Ditto.

  • Scripts/webkitpy/layout_tests/views/printing.py:

(Printer._print_directory_timings): Can't compare string to integer.
(Printer._print_statistics_for_test_timings): Use integer division.

  • Scripts/webkitpy/port/darwin.py:

(DarwinPort._merge_crash_logs): Use items over iteritems.

  • Scripts/webkitpy/port/device.py:

(Device.hash): Allow hashing of devices.

  • Scripts/webkitpy/port/device_port.py:

(DevicePort._install): Use range over xrange.
(DevicePort.setup_test_run): Ditto.
(DevicePort.clean_up_test_run): Ditto.

  • Scripts/webkitpy/port/driver.py:

(DriverOutput.init): Text should be decoded, audio encoded.
(Driver.init):
(Driver.run_test):
(Driver._parse_child_processes_output): Output is byte array.
(Driver._check_for_driver_timeout): Ditto.
(Driver._check_for_address_sanitizer_violation): Error lines are byte arrays.
(Driver._check_for_driver_crash_or_unresponsiveness): Ditto.
(Driver._read_optional_image_block): If a block is base64 encoded, we want the decoded
content, otherwise, we want the encoded content.
(Driver._read_header): Lines are byte arrays, decode them before processing.
(Driver._process_stdout_line): Blocks are byte arrays.
(Driver._strip_eof): Lines should be byte arrays, not strings.
(Driver._read_block): Standardize encoding in blocks.
(ContentBlock.init): Content should be a byte array.
(ContentBlock.decode_content): Attempt to decode content.

  • Scripts/webkitpy/port/driver_unittest.py:

(DriverTest.test_read_binary_block): Content should be encoded.
(DriverTest.test_read_base64_block): Ditto.
(DriverTest.test_check_for_driver_crash): ServerProcess output should be a byte array.

  • Scripts/webkitpy/port/image_diff.py:

(ImageDiffer.diff_image): ImageDiff output is in byte arrays.
(ImageDiffer._read): Ditto.

  • Scripts/webkitpy/port/server_process.py:

(ServerProcess.write): Encode data before writing it.

  • Scripts/webkitpy/port/server_process_mock.py:

(MockServerProcess.init): Convert string mock output to bytes.
(MockServerProcess.read_stdout_line): Stdout lines are byte arrays.
(MockServerProcess.read_stdout): Ditto.

  • Scripts/webkitpy/port/simulator_process.py:

(SimulatorProcess.NonBlockingFileFromSocket.close): Don't double close socket in Python 3.
(SimulatorProcess._start): Stdin should be a binary stream.

  • Scripts/webkitpy/port/test.py:

(unit_test_list): Convert audio streams to byte arrays.

  • Scripts/webkitpy/xcode/simulated_device.py:

(SimulatedDevice.is_usable): Decode xcrun output.
(SimulatedDevice.install_app): Use xrange over range.

7:46 AM Changeset in webkit [254339] by Antti Koivisto
  • 5 edits in trunk/Source/WebCore

[LFC][Integration] Fix accessibility/scroll-to-make-visible-iframe-offscreen.html
https://bugs.webkit.org/show_bug.cgi?id=206063

Reviewed by Zalan Bujtas.

This is failing due to missing LFC implementation for RenderText::absoluteQuad.

  • rendering/RenderText.cpp:

(WebCore::collectAbsoluteQuadsForNonComplexPaths):

Implement generic version for collecting absolute quads. It doesn't cover everything that is needed for
the complex path so that still calls into layout system specific code.

(WebCore::RenderText::absoluteQuadsClippedToEllipsis const):
(WebCore::RenderText::absoluteQuads const):
(WebCore::RenderText::layoutFormattingContextLineLayout const):
(WebCore::RenderText::usesComplexLineLayoutPath const):

  • rendering/RenderText.h:
  • rendering/SimpleLineLayoutFunctions.cpp:

(WebCore::SimpleLineLayout::collectAbsoluteQuads): Deleted.

Not needed anymore.

  • rendering/SimpleLineLayoutFunctions.h:
7:22 AM Changeset in webkit [254338] by Pablo Saavedra
  • 2 edits in trunk/LayoutTests

[GTK] imported/w3c/web-platform-tests/xhr/anonymous-mode-unsupported.htm is flaky
https://bugs.webkit.org/show_bug.cgi?id=206065

Unreviewed, mark test as flaky.

  • platform/gtk/TestExpectations:
7:10 AM Changeset in webkit [254337] by Pablo Saavedra
  • 2 edits in trunk/LayoutTests

[WPE][GTK] Gardening after r254335
https://bugs.webkit.org/show_bug.cgi?id=206062

Unreviewed WPE and GTK+ gardening after r254335.

  • platform/gtk/TestExpectations:
7:06 AM Changeset in webkit [254336] by Alan Bujtas
  • 9 edits in trunk/Source/WebCore

[LFC] Replace FormattingContext::EscapeTypes with EscapeReasons
https://bugs.webkit.org/show_bug.cgi?id=206050
<rdar://problem/58466862>

Reviewed by Antti Koivisto.

EscapeReason is more explicit about why certain formatting context escapes are allowed.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::geometryForBox const):

  • layout/FormattingContext.h:
  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::contentHeightForFormattingContextRoot const):
(WebCore::Layout::FormattingContext::Geometry::staticVerticalPositionForOutOfFlowPositioned const):
(WebCore::Layout::FormattingContext::Geometry::staticHorizontalPositionForOutOfFlowPositioned const):

  • layout/FormattingContextQuirks.cpp:

(WebCore::Layout::FormattingContext::Quirks::heightValueOfNearestContainingBlockWithFixedHeight):

  • layout/floats/FloatingContext.cpp:

(WebCore::Layout::FloatingContext::absoluteDisplayBoxCoordinates const):
(WebCore::Layout::FloatingContext::mapToFloatingStateRoot const):
(WebCore::Layout::FloatingContext::mapTopToFloatingStateRoot const):
(WebCore::Layout::FloatingContext::mapPointFromFormattingContextRootToFloatingStateRoot const):

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::computeAndDistributeExtraHorizontalSpace):

4:46 AM Changeset in webkit [254335] by Adrian Perez de Castro
  • 2 edits in trunk/Tools

[Flatpak] Update IceCC to version 1.2
https://bugs.webkit.org/show_bug.cgi?id=206059

Reviewed by Philippe Normand.

Update IceCC/Icecream to version 1.2, which is the same version
currently shipped with Debian stable (Buster). This bump is needed
because IceCC 1.1 does not seem to interoperate with the scheduler
from newer versions and it is expected that people who run IceCC will
install IceCC in their build farm from distribution packages.

  • flatpak/org.webkit.CommonModules.yaml: Bump IceCC version to 1.2,

add the Git commit-id for the release tag.

4:32 AM Changeset in webkit [254334] by commit-queue@webkit.org
  • 7 edits in trunk

Source/WebCore:
[EME][ClearKey] Refactor CDMInstanceClearKey::updateLicense()
https://bugs.webkit.org/show_bug.cgi?id=205999

Patch by Charlie Turner <mail@charles.plus> on 2020-01-10
Reviewed by Xabier Rodriguez-Calvar.

Covered by existing tests.

  • platform/SharedBuffer.cpp:

(WebCore::SharedBuffer::toHexString const): Helper utility to view
a shared buffer's contents as a hex string.

  • platform/SharedBuffer.h:
  • platform/encryptedmedia/clearkey/CDMClearKey.cpp:

(WebCore::CDMInstanceClearKey::Key::keyIDAsString const): Uses the
new utility to return a hex string of the key ID for debugging.
(WebCore::CDMInstanceClearKey::Key::keyValueAsString const):
Ditto, but for the key data.
(WebCore::operator==): Added comparison operations to
CDMInstanceClearKey::Key to cleanup code in updateLicense.
(WebCore::operator<):
(WebCore::CDMInstanceSessionClearKey::updateLicense): Refactored
to use operators associated with the key class, so as to avoid
open-coded memcmp's in the middle of conditionals and other
techniques that made the code harder to read that necessary.

  • platform/encryptedmedia/clearkey/CDMClearKey.h:

Tools:
[EME][ClearKey] Refactor CDMClearKey::update()
https://bugs.webkit.org/show_bug.cgi?id=205999

Patch by Charlie Turner <mail@charles.plus> on 2020-01-10
Reviewed by Xabier Rodriguez-Calvar.

  • TestWebKitAPI/Tests/WebCore/SharedBuffer.cpp:

(TestWebKitAPI::TEST_F): Added a test for the new toHexString
helper. It should make sure to zero pad each byte to two
characters, so that it's easy to read.

3:58 AM Changeset in webkit [254333] by Carlos Garcia Campos
  • 4 edits in trunk

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.27.4 release

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.27.4.
3:39 AM Changeset in webkit [254332] by Carlos Garcia Campos
  • 5 edits in trunk/Source

Unreviewed. Fix GTK and WPE API docs generation

Source/JavaScriptCore:

Add index for new symbols in 2.28.

  • API/glib/docs/jsc-glib-docs.sgml:

Source/WebKit:

Fix the name of the new class. WebKitInputMethodFilter -> WebKitInputMethodContext.

  • UIProcess/API/gtk/docs/webkit2gtk-docs.sgml:
  • UIProcess/API/wpe/docs/wpe-docs.sgml:
2:53 AM Changeset in webkit [254331] by Carlos Garcia Campos
  • 6 edits in trunk

[GLIB] Add GLib specific API for JSC JSValueRef.h's JSValueMakeFromJSONString and JSValueCreateJSONString methods
https://bugs.webkit.org/show_bug.cgi?id=205161

Reviewed by Adrian Perez de Castro.

Source/JavaScriptCore:

Add jsc_value_new_from_json() and jsc_value_to_json().

  • API/glib/JSCValue.cpp:

(jsc_value_new_from_json):
(jsc_value_to_json):

  • API/glib/JSCValue.h:
  • API/glib/docs/jsc-glib-4.0-sections.txt:

Tools:

Add tests for new API.

  • TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:

(testJSCJSON):
(main):

12:45 AM Changeset in webkit [254330] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

Automation: resolveChildFrameWithNodeHandle should return NodeNotFound when node doesn't exist
https://bugs.webkit.org/show_bug.cgi?id=205993

Reviewed by Brian Burg.

According to the spec:

"If element is stale, return error with error code stale element reference."
https://w3c.github.io/webdriver/#switch-to-frame

Fixes: imported/w3c/webdriver/tests/switch_to_frame/switch.py::test_frame_id_webelement_stale_reference

  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::WebAutomationSessionProxy::resolveChildFrameWithNodeHandle):

12:44 AM Changeset in webkit [254329] by Carlos Garcia Campos
  • 8 edits in trunk

Automation: evaluateJavaScriptFunction should use Promises
https://bugs.webkit.org/show_bug.cgi?id=204151

Reviewed by Brian Burg.

Source/WebDriver:

  • CommandResult.cpp:

(WebDriver::CommandResult::httpStatusCode const): Timeout errors should return 500 not 408.

  • Session.cpp:

(WebDriver::Session::executeScript): Ensure the script body goes between new lines to avoid problems with
trailing comments like in function() { return foo; Comment }.

Source/WebKit:

Make the function to run scripts async and handle the result as a promise. To implement the script timeout we
use another promise that starts the timer and then we run a Promise.race() with both promises. To simplify the
results reporting, all exceptions (including timeout errors that are now handled as exceptions) are now handled
as errors passed to the resultCallback. The boolean parameter has been removed, we can simply check the type of
the value received because results are always strings and errors are always exception objects.

  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::evaluateJavaScriptCallback): Handle the script result, including all possible errors now (not only timeouts).
(WebKit::WebAutomationSessionProxy::evaluateJavaScriptFunction): Any exception running the script should be an
internal error now. The code to handle error has been moved to evaluateJavaScriptCallback().

  • WebProcess/Automation/WebAutomationSessionProxy.js:

(WebKitAutomation.AutomationSessionProxy.prototype.evaluateJavaScriptFunction): Call _execute and handle the
promise result to call resultCallback wityh either the result or the error.
(WebKitAutomation.AutomationSessionProxy.prototype._execute): Make the function to run the script async and
handle the result as a promise.

WebDriverTests:

Remove expectations for tests that are now passing.

12:42 AM Changeset in webkit [254328] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit

Automation: scripts are executed in the wrong js context after a history navigation
https://bugs.webkit.org/show_bug.cgi?id=204880
<rdar://problem/58413615>

Reviewed by Brian Burg.

After a history navigation we use the script object from the previous frame js context because
didClearWindowObjectForFrame() is not called in that case. We are caching the script object for every frame ID,
and after a history navigation the frame ID is the same, but the frame js context isn't. That also means we might
be leaking the script objects in those cases, because we end up calling JSValueUnprotect with the wrong
context. It would be easier to set the script object as a property of the global object and let JSC handle the
lifetime. Instead of caching the script object and protect/unprotect it, we just check if the global object of
the current js context has the property or not to get or create it. We use a private symbol as the key of the
global object property to ensure it's not visible.

  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::WebAutomationSessionProxy::WebAutomationSessionProxy): Initialize m_scriptObjectIdentifier.
(WebKit::WebAutomationSessionProxy::scriptObject): Helper function to get the script object for the given
JavaScript context.
(WebKit::WebAutomationSessionProxy::setScriptObject): Helper function to set the script object for the given
JavaScript context.
(WebKit::WebAutomationSessionProxy::scriptObjectForFrame): Get or create the script object.
(WebKit::WebAutomationSessionProxy::elementForNodeHandle): Get the script object from global object.
(WebKit::WebAutomationSessionProxy::didClearWindowObjectForFrame): Remove the code to unprotect script objects
of the frame.

  • WebProcess/Automation/WebAutomationSessionProxy.h: Add m_scriptObjectIdentifier and remove m_webFrameScriptObjectMap.

Jan 9, 2020:

10:51 PM Changeset in webkit [254327] by Adrian Perez de Castro
  • 11 edits in trunk/Source

Fix various non-unified build issues introduced since r253538
https://bugs.webkit.org/show_bug.cgi?id=205996

Reviewed by Youenn Fablet.

Source/JavaScriptCore:

  • bytecode/ExecutableToCodeBlockEdge.cpp: Add missing inclusion of JSObjectInlines.h and

StructureInlines.h

  • dfg/DFGVariableEvent.cpp: Add missing inclusion of OperandsInlines.h
  • runtime/NarrowingNumberPredictionFuzzerAgent.cpp: Add missing inclusion of CodeBlock.h
  • runtime/WideningNumberPredictionFuzzerAgent.cpp: Ditto.
  • wasm/WasmOperations.cpp: Add missing inclusion of ButterflyInlines.h

Source/WebCore:

No new tests needed.

  • dom/UserGestureIndicator.cpp: Add missing inclusion of DOMWindow.h
  • html/HTMLDialogElement.cpp:

(WebCore::HTMLDialogElement::parseAttribute): Add missing namespace prefix to HTMLNames::openAttr.
(WebCore::HTMLDialogElement::toggleOpen): Ditto.

  • page/Page.cpp: Add missing inclusion of MediaRecorderProvider.h
  • page/PageConfiguration.h: Add missing inclusion of wtf/Forward.h and wtf/Vector.h
9:23 PM Changeset in webkit [254326] by Pablo Saavedra
  • 2 edits in trunk/LayoutTests

imported/w3c/web-platform-tests/xhr/event-timeout-order.any.html has been flaky since it was imported in r254154
https://bugs.webkit.org/show_bug.cgi?id=206053

Unreviewed, mark test as flaky.

8:44 PM Changeset in webkit [254325] by Ross Kirsling
  • 4 edits in trunk/Source/WebKit

REGRESSION(r253868): Socket-based remote inspector cannot inspect any target
https://bugs.webkit.org/show_bug.cgi?id=206045

Reviewed by Don Olmstead.

Revert part of patch, ensuring Target struct stays consistent with socket inspector's messaging protocol.

  • UIProcess/socket/RemoteInspectorClient.cpp:

(WebKit::RemoteInspectorClient::setTargetList):
(WebKit::debuggableTypeToString): Deleted.

  • UIProcess/socket/RemoteInspectorClient.h:
  • UIProcess/socket/RemoteInspectorProtocolHandler.cpp:

(WebKit::RemoteInspectorProtocolHandler::targetListChanged):
(WebKit::debuggableTypeToString): Deleted.

7:59 PM Changeset in webkit [254324] by Ryan Haddad
  • 2 edits in trunk/Tools

Move macOS Test262, JSC, and perf queues to Catalina
https://bugs.webkit.org/show_bug.cgi?id=205971

Unreviewed.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:

(WebKitBuildbot): Update queue names on dashboard to match new naming scheme (dashes instead of spaces)

7:50 PM Changeset in webkit [254323] by Fujii Hironori
  • 13 edits
    1 add
    2 deletes in trunk

[Win] Use ComplexTextController instead of UniscribeController
https://bugs.webkit.org/show_bug.cgi?id=204884

Reviewed by Brent Fulgham.

Source/WebCore:

UniscribeController doesn't support surrogate pairs and has
rendering glitches of partially selected a combining character.

Remove UniscribeController, and use ComplexTextController by
implementing collectComplexTextRunsForCharacters with Uniscribe.

Covered by existing tests.

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

(WebCore::ComplexTextController::collectComplexTextRunsForCharacters): Deleted.

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::widthOfTextRange const):
(WebCore::FontCascade::getGlyphsAndAdvancesForComplexText const):
(WebCore::FontCascade::drawGlyphBuffer const):
(WebCore::FontCascade::floatWidthForComplexText const):
(WebCore::FontCascade::adjustSelectionRectForComplexText const):
(WebCore::FontCascade::offsetForPositionForComplexText const):

  • platform/graphics/win/ComplexTextControllerUniscribe.cpp: Added.

(WebCore::shapeByUniscribe):
(WebCore::ComplexTextController::collectComplexTextRunsForCharacters):

  • platform/graphics/win/FontCGWin.cpp:
  • platform/graphics/win/FontCascadeDirect2D.cpp:
  • platform/graphics/win/FontWin.cpp:

(WebCore::FontCascade::adjustSelectionRectForComplexText const): Deleted.
(WebCore::FontCascade::getGlyphsAndAdvancesForComplexText const): Deleted.
(WebCore::FontCascade::floatWidthForComplexText const): Deleted.
(WebCore::FontCascade::offsetForPositionForComplexText const): Deleted.

  • platform/graphics/win/UniscribeController.cpp: Removed.
  • platform/graphics/win/UniscribeController.h: Removed.

Tools:

  • TestWebKitAPI/Tests/WebCore/ComplexTextController.cpp: Enabled these tests for PLATFORM(WIN).

LayoutTests:

  • platform/win/TestExpectations:
  • platform/win/fast/text/justify-ideograph-complex-expected.txt: Rebaselined.
  • platform/wincairo/TestExpectations:
7:38 PM Changeset in webkit [254322] by Chris Dumez
  • 7 edits
    4 adds in trunk

Block cross-site top-frame navigations from untrusted iframes
https://bugs.webkit.org/show_bug.cgi?id=206027
<rdar://problem/58320516>

Reviewed by Geoffrey Garen.

Source/WebCore:

Block cross-site top-frame navigations from untrusted iframes, unless they have a user gesture.
We already consider third-party iframes as untrusted, we now also treat first-party iframes
as untrusted if they are loaded both third-party scripts & iframes.

Test: http/tests/security/block-top-level-navigations-by-untrusted-first-party-iframes.html

  • dom/Document.cpp:

(WebCore::Document::canNavigate):
(WebCore::Document::willLoadScriptElement):
(WebCore::Document::willLoadFrameElement):
(WebCore::Document::isNavigationBlockedByThirdPartyIFrameRedirectBlocking):

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

(WebCore::ScriptElement::requestClassicScript):

  • html/HTMLFrameElementBase.cpp:

(WebCore::HTMLFrameElementBase::openURL):

LayoutTests:

Add layout test coverage.

  • http/tests/security/block-top-level-navigations-by-third-party-iframes-expected.txt:
  • http/tests/security/block-top-level-navigations-by-untrusted-first-party-iframes-expected.txt: Added.
  • http/tests/security/block-top-level-navigations-by-untrusted-first-party-iframes.html: Added.
  • http/tests/security/resources/navigate-top-level-frame-to-failure-page-untrusted-iframe.html: Added.
  • http/tests/security/resources/navigate-top-to-error-page.js: Added.
7:08 PM Changeset in webkit [254321] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Unreviewed test gardening
https://bugs.webkit.org/show_bug.cgi?id=206007

  • platform/gtk/TestExpectations:
6:34 PM Changeset in webkit [254320] by Andres Gonzalez
  • 2 edits in trunk/Source/WebCore

Disable accessibility isolated tree for LayoutTests.
https://bugs.webkit.org/show_bug.cgi?id=206048
<rdar://problem/58459580>

Reviewed by Chris Fleizach.

Fix for numerous LayoutTests failing when using accessibility isolated tree.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::clientSupportsIsolatedTree):

6:21 PM Changeset in webkit [254319] by Kocsen Chung
  • 1 copy in tags/Safari-608.5.10

Tag Safari-608.5.10.

6:10 PM Changeset in webkit [254318] by ddkilzer@apple.com
  • 4 edits in trunk/Tools

TestController::platformLibraryPathForTesting() returns inner pointer to autoreleased NSString
<https://webkit.org/b/206018>
<rdar://problem/58449733>

Reviewed by Darin Adler.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::initialize):

  • Use WTF::AutodrainedPool to fix remaining autoreleasePool leaks.
  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformLibraryPathForTesting):

  • WebKitTestRunner/mac/TestControllerMac.mm:

(WTR::TestController::platformLibraryPathForTesting):

  • Retain NSString since these methods return an inner pointer. This also only needs to be initialized once.
5:25 PM Changeset in webkit [254317] by timothy_horton@apple.com
  • 6 edits in trunk/Source

Adopt TARGET_OS_MACCATALYST in more places
https://bugs.webkit.org/show_bug.cgi?id=206040
<rdar://problem/57127108>

Reviewed by Simon Fraser.

Source/WebKit:

  • Shared/API/Cocoa/WebKit.h:

Source/WebKitLegacy/mac:

  • Misc/WebDownload.h:

Source/WTF:

  • wtf/Platform.h:
5:24 PM Changeset in webkit [254316] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: suggest "color()" when defining color in CSS value
https://bugs.webkit.org/show_bug.cgi?id=205976

Reviewed by Devin Rousso.

  • UserInterface/Models/CSSKeywordCompletions.js:
5:07 PM Changeset in webkit [254315] by Simon Fraser
  • 4 edits in trunk/Source/WebKit

Clean up -[WKWebView _initializeWithConfiguration:]
https://bugs.webkit.org/show_bug.cgi?id=206039

Reviewed by Tim Horton.

-[WKWebView _initializeWithConfiguration:] is full of platform #ifdefs so needs
cleaning up before adding more code. Factor out WKScrollView and view hookup,
pageConfiguration setup, and notification registration.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):
(-[WKWebView _setupPageConfiguration:]):

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

(-[WKWebView _setupScrollAndContentViews]):
(-[WKWebView _registerForNotifications]):

4:40 PM Changeset in webkit [254314] by Wenson Hsieh
  • 5 edits in trunk

Text manipulation controller should not observe changes in new replacement elements
https://bugs.webkit.org/show_bug.cgi?id=206015
<rdar://problem/58353667>

Reviewed by Tim Horton.

Source/WebCore:

TextManipulationController may insert elements in the process of completing text replacement operations. When
renderers are created for these elements (after the next layout pass), the controller is notified via
TextManipulationController::didCreateRendererForElement, which causes it to begin observing the newly inserted
elements. For certain clients, this may lead to an unending cycle of text manipulation updates as the new
text manipulation items' tokens will be replaced with new tokens, and we never reach a stable state.

To mitigate this, we avoid adding newly visible elements to m_mutatedElements in the case where the newly
visible elements were recently inserted by text replacement. See below for more details.

Test: TextManipulation.CompleteTextManipulationDoesNotCreateMoreTextManipulationItems

  • editing/TextManipulationController.cpp:

(WebCore::TextManipulationController::didCreateRendererForElement):

Avoid considering an element that has a new renderer, if it is an element we had just inserted using text
manipulation APIs.

(WebCore::TextManipulationController::replace):

As we iterate over and apply each text replacement, remember the elements we've inserted using a WeakHashSet;
this set is cleared in a queued async task, after which layout should be up to date.

  • editing/TextManipulationController.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:

Add a new API test to verify that we don't fire text manipulation item callbacks due to inserting elements when
completing text manipulation.

(-[TextManipulationDelegate initWithItemCallback]): Deleted.

Remove a stray initializer that was unused (and also doesn't take an ItemCallback, as its name might suggest).

4:19 PM Changeset in webkit [254313] by Alan Coon
  • 1 copy in tags/Safari-608.5.0.2.3

Tag Safari-608.5.0.2.3.

3:48 PM Changeset in webkit [254312] by Simon Fraser
  • 11 edits in trunk/Source/WebKit

Use HAVE(TOUCH_BAR) instead of PLATFORM(COCOA) in more places
https://bugs.webkit.org/show_bug.cgi?id=205975

Reviewed by Wenson Hsieh.

Protect Touch Bar-related code with HAVE(TOUCH_BAR) instead of PLATFORM(COCOA).

  • Shared/TouchBarMenuData.cpp:
  • Shared/TouchBarMenuData.h:
  • Shared/TouchBarMenuItemData.cpp:
  • Shared/TouchBarMenuItemData.h:
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::forceRequestCandidatesForTesting):
(WebKit::WebViewImpl::setEditableElementIsFocused):

  • UIProcess/WebPageProxy.cpp:
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didStartPageTransition):
(WebKit::WebPage::didChangeSelectionOrOverflowScrollPosition):
(WebKit::WebPage::didInsertMenuElement):
(WebKit::WebPage::didRemoveMenuElement):
(WebKit::WebPage::didInsertMenuItemElement):
(WebKit::WebPage::didRemoveMenuItemElement):

  • WebProcess/WebPage/WebPage.h:
3:48 PM Changeset in webkit [254311] by Simon Fraser
  • 15 edits in trunk/Source

Add ENABLE_UI_SIDE_COMPOSITING and use it in a few places
https://bugs.webkit.org/show_bug.cgi?id=205982

Reviewed by Jon Lee.
Source/WebKit:

All Remote* things should get wrapped in ENABLE(UI_SIDE_COMPOSITING)
if other platforms build the files, so do some of that. VisibleContentRect*
and ViewUpdateDispatcher* stuff is also UI-side compositing only.

  • Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:
  • Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.h:

(WebKit::RemoteScrollingCoordinatorTransaction::scrollingStateTree):

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

(WebKit::RemoteScrollingTree::handleMouseEvent):

  • UIProcess/RemoteLayerTree/RemoteScrollingTree.h:
  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/ViewUpdateDispatcher.cpp:
  • WebProcess/WebPage/ViewUpdateDispatcher.h:
  • WebProcess/WebPage/WebPage.h:

Source/WTF:

Add a #define ENABLE_UI_SIDE_COMPOSITING for Cocoa platforms. Minor comment cleanup, and
move the duplicate ENABLE_ASYNC_SCROLLING from iOS and macOS sections into the Cocoa section.

  • wtf/FeatureDefines.h:
3:47 PM Changeset in webkit [254310] by wilander@apple.com
  • 2 edits in trunk/Source/WebKit

Check the existence of the optional m_sessionID before using it in WebProcess::setResourceLoadStatisticsEnabled()
https://bugs.webkit.org/show_bug.cgi?id=206035
<rdar://problem/58455306>

Reviewed by Brent Fulgham.

No new tests.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::setResourceLoadStatisticsEnabled):

Added a check that m_sessionID exists.

3:47 PM Changeset in webkit [254309] by Alan Coon
  • 3 edits
    2 deletes in branches/safari-609-branch

Revert "Cherry-pick r254301. rdar://problem/58346124"

3:33 PM Changeset in webkit [254308] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Add styles to support Web Inspector reference articles
https://bugs.webkit.org/show_bug.cgi?id=206032

Reviewed by Devin Rousso.

  • wp-content/themes/webkit/style.css:

(main h1,):
(main h1):
(article .meta .updated):
(article .bodycopy,):
(.image):
(p .image,):
(.image.block):
(.image img):
(.widescreen .image):
(.image.slice-top > picture > img):
(.image.slice-right > picture > img):
(.image.slice-bottom > picture > img):
(.image.slice-left > picture > img):
(.flex):
(.flex.center):
(figure.widescreen):
(article picture):
(article picture > img):
(.single-web_inspector_page .landing-link):
(.single-web_inspector_page .landing-link:hover):
(@media(prefers-color-scheme:dark) article .invert-brightness,):
(@media(prefers-color-scheme:dark) .table-of-contents label:after):
(article h1,): Deleted.
(article .bodycopy): Deleted.

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

Install WebKit framework symlink for more iOS-derived platforms
https://bugs.webkit.org/show_bug.cgi?id=206030

Reviewed by Andy Estes.

  • WebKit.xcodeproj/project.pbxproj:
3:18 PM Changeset in webkit [254306] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Remove AGXCompilerService access from the WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=206020
<rdar://problem/58451395>

Reviewed by Per Arne Vollan.

Now that we generate a dynamic extension for 'com.apple.AGXCompilerService', we should remove the
blanket allow rule from the sandbox.

Covered by existing tests.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
2:59 PM Changeset in webkit [254305] by Alan Coon
  • 3 edits
    2 adds in branches/safari-609-branch

Cherry-pick r254301. rdar://problem/58346124

REGRESSION (r253662): Large Data URLs are not being handled properly
https://bugs.webkit.org/show_bug.cgi?id=205979
<rdar://problem/58346124>

Reviewed by Youenn Fablet.

Source/WebCore:

The URL size limitation added in r253662 was too low. We should bump it to handle
reasonable data URI sizes.

Test: fast/url/data-url-large.html.

  • page/SecurityOrigin.cpp:

LayoutTests:

  • fast/url/data-url-large-expected.txt: Added.
  • fast/url/data-url-large.html: Added.

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

2:58 PM Changeset in webkit [254304] by Alan Coon
  • 1 copy in tags/Safari-608.5.7.3.1

Tag Safari-608.5.7.3.1.

2:57 PM Changeset in webkit [254303] by basuke.suzuki@sony.com
  • 6 edits
    1 copy
    1 add in trunk/Source/bmalloc

[bmalloc] Extract constants from Heap and share it among Heaps.
https://bugs.webkit.org/show_bug.cgi?id=205834

Reviewed by Geoffrey Garen.

A Heap has many constants (m_vmPageSizePhysical, m_smallLineMetadata and m_pageClasses) and they
are dependent only to vmPageSizePhysical and identical for all Heaps.

Extracting them into a class and make it sharable among heaps. Also this is the first step for
making Heap constants to actual constexpr.

  • CMakeLists.txt: Added HeapConstants.cpp.
  • bmalloc.xcodeproj/project.pbxproj: Ditto.
  • bmalloc/Heap.cpp: Referencing HeapConstants object to get information.

(bmalloc::Heap::Heap):
(bmalloc::Heap::allocateSmallPage):
(bmalloc::Heap::deallocateSmallLine):
(bmalloc::Heap::allocateSmallBumpRangesByMetadata):
(bmalloc::Heap::allocateSmallBumpRangesByObject):
(bmalloc::Heap::initializeLineMetadata): Moved to HeapConstants.cpp.
(bmalloc::Heap::initializePageMetadata): Moved to HeapConstants.cpp.

  • bmalloc/Heap.h: Extract metadata initialization and member variables.
  • bmalloc/HeapConstants.cpp: Added.

(bmalloc::HeapConstants::HeapConstants):
(bmalloc::HeapConstants::initializeLineMetadata):
(bmalloc::HeapConstants::initializePageMetadata):

  • bmalloc/HeapConstants.h:

(bmalloc::HeapConstants::pageClass const):
(bmalloc::HeapConstants::smallLineCount const):
(bmalloc::HeapConstants::startOffset):
(bmalloc::HeapConstants::objectCount):
(bmalloc::HeapConstants::lineMetadata):

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

Move macOS Test262, JSC, and perf queues to Catalina
https://bugs.webkit.org/show_bug.cgi?id=205971

Unreviewed infrastructure fix.

  • BuildSlaveSupport/build.webkit.org-config/config.json: Add missing scheduler for perf queue.
2:41 PM Changeset in webkit [254301] by Brent Fulgham
  • 3 edits
    2 adds in trunk

REGRESSION (r253662): Large Data URLs are not being handled properly
https://bugs.webkit.org/show_bug.cgi?id=205979
<rdar://problem/58346124>

Reviewed by Youenn Fablet.

Source/WebCore:

The URL size limitation added in r253662 was too low. We should bump it to handle
reasonable data URI sizes.

Test: fast/url/data-url-large.html.

  • page/SecurityOrigin.cpp:

LayoutTests:

  • fast/url/data-url-large-expected.txt: Added.
  • fast/url/data-url-large.html: Added.
2:38 PM Changeset in webkit [254300] by Alan Coon
  • 1 copy in tags/Safari-609.1.14

Tag Safari-609.1.14.

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

Fix a tiny logging mistake in launchProcess
https://bugs.webkit.org/show_bug.cgi?id=206026

Reviewed by Wenson Hsieh.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::launchProcess):

2:25 PM Changeset in webkit [254298] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Update status for Web SQL Database
https://bugs.webkit.org/show_bug.cgi?id=205304

Patch by Eamon Sisk <esisk@apple.com> on 2020-01-09
Reviewed by Darin Adler.

The status for Web SQL Database is out of date.

  • features.json:
2:19 PM Changeset in webkit [254297] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Fix redundant anchor tags when generating table of contents
https://bugs.webkit.org/show_bug.cgi?id=206016

Reviewed by Devin Rousso.

  • wp-content/plugins/table-of-contents.php:
2:01 PM Changeset in webkit [254296] by wilander@apple.com
  • 24 edits
    2 copies
    2 adds in trunk

Resource Load Statistics: Add timing information to WebPageProxy::logFrameNavigation() to detect delayed client-side redirects
https://bugs.webkit.org/show_bug.cgi?id=205522
<rdar://problem/58125759>

Reviewed by Chris Dumez.

Source/WebKit:

The purpose of this patch is to capture navigations that happen programmatically
after the document has loaded. These are delayed redirects and should be counted
as redirects in ITP.

To achieve this, a timestamp is captured in
WebPageProxy::didFinishDocumentLoadForFrame() to be able to calculate how much time
has passed since that timestamp in the IPC sent from
WebPageProxy::logFrameNavigation(). The IPC also gets information on whether
userInitiatedActivity exists so that ITP can decide whether to treat the navigation
as triggered by the user or not.

A new test was added and existing test expectations were updated.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::logFrameNavigation):

Now takes the extra parameters delayAfterMainFrameDocumentLoad
and wasPotentiallyInitiatedByUser.

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

(WebKit::ResourceLoadStatisticsMemoryStore::logFrameNavigation):

Now takes the extra parameters delayAfterMainFrameDocumentLoad
and wasPotentiallyInitiatedByUser.

  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::logFrameNavigation):

Now takes the extra parameters delayAfterMainFrameDocumentLoad
and wasPotentiallyInitiatedByUser.
The deleted WebResourceLoadStatisticsStore::logFrameNavigation() was dead code.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::logFrameNavigation):

Now takes the extra parameters delayAfterMainFrameDocumentLoad
and wasPotentiallyInitiatedByUser.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _resourceLoadStatisticsSetShouldSubmitTelemetry:]): Deleted.

Dead code.

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

(WebKit::WebPageProxy::didFinishDocumentLoadForFrame):

Now captures a timestamp.

(WebKit::WebPageProxy::decidePolicyForNavigationAction):

Removed dead code.

(WebKit::WebPageProxy::logFrameNavigation):

Now sends the diff between now and the timestamp captured in
WebPageProxy::didFinishDocumentLoadForFrame().

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::platformInitialize):

Removed dead code.

(WebKit::WebsiteDataStore::platformDestroy):

Removed dead code.

  • UIProcess/WebsiteData/WebsiteDataStore.h:

(WebKit::WebsiteDataStore::resourceLoadStatistics const): Deleted.

Dead code.

Tools:

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::initializeWebViewConfiguration):

Removed dead code.

LayoutTests:

Results updated with additional data now that delayed redirects are captured.

  • http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration-database-expected.txt:
  • http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration-expected.txt:
  • http/tests/resourceLoadStatistics/log-delayed-client-side-redirects-database-expected.txt: Added.
  • http/tests/resourceLoadStatistics/log-delayed-client-side-redirects-database.html: Added.
  • http/tests/resourceLoadStatistics/log-delayed-client-side-redirects-expected.txt: Added.
  • http/tests/resourceLoadStatistics/log-delayed-client-side-redirects.html: Added.
  • http/tests/storageAccess/aggregate-sorted-data-with-storage-access-database-expected.txt:
  • http/tests/storageAccess/aggregate-sorted-data-with-storage-access-expected.txt:
1:56 PM Changeset in webkit [254295] by Wenson Hsieh
  • 4 edits in trunk/Source/WebCore

Implement encoders and decoders for more font-related entities
https://bugs.webkit.org/show_bug.cgi?id=205952

Reviewed by Dean Jackson.

Implement encode/decode template methods for more font-rendering-related objects in WebCore.

  • platform/graphics/FontDescription.h:

(WebCore::FontDescription::encode const):
(WebCore::FontDescription::decode):

  • platform/graphics/FontSelectionAlgorithm.h:

(WebCore::FontSelectionValue::encode const):
(WebCore::FontSelectionValue::decode):
(WebCore::FontSelectionRange::encode const):
(WebCore::FontSelectionRange::decode):
(WebCore::FontSelectionSpecifiedCapabilities::encode const):
(WebCore::FontSelectionSpecifiedCapabilities::decode):

  • platform/graphics/FontTaggedSettings.h:

(WebCore::FontTaggedSetting<T>::encode const):
(WebCore::FontTaggedSetting<T>::decode):

We cast from uint8_t to char and back when encoding and decoding because IPC encoders are currently only
able to encode uint8_ts, rather than chars. We could alternately address this in a future patch by adding
encode/decode functions for char to Encoder.h.

(WebCore::FontTaggedSettings<T>::encode const):
(WebCore::FontTaggedSettings<T>::decode):

1:39 PM Changeset in webkit [254294] by Andres Gonzalez
  • 2 edits in trunk/Source/WebKit

WKAccessibilityWebPageObject should use Accessibility::retrieveValueFromMainThread.
https://bugs.webkit.org/show_bug.cgi?id=206009

Reviewed by Chris Fleizach.

  • WKAccessibilityWebPageObject now uses Accessibility::retrieveValueFromMainThread,

which is consistent with WebAccessibilityObjectWrapper.

  • It also uses a captured protectedSelf to ensure the object is alive

when the lambda is invoked on the main thread.

  • Added nullity check for m_page in accessibilityAttributeSizeValue,

which is a potential crasher in the multithreaded mode.

  • WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:

(-[WKAccessibilityWebPageObject ALLOW_DEPRECATED_IMPLEMENTATIONS_END]):
(-[WKAccessibilityWebPageObject convertScreenPointToRootView:]):
(-[WKAccessibilityWebPageObject accessibilityAttributeSizeValue]):
(-[WKAccessibilityWebPageObject accessibilityAttributePositionValue]):
(-[WKAccessibilityWebPageObject accessibilityDataDetectorValue:point:]):
(-[WKAccessibilityWebPageObject accessibilityHitTest:]):
(retrieveAccessibilityValueFromMainThread): Not needed since it uses now the one in Accessibility nasespace.

1:32 PM Changeset in webkit [254293] by wilander@apple.com
  • 9 edits in trunk/Source

Resource Load Statistics: Flip experimental website data removal setting from an enable to a disable
https://bugs.webkit.org/show_bug.cgi?id=205966
<rdar://problem/58425000>

Reviewed by Brent Fulgham.

To get default on behavior, experimental features in the network process need to be
turned from enable flags to disable flags. This patch does that for the experimental
website data removal flag.

Source/WebCore:

No new tests. This change just reverses the interpretation of a flag.

  • page/Settings.yaml:

Source/WebKit:

This change also aligns the init values of the setting to match the default.

  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
  • NetworkProcess/NetworkSession.h:
  • NetworkProcess/NetworkSessionCreationParameters.h:
  • Shared/WebPreferences.yaml:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureNetworkProcess):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::parameters):

1:10 PM Changeset in webkit [254292] by Megan Gardner
  • 2 edits in trunk/Source/WebKit

Set the title for images so it will be correctly displayed in UIContextMenus
https://bugs.webkit.org/show_bug.cgi?id=205980
<rdar://problem/57701988>

Reviewed by Dean Jackson.

Need to set the title text for images.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView continueContextMenuInteraction:]):

12:52 PM Changeset in webkit [254291] by commit-queue@webkit.org
  • 4 edits
    3 adds in trunk

ImageBitmap can't be created in workers in some cases due to main-thread assert in ImageSource
https://bugs.webkit.org/show_bug.cgi?id=205850

Patch by Chris Lord <Chris Lord> on 2020-01-09
Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-in-worker-transfer-expected.txt: Added.
  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-in-worker-transfer.html: Added.
  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-worker.js: Added.

Source/WebCore:

Assert that we're destroyed on the creation thread, rather than on the
main thread. This is required for ImageBitmap creation in workers in
debug builds.

Test: imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-in-worker-transfer.html

  • platform/graphics/ImageSource.cpp:

(WebCore::ImageSource::ImageSource):
(WebCore::ImageSource::~ImageSource):
(WebCore::ImageSource::startAsyncDecodingQueue):

  • platform/graphics/ImageSource.h:
12:35 PM Changeset in webkit [254290] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Race condition in run-jsc-stress-tests chdir
https://bugs.webkit.org/show_bug.cgi?id=205910

Patch by Paulo Matos <Paulo Matos> on 2020-01-09
Reviewed by Keith Miller.

chdir block was in a race condition when multiple remotes are used.
As an example of this see line 3345 of:

https://ews-build.webkit.org/#/builders/26/builds/5719/steps/12/logs/stdio

quote error:
Tools/Scripts/run-jsc-stress-tests:1946: warning: conflicting chdir during another chdir block

Multiple threads should not enter a chdir block simultaneously, therefore we need
a mutex to guard it. More information is here:

https://bugs.ruby-lang.org/issues/15661

  • Scripts/run-jsc-stress-tests:
12:24 PM Changeset in webkit [254289] by Ryan Haddad
  • 2 edits in trunk/Tools

Move commit queue to Mojave
https://bugs.webkit.org/show_bug.cgi?id=205972

Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueueServer.js:

(BubbleQueueServer):

12:18 PM Changeset in webkit [254288] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebCore

[Cocoa] persistent-usage-record message fails first time; succeeds subsequent times
https://bugs.webkit.org/show_bug.cgi?id=205970
<rdar://problem/57785647>

Reviewed by Eric Carlson.

The AVContentKeySession is created too early; before the CDM has a chance to provide the storage path
for persistent usage records. Delay creation of the AVCKS until it's actually needed during the first
license request.

Drive-by fix: fix the exceptional case where a PUR session is closed but PUR data isn't available; send
a null message rather than an empty array.

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

(WebCore::CDMInstanceFairPlayStreamingAVFObjC::contentKeySession):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::removeSessionData):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::CDMInstanceFairPlayStreamingAVFObjC): Deleted.
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::ensureSession): Deleted.

12:08 PM Changeset in webkit [254287] by Peng Liu
  • 2 edits in trunk/Source/WebKit

Fullscreen videos do not enter PiP in first tap
https://bugs.webkit.org/show_bug.cgi?id=205986

Reviewed by Eric Carlson.

This patch essentially reverts the fix for webkit.org/b/204461.
The fix for webkit.org/b/204461 depends on a fix in AVKit along
with a corresponding update in WebKit (webkit.org/b/204979).
We will need to reapply the fix for webkit.org/b/204461 after they are landed.

  • WebProcess/cocoa/VideoFullscreenManager.mm:

(WebKit::VideoFullscreenManager::enterVideoFullscreenForVideoElement):
(WebKit::VideoFullscreenManager::exitVideoFullscreenForVideoElement):

12:01 PM Changeset in webkit [254286] by Kate Cheney
  • 4 edits in trunk/Source/WebKit

ITP API classes need WK_CLASS_AVAILABLE tags
https://bugs.webkit.org/show_bug.cgi?id=205969
<rdar://problem/58427147>

Reviewed by Dean Jackson.

  • UIProcess/API/Cocoa/_WKResourceLoadStatisticsFirstParty.h:
  • UIProcess/API/Cocoa/_WKResourceLoadStatisticsThirdParty.h:
  • WebKit.xcodeproj/project.pbxproj:

This updates the header file targets from Project to Private.

11:52 AM Changeset in webkit [254285] by Pablo Saavedra
  • 3 edits
    2 copies
    1 add in trunk/LayoutTests

Bad baseline for Catalina on xhr web-platform-tests imported in r254154
https://bugs.webkit.org/show_bug.cgi?id=205991

Unreviewed, fix some Catalina builds after r254154.

LayoutTests/imported/w3c:

  • web-platform-tests/xhr/getallresponseheaders-expected.txt:

LayoutTests:

  • platform/mac-highsierra/imported/w3c/web-platform-tests/xhr/getallresponseheaders-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/xhr/getallresponseheaders-expected.txt.
  • platform/mac-mojave/imported/w3c/web-platform-tests/xhr/getallresponseheaders-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/xhr/getallresponseheaders-expected.txt.
11:49 AM Changeset in webkit [254284] by Alan Coon
  • 3 edits
    2 adds in branches/safari-608.5.7.3-branch

Cherry-pick r254220. rdar://problem/58450166

Fix specification violation in Font Loading API
https://bugs.webkit.org/show_bug.cgi?id=205901
<rdar://problem/58083743>

Reviewed by Brent Fulgham.

Source/WebCore:

Our Font Loading API does not comply with the spec:

If the parsed value is a CSS-wide keyword, return a syntax error.

Rather than crashing, we should return a syntax error.

Test: fast/text/font-loading-global-keyword.html

  • css/CSSFontFaceSet.cpp: (WebCore::computeFontSelectionRequest): (WebCore::CSSFontFaceSet::matchingFacesExcludingPreinstalledFonts):

LayoutTests:

Test all the entry points to the CSS Font Loading API that accept CSS keywords.

  • fast/text/font-loading-global-keyword-expected.txt: Added.
  • fast/text/font-loading-global-keyword.html: Added.

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

11:40 AM Changeset in webkit [254283] by Alan Coon
  • 7 edits in branches/safari-608.5.7.3-branch/Source

Versioning.

11:27 AM Changeset in webkit [254282] by Alan Coon
  • 1 copy in branches/safari-608.5.7.3-branch

New branch.

11:24 AM Changeset in webkit [254281] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

Fix iOS build.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeOutOfFlowHorizontalGeometry):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::computeWidthAndMargin):

11:13 AM Changeset in webkit [254280] by Ryan Haddad
  • 5 edits in trunk/Tools

Move macOS Test262, JSC, and perf queues to Catalina
https://bugs.webkit.org/show_bug.cgi?id=205971

Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/build.webkit.org-config/config.json:
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:

(WebKitBuildbot):

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css:

(table.queue-grid tr.platform.macos-highsierra img.logo): Deleted.

  • BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:
11:12 AM Changeset in webkit [254279] by Justin Fan
  • 3 edits in trunk/LayoutTests

[WebGL] Skip all webgl/2.0.0 tests, as ANGLE switch obsoletes all old expectated results
https://bugs.webkit.org/show_bug.cgi?id=205988

Unreviewed test gardening.

The WebGL dedicated queue will continue to run failing tests.
Normal bots will only enable 2.0.0 tests after development work confirms they are passing with ANGLE.

10:56 AM Changeset in webkit [254278] by Alan Coon
  • 3 edits
    2 adds in branches/safari-608-branch

Cherry-pick r254220. rdar://problem/58429231

Fix specification violation in Font Loading API
https://bugs.webkit.org/show_bug.cgi?id=205901
<rdar://problem/58083743>

Reviewed by Brent Fulgham.

Source/WebCore:

Our Font Loading API does not comply with the spec:

If the parsed value is a CSS-wide keyword, return a syntax error.

Rather than crashing, we should return a syntax error.

Test: fast/text/font-loading-global-keyword.html

  • css/CSSFontFaceSet.cpp: (WebCore::computeFontSelectionRequest): (WebCore::CSSFontFaceSet::matchingFacesExcludingPreinstalledFonts):

LayoutTests:

Test all the entry points to the CSS Font Loading API that accept CSS keywords.

  • fast/text/font-loading-global-keyword-expected.txt: Added.
  • fast/text/font-loading-global-keyword.html: Added.

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

10:39 AM Changeset in webkit [254277] by Alan Bujtas
  • 9 edits in trunk/Source/WebCore

[LFC] Rename UsedHorizontal(Vertical)Values to OverrideHorizontal(Vertical)values
https://bugs.webkit.org/show_bug.cgi?id=206008
<rdar://problem/58443375>

Reviewed by Antti Koivisto.

These structure are a mixture of specified and used values.
What these specified/used values mean in this context is that they override the default input
values for the "compute geometry" functions (e.g. computing the width of a floating box follows
the same set of steps as computing the width of an inline replaced box. So whenever we need to
compute the width of a floating box, we could just call the computeInlineReplacedWidth() function.
However their horizontal margin computations are different and since width and horizontal margins are being computed together,
we need to make sure that inlineReplacedWidthAndMargin() takes a set of pre-computed margin values
and uses them while computing the width value. Same applies to min/max-width/heigh computations.)

  • layout/FormattingContext.h:
  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::complicatedCases const):
(WebCore::Layout::FormattingContext::Geometry::floatingNonReplacedWidthAndMargin):
(WebCore::Layout::FormattingContext::Geometry::floatingReplacedHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::floatingReplacedWidthAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::floatingHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::floatingWidthAndMargin):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedWidthAndMargin const):

  • layout/LayoutUnits.h:
  • layout/blockformatting/BlockFormattingContext.h:
  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedWidthAndMargin const):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowReplacedWidthAndMargin const):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowWidthAndMargin):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeWidthAndMargin):
(WebCore::Layout::InlineFormattingContext::computeHeightAndMargin):

  • layout/inlineformatting/InlineFormattingContext.h:
  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockWidthAndMargin):
(WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockHeightAndMargin const):

10:36 AM Changeset in webkit [254276] by Alan Coon
  • 7 edits in branches/safari-608-branch/Source

Versioning.

10:34 AM Changeset in webkit [254275] by Alan Coon
  • 7 edits in branches/safari-608.5.0.2-branch/Source

Versioning.

10:34 AM Changeset in webkit [254274] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC] Add missing HorizontalConstraints/VerticalConstraints
https://bugs.webkit.org/show_bug.cgi?id=205987
<rdar://problem/58432728>

Reviewed by Antti Koivisto.

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):
(WebCore::Layout::InlineFormattingContext::lineLayout):
(WebCore::Layout::InlineFormattingContext::constraintsForLine):

  • layout/inlineformatting/InlineFormattingContext.h:
10:33 AM Changeset in webkit [254273] by Alan Coon
  • 2 edits in branches/safari-608.5.0.2-branch/Source/WebKit

Apply patch. rdar://problem/58396582

10:30 AM Changeset in webkit [254272] by Alan Bujtas
  • 11 edits in trunk/Source/WebCore

[LFC] Decouple UsedHorizontal(Vertical)Values and Horizontal(Vertical)Constraints
https://bugs.webkit.org/show_bug.cgi?id=205985
<rdar://problem/58431985>

Reviewed by Antti Koivisto.

Some geometry functions need only the constraint values and some need both the constraint and the used values.

Inflow:

horizontal:

width and margin: needs horizontal constraint (containing block width) and the used values (min/max width).
position: needs horizontal constraint (containing block's content box left).

vertical:

height and margin: needs horizontal constraint to resolve margin values and the used values (min/max height).
position: needs vertical constraint (containing block's content box top).

Out-of-flow:

horizontal geometry: horizontal constraint and the used value.
vertical geometry: horizontal and vertical constraint and the vertical used value.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeOutOfFlowHorizontalGeometry):
(WebCore::Layout::FormattingContext::computeOutOfFlowVerticalGeometry):
(WebCore::Layout::FormattingContext::layoutOutOfFlowContent):

  • layout/FormattingContext.h:
  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::floatingNonReplacedWidthAndMargin):
(WebCore::Layout::FormattingContext::Geometry::floatingReplacedHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::floatingReplacedWidthAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::floatingWidthAndMargin):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedWidthAndMargin const):

  • layout/LayoutUnits.h:

(WebCore::Layout::UsedHorizontalValues::UsedHorizontalValues): Deleted.
(WebCore::Layout::UsedVerticalValues::UsedVerticalValues): Deleted.

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):
(WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot):
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPosition):
(WebCore::Layout::BlockFormattingContext::computeWidthAndMargin):
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedWidthAndMargin const):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowReplacedWidthAndMargin const):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowWidthAndMargin):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):
(WebCore::Layout::InlineFormattingContext::layoutFormattingContextRoot):
(WebCore::Layout::InlineFormattingContext::computeHorizontalAndVerticalGeometry):
(WebCore::Layout::InlineFormattingContext::computeWidthAndMargin):
(WebCore::Layout::InlineFormattingContext::computeHeightAndMargin):
(WebCore::Layout::InlineFormattingContext::computeWidthAndHeightForReplacedInlineBox):

  • layout/inlineformatting/InlineFormattingContext.h:
  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockWidthAndMargin):
(WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockHeightAndMargin const):

10:25 AM Changeset in webkit [254271] by Alan Bujtas
  • 14 edits in trunk/Source/WebCore

[LFC] Use Horizontal/VerticalConstraints wherever possible
https://bugs.webkit.org/show_bug.cgi?id=205973
<rdar://problem/58426772>

Reviewed by Antti Koivisto.

Let's pass in Horizontal/VerticalConstraints struct instead of the UsedHorizontal/VerticalValues
to the "compute geometry" functions when only the constraint values are needed/available.
This is also in preparation for decoupling used and constraint values.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeOutOfFlowHorizontalGeometry):
(WebCore::Layout::FormattingContext::computeOutOfFlowVerticalGeometry):
(WebCore::Layout::FormattingContext::computeBorderAndPadding):

  • layout/FormattingContext.h:
  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::staticVerticalPositionForOutOfFlowPositioned const):
(WebCore::Layout::FormattingContext::Geometry::staticHorizontalPositionForOutOfFlowPositioned const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::complicatedCases const):
(WebCore::Layout::FormattingContext::Geometry::floatingNonReplacedWidthAndMargin):
(WebCore::Layout::FormattingContext::Geometry::floatingReplacedHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::floatingReplacedWidthAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::floatingHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedWidthAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::inFlowPositionedPositionOffset const):
(WebCore::Layout::FormattingContext::Geometry::computedPadding const):
(WebCore::Layout::FormattingContext::Geometry::computedHorizontalMargin const):
(WebCore::Layout::FormattingContext::Geometry::computedVerticalMargin const):

  • layout/FormattingContextQuirks.cpp:

(WebCore::Layout::FormattingContext::Quirks::heightValueOfNearestContainingBlockWithFixedHeight):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::placeInFlowPositionedChildren):
(WebCore::Layout::BlockFormattingContext::computeStaticVerticalPosition):
(WebCore::Layout::BlockFormattingContext::computeStaticHorizontalPosition):
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPosition):
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedWidthAndMargin const):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowReplacedWidthAndMargin const):
(WebCore::Layout::BlockFormattingContext::Geometry::staticVerticalPosition const):
(WebCore::Layout::BlockFormattingContext::Geometry::staticHorizontalPosition const):
(WebCore::Layout::BlockFormattingContext::Geometry::staticPosition const):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowHeightAndMargin):

  • layout/blockformatting/BlockFormattingContextQuirks.cpp:

(WebCore::Layout::BlockFormattingContext::Quirks::stretchedInFlowHeight):

  • layout/blockformatting/BlockMarginCollapse.cpp:

(WebCore::Layout::BlockFormattingContext::MarginCollapse::positiveNegativeValues const):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):
(WebCore::Layout::InlineFormattingContext::lineLayout):
(WebCore::Layout::InlineFormattingContext::layoutFormattingContextRoot):
(WebCore::Layout::InlineFormattingContext::computeHorizontalAndVerticalGeometry):
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthConstraints):
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthForConstraint const):
(WebCore::Layout::InlineFormattingContext::computeIntrinsicWidthForFormattingRoot):
(WebCore::Layout::InlineFormattingContext::computeHorizontalMargin):
(WebCore::Layout::InlineFormattingContext::computeWidthAndMargin):
(WebCore::Layout::InlineFormattingContext::computeHeightAndMargin):
(WebCore::Layout::InlineFormattingContext::computeWidthAndHeightForReplacedInlineBox):
(WebCore::Layout::InlineFormattingContext::constraintsForLine):
(WebCore::Layout::InlineFormattingContext::setDisplayBoxesForLine):

  • layout/inlineformatting/InlineFormattingContext.h:
  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockWidthAndMargin):
(WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockHeightAndMargin const):

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::computePreferredWidthForColumns):

10:20 AM Changeset in webkit [254270] by Alan Bujtas
  • 14 edits in trunk/Source/WebCore

[LFC] Move Constraints struct out of UsedHorizontal(Vertical)values.
https://bugs.webkit.org/show_bug.cgi?id=205944
<rdar://problem/58415893>

Reviewed by Antti Koivisto.

This is in preparation for decoupling used values and constraints.
Certain "compute geometry" functions only need the constraints while others only need the used values.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeOutOfFlowHorizontalGeometry):
(WebCore::Layout::FormattingContext::computeOutOfFlowVerticalGeometry):
(WebCore::Layout::FormattingContext::computeBorderAndPadding):
(WebCore::Layout::FormattingContext::layoutOutOfFlowContent):

  • layout/FormattingContext.h:
  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::staticVerticalPositionForOutOfFlowPositioned const):
(WebCore::Layout::FormattingContext::Geometry::staticHorizontalPositionForOutOfFlowPositioned const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::floatingNonReplacedWidthAndMargin):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedWidthAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::inFlowPositionedPositionOffset const):
(WebCore::Layout::FormattingContext::Geometry::computedPadding const):
(WebCore::Layout::FormattingContext::Geometry::computedHorizontalMargin const):
(WebCore::Layout::FormattingContext::Geometry::computedVerticalMargin const):
(WebCore::Layout::FormattingContext::Geometry::horizontalConstraintsForOutOfFlow):
(WebCore::Layout::FormattingContext::Geometry::verticalConstraintsForOutOfFlow):
(WebCore::Layout::FormattingContext::Geometry::horizontalConstraintsForInFlow):
(WebCore::Layout::FormattingContext::Geometry::verticalConstraintsForInFlow):

  • layout/LayoutContext.cpp:

(WebCore::Layout::LayoutContext::layoutFormattingContextSubtree):

  • layout/LayoutUnits.h:

(WebCore::Layout::UsedHorizontalValues::UsedHorizontalValues):
(WebCore::Layout::UsedVerticalValues::UsedVerticalValues):
(WebCore::Layout::UsedHorizontalValues::Constraints::Constraints): Deleted.
(WebCore::Layout::UsedVerticalValues::Constraints::Constraints): Deleted.

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):
(WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot):
(WebCore::Layout::BlockFormattingContext::placeInFlowPositionedChildren):
(WebCore::Layout::BlockFormattingContext::computeStaticVerticalPosition):
(WebCore::Layout::BlockFormattingContext::computeStaticHorizontalPosition):
(WebCore::Layout::BlockFormattingContext::computeStaticPosition):
(WebCore::Layout::BlockFormattingContext::computeWidthAndMargin):
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedWidthAndMargin const):
(WebCore::Layout::BlockFormattingContext::Geometry::staticVerticalPosition const):
(WebCore::Layout::BlockFormattingContext::Geometry::staticHorizontalPosition const):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowWidthAndMargin):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthConstraints):
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthForConstraint const):
(WebCore::Layout::InlineFormattingContext::constraintsForLine):

  • layout/inlineformatting/InlineFormattingContext.h:
  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockWidthAndMargin):
(WebCore::Layout::InlineFormattingContext::Geometry::computedTextIndent const):

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::layoutInFlowContent):
(WebCore::Layout::TableFormattingContext::computePreferredWidthForColumns):

  • layout/tableformatting/TableFormattingContext.h:
10:14 AM Changeset in webkit [254269] by Alan Bujtas
  • 10 edits in trunk/Source/WebCore

[LFC] FormattingContext::layoutInFlowContent should take UsedVerticalValues::Constraints
https://bugs.webkit.org/show_bug.cgi?id=205937
<rdar://problem/58412170>

Reviewed by Antti Koivisto.

This is in preparation for not needing to query the containing block for constraint information.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::layoutOutOfFlowContent):

  • layout/FormattingContext.h:
  • layout/LayoutContext.cpp:

(WebCore::Layout::LayoutContext::layoutFormattingContextSubtree):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):
(WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot):

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):
(WebCore::Layout::InlineFormattingContext::layoutFormattingContextRoot):

  • layout/inlineformatting/InlineFormattingContext.h:
  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::layoutInFlowContent):
(WebCore::Layout::TableFormattingContext::layoutTableCellBox):

  • layout/tableformatting/TableFormattingContext.h:
10:06 AM Changeset in webkit [254268] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][BFC] Start passing in vertical constraints to compute* functions
https://bugs.webkit.org/show_bug.cgi?id=205934
<rdar://problem/58411387>

Reviewed by Antti Koivisto.

This is in preparation for not needing to query the containing block for constraint information.

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::verticalConstraintsForInFlow):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):
(WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot):
(WebCore::Layout::BlockFormattingContext::computeStaticVerticalPosition):
(WebCore::Layout::BlockFormattingContext::computeStaticPosition):
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):

  • layout/blockformatting/BlockFormattingContext.h:
10:02 AM Changeset in webkit [254267] by Keith Rollin
  • 2 edits in trunk/Source/WebCore

Reformat FrameView logging
https://bugs.webkit.org/show_bug.cgi?id=205984
<rdar://problem/58431722>

Reviewed by Brent Fulgham.

Update the format used by FrameView in its RELEASE_LOG logging. Use
the format used by WebPageProxy and NetworkResourceLoader, which is
generally of the form:

<object-address> - [<values that help thread together operations>] <class>::<method>: <message and other useful values>

So, for example:

0x4a1cf8010 - FrameView::fireLayoutRelatedMilestonesIfNeeded() - firing first visually non-empty layout milestone on the main frame

becomes:

0x561be8010 - [frame=0x55d47e000, main=1] FrameView::fireLayoutRelatedMilestonesIfNeeded: Firing first visually non-empty layout milestone on the main frame

No new tests -- no new or changed functionality.

  • page/FrameView.cpp:

(WebCore::FrameView::paintContents):
(WebCore::FrameView::fireLayoutRelatedMilestonesIfNeeded):

9:59 AM Changeset in webkit [254266] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC] computeHeightAndMargin/placeInFlowPositionedChildren should take UsedHorizontalValues::Constraints
https://bugs.webkit.org/show_bug.cgi?id=205904
<rdar://problem/58398413>

Reviewed by Antti Koivisto.

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):
(WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot):
(WebCore::Layout::BlockFormattingContext::placeInFlowPositionedChildren):
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/displaytree/DisplayBox.h:

(WebCore::Display::Box::move):

9:54 AM Changeset in webkit [254265] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][BFC] BlockFormattingContext::layoutFormattingContextRoot should take the horizontal constraints
https://bugs.webkit.org/show_bug.cgi?id=205894
<rdar://problem/58391798>

Reviewed by Antti Koivisto.

layoutFormattingContextRoot should not need to read the containing block's geometry for constraints information.

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):
(WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot):

  • layout/blockformatting/BlockFormattingContext.h:
9:37 AM Changeset in webkit [254264] by sihui_liu@apple.com
  • 10 edits in trunk/Source/WebCore

IndexedDB: stop cursor prefetching when size of cached records reaches limit
https://bugs.webkit.org/show_bug.cgi?id=205909

Reviewed by Alex Christensen.

SQLiteIDBCursor was allowed to prefetch 8 cursor records at most. This patch introduces a new rule for better
flexibility. Prefetch will stop if either of the following conditions is true:

  1. number of prefetched records is not less than 128
  2. size of prefeteched records is not less than 8MB
  • Modules/indexeddb/IDBKeyData.cpp:

(WebCore::IDBKeyData::size const):

  • Modules/indexeddb/IDBKeyData.h:
  • Modules/indexeddb/IDBValue.cpp:

(WebCore::IDBValue::size const):

  • Modules/indexeddb/IDBValue.h:
  • Modules/indexeddb/server/SQLiteIDBCursor.cpp:

(WebCore::IDBServer::SQLiteIDBCursor::objectStoreRecordsChanged):
(WebCore::IDBServer::SQLiteIDBCursor::prefetch):
(WebCore::IDBServer::SQLiteIDBCursor::advance):
(WebCore::IDBServer::SQLiteIDBCursor::fetch):

  • Modules/indexeddb/server/SQLiteIDBCursor.h:
  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::iterateCursor):
(WebCore::IDBServer::UniqueIDBDatabase::prefetchCursor):

  • Modules/indexeddb/server/UniqueIDBDatabase.h:
  • Modules/indexeddb/shared/IDBCursorRecord.h:

(WebCore::IDBCursorRecord::size const):

9:36 AM Changeset in webkit [254263] by Alan Bujtas
  • 11 edits in trunk/Source/WebCore

[LFC] FormattingContext::layoutOutOfFlowContent should take horizontal and vertical constraints.
https://bugs.webkit.org/show_bug.cgi?id=205892
<rdar://problem/58389802>

Reviewed by Antti Koivisto.

The caller should provide the horizontal/vertical constraints for the the out-of-flow boxes. It helps to make sure that we don't access geometry information
in the parent formatting context.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeOutOfFlowHorizontalGeometry):
(WebCore::Layout::FormattingContext::computeOutOfFlowVerticalGeometry):
(WebCore::Layout::FormattingContext::layoutOutOfFlowContent):

  • layout/FormattingContext.h:
  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::horizontalConstraintsForOutOfFlow):
(WebCore::Layout::FormattingContext::Geometry::verticalConstraintsForOutOfFlow):
(WebCore::Layout::FormattingContext::Geometry::horizontalConstraintsForInFlow):
(WebCore::Layout::FormattingContext::Geometry::verticalConstraintsForInFlow):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowHorizontalConstraints): Deleted.
(WebCore::Layout::FormattingContext::Geometry::outOfFlowVerticalConstraints): Deleted.
(WebCore::Layout::FormattingContext::Geometry::inFlowHorizontalConstraints): Deleted.
(WebCore::Layout::FormattingContext::Geometry::inFlowVerticalConstraints): Deleted.

  • layout/FormattingContextQuirks.cpp:

(WebCore::Layout::FormattingContext::Quirks::heightValueOfNearestContainingBlockWithFixedHeight):

  • layout/LayoutContext.cpp:

(WebCore::Layout::LayoutContext::layoutFormattingContextSubtree):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):
(WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot):
(WebCore::Layout::BlockFormattingContext::placeInFlowPositionedChildren):
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPosition):
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):

  • layout/blockformatting/BlockFormattingContextQuirks.cpp:

(WebCore::Layout::BlockFormattingContext::Quirks::stretchedInFlowHeight):

  • layout/blockformatting/BlockMarginCollapse.cpp:

(WebCore::Layout::BlockFormattingContext::MarginCollapse::positiveNegativeValues const):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layoutFormattingContextRoot):

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::layoutTableCellBox):

8:49 AM Changeset in webkit [254262] by commit-queue@webkit.org
  • 5 edits in trunk

Unreviewed, rolling out r254234.
https://bugs.webkit.org/show_bug.cgi?id=206011

Broke production builds (Requested by ap on #webkit).

Reverted changeset:

"build-jsc should invoke make instead of calling xcodebuild
directly"
https://bugs.webkit.org/show_bug.cgi?id=205960
https://trac.webkit.org/changeset/254234

8:47 AM Changeset in webkit [254261] by youenn@apple.com
  • 3 edits in trunk/LayoutTests

REGRESSION: [ Mac wk2 ] http/wpt/service-workers/persistent-importScripts.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=205886
<rdar://problem/58387910>

Reviewed by Chris Dumez.

Make sure registrations are stored on disk before crashing the network process.

  • http/wpt/service-workers/persistent-importScripts.html:
  • platform/mac-wk2/TestExpectations:
8:22 AM Changeset in webkit [254260] by youenn@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION: [ Mac ] webrtc/video-autoplay.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=205893
<rdar://problem/58391046>

Reviewed by Eric Carlson.

  • webrtc/video-autoplay.html:

Speculative fix as I am not able to reproduce locally.
Hypothesis is that removing from DOM the video element is supposed to asynchronously pause the video element.
We should therefore ensure that the video element is paused before calling getUserMedia.

7:58 AM Changeset in webkit [254259] by youenn@apple.com
  • 12 edits in trunk/Source

REGRESSION: [ Mac wk2 ] fast/mediastream/captureInGPUProcess.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=205873
<rdar://problem/58380638>

Reviewed by Eric Carlson.

Source/WebCore:

Beef up reporting of error cases when device is not found for a getUserMedia call.
Covered by unflaked test.

  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::create):

  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

(WebCore::CoreAudioCaptureSource::create):

  • platform/mediastream/mac/MockAudioSharedUnit.mm:

(WebCore::MockRealtimeAudioSource::create):

  • platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:

(WebCore::MockRealtimeVideoSource::create):

  • platform/mock/MockRealtimeAudioSource.cpp:

(WebCore::MockRealtimeAudioSource::create):

  • platform/mock/MockRealtimeMediaSourceCenter.cpp:
  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::create):

Source/WebKit:

GPUProcess and UIProcess were sometimes getting out of sync with regards to using mock devices or real capture devices.
This ended up in GPUProcess trying to find mock devices based on real device IDs.
Fix this issue by storing this bool value in GPUProcessProxy and send IPC to GPUProcess whenver this value is changed.
Update GPUProcessProxy value whenever UserMediaPermissionRequestManagerProxy is asked to sync this value.

  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::GPUProcessProxy::singleton):
(WebKit::GPUProcessProxy::GPUProcessProxy):
(WebKit::GPUProcessProxy::setUseMockCaptureDevices):

  • UIProcess/GPU/GPUProcessProxy.h:
  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::syncWithWebCorePrefs const):

7:31 AM Changeset in webkit [254258] by magomez@igalia.com
  • 130 edits in trunk/LayoutTests

Unreviewed WPE gardening: rebaseline several tests after r254044.

  • platform/wpe/css1/basic/containment-expected.txt:
  • platform/wpe/css1/basic/contextual_selectors-expected.txt:
  • platform/wpe/css1/basic/grouping-expected.txt:
  • platform/wpe/css1/basic/id_as_selector-expected.txt:
  • platform/wpe/css1/basic/inheritance-expected.txt:
  • platform/wpe/css1/box_properties/border-expected.txt:
  • platform/wpe/css1/box_properties/border_bottom-expected.txt:
  • platform/wpe/css1/box_properties/border_bottom_inline-expected.txt:
  • platform/wpe/css1/box_properties/border_bottom_width-expected.txt:
  • platform/wpe/css1/box_properties/border_bottom_width_inline-expected.txt:
  • platform/wpe/css1/box_properties/border_color-expected.txt:
  • platform/wpe/css1/box_properties/border_color_inline-expected.txt:
  • platform/wpe/css1/box_properties/border_inline-expected.txt:
  • platform/wpe/css1/box_properties/border_left-expected.txt:
  • platform/wpe/css1/box_properties/border_left_inline-expected.txt:
  • platform/wpe/css1/box_properties/border_left_width-expected.txt:
  • platform/wpe/css1/box_properties/border_left_width_inline-expected.txt:
  • platform/wpe/css1/box_properties/border_right-expected.txt:
  • platform/wpe/css1/box_properties/border_right_inline-expected.txt:
  • platform/wpe/css1/box_properties/border_right_width-expected.txt:
  • platform/wpe/css1/box_properties/border_right_width_inline-expected.txt:
  • platform/wpe/css1/box_properties/border_style-expected.txt:
  • platform/wpe/css1/box_properties/border_style_inline-expected.txt:
  • platform/wpe/css1/box_properties/border_top-expected.txt:
  • platform/wpe/css1/box_properties/border_top_inline-expected.txt:
  • platform/wpe/css1/box_properties/border_top_width-expected.txt:
  • platform/wpe/css1/box_properties/border_top_width_inline-expected.txt:
  • platform/wpe/css1/box_properties/border_width-expected.txt:
  • platform/wpe/css1/box_properties/border_width_inline-expected.txt:
  • platform/wpe/css1/box_properties/clear-expected.txt:
  • platform/wpe/css1/box_properties/clear_float-expected.txt:
  • platform/wpe/css1/box_properties/float-expected.txt:
  • platform/wpe/css1/box_properties/float_elements_in_series-expected.txt:
  • platform/wpe/css1/box_properties/float_margin-expected.txt:
  • platform/wpe/css1/box_properties/height-expected.txt:
  • platform/wpe/css1/box_properties/margin-expected.txt:
  • platform/wpe/css1/box_properties/margin_bottom-expected.txt:
  • platform/wpe/css1/box_properties/margin_bottom_inline-expected.txt:
  • platform/wpe/css1/box_properties/margin_inline-expected.txt:
  • platform/wpe/css1/box_properties/margin_left-expected.txt:
  • platform/wpe/css1/box_properties/margin_left_inline-expected.txt:
  • platform/wpe/css1/box_properties/margin_right-expected.txt:
  • platform/wpe/css1/box_properties/margin_right_inline-expected.txt:
  • platform/wpe/css1/box_properties/margin_top-expected.txt:
  • platform/wpe/css1/box_properties/margin_top_inline-expected.txt:
  • platform/wpe/css1/box_properties/padding-expected.txt:
  • platform/wpe/css1/box_properties/padding_bottom-expected.txt:
  • platform/wpe/css1/box_properties/padding_bottom_inline-expected.txt:
  • platform/wpe/css1/box_properties/padding_inline-expected.txt:
  • platform/wpe/css1/box_properties/padding_left-expected.txt:
  • platform/wpe/css1/box_properties/padding_left_inline-expected.txt:
  • platform/wpe/css1/box_properties/padding_right-expected.txt:
  • platform/wpe/css1/box_properties/padding_right_inline-expected.txt:
  • platform/wpe/css1/box_properties/padding_top-expected.txt:
  • platform/wpe/css1/box_properties/padding_top_inline-expected.txt:
  • platform/wpe/css1/box_properties/width-expected.txt:
  • platform/wpe/css1/cascade/cascade_order-expected.txt:
  • platform/wpe/css1/cascade/important-expected.txt:
  • platform/wpe/css1/classification/display-expected.txt:
  • platform/wpe/css1/classification/list_style-expected.txt:
  • platform/wpe/css1/classification/list_style_image-expected.txt:
  • platform/wpe/css1/classification/list_style_position-expected.txt:
  • platform/wpe/css1/classification/list_style_type-expected.txt:
  • platform/wpe/css1/classification/white_space-expected.txt:
  • platform/wpe/css1/color_and_background/background-expected.txt:
  • platform/wpe/css1/color_and_background/background_attachment-expected.txt:
  • platform/wpe/css1/color_and_background/background_color-expected.txt:
  • platform/wpe/css1/color_and_background/background_image-expected.txt:
  • platform/wpe/css1/color_and_background/background_position-expected.txt:
  • platform/wpe/css1/color_and_background/background_repeat-expected.txt:
  • platform/wpe/css1/color_and_background/color-expected.txt:
  • platform/wpe/css1/conformance/forward_compatible_parsing-expected.txt:
  • platform/wpe/css1/font_properties/font-expected.txt:
  • platform/wpe/css1/font_properties/font_family-expected.txt:
  • platform/wpe/css1/font_properties/font_size-expected.txt:
  • platform/wpe/css1/font_properties/font_style-expected.txt:
  • platform/wpe/css1/font_properties/font_variant-expected.txt:
  • platform/wpe/css1/font_properties/font_weight-expected.txt:
  • platform/wpe/css1/formatting_model/canvas-expected.txt:
  • platform/wpe/css1/formatting_model/floating_elements-expected.txt:
  • platform/wpe/css1/formatting_model/height_of_lines-expected.txt:
  • platform/wpe/css1/formatting_model/inline_elements-expected.txt:
  • platform/wpe/css1/formatting_model/replaced_elements-expected.txt:
  • platform/wpe/css1/formatting_model/vertical_formatting-expected.txt:
  • platform/wpe/css1/pseudo/anchor-expected.txt:
  • platform/wpe/css1/pseudo/firstletter-expected.txt:
  • platform/wpe/css1/pseudo/firstline-expected.txt:
  • platform/wpe/css1/pseudo/multiple_pseudo_elements-expected.txt:
  • platform/wpe/css1/pseudo/pseudo_elements_in_selectors-expected.txt:
  • platform/wpe/css1/text_properties/letter_spacing-expected.txt:
  • platform/wpe/css1/text_properties/line_height-expected.txt:
  • platform/wpe/css1/text_properties/text_align-expected.txt:
  • platform/wpe/css1/text_properties/text_decoration-expected.txt:
  • platform/wpe/css1/text_properties/text_indent-expected.txt:
  • platform/wpe/css1/text_properties/text_transform-expected.txt:
  • platform/wpe/css1/text_properties/vertical_align-expected.txt:
  • platform/wpe/css1/text_properties/word_spacing-expected.txt:
  • platform/wpe/css1/units/color_units-expected.txt:
  • platform/wpe/css1/units/length_units-expected.txt:
  • platform/wpe/css1/units/percentage_units-expected.txt:
  • platform/wpe/css1/units/urls-expected.txt:
  • platform/wpe/css2.1/t100801-c548-ln-ht-00-c-a-expected.txt:
  • platform/wpe/css2.1/t1606-c562-white-sp-00-b-ag-expected.txt:
  • platform/wpe/fast/css/empty-pseudo-class-expected.txt:
  • platform/wpe/fast/css/first-child-pseudo-class-expected.txt:
  • platform/wpe/fast/css/last-child-pseudo-class-expected.txt:
  • platform/wpe/fast/css/only-child-pseudo-class-expected.txt:
  • platform/wpe/fast/frames/onlyCommentInIFrame-expected.txt:
  • platform/wpe/fast/html/listing-expected.txt:
  • platform/wpe/fast/invalid/junk-data-expected.txt:
  • platform/wpe/fast/invalid/missing-end-tag-expected.txt:
  • platform/wpe/fast/parser/xhtml-alternate-entities-expected.txt:
  • platform/wpe/fast/table/border-collapsing/004-expected.txt:
  • platform/wpe/fast/table/border-collapsing/004-vertical-expected.txt:
  • platform/wpe/fast/xsl/xslt-extra-content-at-end-expected.txt:
  • platform/wpe/fast/xsl/xslt-missing-namespace-in-xslt-expected.txt:
  • platform/wpe/svg/custom/bug45331-expected.txt:
  • platform/wpe/svg/custom/junk-data-expected.txt:
  • platform/wpe/svg/custom/missing-xlink-expected.txt:
  • platform/wpe/svg/custom/path-bad-data-expected.txt:
  • platform/wpe/svg/custom/use-font-face-crash-expected.txt:
  • platform/wpe/svg/hixie/error/012-expected.txt:
  • platform/wpe/tables/mozilla/bugs/45621-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug139524-2-expected.txt:
  • platform/wpe/tables/mozilla_expected_failures/bugs/bug1055-2-expected.txt:
  • platform/wpe/tables/mozilla_expected_failures/bugs/bug21518-expected.txt:
  • platform/wpe/tables/mozilla_expected_failures/bugs/bug22122-expected.txt:
  • platform/wpe/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
  • platform/wpe/tables/mozilla_expected_failures/marvin/backgr_fixed-bg-expected.txt:
6:32 AM Changeset in webkit [254257] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore/PAL

Don't softlink AVCapture classes on watchOS or tvOS
https://bugs.webkit.org/show_bug.cgi?id=205974
<rdar://problem/45508044>

Reviewed by Jon Lee.

  • pal/cocoa/AVFoundationSoftLink.h:
  • pal/cocoa/AVFoundationSoftLink.mm:
6:31 AM Changeset in webkit [254256] by youenn@apple.com
  • 4 edits
    1 copy
    1 add in trunk

RemoteVideoSample should be able to support canvas video samples
https://bugs.webkit.org/show_bug.cgi?id=205922

Reviewed by Eric Carlson.

Source/WebCore:

Canvas capture is producing video samples that are not IOSurface backed.
This makes it impossible to send them through IPC via RemoteVideoSample.
We beef up RemoteVideoSample to create an IOSurface for RGBA video samples.

Test: http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable-gpuprocess.html

  • platform/graphics/RemoteVideoSample.cpp:

(WebCore::transferBGRAPixelBufferToIOSurface):
(WebCore::RemoteVideoSample::create):

LayoutTests:

  • http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable-gpuprocess-expected.txt: Added.
  • http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable-gpuprocess.html: Added.
  • http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable.html:

Remove no longer valid comment and beef up test in case of assertion failure.

6:23 AM Changeset in webkit [254255] by Carlos Garcia Campos
  • 2 edits in trunk/WebDriverTests

Unreviewed gardening. Mark imported/w3c/webdriver/tests/switch_to_frame/cross_origin.py::test_nested_cross_origin_iframe as failure

3:47 AM Changeset in webkit [254254] by ddkilzer@apple.com
  • 5 edits in trunk

WebKitTestRunner leaks objects in a top-level autoreleasePool that's never cleared
<https://webkit.org/b/205950>
<rdar://problem/50987831>

Reviewed by Joseph Pecoraro.

Source/WebKit:

  • UIProcess/mac/WebPreferencesMac.mm:

(WebKit::WebPreferences::platformInitializeStore):

  • Add an @autoreleasepool block around the contents of this method since it generates numerous autoreleased objects when run.

Tools:

  • WebKitTestRunner/ios/mainIOS.mm:

(main):

  • Add an @autoreleasepool block around a line of code that generates autoreleased objects. These objects would never be released for the life of the process prior to this change.
  • WebKitTestRunner/mac/main.mm:

(main):

  • Move instantiation of WTR::TestController outside of @autoreleasepool block so the pool can be drained while running tests. Prior to this change, this autoreleasePool would never be drained.
Note: See TracTimeline for information about the timeline view.