Timeline



Sep 4, 2018:

11:50 PM Changeset in webkit [235660] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk/LayoutTests

[EME] Add a layoutTest for ClearKey WebM video playback
https://bugs.webkit.org/show_bug.cgi?id=189200

Patch by Yacine Bandou <yacine.bandou_ext@softathome.com> on 2018-09-04
Reviewed by Xabier Rodriguez-Calvar.

Add a new layoutTest in order to test the playback of ClearKey encrypted WebM.

  • media/encrypted-media/clearKey/clearKey-webm-video-playback-mse-expected.txt: Added.
  • media/encrypted-media/clearKey/clearKey-webm-video-playback-mse.html: Added.
  • platform/gtk/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/wpe/TestExpectations:
10:19 PM Changeset in webkit [235659] by commit-queue@webkit.org
  • 21 edits
    4 adds
    1 delete in trunk

Add basic support for ScrollIntoViewOptions
https://bugs.webkit.org/show_bug.cgi?id=189258

Patch by Frederic Wang <fwang@igalia.com> on 2018-09-04
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Update test expectations for WPT scrollIntoView tests.

  • web-platform-tests/css/cssom-view/scrollIntoView-scrollMargin-expected.txt: This is not

supported yet but update the error message.

  • web-platform-tests/css/cssom-view/scrollIntoView-scrollPadding-expected.txt: Ditto.
  • web-platform-tests/css/cssom-view/scrollIntoView-shadow-expected.txt: Update expectation

now that this test passes.

  • web-platform-tests/css/cssom-view/scrollIntoView-smooth-expected.txt: Ditto.
  • web-platform-tests/css/cssom-view/scrollintoview-expected.txt: Ditto.

Source/WebCore:

This patch introduces a new ScrollIntoViewOptions parameter that can be passed into
Element.scrollIntoView instead of a boolean. A basic support for scroll alignments is
implemented, so that it is closer to the behavior of the CSSOMView spec while still remaining
compatible with the current boolean-parameter implementation. Full implementation that
takes into account orientation/direction will be handled in bug 161611. This patch is also a
preliminary step to support the ScrollBehavior (bug 188043) for ScrollIntoView.

Tests: web-platform-tests/css/cssom-view/scrollintoview-html

web-platform-tests/css/cssom-view/scrollIntoView-smooth.html

  • CMakeLists.txt: Add new IDL files.
  • DerivedSources.make: Ditto.
  • Sources.txt: Add new generated cpp JS bindings.
  • WebCore.xcodeproj/project.pbxproj: Add files to build to XCode.
  • dom/Element.cpp:

(WebCore::toScrollAlignment): Convert ScrollLogicalPosition to scroll alignment. Orientation
and direction are not implemented yet.
(WebCore::Element::scrollIntoView): Implement new scrollIntoView version accepting
ScrollIntoViewOptions parameter.

  • dom/Element.h: Declare new scrollIntoView.
  • dom/Element.idl: Make scrollIntoView accept a ScrollIntoViewOptions parameter.
  • page/ScrollIntoViewOptions.h: Added.
  • page/ScrollIntoViewOptions.idl: Added.
  • page/ScrollLogicalPosition.h: Added.
  • page/ScrollLogicalPosition.idl: Added.

Source/WebKit:

  • DOM/DOMElement.mm: Add ScrollIntoViewOptions

header so that this file can build despite the new scrollIntoView function.

Source/WebKitLegacy/mac:

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElementGtk.cpp: Add ScrollIntoViewOptions

header so that this file can build despite the new scrollIntoView function.

Source/WebKitLegacy/win:

  • DOMCoreClasses.cpp: Add ScrollIntoViewOptions header so that this file

can build despite the new scrollIntoView function.

LayoutTests:

Update test expectations for WPT scrollIntoView tests.

  • platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom-view/scrollIntoView-smooth-expected.txt: Removed.
10:02 PM Changeset in webkit [235658] by commit-queue@webkit.org
  • 5 edits in trunk

Check important flags when serializing shorthand with "initial" values
https://bugs.webkit.org/show_bug.cgi?id=188984

Patch by Oriol Brufau <Oriol Brufau> on 2018-09-04
Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

The test still has some failures due to https://bugs.webkit.org/show_bug.cgi?id=185953
but without this patch it would fail earlier.

  • web-platform-tests/css/cssom/shorthand-serialization-expected.txt:
  • web-platform-tests/css/cssom/shorthand-serialization.html:

Source/WebCore:

Test: imported/w3c/web-platform-tests/css/cssom/shorthand-serialization.html

The test still has some failures due to https://bugs.webkit.org/show_bug.cgi?id=185953
but without this patch it would fail earlier.

  • css/StyleProperties.cpp:

(WebCore::StyleProperties::get4Values const):

9:32 PM Changeset in webkit [235657] by Antti Koivisto
  • 11 edits in trunk/Source/WebCore

Remove pointless RenderSVGResourceMode::ApplyToDefault enum value
https://bugs.webkit.org/show_bug.cgi?id=189260

Reviewed by Sam Weinig.

Default does not need a bit, it is better represented with an empty OptionSet.

  • rendering/svg/RenderSVGResource.cpp:

(WebCore::requestPaintingResource):

  • rendering/svg/RenderSVGResource.h:
  • rendering/svg/RenderSVGResourceClipper.cpp:

(WebCore::RenderSVGResourceClipper::applyResource):

  • rendering/svg/RenderSVGResourceFilter.cpp:

(WebCore::RenderSVGResourceFilter::applyResource):
(WebCore::RenderSVGResourceFilter::postApplyResource):

  • rendering/svg/RenderSVGResourceGradient.cpp:

(WebCore::RenderSVGResourceGradient::applyResource):

  • rendering/svg/RenderSVGResourceMasker.cpp:

(WebCore::RenderSVGResourceMasker::applyResource):

  • rendering/svg/RenderSVGResourcePattern.cpp:

(WebCore::RenderSVGResourcePattern::applyResource):
(WebCore::RenderSVGResourcePattern::postApplyResource):

  • rendering/svg/RenderSVGResourceSolidColor.cpp:

(WebCore::RenderSVGResourceSolidColor::applyResource):
(WebCore::RenderSVGResourceSolidColor::postApplyResource):

  • rendering/svg/SVGInlineTextBox.cpp:

(WebCore::SVGInlineTextBox::SVGInlineTextBox):
(WebCore::SVGInlineTextBox::paintSelectionBackground):
(WebCore::SVGInlineTextBox::paint):
(WebCore::SVGInlineTextBox::acquirePaintingResource):
(WebCore::SVGInlineTextBox::paintDecorationWithStyle):

  • rendering/svg/SVGRenderingContext.cpp:

(WebCore::SVGRenderingContext::~SVGRenderingContext):
(WebCore::SVGRenderingContext::prepareToRenderSVGContent):

7:36 PM Changeset in webkit [235656] by Chris Dumez
  • 5 edits in trunk/Source/WebKit

Rename experimental feature for process swap on navigation
https://bugs.webkit.org/show_bug.cgi?id=189280

Reviewed by Antti Koivisto.

The "process swap on navigation" experimental feature on macOS Mojave does not work due to missing
browser changes, resulting in frequent load hangs. When enabling the experimental feature in WebKit
ToT or Safari Technology Preview for testing, it enables it as well for Mojave's system Safari which
is annoying.

This patch renames the experimental feature so that the feature stays disabled in Mojave's system
Safari even when enabled in WebKit ToT / STP.

  • Shared/WebPreferences.yaml:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetProcessSwapOnNavigationEnabled):
(WKPreferencesGetProcessSwapOnNavigationEnabled):

  • UIProcess/WebPreferences.cpp:

(WebKit::WebPreferences::updateBoolValueForExperimentalFeatureKey):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::createWebPage):

7:08 PM Changeset in webkit [235655] by msaboff@apple.com
  • 1 edit
    3 adds in trunk/LayoutTests

YARR: Add new RegExp back reference tests to specifically test back reference JIT code
https://bugs.webkit.org/show_bug.cgi?id=189291

Reviewed by Saam Barati.

New tests.

  • fast/regex/backreferences-expected.txt: Added.
  • fast/regex/backreferences.html: Added.
  • fast/regex/script-tests/backreferences.js: Added.
6:57 PM Changeset in webkit [235654] by don.olmstead@sony.com
  • 4 edits
    2 copies
    1 add
    2 deletes in trunk/Tools

Add generic entrypoint and run loop in TestWebKitAPI
https://bugs.webkit.org/show_bug.cgi?id=189287

Reviewed by Michael Catanzaro.

The implementations in jsconly are platform agnostic.

  • TestWebKitAPI/PlatformJSCOnly.cmake:

Use the glib implementation of Utilities when using that as a run loop
otherwise use the generic implementation.

  • TestWebKitAPI/PlatformUtilities.h:

Remove repeated entries from Utilities.h.

  • TestWebKitAPI/PlatformWPE.cmake:

Use the generic main.cpp.

  • TestWebKitAPI/generic/UtilitiesGeneric.cpp: Renamed from Tools/TestWebKitAPI/jsconly/PlatformUtilitiesJSCOnly.cpp.

(TestWebKitAPI::Util::run):
(TestWebKitAPI::Util::spinRunLoop):
Moved to a generic implementation and added spinRunLoop.

  • TestWebKitAPI/generic/main.cpp: Renamed from Tools/TestWebKitAPI/jsconly/main.cpp.

Share between JSCOnly and WPE

  • TestWebKitAPI/wpe/main.cpp: Removed.
6:52 PM Changeset in webkit [235653] by don.olmstead@sony.com
  • 5 edits in trunk/Tools

[CMake] Make TestWebKitAPI dependencies explicit
https://bugs.webkit.org/show_bug.cgi?id=189282

Reviewed by Fujii Hironori.

The config.h file includes files from JSC, WebCore and WebKit which
places a dependency on those headers even when just building TestWTF.
This makes the depedencies explicit for all CMake ports and shoud
remove any race conditions that can be encountered when building tests.

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/PlatformWPE.cmake:
  • TestWebKitAPI/PlatformWin.cmake:
6:22 PM Changeset in webkit [235652] by emilio
  • 5 edits in trunk/Source/WebCore

Remove PseudoElementUserAgentCustom.
https://bugs.webkit.org/show_bug.cgi?id=189089

Reviewed by Ryosuke Niwa.

Tests at https://github.com/web-platform-tests/wpt/pull/12743.

  • css/CSSSelector.cpp:

(WebCore::CSSSelector::pseudoId):
(WebCore::CSSSelector::parsePseudoElementType):

  • css/CSSSelector.h:

(WebCore::CSSSelector::isCustomPseudoElement const):

  • css/RuleSet.cpp:

(WebCore::RuleSet::addRule):

  • css/parser/CSSParserSelector.h:

(WebCore::CSSParserSelector::needsImplicitShadowCombinatorForMatching const):

5:50 PM Changeset in webkit [235651] by dino@apple.com
  • 6 edits in trunk/Source

Post review Weinig fix-ups
https://bugs.webkit.org/show_bug.cgi?id=189288

Reviewed by Sam Weinig.

Fix-ups from https://bugs.webkit.org/show_bug.cgi?id=189252

Source/WebCore:

  • platform/MIMETypeRegistry.cpp:

(WebCore::MIMETypeRegistry::getSystemPreviewMIMETypes):
(WebCore::initializeSystemPreviewMIMETypes): Deleted.

  • rendering/RenderThemeIOS.mm:

(WebCore::arKitBundle):
(WebCore::loadARKitPDFPage):
(WebCore::systemPreviewLogo):

Source/WebKit:

  • UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:

(-[_WKPreviewControllerDataSource previewController:previewItemAtIndex:]):
(getUTIForMIMEType): Deleted.

  • UIProcess/ios/WKSystemPreviewView.mm:

(getUTIForSystemPreviewMIMEType):
(-[WKSystemPreviewView web_setContentProviderData:suggestedFilename:]):
(getUTIForMIMEType): Deleted.

5:22 PM Changeset in webkit [235650] by rniwa@webkit.org
  • 12 edits
    2 adds in trunk

slotchange event doesn't get fired when inserting, removing, or renaming slot elements
https://bugs.webkit.org/show_bug.cgi?id=189144
<rdar://problem/43871061>

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/shadow-dom/slotchange-customelements-expected.txt:
  • web-platform-tests/shadow-dom/slotchange-event-expected.txt:
  • web-platform-tests/shadow-dom/slotchange-expected.txt:

Source/WebCore:

This patch implements slotchange event when a slot element is inserted, removed, or renamed in the DOM tree.
Let us consider each scenario separately.

Insertion (https://dom.spec.whatwg.org/#concept-node-insert): In this case, we must fire slotchange event on
slot elements whose assigned nodes have changed in the tree order. When there is at most one slot element for
each name, this can be done by simply checking whether each slot has assigned nodes or not. When there are more
than one slot element, however, the newly inserted slot element may now become the first slot of a given name,
and gain assined nodes while the previously first element loses its assigned nodes. To see if the newly inserted
slot element is the first of its kind, we must travere the DOM tree to check the order of that and the previously
first slot element. To do this, we resolve the slot elements before start inserting nodes in
executeNodeInsertionWithScriptAssertion via SlotAssignment::resolveSlotsBeforeNodeInsertionOrRemoval. Note that
when the DOM tree has at most one slot element of its kind, resolveSlotsBeforeNodeInsertionOrRemoval is a no-op
and addSlotElementByName continues to operate in O(1). Becasue addSlotElementByName is called on each inserted
slot element in the tree order, we do the tree traversal upon finding the first slot element which has more than
one of its kind in the current tree. In this case, we resolve all other slot elements and enqueues slotchange
event as needed to avoid doing the tree traversal more than once.

Removal (https://dom.spec.whatwg.org/#concept-node-remove): In removal, we're concerned with removing the first
slot element of its kind. We must fire slotchange event on the remaining slot elements which became the first of
its kind after the removal as well as the ones which got removed from the tree if they had assigned nodes.
Furthermore, the DOM specification mandates that we first fire slotchange events in the tree from which a node
was removed and then in the removed subtree. Because we must only fire slotchange event on the first slot element
of its kind which has been removed, we must resolve the first slot elements of each kind before a node removal
in removeAllChildrenWithScriptAssertion and removeNodeWithScriptAssertion as we've done for insertion. Again,
in the case there was at most one slot element of each kind, resolveSlotsBeforeNodeInsertionOrRemoval is a no-op
and removeSlotElementByName would continue to operate in O(1). When there are multiple slot elements for a given
kind, we immediately enqueue slotchange event on the slot elements which newly became the first of its kind but
delay the enqueuing of slotchange event on the removed slot elements until removeSlotElementByName is called on
that element so that enqueuing of slotchange events on the slot elements still remaining in the in the tree would
happen before those which got removed as the DOM specification mandates.

Rename (https://dom.spec.whatwg.org/#shadow-tree-slots): In the case the slot element's name content attribute
is changed, the renamed element might have become the first of its kind or ceased to be the first of its kind.
There could be two other slot elements appearing later in the tree order which might have gained or lost assigned
nodes as a result. In this case, we invoke the algorithms for removing & inserting the slot with a key difference:
we enqueue slotchange event on the renamed slot immediately if it has assigned nodes.

To enqueue slotchange event in the tree order, this patch adds oldElement, which is a WeakPtr to a slot element,
to SlotAssignment::Slot. This WeakPtr is set to the slot element which used to have assigned nodes prior to the
node insertion, removal, or rename but no longer has after the mutation. This patch also adds a slot mutation
version number, m_slotMutationVersion, which is incremented whenever a node is about to be inserted or removed,
and slot resolution version, m_slotResolutionVersion, which is set to the current slot mutation version number
when the full slot resolution is triggered during slot mutations. They are used to avoid redundant tree traversals
in resolveSlotsAfterSlotMutation. This patch also makes m_needsToResolveSlotElements compiled in release builds
to avoid resolving slot elements when there is at most one slot element of each kind.

For insertion, oldElement is set to the slot which used to be the first of its kind before getting set to a slot
element being inserted in resolveSlotsAfterSlotMutation. We enqueue slotchange event on the newly inserted slot
element at that point (1). Since the slot element which used to be the first of its kind appears after the newly
inserted slot element by definition, we're guaranteed to see this oldElement later in the tree traversal upon
which we enqueue slotchange event. Note that if this slot element was the first of its kind, then we're simply
hitting (1), which is O(1) and does not invoke the tree traversal.

For removal, oldElement is set to the slot which used to be the first of its kind. Because this slot element is
getting removed, slotchange event must be enqueud after slotchange events have been enqueued on all slot elements
still remaining in the tree. To do this, we enqueue slotchange event immediately on the first slot element of
its kind during the tree traversal as we encounter it (2), and set oldElement to the previosuly-first-but-removed
slot element. slotchange event is enqueued on this slot element when removeSlotElementByName is later invoked via
HTMLSlotElement::removedFromAncestor which traverses each removed element in the tree order. Again, if this was
the last slot of its kind, we'd simply expedite (2) by enqueuing slotchange event during removeSlotElementByName,
which is O(1).

When the DOM invokes the concept to replace all children (https://dom.spec.whatwg.org/#concept-node-replace-all),
however, this algorithm isn't sufficient because the removal of each child happens one after another. We would
either need to resolve slots between each removal, or treat the removal of all children as a single operation.
While the DOM specification currently specifies the former behavior, this patch implements the latter behavior
to avoid useless work. See the DOM spec issue: https://github.com/w3c/webcomponents/issues/764

Test: fast/shadow-dom/slotchange-for-slot-mutation.html

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::removeAllChildrenWithScriptAssertion): Call resolveSlotsBeforeNodeInsertionOrRemoval
before start removing children.
(WebCore::ContainerNode::removeNodeWithScriptAssertion): Ditto.
(WebCore::executeNodeInsertionWithScriptAssertion): Ditto before inserting children.

  • dom/ShadowRoot.cpp:

(WebCore::ShadowRoot::~ShadowRoot): Set m_hasBegunDeletingDetachedChildren to true. This flag is used to supress
slotchange events during the shadow tree destruction.
(WebCore::ShadowRoot::renameSlotElement): Added.
(WebCore::ShadowRoot::removeSlotElementByName): Added oldParentOfRemovedTree as an argument.

  • dom/ShadowRoot.h:

(WebCore::ShadowRoot::shouldFireSlotchangeEvent): Added.

  • dom/SlotAssignment.cpp:

(WebCore::findSlotElement): Added.
(WebCore::nextSlotElementSkippingSubtree): Added.
(WebCore::SlotAssignment::hasAssignedNodes): Added. Returns true if the slot of a given name has assigned nodes.
(WebCore::SlotAssignment::renameSlotElement): Added.
(WebCore::SlotAssignment::addSlotElementByName): Call resolveSlotsAfterSlotMutation when slotchange event needs
to be dispatched for the current slot and there are more than one slot elements.
(WebCore::SlotAssignment::removeSlotElementByName): Ditto. When the slot's oldElement is set to the current slot
element, meaning that this slot element used to have assigned nodes, then enqueue slotchange event. It also has
a special case for oldParentOfRemovedTree is null when renaming a slot element. In this case, we want to enqueue
slot change event immediately on the renamed slot element and any affected elements as in a node insertion since
removeSlotElementByName would never be called on a slot element which newly become the first of its kind after
a slot rename.
(WebCore::SlotAssignment::resolveSlotsAfterSlotMutation): Added. This is the slot resolution algorithm invoked
when there are more than one slot elements for a given name. It has two modes dealing with insertion & removal.
The insertion mode is also used for renaming a slot element. The firs
(WebCore::SlotAssignment::resolveSlotsBeforeNodeInsertionOrRemoval): Added. Resolves all slot elements prior to
inserting or removing nodes. In many cases, this should be a no-op since m_needsToResolveSlotElements is set to
true only when there are more than one slot element of its kind.
(WebCore::SlotAssignment::willRemoveAllChildren): Ditto. Also sets m_willBeRemovingAllChildren to true.
(WebCore::SlotAssignment::didChangeSlot):
(WebCore::SlotAssignment::resolveAllSlotElements): Use seenFirstElement instead of element to indicate whether
we have seen a slot element of given name for consistency with resolveSlotsAfterSlotMutation.

  • dom/SlotAssignment.h:

(WebCore::SlotAssignment::Slot): Added oldElement and seenFirstElement.
(WebCore::SlotAssignment): Always compile m_needsToResolveSlotElements. Added m_willBeRemovingAllChildren,
m_slotMutationVersion, and m_slotResolutionVersion.
(WebCore::ShadowRoot::resolveSlotsBeforeNodeInsertionOrRemoval): Added. Calls the one in SlotAssignment.
(WebCore::ShadowRoot::willRemoveAllChildren): Ditto.

  • html/HTMLSlotElement.cpp:

(WebCore::HTMLSlotElement::removedFromAncestor):
(WebCore::HTMLSlotElement::attributeChanged): Calls ShadowRoot::renameSlotElement instead of
removeSlotElementByName and addSlotElementByName pair.

LayoutTests:

Added a W3C style testharness.js test for inserting, removing, and renaming slot elements.

It has 62 distinct test cases for closed/open shadow roots in connected and disconnected trees
for the total of 248 test cases.

This test presumes the resolution of https://github.com/w3c/webcomponents/issues/764 in our favor.

Chrome fails 48 test cases because it doesn't follow the tree order when dispatching slotchange event
on the previously first slot element, and Firefox fails 84 test cases because it fails to fire slotchange
in the tree order when a node is inserted.

  • fast/shadow-dom/slotchange-for-slot-mutation-expected.txt: Added.
  • fast/shadow-dom/slotchange-for-slot-mutation.html: Added.
5:04 PM Changeset in webkit [235649] by youenn@apple.com
  • 12 edits in trunk/Source/WebCore

Make LibWebRTCRtpSenderBackend own its libwebrtc RTP sender backend
https://bugs.webkit.org/show_bug.cgi?id=189270

Reviewed by Eric Carlson.

Previously, the libwebrtc senders were owned in LibWebRTCMediaEndpoint.
This patch makes them be owned by LibWebRTCRtpSenderBackend.
This simplifies the implementation of RTCRtpSender::getParameters.
This will help simplify the implementation of RTCRtpSender::replaceTrack.

removeTrack is also refactored so that LibWebRTCMediaEndpoint directly uses libwebrtc constructs and not WebCore libwebrtc-agnostic ones.

No change of behavior.

  • Modules/mediastream/PeerConnectionBackend.h:

(WebCore::PeerConnectionBackend::removeTrack):
(WebCore::PeerConnectionBackend::notifyRemovedTrack): Deleted.

  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::removeTrack):

  • Modules/mediastream/RTCRtpSender.cpp:

(WebCore::RTCRtpSender::getParameters):

  • Modules/mediastream/RTCRtpSender.h:

(WebCore::RTCRtpSender::backend):

  • Modules/mediastream/RTCRtpSenderBackend.h:
  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::addTrack):
(WebCore::LibWebRTCMediaEndpoint::removeTrack):
(WebCore::LibWebRTCMediaEndpoint::doCreateOffer):
(WebCore::LibWebRTCMediaEndpoint::stop):
(WebCore::LibWebRTCMediaEndpoint::shouldOfferAllowToReceiveAudio const): Deleted.
(WebCore::LibWebRTCMediaEndpoint::shouldOfferAllowToReceiveVideo const): Deleted.
(WebCore::LibWebRTCMediaEndpoint::getRTCRtpSenderParameters): Deleted.

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:

(WebCore::backendFromRTPSender):
(WebCore::LibWebRTCPeerConnectionBackend::addTrack):
(WebCore::LibWebRTCPeerConnectionBackend::addTransceiver):
(WebCore::LibWebRTCPeerConnectionBackend::removeTrack):
(WebCore::LibWebRTCPeerConnectionBackend::shouldOfferAllowToReceive const):
(WebCore::LibWebRTCPeerConnectionBackend::notifyRemovedTrack): Deleted.
(WebCore::LibWebRTCPeerConnectionBackend::getParameters const): Deleted.

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h:
  • Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.cpp:

(WebCore::LibWebRTCRtpSenderBackend::getParameters const):

  • Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.h:
4:51 PM Changeset in webkit [235648] by msaboff@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed indentations change.

  • yarr/YarrJIT.cpp:

(JSC::Yarr::YarrGenerator::matchBackreference):

4:47 PM Changeset in webkit [235647] by Wenson Hsieh
  • 26 edits in trunk

Populate "text/uri-list" with multiple URLs when the pasteboard contains multiple URLs
https://bugs.webkit.org/show_bug.cgi?id=188890
<rdar://problem/43648605>

Reviewed by Tim Horton.

Source/WebCore:

Adds support for exposing a newline separated list of URLs via DataTransfer's "text/uri-list" type when pasting
or dropping multiple items on the pasteboard that can be represented as URLs. Currently on iOS, only the URL of
the first item (if present) is exposed, and on macOS, only the first out of all the URLs in the pasteboard is
exposed.

To fix this, we introduce Pasteboard::readAllStrings, which reads a list of pasteboard strings collected from
all available items on the platform pasteboard. Currently, this is only used to provide a list of URL strings
when fetching data for the "text/uri-list" type when calling DataTransfer.getData() and
DataTransferItem.getAsString().

Tests: DragAndDropTests.ExposeMultipleURLsInDataTransfer

UIPasteboardTests.DataTransferURIListContainsMultipleURLs
PasteMixedContent.PasteOneOrMoreURLs

  • dom/DataTransfer.cpp:

(WebCore::readURLsFromPasteboardAsString):

Add a helper method that reads all URL strings from the pasteboard (for the MIME type "text/uri-list", which
corresponds to NSURLPboardType and "public.url" on macOS and iOS, respectively) and returns a single string
containing all non-empty URLs joined by newline characters. Also takes a filtering block which may be used to
reject URLs from being included in "text/uri-list" output.

(WebCore::DataTransfer::getDataForItem const):
(WebCore::DataTransfer::readStringFromPasteboard const):

Insteading of reading a single string from the pasteboard for "text/uri-list", call the above helper function to
read all URL strings in the pasteboard. If there are files present in the pasteboard, we also filter out URLs
whose schemes are not in the set of schemes that are safe to expose to the page (i.e. http(s), blob, and data).

  • platform/Pasteboard.cpp:

(WebCore::Pasteboard::readAllStrings):

Add a default non-Cocoa implementation of readAllStrings() that returns a vector, which may contain the result
of readString().

  • platform/Pasteboard.h:
  • platform/PasteboardStrategy.h:
  • platform/PlatformPasteboard.h:

Add plumbing to grab a list of strings from the pasteboard for a given type.

  • platform/cocoa/PasteboardCocoa.mm:

(WebCore::Pasteboard::readAllStrings):
(WebCore::Pasteboard::readString):

Implement these two methods in terms of readPlatformValuesAsStrings. readAllStrings returns the full list of
results, while readString only returns the first result.

  • platform/ios/PasteboardIOS.mm:

(WebCore::Pasteboard::readPlatformValuesAsStrings):
(WebCore::Pasteboard::readPlatformValueAsString): Deleted.

Refactor this Cocoa helper function to return a list of pasteboard string values for the given type, rather than
a single string.

  • platform/ios/PlatformPasteboardIOS.mm:

(WebCore::PlatformPasteboard::allStringsForType const):

Grab a string for each item (represented by an NSItemProvider) in the pasteboard that has data for the given
type identifier.

(WebCore::PlatformPasteboard::readString const):

Return the absolute string of the NSURL, instead of WebCore::URL::string(). This is needed to handle the case
where the NSURL is constructed from absolute and relative parts using a Plist. While -absoluteString gets us the
full URL string, URL::string() only returns the relative portion.

  • platform/mac/PasteboardMac.mm:

(WebCore::Pasteboard::readPlatformValuesAsStrings):
(WebCore::Pasteboard::readPlatformValueAsString): Deleted.

Also refactor this to retrieve a list of pasteboard strings, rather than a single result.

  • platform/mac/PlatformPasteboardMac.mm:

(WebCore::typeIdentifierForPasteboardType):
(WebCore::PlatformPasteboard::allStringsForType const):

Add an implementation for allStringsForType on macOS. Unlike iOS, it's much trickier to get this right since
we need to maintain compatibility with legacy "NS*Pboard" types, and NSPasteboardItem can only provide data
for NSPasteboardTypes (i.e. UTIs), so there's no way to just iterate through each pasteboard item and ask it
for data that matches the given type, if the types are not UTIs. However, in the case where we have multiple
items, the client must have used NSPasteboardWriting-conformant objects and/or NSPasteboardItem itself to write
data to the pasteboard. Since NSPasteboardWriting-conformant objects register modern pasteboard types when
writing to the pasteboard, we can simply iterate over these pasteboard items and ask for property lists using
type identifiers instead of having to worry about legacy pasteboard types. Furthermore, in the case where there
is only a single item in the pasteboard and we do need to handle legacy pasteboard types, using `-[NSPasteboard
stringForType:]` in the same way we do currently should yield the correct result.

As such, in the case where there is a single pasteboard item, we use -[NSPasteboard stringForType:] with the
original legacy type, and in the case where there are multiple items on the pasteboard, we iterate over each of
the pasteboard items and call -[NSPasteboardItem propertyListForType:] with the modern pasteboard type
corresponding to the given legacy pasteboard type.

The different corner cases in this logic are tested by the new API test, PasteMixedContent.PasteOneOrMoreURLs,
which exercises several different ways of writing one or more URLs to the pasteboard on macOS, which each result
in different legacy and modern pasteboard types being written to the pasteboard; our implementation of
PlatformPasteboard::allStringsForType on macOS handles all cases correctly.

Source/WebKit:

Add some plumbing through pasteboard classes to support Pasteboard::readAllStrings. See WebCore ChangeLog for
more detail.

  • UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:

(WebKit::WebPasteboardProxy::getPasteboardStringsForType):

  • UIProcess/WebPasteboardProxy.h:
  • UIProcess/WebPasteboardProxy.messages.in:
  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::allStringsForType):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.h:

Source/WebKitLegacy/mac:

Add some plumbing through pasteboard classes to support Pasteboard::readAllStrings. See WebCore ChangeLog for
more detail.

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

(WebPlatformStrategies::allStringsForType):

Tools:

  • DumpRenderTree/mac/DumpRenderTreePasteboard.mm:

(-[LocalPasteboard pasteboardItems]):

Implement this method to avoid crashing when running layout tests that access the pasteboard.

  • TestWebKitAPI/Tests/WebKitCocoa/DragAndDropTests.mm:

Add a test to verify that on macOS and iOS, multiple URLs dropped onto the page are accessible via
"text/uri-list".

  • TestWebKitAPI/Tests/WebKitCocoa/PasteMixedContent.mm:

Add a test that exercises 5 different ways to write one or more URLs to the pasteboard on macOS; in all cases,
the URLs written to the pasteboard should be exposed to the page via "text/uri-list". In all of these different
cases, the results of using -[NSPasteboardItem stringForType:], -[NSURL URLFromPasteboard:] and
-[NSPasteboard stringForType:] will yield different results, so the purpose of this API test is to ensure that
our logic for grabbing a list of URLs from the pasteboard on macOS is robust enough to handle all of these
different behaviors.

  • TestWebKitAPI/Tests/ios/UIPasteboardTests.mm:

Add a test to verify that on iOS, using -[UIPasteboard setURLs:] to write to multiple URLs to the pasteboard
and then pasting results in "text/uri-list" exposing a list of all the URLs written to the pasteboard.

  • WebKitTestRunner/mac/WebKitTestRunnerPasteboard.mm:

(-[LocalPasteboard pasteboardItems]):

Implement this method to avoid crashing when running layout tests that access the pasteboard.

4:45 PM Changeset in webkit [235646] by Simon Fraser
  • 2 edits in trunk/Tools

REGRESSION(r235408): GTK bots exiting early
https://bugs.webkit.org/show_bug.cgi?id=189063

Reviewed by Michael Catanzaro.

WebKitTestRunner was running the world leak checks even when run without --world-leaks,
causing GTK bot timeouts. So guard updateLiveDocumentsAfterTest(), checkForWorldLeaks()
and findAndDumpWorldLeaks() with m_checkForWorldLeaks checks, and in
TestController::handleControlCommand() print a message if the control script sends the
"#CHECK FOR WORLD LEAKS" command if WTR was not run with --world-leaks.

I tested that running with --world-leaks still works.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetStateToConsistentValues):
(WTR::TestController::updateLiveDocumentsAfterTest):
(WTR::TestController::checkForWorldLeaks):
(WTR::TestController::findAndDumpWorldLeaks):
(WTR::TestController::handleControlCommand):
(WTR::TestController::run):

4:30 PM WebKitGTK/2.22.x edited by Michael Catanzaro
(diff)
4:13 PM Changeset in webkit [235645] by msaboff@apple.com
  • 1 edit in trunk/Source/JavaScriptCore/ChangeLog

JSC Build error when changing CPU type: offlineasm: No magic values found. Skipping assembly file generation
https://bugs.webkit.org/show_bug.cgi?id=189274

Reviewed by Saam Barati.

Put the derived file LLIntDesiredOffsets.h in an architecture specific subdirectory to make them unique.

Some I got this change mixed up with the change for r235636. The changes to JavaScriptCore.xcodeproj/project.pbxproj
where landed there.

3:51 PM Changeset in webkit [235644] by Simon Fraser
  • 12 edits
    2 adds in trunk

CSS reference filter that references a tiled feTurbulence is blank
https://bugs.webkit.org/show_bug.cgi?id=188950

Reviewed by Dean Jackson.
Source/WebCore:

We need to run the code that was in RenderSVGResourceFilterPrimitive::determineFilterPrimitiveSubregion()
for CSS reference filters, to set up the various rects in the filter effects.

Do this by moving the code to FilterEffect::determineFilterPrimitiveSubregion(), which makes sense
because it recurses on the FilterEffect input chain. To make it CSS/SVGFilter agnostic, we move filterRegionInUserSpace()
to the Filter base class (for CSSFilter, it just returns m_filterRegion).

Test: css3/filters/reference-filter-set-filter-regions.html

  • platform/graphics/filters/Filter.h:
  • platform/graphics/filters/FilterEffect.cpp:

(WebCore::FilterEffect::determineFilterPrimitiveSubregion):

  • platform/graphics/filters/FilterEffect.h:
  • rendering/CSSFilter.cpp:

(WebCore::CSSFilter::determineFilterPrimitiveSubregion):

  • rendering/CSSFilter.h:
  • rendering/RenderLayerFilters.cpp:

(WebCore::RenderLayerFilters::beginFilterEffect):

  • rendering/svg/RenderSVGResourceFilter.cpp:

(WebCore::RenderSVGResourceFilter::applyResource):

  • rendering/svg/RenderSVGResourceFilterPrimitive.cpp:

(WebCore::RenderSVGResourceFilterPrimitive::determineFilterPrimitiveSubregion): Deleted.

  • rendering/svg/RenderSVGResourceFilterPrimitive.h:
  • svg/graphics/filters/SVGFilter.h:

LayoutTests:

  • css3/filters/reference-filter-set-filter-regions-expected.html: Added.
  • css3/filters/reference-filter-set-filter-regions.html: Added.
3:16 PM Changeset in webkit [235643] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC] Rename LayoutPair to BoxPair
https://bugs.webkit.org/show_bug.cgi?id=189276

Reviewed by Antti Koivisto.

  • layout/FormattingContext.h:
  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layout const):

2:41 PM Changeset in webkit [235642] by mmaxfield@apple.com
  • 2 edits in trunk/Tools

Unreviewed follow-up to r235635
https://bugs.webkit.org/show_bug.cgi?id=188940

Use "let" variables instead of "var" variables.

  • WebGPUShadingLanguageRI/StandardLibrary.js:

(let.standardLibrary):

2:41 PM Changeset in webkit [235641] by youenn@apple.com
  • 4 edits in trunk/Source

Disable WebRTC unified plan runtime flag by default
https://bugs.webkit.org/show_bug.cgi?id=189264

Reviewed by Jer Noble.

Source/WebCore:

Covered by existing tests.

  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState):
Activate unified plan for testing.

Source/WebKit:

  • Shared/WebPreferences.yaml:

Disable unified plan flag by default.

2:25 PM Changeset in webkit [235640] by bshafiei@apple.com
  • 2 edits in tags/Safari-607.1.4.1/Source/JavaScriptCore

Cherry-pick r235465. rdar://problem/43846941

Unreviewed, rolling out r235432 and r235436.
https://bugs.webkit.org/show_bug.cgi?id=189086

Is a Swift source breaking change. (Requested by keith_miller
on #webkit).

Reverted changesets:

"Add nullablity attributes to JSValue"
https://bugs.webkit.org/show_bug.cgi?id=189047
https://trac.webkit.org/changeset/235432

"Add nullablity attributes to JSValue"
https://bugs.webkit.org/show_bug.cgi?id=189047
https://trac.webkit.org/changeset/235436

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

2:25 PM Changeset in webkit [235639] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][BFC] Merge computeInFlowWidth(Height)AndMargin and computeFloatingWidth(Height)AndMargin.
https://bugs.webkit.org/show_bug.cgi?id=189271

Reviewed by Antti Koivisto.

This is in preparation for adding min/max-widht(height).

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeFloatingHeightAndMargin const): Deleted.
(WebCore::Layout::FormattingContext::computeFloatingWidthAndMargin const): Deleted.

  • layout/FormattingContext.h:
  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::computeWidthAndMargin const):
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin const):
(WebCore::Layout::BlockFormattingContext::computeInFlowHeightAndMargin const): Deleted.
(WebCore::Layout::BlockFormattingContext::computeInFlowWidthAndMargin const): Deleted.

  • layout/blockformatting/BlockFormattingContext.h:
2:23 PM Changeset in webkit [235638] by bshafiei@apple.com
  • 7 edits in tags/Safari-607.1.4.1/Source

Versioning.

2:20 PM Changeset in webkit [235637] by bshafiei@apple.com
  • 1 copy in tags/Safari-607.1.4.1

Tag Safari-607.1.4.1.

2:18 PM Changeset in webkit [235636] by msaboff@apple.com
  • 13 edits in trunk/Source

YARR: JIT RegExps with back references
https://bugs.webkit.org/show_bug.cgi?id=180874

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

Implemented JIT'ed back references for all counted types. The only type of back references
not handled in the JIT are 16bit matches that ignore case. Such support would require the
canonicalization that is currently handled in the Yarr interpreter via a C funtion call.
The back reference processing for surrogate pairs is implemented by individually comparing
each surrogate ala memcmp.

Added a generated canonicalization table for the LChar (8bit) domain to process case
ignored back references.

Added macro assembler load16(ExtendedAddress) for indexed access to the canonicalization table.

Added a new JIT failure reason for forward references as the check to JIT expressions with
forward references we're handled synonimously those containing back references.

This change is only enabled for 64 bit platforms.

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::load16):

  • assembler/MacroAssemblerX86_64.h:

(JSC::MacroAssemblerX86_64::load16):

  • runtime/RegExp.cpp:

(JSC::RegExp::compile):
(JSC::RegExp::compileMatchOnly):

  • yarr/YarrCanonicalize.h:
  • yarr/YarrCanonicalizeUCS2.cpp:
  • yarr/YarrCanonicalizeUCS2.js:

(set characters.hex.set string_appeared_here):

  • yarr/YarrJIT.cpp:

(JSC::Yarr::YarrGenerator::checkNotEnoughInput):
(JSC::Yarr::YarrGenerator::readCharacterDontDecodeSurrogates):
(JSC::Yarr::YarrGenerator::matchBackreference):
(JSC::Yarr::YarrGenerator::generateBackReference):
(JSC::Yarr::YarrGenerator::backtrackBackReference):
(JSC::Yarr::YarrGenerator::generateTerm):
(JSC::Yarr::YarrGenerator::backtrackTerm):
(JSC::Yarr::YarrGenerator::compile):
(JSC::Yarr::dumpCompileFailure):

  • yarr/YarrJIT.h:
  • yarr/YarrPattern.h:

(JSC::Yarr::BackTrackInfoBackReference::beginIndex):
(JSC::Yarr::BackTrackInfoBackReference::matchAmountIndex):

Source/WTF:

Added ENABLE_YARR_JIT_BACKREFERENCES to enable RegExp JIT'ing of back references
for 64 bit platforms only.

  • wtf/Platform.h:
2:18 PM Changeset in webkit [235635] by mmaxfield@apple.com
  • 8 edits
    4 adds in trunk/Tools

[WHLSL] Implement texture types
https://bugs.webkit.org/show_bug.cgi?id=188940

Rubber-stamped by Dean Jackson.

Implement the texture types and operations. This includes Sample(), Load(), Store(), Gather(), and GetDimensions().
These functions were implemented according to section 15 of the Vulkan 1.1.83 spec, which lists each operation
and how to compute its results.

  • WebGPUShadingLanguageRI/All.js:
  • WebGPUShadingLanguageRI/Casts.js: Moved from Intrinsics. The texture operations need to cast too, so these are

moved into a common location.
(cast):
(bitwiseCast):
(castToUchar):
(castToUshort):
(castToUint):
(castToChar):
(castToShort):
(castToInt):
(castToHalf):
(castToFloat):

  • WebGPUShadingLanguageRI/Intrinsics.js: Use Casts.js and call into TextureOperations.js.

(Intrinsics.):
(Intrinsics.checkFalse):
(Intrinsics.boxVector):
(Intrinsics.unboxVector):
(Intrinsics):
(Intrinsics.cast): Deleted.
(Intrinsics.bitwiseCast): Deleted.
(Intrinsics.castToHalf): Deleted.

  • WebGPUShadingLanguageRI/SPIRV.html:
  • WebGPUShadingLanguageRI/Sampler.js: Added. Represent the Sampler type.

(Sampler):
(Sampler.prototype.get rAddressMode):
(Sampler.prototype.get sAddressMode):
(Sampler.prototype.get tAddressMode):
(Sampler.prototype.get minFilter):
(Sampler.prototype.get magFilter):
(Sampler.prototype.get mipmapFilter):
(Sampler.prototype.get lodMinClamp):
(Sampler.prototype.get lodMaxClamp):
(Sampler.prototype.get maxAnisotropy):
(Sampler.prototype.get compareFunction):
(Sampler.prototype.get borderColor):
(Sampler.prototype.calculateBorderColor.computeValues):
(Sampler.prototype.calculateBorderColor):

  • WebGPUShadingLanguageRI/StandardLibrary.js: Update the standard library. Some of the functions were

either missing or wrong.
(let.standardLibrary):

  • WebGPUShadingLanguageRI/Test.html:
  • WebGPUShadingLanguageRI/Test.js: Test many, many combinations of the texture operations.

(makeSampler):
(make1DTexture):
(make1DTextureArray):
(make2DTexture):
(make2DTextureArray):
(make3DTexture):
(makeTextureCube):
(makeRW1DTexture):
(makeRW1DTextureArray):
(makeRW2DTexture):
(makeRW2DTextureArray):
(makeRW3DTexture):
(make2DDepthTexture):
(make2DDepthTextureArray):
(makeDepthTextureCube):
(makeRW2DDepthTexture):
(makeRW2DDepthTextureArray):
(checkFloat4):

  • WebGPUShadingLanguageRI/Texture.js: Added. Represents each of the texture types.

(Texture):
(Texture.prototype.get dimension):
(Texture.prototype.get width):
(Texture.prototype.get height):
(Texture.prototype.get depth):
(Texture.prototype.get levelCount):
(Texture.prototype.get layerCount):
(Texture.prototype.get innerType):
(Texture.prototype.get data):
(Texture.prototype.elementChecked):
(Texture.prototype.setElementChecked):
(Texture1D):
(Texture1D.prototype.widthAtLevel):
(Texture1D.prototype.heightAtLevel):
(Texture1D.prototype.depthAtLevel):
(Texture1D.prototype.element):
(Texture1D.prototype.setElement):
(Texture1DArray):
(Texture1DArray.prototype.widthAtLevel):
(Texture1DArray.prototype.heightAtLevel):
(Texture1DArray.prototype.depthAtLevel):
(Texture1DArray.prototype.element):
(Texture1DArray.prototype.setElement):
(Texture2D):
(Texture2D.prototype.widthAtLevel):
(Texture2D.prototype.heightAtLevel):
(Texture2D.prototype.depthAtLevel):
(Texture2D.prototype.element):
(Texture2D.prototype.setElement):
(Texture2DArray):
(Texture2DArray.prototype.widthAtLevel):
(Texture2DArray.prototype.heightAtLevel):
(Texture2DArray.prototype.depthAtLevel):
(Texture2DArray.prototype.element):
(Texture2DArray.prototype.setElement):
(Texture3D):
(Texture3D.prototype.widthAtLevel):
(Texture3D.prototype.heightAtLevel):
(Texture3D.prototype.depthAtLevel):
(Texture3D.prototype.element):
(Texture3D.prototype.setElement):
(TextureCube):
(TextureCube.prototype.widthAtLevel):
(TextureCube.prototype.heightAtLevel):
(TextureCube.prototype.depthAtLevel):
(TextureCube.prototype.element):
(TextureCube.prototype.setElement):
(Texture1DRW):
(Texture1DRW.prototype.widthAtLevel):
(Texture1DRW.prototype.heightAtLevel):
(Texture1DRW.prototype.depthAtLevel):
(Texture1DRW.prototype.element):
(Texture1DRW.prototype.setElement):
(Texture1DArrayRW):
(Texture1DArrayRW.prototype.widthAtLevel):
(Texture1DArrayRW.prototype.heightAtLevel):
(Texture1DArrayRW.prototype.depthAtLevel):
(Texture1DArrayRW.prototype.element):
(Texture1DArrayRW.prototype.setElement):
(Texture2DRW):
(Texture2DRW.prototype.widthAtLevel):
(Texture2DRW.prototype.heightAtLevel):
(Texture2DRW.prototype.depthAtLevel):
(Texture2DRW.prototype.element):
(Texture2DRW.prototype.setElement):
(Texture2DArrayRW):
(Texture2DArrayRW.prototype.widthAtLevel):
(Texture2DArrayRW.prototype.heightAtLevel):
(Texture2DArrayRW.prototype.depthAtLevel):
(Texture2DArrayRW.prototype.element):
(Texture2DArrayRW.prototype.setElement):
(let.TextureDepth2DArrayRW.Texture2DArrayRW.Texture3DRW):
(let.TextureDepth2DArrayRW.Texture2DArrayRW.Texture3DRW.prototype.widthAtLevel):
(let.TextureDepth2DArrayRW.Texture2DArrayRW.Texture3DRW.prototype.heightAtLevel):
(let.TextureDepth2DArrayRW.Texture2DArrayRW.Texture3DRW.prototype.depthAtLevel):
(let.TextureDepth2DArrayRW.Texture2DArrayRW.Texture3DRW.prototype.element):
(let.TextureDepth2DArrayRW.Texture2DArrayRW.Texture3DRW.prototype.setElement):

  • WebGPUShadingLanguageRI/TextureOperations.js: Added. This implements the texture operations

as described in section 15 of the Vulkan 1.1.83 spec.
(depthCompareOperation):
(conversionToRGBA):
(projectionOperation):
(cubeMapFaceSelection):
(cubeMapCoordinateTransformation):
(cubeMapDerivativeTransformation):
(scaleFactorOperation):
(levelOfDetailOperation):
(nearest):
(imageLevelSelection):
(strqaToUVWATransformation):
(rne):
(uvwaToIJKLNTransformationAndArrayLayerSelection):
(integerTexelCoordinateOperations):
(mirror):
(transform):
(wrappingOperation):
(calculateLambda):
(shouldBeBorder):
(accessColor):
(computeTau):
(reduce):
(texelGathering):
(computeColorFromLevel):
(texelFiltering):
(castToInnerTypeForGather):
(gatherTexture):
(castToInnerType):
(sampleTexture):

  • WebGPUShadingLanguageRI/index.html:
2:15 PM Changeset in webkit [235634] by ap@apple.com
  • 2 edits in trunk/Tools

Removing an accidentally committed debugging print.

  • Scripts/run-leaks: (runLeaks)
2:06 PM Changeset in webkit [235633] by ap@apple.com
  • 4 edits in trunk/Tools

run-leaks should run leaks with --list (on Mojave)
https://bugs.webkit.org/show_bug.cgi?id=187716
<rdar://problem/42261676>

Reviewed by Lucas Forschler.

Also enabled dumping memgraphs. We'll be pruning these aggressively, as they take
significant space.

  • Scripts/run-leaks:

(main): Added an option to store memgraphs.
(runLeaks): As there is no way to test whether the new format is supported in advance,
we have to try with --list first, and retry if that fails. Also, made leaks operate
on a memgraph file if we are saving it anyway.

  • Scripts/webkitpy/port/leakdetector.py:

(LeakDetector._leaks_args): Pass --memgraph-file to run-leaks.
(LeakDetector.leaks_file_name): Removed an incorrect comment.
(LeakDetector.memgraph_file_name): Added.
(LeakDetector.check_for_leaks): Changed how arguments are passed to _leaks_args.
It is a bit ugly that leaks path ends up being computed twice, but this is the least
ugly approach that I could find.

  • Scripts/webkitpy/port/leakdetector_unittest.py: Updated for _leaks_args changes.
1:47 PM Changeset in webkit [235632] by Chris Dumez
  • 17 edits
    1 move
    1 delete in trunk

Add process pool configuration flag to turn on automatic process pre-warming
https://bugs.webkit.org/show_bug.cgi?id=189263
<rdar://problem/44101941>

Reviewed by Antti Koivisto.

Source/WebKit:

Add process pool configuration flag to turn on automatic process pre-warming and disassociate
it from the warmInitialProcess() SPI.

For now, turning on "process swap on navigation" via experimental features also turns on
automatic process pre-warming.

  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::copy):

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/C/WKContext.cpp:

(WKContextSetPrewarmsProcessesAutomatically):
(WKContextWarmInitialProcess):

  • UIProcess/API/C/WKContextPrivate.h:
  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _warmInitialProcess]):
(-[WKProcessPool _hasPrewarmedWebProcess]):
(-[WKProcessPool _webProcessCountIgnoringPrewarmed]):

  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:

(-[_WKProcessPoolConfiguration setPrewarmsProcessesAutomatically:]):
(-[_WKProcessPoolConfiguration prewarmsProcessesAutomatically]):

  • UIProcess/ServiceWorkerProcessProxy.cpp:

(WebKit::ServiceWorkerProcessProxy::ServiceWorkerProcessProxy):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::setMaximumNumberOfProcesses):
(WebKit::WebProcessPool::createNewWebProcess):
(WebKit::WebProcessPool::tryTakePrewarmedProcess):
(WebKit::WebProcessPool::prewarmProcess):
(WebKit::WebProcessPool::disconnectProcess):
(WebKit::WebProcessPool::createWebPage):
(WebKit::WebProcessPool::didReachGoodTimeToPrewarm):

  • UIProcess/WebProcessPool.h:

(WebKit::WebProcessPool::sendToOneProcess):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::create):
(WebKit::WebProcessProxy::WebProcessProxy):
(WebKit::m_isInPrewarmedPool):

  • UIProcess/WebProcessProxy.h:

Tools:

Add API test coverage.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/ProcessPreWarming.mm: Renamed from Tools/TestWebKitAPI/Tests/WebKitCocoa/InitialWarmedProcessUsed.mm.

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/SetMaximumPrewarmedProcessCount.mm: Removed.
1:37 PM Changeset in webkit [235631] by commit-queue@webkit.org
  • 6 edits in trunk

Adjust XMLHttpRequest username/password precedence rules
https://bugs.webkit.org/show_bug.cgi?id=184910

Patch by Rob Buis <rbuis@igalia.com> on 2018-09-04
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Update test result.

  • web-platform-tests/xhr/send-authentication-competing-names-passwords-expected.txt:

Source/WebCore:

Steps 9.1 and 9.2 in the XMLHTTPRequest::open [1] algorithm
specify that non null user or non null password ought
to be set on the URL, so implement this.

Behavior matches Firefox and Chrome.

[1] https://xhr.spec.whatwg.org/#dom-xmlhttprequest-open

Test: xhr/send-authentication-competing-names-passwords.htm

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::open):

LayoutTests:

Adjust test because now we do set password on the url in
open(), even if the username is null.

  • http/tests/xmlhttprequest/basic-auth.html:
1:27 PM Changeset in webkit [235630] by Simon Fraser
  • 7 edits
    1 move
    1 add
    3 deletes in trunk/Source/WebCore

Simplify RenderLayer filter code
https://bugs.webkit.org/show_bug.cgi?id=189248

Reviewed by Dean Jackson.

Painting filters in RenderLayer involved the confusingly named RenderLayer::FilterInfo,
and FilterEffectRenderer/FilterEffectRendererHelper. Reduce confusion by just collapsing
these together into RenderLayerFilters. RenderLayerFilters stores a reference to the
CSSFilter, and knows how to set it up, and vend a GraphicsContext* for painting the content
to be filtered.

It's also simpler to just give RenderLayer a member variable for RenderLayerFilters, rather
than using a side hash (we can recoup the space in other ways layer).

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSFilterImageValue.cpp:
  • rendering/CSSFilter.h:
  • rendering/FilterEffectRenderer.cpp: Removed.
  • rendering/FilterEffectRenderer.h: Removed.
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::~RenderLayer):
(WebCore::RenderLayer::paintsWithFilters const):
(WebCore::RenderLayer::requiresFullLayerImageForFilters const):
(WebCore::RenderLayer::setFilterBackendNeedsRepaintingInRect):
(WebCore::RenderLayer::filtersForPainting const):
(WebCore::RenderLayer::setupFilters):
(WebCore::RenderLayer::applyFilters):
(WebCore::RenderLayer::paintLayerContents):
(WebCore::RenderLayer::calculateClipRects const):
(WebCore::RenderLayer::filter const): Deleted.
(WebCore::RenderLayer::filterPainter const): Deleted.
(WebCore::RenderLayer::hasFilterThatIsPainting const): Deleted.

  • rendering/RenderLayer.h:
  • rendering/RenderLayerFilterInfo.cpp: Removed.
  • rendering/RenderLayerFilters.cpp: Added.

(WebCore::RenderLayerFilters::RenderLayerFilters):
(WebCore::RenderLayerFilters::~RenderLayerFilters):
(WebCore::RenderLayerFilters::setFilter):
(WebCore::RenderLayerFilters::hasFilterThatMovesPixels const):
(WebCore::RenderLayerFilters::hasFilterThatShouldBeRestrictedBySecurityOrigin const):
(WebCore::RenderLayerFilters::notifyFinished):
(WebCore::RenderLayerFilters::updateReferenceFilterClients):
(WebCore::RenderLayerFilters::removeReferenceFilterClients):
(WebCore::RenderLayerFilters::buildFilter):
(WebCore::RenderLayerFilters::beginFilterEffect):
(WebCore::RenderLayerFilters::applyFilterEffect):

  • rendering/RenderLayerFilters.h: Renamed from Source/WebCore/rendering/RenderLayerFilterInfo.h.
1:26 PM Changeset in webkit [235629] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

Build fix.

  • testing/Internals.cpp:
1:16 PM Changeset in webkit [235628] by keith_miller@apple.com
  • 2 edits in trunk/Tools

Perl doesn't like calling keys on a reference
https://bugs.webkit.org/show_bug.cgi?id=189261

Reviewed by Michael Saboff.

  • Scripts/test262/Runner.pm:

(UpdateResults):

12:48 PM Changeset in webkit [235627] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Make the jsc shell print, printErr, and debug functions more robust.
https://bugs.webkit.org/show_bug.cgi?id=189268
<rdar://problem/41192690>

Reviewed by Keith Miller.

We'll now check for UTF8 conversion errors.

  • jsc.cpp:

(cStringFromViewWithString):
(printInternal):
(functionDebug):

12:38 PM Changeset in webkit [235626] by dino@apple.com
  • 15 edits in trunk

Move SystemPreview code from WebKitAdditions to WebKit
https://bugs.webkit.org/show_bug.cgi?id=189252
<rdar://problem/44080245>

Reviewed by Wenson Hsieh.

Source/WebCore:

Move the WebKitAdditions code into WebKit/WebCore.

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::relList const): Look for "ar".
(WebCore::HTMLAnchorElement::isSystemPreviewLink const): Ditto.

  • platform/MIMETypeRegistry.cpp: Add a couple of new static methods

for System Preview MIME types.
(WebCore::initializeSystemPreviewMIMETypes):
(WebCore::MIMETypeRegistry::getSystemPreviewMIMETypes):
(WebCore::MIMETypeRegistry::isSystemPreviewMIMEType):

  • platform/MIMETypeRegistry.h:
  • rendering/RenderThemeIOS.mm: Load the ARKit artwork from the framework.

(WebCore::arKitBundle):
(WebCore::loadARKitPDFPage):
(WebCore::systemPreviewLogo):
(WebCore::RenderThemeIOS::paintSystemPreviewBadge):

  • testing/Internals.cpp: Remove internal helper.

(WebCore::Internals::systemPreviewRelType): Deleted.

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

Source/WebKit:

Move the WebKitAdditions code into WebKit/WebCore.

  • UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:

(getUTIForMIMEType): Helper to get the system UTI for USDZ files.
(-[_WKPreviewControllerDataSource previewController:previewItemAtIndex:]):

  • UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm: Use the new methods

in MIMETypeRegistry.
(-[WKWebViewContentProviderRegistry initWithConfiguration:]):

  • UIProcess/SystemPreviewController.cpp: Ditto.

(WebKit::SystemPreviewController::canPreview const):

  • UIProcess/ios/WKSystemPreviewView.mm:

(getUTIForMIMEType): Similar helper to above.
(-[WKSystemPreviewView web_setContentProviderData:suggestedFilename:]):

LayoutTests:

This test no longer needs an internal helper.

  • system-preview/detection.html:
12:14 PM Changeset in webkit [235625] by aestes@apple.com
  • 8 edits in trunk

[Payment Request] PaymentResponse should have an onpayerdetailchange event handler
https://bugs.webkit.org/show_bug.cgi?id=189249

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/payment-request/payment-response/onpayerdetailchange-attribute.https-expected.txt:

Source/WebCore:

Implemented the onpayerdetailchange event handler as defined in the Payment Request API W3C Editor's Draft of 30 August 2018.

The "payer detail changed" algorithm will be implemented in a follow-up patch.

Covered by existing web platform tests.

  • Modules/paymentrequest/PaymentResponse.cpp:

(WebCore::PaymentResponse::scriptExecutionContext const):

  • Modules/paymentrequest/PaymentResponse.h:
  • Modules/paymentrequest/PaymentResponse.idl:
  • dom/EventNames.h:
  • dom/EventTargetFactory.in:
11:53 AM Changeset in webkit [235624] by david_fenton@apple.com
  • 2 edits in trunk/JSTests

Skip Test on 32-bit platforms.
https://bugs.webkit.org/show_bug.cgi?id=189185.

Unreviewed test gardening.

  • stress/regress-189185.js:
11:48 AM Changeset in webkit [235623] by youenn@apple.com
  • 14 edits
    8 adds in trunk/Source/WebCore

Introduce LibWebRTC backends for sender and receiver
https://bugs.webkit.org/show_bug.cgi?id=189171

Reviewed by Alejandro G. Castro.

Rename RTCRtpSender::Backend to RTCRtpSenderBackend, ditto for RTCRtpReceiver::Backend.
Make RTCRtpSender/RTCRtpReceiver own their backend.
This will allow the backends to own a libwebrtc sender/receiver ref counted object
and might allow us to cleanly separate code from unified plan vs plan B.

Update code so that libwebrtc code specific code is now creating senders and receivers.
This moves code from RTCPeerConnection down to LibWebRTCPeerConnectionBackend, in particular for
addTrack and addTransceiver methods.

Moved some code from LibWebRTCMediaEndpoint to LibWebRTCUtils to ease readability.

A future patch will allow to tie the libwebrtc sender/receiver to WebKit DOM sender/receiver.

Covered by existing tests.

  • Modules/mediastream/PeerConnectionBackend.cpp:

(WebCore::PeerConnectionBackend::addTrack):
(WebCore::PeerConnectionBackend::addTransceiver):

  • Modules/mediastream/PeerConnectionBackend.h:
  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::addTrack):
(WebCore::RTCPeerConnection::addTransceiver):
(WebCore::RTCPeerConnection::enqueueReplaceTrackTask):

  • Modules/mediastream/RTCPeerConnection.h:
  • Modules/mediastream/RTCRtpReceiver.cpp:

(WebCore::RTCRtpReceiver::RTCRtpReceiver):

  • Modules/mediastream/RTCRtpReceiver.h:

(WebCore::RTCRtpReceiver::create):
(WebCore::RTCRtpReceiver::setBackend):

  • Modules/mediastream/RTCRtpReceiverBackend.h: Added.

(WebCore::RTCRtpReceiverBackend::getParameters):

  • Modules/mediastream/RTCRtpSender.cpp:

(WebCore::RTCRtpSender::create):
(WebCore::RTCRtpSender::RTCRtpSender):

  • Modules/mediastream/RTCRtpSender.h:
  • Modules/mediastream/RTCRtpSenderBackend.h: Added.
  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::addRemoteTrack):

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:

(WebCore::LibWebRTCPeerConnectionBackend::videoReceiver):
(WebCore::LibWebRTCPeerConnectionBackend::audioReceiver):
(WebCore::LibWebRTCPeerConnectionBackend::addTrack):
(WebCore::LibWebRTCPeerConnectionBackend::addTransceiver):
(WebCore::LibWebRTCPeerConnectionBackend::completeAddTransceiver):

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h:
  • Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.cpp: Added.

(WebCore::LibWebRTCRtpReceiverBackend::getParameters):

  • Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.h: Added.
  • Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.cpp: Added.

(WebCore::LibWebRTCRtpSenderBackend::replaceTrack):
(WebCore::LibWebRTCRtpSenderBackend::getParameters const):

  • Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.h: Added.
  • Modules/mediastream/libwebrtc/LibWebRTCUtils.cpp: Added.

(WebCore::fillEncodingParameters):
(WebCore::fillHeaderExtensionParameters):
(WebCore::fillCodecParameters):
(WebCore::fillRtpParameters):

  • Modules/mediastream/libwebrtc/LibWebRTCUtils.h: Added.

(WebCore::fromStdString):

  • WebCore.xcodeproj/project.pbxproj:
11:40 AM Changeset in webkit [235622] by graouts@webkit.org
  • 3 edits
    2 adds in trunk

[Modern Media Controls] Disabling both fullscreen and picture-in-picture shows an empty top left container
https://bugs.webkit.org/show_bug.cgi?id=189259
<rdar://problem/42026625>

Reviewed by Dean Jackson.

Source/WebCore:

Test: media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-disabled-fullscreen-and-pip.html

Ensure the top left controls bar is hidden when none of its children are visible.

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

(InlineMediaControls.prototype.layout):

LayoutTests:

Adding a new test that checks that the top left container is hidden when both the fullscreen and picture-in-picture buttons are disabled.

  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-disabled-fullscreen-and-pip-expected.txt: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-disabled-fullscreen-and-pip.html: Added.
11:20 AM Changeset in webkit [235621] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Attempt to fix failing tests following r235615 (https://bugs.webkit.org/show_bug.cgi?id=187925)

An inline text box that does not have combined text and contains a single character
should be considered as having text content.

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::hasTextContent const):

11:10 AM Changeset in webkit [235620] by Ryan Haddad
  • 2 edits in trunk/Source/WebCore/PAL

Unreviewed, attempt to fix an internal build after r235585.

  • pal/spi/cf/CFNetworkSPI.h:
11:03 AM Changeset in webkit [235619] by pvollan@apple.com
  • 9 edits
    2 adds in trunk

Add test for fix in https://bugs.webkit.org/show_bug.cgi?id=187922
https://bugs.webkit.org/show_bug.cgi?id=187925

Reviewed by Simon Fraser.

This will test that the function primaryScreenDisplayID() returns a valid display ID.

Source/WebCore:

Test: fast/misc/valid-primary-screen-displayID.html

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

(WebCore::primaryScreenDisplayID):

  • testing/Internals.cpp:

(WebCore::Internals::primaryScreenDisplayID):

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

LayoutTests:

  • TestExpectations:
  • fast/misc/valid-primary-screen-displayID-expected.txt: Added.
  • fast/misc/valid-primary-screen-displayID.html: Added.
  • platform/mac-wk2/TestExpectations:
10:28 AM Changeset in webkit [235618] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Bug 189190 - REGRESSION(r235398) ASSERTION failure !m_client.didFinishDocumentLoadForFrame
https://bugs.webkit.org/show_bug.cgi?id=189190

Patch by Frederic Wang <fwang@igalia.com> on 2018-09-04
Reviewed by Alex Christensen.

Assertions to prevent use of the deprecated WKPageSetPageLoaderClient class are hit when
running system Safari with the current macOS/iOS releases, making impossible to launch it.
This patch conditionally skips these assertions so that they are only verified for
macOS > 10.14 or other platforms.

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageLoaderClient): Only assert on future OS releases.

10:11 AM Changeset in webkit [235617] by dbates@webkit.org
  • 12 edits in trunk/Source/WebCore

Add helper function to create a potential CORS request
https://bugs.webkit.org/show_bug.cgi?id=189251

Reviewed by Andy Estes.

Add a new function, createPotentialAccessControlRequest, that we will use to implement the algorithm Create a potential-
CORS request from the HTML standard: <https://html.spec.whatwg.org/multipage/urls-and-fetching.html#create-a-potential-cors-request> (31 August 2018).
This function replaces CachedResourceRequest::setAsPotentiallyCrossOrigin() and is the first step towards separating
the concepts of CORS settings states and module script credentials mode as well as implementing the aforementioned
algorithm. Rename CachedResourceRequest::setAsPotentiallyCrossOrigin() to deprecatedSetAsPotentiallyCrossOrigin()
and switch existing callers to use createPotentialAccessControlRequest(). For now, createPotentialAccessControlRequest()
is implemented in terms of deprecatedSetAsPotentiallyCrossOrigin().

No functionality changed. So, no new tests.

  • bindings/js/CachedScriptFetcher.cpp:

(WebCore::CachedScriptFetcher::requestScriptWithCache const): Write in terms of WebCore::createPotentialAccessControlRequest().

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::process): Ditto.

  • html/parser/HTMLResourcePreloader.cpp:

(WebCore::PreloadRequest::resourceRequest): Ditto.

  • loader/CrossOriginAccessControl.cpp:

(WebCore::createPotentialAccessControlRequest): For now, implemented in terms of CachedResourceRequest::deprecatedSetAsPotentiallyCrossOrigin().

  • loader/CrossOriginAccessControl.h:
  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::updateFromElement): Write in terms of WebCore::createPotentialAccessControlRequest().

  • loader/LinkLoader.cpp:

(WebCore::LinkLoader::preloadIfNeeded): Ditto.

  • loader/MediaResourceLoader.cpp:

(WebCore::MediaResourceLoader::requestResource): Ditto. Also renamed local variable cacheRequest to cachedRequest.

  • loader/TextTrackLoader.cpp:

(WebCore::TextTrackLoader::load): Write in terms of WebCore::createPotentialAccessControlRequest(). Also change local variable
document from a pointer to a reference since this function asserts that the script execution context is a non-null Document.

  • loader/cache/CachedResourceRequest.cpp:

(WebCore::CachedResourceRequest::deprecatedSetAsPotentiallyCrossOrigin): Renamed; formerly named setAsPotentiallyCrossOrigin.
(WebCore::CachedResourceRequest::setAsPotentiallyCrossOrigin): Deleted.

  • loader/cache/CachedResourceRequest.h:

(WebCore::CachedResourceRequest::setPriority): Added.

10:07 AM Inspecting the GC heap edited by ajuma@chromium.org
(diff)
10:06 AM Changeset in webkit [235616] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebKit

Clean up WebGL policy getting code path
https://bugs.webkit.org/show_bug.cgi?id=189003

Patch by Alex Christensen <achristensen@webkit.org> on 2018-09-04
Reviewed by Darin Adler.

  • UIProcess/API/APINavigationClient.h:

(API::NavigationClient::webGLLoadPolicy const):
(API::NavigationClient::resolveWebGLLoadPolicy const):

  • UIProcess/Cocoa/NavigationState.h:
  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::NavigationClient::webGLLoadPolicy const):
(WebKit::NavigationState::NavigationClient::resolveWebGLLoadPolicy const):

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

(WebKit::WebPage::webGLPolicyForURL): Deleted.
(WebKit::WebPage::resolveWebGLPolicyForURL): Deleted.

10:02 AM Changeset in webkit [235615] by dbates@webkit.org
  • 7 edits in trunk

Remove redundant inline text boxes for empty combined text
https://bugs.webkit.org/show_bug.cgi?id=189119

Reviewed by Zalan Bujtas.

Source/WebCore:

We should consider inline text boxes that have a combined text renderer (RenderCombineText)
whose composed string is empty as "redundant" just as we do for inline text boxes that have
a non-combined text renderer that have zero length so that we remove them. Such boxes are
visibly empty and do not take up space visually. By removing them we reduce memory and make
it easier to reason about the line box tree.

Currently RenderBlockFlow::computeBlockDirectionPositionsForLine() tests if an inline text
box is empty by checking if it has a zero length (InlineTextBox::len()). However an inline
text box associated with a RenderCombineText always has length 1 regardless of whether the
composed string it represents is the empty string. Instead we should expose a way to check
if an inline text box is visually empty and have RenderBlockFlow::computeBlockDirectionPositionsForLine()
query the inline text box for this answer.

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::hasTextContent const): Added. Returns whether an inline text box
has text content. We do not need to consider hypenation since hypens are an embellishment (i.e.
they are not part of the markup of the page).
(WebCore::InlineTextBox::paint): Write in terms of hasTextContent().
(WebCore::InlineTextBox::subdivideAndResolveStyle): Assert that WebCore::subdivide() always
returns a non-empty list of subdivisions. A non-empty text box should always have at least
one subdivision, say for the unmarked text. I left the existing conditonal (though marked
it as UNLIKELY()) so as to be forgiving and avoid a bad user experience should WebCore::subdivide()
return an empty vector in a non-debug build.

  • rendering/InlineTextBox.h:
  • rendering/RenderBlockLineLayout.cpp:

(WebCore::RenderBlockFlow::computeBlockDirectionPositionsForLine): Write in terms of InlineTextBox::hasTextContent()
so that we remove empty inline text boxes associated with combined text.

  • rendering/RenderText.cpp:

(WebCore::RenderText::positionLineBox): Write in terms of InlineTextBox::hasTextContent().

LayoutTests:

Update expected result now that we do not create an inline text box associated with combined text
when we do not have any combined text to render.

  • fast/text/text-combine-surroundContents-crash-expected.txt:
10:01 AM Changeset in webkit [235614] by jer.noble@apple.com
  • 2 edits in trunk/Tools

REGRESSION (r234081): TestWebKitAPI.VideoControlsManager.VideoControlsManagerAudioElementFollowingUserInteraction is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=187972
<rdar://problem/42667737>

Reviewed by Darin Adler.

Ensure that listeners are added in time to catch messages broadcast at them.

  • TestWebKitAPI/Tests/WebKitCocoa/VideoControlsManager.mm:

(TestWebKitAPI::TEST):

9:55 AM Changeset in webkit [235613] by Ross Kirsling
  • 101 edits
    14 copies
    33 moves
    48 adds
    9 deletes in trunk

Update googletest
https://bugs.webkit.org/show_bug.cgi?id=175722

Reviewed by Brent Fulgham.

Source/ThirdParty:

  • gtest/:

Update to 1.8.1.

  • gtest/CMakeLists.txt:
  • gtest/xcode/:

Keep our versions of these build files, making any necessary additive updates
and removing WTF/JSC dependencies so that we stop forking third-party source.

Tools:

  • TestWebKitAPI/config.h:

Instead of modifying the gtest source, add the necessary WTF includes here.

  • TestWebKitAPI/Configurations/Base.xcconfig

Remove obsoleted definitions GTEST_HAS_TR1_TUPLE=0 and GTEST_HAS_RTTI=0.

7:48 AM Changeset in webkit [235612] by Michael Catanzaro
  • 2 edits in trunk/Source/JavaScriptCore

[WPE][GTK] Add more unused result warnings to JSC API
https://bugs.webkit.org/show_bug.cgi?id=189243

Reviewed by Carlos Garcia Campos.

The jsc_context_evaluate() family of functions has a (transfer full) return value, but the
caller may be tempted to not inspect it if uninterested in the return value. This would be
an error, because it must be freed.

  • API/glib/JSCContext.h:
5:10 AM Changeset in webkit [235611] by Ms2ger@igalia.com
  • 8 edits
    2 adds in trunk

Implement support for passing ImageBitmap to texImage2D/texSubImage2D
https://bugs.webkit.org/show_bug.cgi?id=187584

Reviewed by Dean Jackson.

Source/WebCore:

Test: fast/canvas/webgl/gl-teximage-imagebitmap.html

  • html/canvas/WebGL2RenderingContext.h: Update union type definition.
  • html/canvas/WebGL2RenderingContext.idl: Update union type definition.
  • html/canvas/WebGLRenderingContext.idl: Update union type definition.
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::texSubImage2D): implement.
(WebCore::WebGLRenderingContextBase::texImage2D): implement.

  • html/canvas/WebGLRenderingContextBase.h: Update union type definition; add to TexFuncValidationSourceType.
  • html/canvas/WebGLRenderingContextBase.idl: Remove unused union type definition.

LayoutTests:

  • fast/canvas/webgl/gl-teximage-imagebitmap-expected.txt: Added.
  • fast/canvas/webgl/gl-teximage-imagebitmap.html: Added.
3:27 AM Changeset in webkit [235610] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[EME] Add the WebM initData support in ClearKey CDM
https://bugs.webkit.org/show_bug.cgi?id=189240

Patch by Yacine Bandou <yacine.bandou_ext@softathome.com> on 2018-09-04
Reviewed by Xabier Rodriguez-Calvar.

Add the "webm" initDataType support in ClearKey CDM.
Read the WebM initData by following the W3C spec https://www.w3.org/TR/eme-initdata-webm/#common-system,
and put it in JSON object format like is specified in https://www.w3.org/TR/encrypted-media/#clear-key-request-format.

Tests: media/encrypted-media/clearKey/clearKey-encrypted-webm-event-mse.html

media/encrypted-media/clearKey/clearKey-webm-video-playback-mse.html

  • platform/encryptedmedia/clearkey/CDMClearKey.cpp:

(WebCore::extractKeyIdFromWebMInitData):
(WebCore::CDMPrivateClearKey::supportsInitDataType const):
(WebCore::CDMPrivateClearKey::supportsInitData const):
(WebCore::CDMInstanceClearKey::requestLicense):

3:27 AM Changeset in webkit [235609] by commit-queue@webkit.org
  • 5 edits
    3 adds in trunk/LayoutTests

[EME] Add layout test for InitData and InitDataType in WebM encrypted event
https://bugs.webkit.org/show_bug.cgi?id=189196

Patch by Yacine Bandou <yacine.bandou@softathome.com> on 2018-09-04
Reviewed by Xabier Rodriguez-Calvar.

This commit adds a new layoutTest in order to test the reception of the encrypted WebM
event with an expected initData and initDataType fields.

  • media/content/encrypted/VideoClearKeyWebM.webm: Added.

This is a simple encrypted video.
It has been encrypted with webm_crypt see https://github.com/webmproject/webm-tools.
#webm_crypt -i VideoWebM.webm -audio false -video true -video_options base_file=bear.key,content_id="0123456789012345" -o VideoClearKeyWebM.webm

  • media/encrypted-media/clearKey/clearKey-encrypted-webm-event-mse-expected.txt: Added.
  • media/encrypted-media/clearKey/clearKey-encrypted-webm-event-mse.html: Added.
  • media/encrypted-media/medias-enc.js:
  • platform/gtk/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/wpe/TestExpectations:
1:38 AM Changeset in webkit [235608] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebKit

REGRESSION(r235165): [GStreamer] Major video performance regression
https://bugs.webkit.org/show_bug.cgi?id=189224

Reviewed by Michael Catanzaro.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::updateSceneState): Drop the early
return used when the scene state wasn't updated through a layer flush,
and instead always run through layer changes and backings. This way we
won't miss proxy objects that need swapping even if none of the layer
states were changed. Reducing the amount of work done here when scene
hasn't been updated might be possible, but it's not a huge bottleneck.

Sep 3, 2018:

9:25 PM Changeset in webkit [235607] by aestes@apple.com
  • 9 edits in trunk

[Payment Request] Remove PaymentAddress.languageCode
https://bugs.webkit.org/show_bug.cgi?id=189254

Reviewed by Sam Weinig.

Source/WebCore:

PaymentAddress.languageCode is marked as "at risk" in the latest Payment Request Editor's
Draft (30 August 2018). Firefox has already removed it, and Chrome is considering it.

There is some compatibility risk in removing this attribute, but considering we never
populated it with a meaningful value, the risk seems very low. If we learn about
compatibility problems, we can address them by evangelising or even reverting this change.

Updated existing tests.

  • Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:

(WebCore::convert):

  • Modules/paymentrequest/PaymentAddress.cpp:

(WebCore::PaymentAddress::PaymentAddress):

  • Modules/paymentrequest/PaymentAddress.h:
  • Modules/paymentrequest/PaymentAddress.idl:

LayoutTests:

  • http/tests/paymentrequest/payment-address-attributes-and-toJSON-method.https.html:
  • http/tests/ssl/applepay/ApplePayRequestShippingContact.https-expected.txt:
  • http/tests/ssl/applepay/ApplePayRequestShippingContact.https.html:
8:36 PM Changeset in webkit [235606] by aestes@apple.com
  • 8 edits
    6 copies in trunk/Source/WebCore

[Payment Request] Add a stub for PaymentResponse.retry
https://bugs.webkit.org/show_bug.cgi?id=189253

Reviewed by Sam Weinig.

Implemented the AddressErrors, PayerErrorFields, and PaymentValidationErrors dictionaries as
defined in the Payment Request API W3C Editor's Draft of 30 August 2018.

Also added a stub implementation of PaymentResponse.retry. This method will be implemented
with tests in a follow-up patch.

  • CMakeLists.txt:
  • DerivedSources.make:
  • Modules/paymentrequest/AddressErrors.h: Added.
  • Modules/paymentrequest/AddressErrors.idl: Added.
  • Modules/paymentrequest/PayerErrorFields.h: Added.
  • Modules/paymentrequest/PayerErrorFields.idl: Added.
  • Modules/paymentrequest/PaymentResponse.cpp:

(WebCore::PaymentResponse::retry):

  • Modules/paymentrequest/PaymentResponse.h:
  • Modules/paymentrequest/PaymentResponse.idl:
  • Modules/paymentrequest/PaymentValidationErrors.h: Added.
  • Modules/paymentrequest/PaymentValidationErrors.idl: Added.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
7:48 PM Changeset in webkit [235605] by mark.lam@apple.com
  • 11 edits
    1 add in trunk

The watchdog sometimes fails to terminate a script.
https://bugs.webkit.org/show_bug.cgi?id=189227
<rdar://problem/39932857>

Reviewed by Saam Barati.

JSTests:

  • stress/regress-189227-watchdog-on-infinite-loop.js: Added.

Source/JavaScriptCore:

Consider the following scenario:

  1. We have an infinite loop bytecode sequence as follows:

[ 13] loop_hint
[ 14] check_traps
[ 15] jmp -2(->13)

  1. The VM tiers up from LLInt -> BaselineJIT -> DFG -> FTL.

Note that op_check_traps is represented as a CheckTraps node in the DFG and FTL.
When we're not using pollingTraps (JSC_usePollingTraps is false by default),
we emit no code for CheckTraps, but only record an InvalidationPoint there.

  1. The watchdog fires, and invalidates all InvalidationPoints in the FTL CodeBlock.

InvalidationPoints OSR exits to the next instruction by design. In this case,
that means the VM will resumes executing at the op_jmp, which jumps to the
op_loop_hint opcode. At the loop_hint, the VM discovers that the function is
already hot, and attempts to tier up. It immediately discovers that a replacement
CodeBlock is available because we still haven't jettisoned the DFG CodeBlock
nor the FTL CodeBlock that was previously compiled for this function.

Note that jettisoning a CodeBlock necessarily means the VM will invalidate
its InvalidationPoints (if the CodeBlock is DFG/FTL). However, the reverse
is not true: merely invalidating the InvalidationPoints does not necessarily
mean that the CodeBlock is jettisoned.

VMTraps::tryInstallTrapBreakpoints() runs from a separate thread. Hence,
it is only safe for it to invalidate a CodeBlock's InvalidationPoints. It
is not safe for the CodeBlock to be jettisoned from another thread. Instead,
the VMTraps mechanism relies on the script thread running to an op_check_traps
in the baseline JIT code where it will do the necessary jettisoning of optimized
CodeBlocks.

Since the op_check_traps never get executed, the VM will perpetually tier up in
the op_loop_hint, OSR exit to the op_jmp, jump to the op_loop_hint, and repeat.
Consequently, the watchdog fails to terminate this script.

In this patch, we fix this by making the DFG BytecodeParser emit an InvalidationPoint
node directly (when the VM is not configured to use polling traps). This ensures
that the check traps invalidation point will OSR exit to the op_check_traps opcode
in the baseline JIT.

In this patch, we also change VMTraps::tryInstallTrapBreakpoints() to use
CallFrame::unsafeCodeBlock() instead of CallFrame::codeBlock(). This is because
we don't really know if the frame is properly set up. We're just conservatively
probing the stack. ASAN does not like this probing. Using unsafeCodeBlock() here
will suppress the false positive ASAN complaint.

  • dfg/DFGByteCodeParser.cpp:

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

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCheckTraps):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLLowerDFGToB3.cpp:

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

  • runtime/VMTraps.cpp:

(JSC::VMTraps::tryInstallTrapBreakpoints):

4:48 PM Changeset in webkit [235604] by aestes@apple.com
  • 2 edits in trunk/Source/WebCore

[Payment Request] MerchantValidationEvent should be enabled by the PaymentRequest setting
https://bugs.webkit.org/show_bug.cgi?id=189250

Reviewed by Daniel Bates.

  • Modules/paymentrequest/MerchantValidationEvent.idl:
4:29 PM Changeset in webkit [235603] by mark.lam@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

CallFrame::unsafeCallee() should use an ASAN suppressed Register::asanUnsafePointer().
https://bugs.webkit.org/show_bug.cgi?id=189247

Reviewed by Saam Barati.

  • interpreter/CallFrame.h:

(JSC::ExecState::unsafeCallee const):

  • interpreter/Register.h:

(JSC::Register::asanUnsafePointer const):
(JSC::Register::unsafePayload const):

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

REGRESSION: Layout Test http/tests/security/bypassing-cors-checks-for-extension-urls.html is Flaky
https://bugs.webkit.org/show_bug.cgi?id=187658
<rdar://problem/42306442>

Reviewed by Alexey Proskuryakov.

Source/WebCore:

Test is flaky as a previous test was setting the isRunningUserScripts state on the Page and it was never reset.
This patch moves this state to the topDocument so that it will be reset for every navigation.
Covered by existing test being no longer flaky.

  • dom/Document.h:

(WebCore::Document::setAsRunningUserScripts):
(WebCore::Document::isRunningUserScripts const):

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::DocumentThreadableLoader):

  • page/Frame.cpp:

(WebCore::Frame::injectUserScriptImmediately):

  • page/Page.h:

(WebCore::Page::setAsRunningUserScripts): Deleted.
(WebCore::Page::isRunningUserScripts const): Deleted.

  • testing/Internals.cpp:

(WebCore::Internals::setAsRunningUserScripts):

LayoutTests:

  • platform/mac-wk2/TestExpectations:
12:18 PM Changeset in webkit [235601] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[WPE] Add more WPE bots to dashboard
https://bugs.webkit.org/show_bug.cgi?id=189245

Patch by Pablo Saavedra <Pablo Saavedra> on 2018-09-03
Reviewed by Daniel Bates.

There are two missing bots which are not listed in the dashboard for
a while: WPE Linux 64-bit Debug (Build) and WPE Linux 64-bit Debug (Tests)

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:

(WebKitBuildbot):

10:16 AM Changeset in webkit [235600] by aestes@apple.com
  • 19 edits
    2 copies
    22 adds
    2 deletes in trunk

[Payment Request] Implement the MerchantValidationEvent constructor
https://bugs.webkit.org/show_bug.cgi?id=189235

Reviewed by Daniel Bates.

LayoutTests/imported/w3c:

Updated payment-request web platform tests to 0313d9f.

  • resources/TestRepositories:
  • resources/import-expectations.json:
  • web-platform-tests/payment-request/MerchantValidationEvent/complete-method-manual.https.html: Added.
  • web-platform-tests/payment-request/MerchantValidationEvent/constructor.http-expected.txt: Added.
  • web-platform-tests/payment-request/MerchantValidationEvent/constructor.http.html: Added.
  • web-platform-tests/payment-request/MerchantValidationEvent/constructor.https-expected.txt: Added.
  • web-platform-tests/payment-request/MerchantValidationEvent/constructor.https.html: Added.
  • web-platform-tests/payment-request/MerchantValidationEvent/w3c-import.log: Added.
  • web-platform-tests/payment-request/PaymentRequestUpdateEvent/constructor.http-expected.txt: Added.
  • web-platform-tests/payment-request/PaymentRequestUpdateEvent/constructor.http.html: Added.
  • web-platform-tests/payment-request/PaymentRequestUpdateEvent/constructor.https-expected.txt: Added.
  • web-platform-tests/payment-request/PaymentRequestUpdateEvent/constructor.https.html: Added.
  • web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-call-immediate-manual.https.html: Added.
  • web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-duplicate-shipping-options-manual.https.html: Added.
  • web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-incremental-update-manual.https.html: Added.
  • web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-method-abort-update-manual.https.html: Added.
  • web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-state-checks-manual.https.html: Added.
  • web-platform-tests/payment-request/PaymentRequestUpdateEvent/updatewith-method.https-expected.txt: Added.
  • web-platform-tests/payment-request/PaymentRequestUpdateEvent/updatewith-method.https.html: Added.
  • web-platform-tests/payment-request/PaymentRequestUpdateEvent/w3c-import.log: Added.
  • web-platform-tests/payment-request/allowpaymentrequest/common.sub.js:

(window.onmessage.e.t.step):
(string_appeared_here.forEach):
(window.onmessage): Deleted.

  • web-platform-tests/payment-request/allowpaymentrequest/echo-PaymentRequest.html:
  • web-platform-tests/payment-request/onmerchantvalidation-attribute.https-expected.txt: Added.
  • web-platform-tests/payment-request/onmerchantvalidation-attribute.https.html: Added.
  • web-platform-tests/payment-request/w3c-import.log:

Source/WebCore:

Implemented the constructor for MerchantValidationEvent as defined in the Payment Request API W3C Editor's Draft of 30 August 2018.

Updated the payment-request web platform tests to include MerchantValidationEvent tests.

Tests: imported/w3c/web-platform-tests/payment-request/MerchantValidationEvent/constructor.http.html

imported/w3c/web-platform-tests/payment-request/MerchantValidationEvent/constructor.https.html
imported/w3c/web-platform-tests/payment-request/PaymentRequestUpdateEvent/constructor.http.html
imported/w3c/web-platform-tests/payment-request/PaymentRequestUpdateEvent/constructor.https.html
imported/w3c/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updatewith-method.https.html
imported/w3c/web-platform-tests/payment-request/onmerchantvalidation-attribute.https.html

  • CMakeLists.txt:
  • DerivedSources.make:
  • Modules/paymentrequest/MerchantValidationEvent.cpp:

(WebCore::MerchantValidationEvent::create):
(WebCore::MerchantValidationEvent::MerchantValidationEvent):
(WebCore::MerchantValidationEvent::complete):

  • Modules/paymentrequest/MerchantValidationEvent.h:
  • Modules/paymentrequest/MerchantValidationEvent.idl:
  • Modules/paymentrequest/MerchantValidationEventInit.h: Added.
  • Modules/paymentrequest/MerchantValidationEventInit.idl: Added.
  • Modules/paymentrequest/PaymentRequest.idl:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:

LayoutTests:

Skipped new manual tests.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
6:41 AM Changeset in webkit [235599] by fred.wang@free.fr
  • 5 edits
    4 deletes in trunk/LayoutTests

Remove duplicate directory web-platform-tests/cssom-view
https://bugs.webkit.org/show_bug.cgi?id=189241

LayoutTests/imported/w3c:

Patch by Frederic Wang <fwang@igalia.com> on 2018-09-03
Reviewed by Daniel Bates.

cssom-view tests were moved into web-platform-tests/css at r232903 but the old
directory and expectation were left. This patch finishes the migration.

  • resources/import-expectations.json:
  • web-platform-tests/css/cssom-view/scrollingElement-expected.txt: Removed.
  • web-platform-tests/cssom-view/CaretPosition-001-expected.txt: Removed.
  • web-platform-tests/cssom-view/CaretPosition-001.html: Removed.
  • web-platform-tests/cssom-view/DOMRectList-expected.txt: Removed.
  • web-platform-tests/cssom-view/DOMRectList.html: Removed.
  • web-platform-tests/cssom-view/HTMLBody-ScrollArea_quirksmode-expected.txt: Removed.
  • web-platform-tests/cssom-view/HTMLBody-ScrollArea_quirksmode.html: Removed.
  • web-platform-tests/cssom-view/MediaQueryList-001-expected.txt: Removed.
  • web-platform-tests/cssom-view/MediaQueryList-001.html: Removed.
  • web-platform-tests/cssom-view/MediaQueryList-with-empty-string-expected.txt: Removed.
  • web-platform-tests/cssom-view/MediaQueryList-with-empty-string.html: Removed.
  • web-platform-tests/cssom-view/OWNERS: Removed.
  • web-platform-tests/cssom-view/Screen-pixelDepth-Screen-colorDepth001-expected.txt: Removed.
  • web-platform-tests/cssom-view/Screen-pixelDepth-Screen-colorDepth001.html: Removed.
  • web-platform-tests/cssom-view/cssom-getBoundingClientRect-001-expected.txt: Removed.
  • web-platform-tests/cssom-view/cssom-getBoundingClientRect-001.html: Removed.
  • web-platform-tests/cssom-view/cssom-getBoundingClientRect-002-expected.txt: Removed.
  • web-platform-tests/cssom-view/cssom-getBoundingClientRect-002.html: Removed.
  • web-platform-tests/cssom-view/cssom-getClientRects-002-expected.txt: Removed.
  • web-platform-tests/cssom-view/cssom-getClientRects-002.html: Removed.
  • web-platform-tests/cssom-view/cssom-getClientRects-expected.txt: Removed.
  • web-platform-tests/cssom-view/cssom-getClientRects.html: Removed.
  • web-platform-tests/cssom-view/cssom-view-img-attributes-001-expected.txt: Removed.
  • web-platform-tests/cssom-view/cssom-view-img-attributes-001.html: Removed.
  • web-platform-tests/cssom-view/cssom-view-window-screen-interface-expected.txt: Removed.
  • web-platform-tests/cssom-view/cssom-view-window-screen-interface.html: Removed.
  • web-platform-tests/cssom-view/cssom-view/media-query-list-interface-expected.txt: Removed.
  • web-platform-tests/cssom-view/cssom-view/media-query-list-interface.xht: Removed.
  • web-platform-tests/cssom-view/cssom-view/w3c-import.log: Removed.
  • web-platform-tests/cssom-view/cssom-view/window-interface-expected.txt: Removed.
  • web-platform-tests/cssom-view/cssom-view/window-interface.xht: Removed.
  • web-platform-tests/cssom-view/elementFromPoint-001-expected.txt: Removed.
  • web-platform-tests/cssom-view/elementFromPoint-001.html: Removed.
  • web-platform-tests/cssom-view/elementFromPoint-002-expected.txt: Removed.
  • web-platform-tests/cssom-view/elementFromPoint-002.html: Removed.
  • web-platform-tests/cssom-view/elementFromPoint-003-expected.txt: Removed.
  • web-platform-tests/cssom-view/elementFromPoint-003.html: Removed.
  • web-platform-tests/cssom-view/elementFromPoint-expected.txt: Removed.
  • web-platform-tests/cssom-view/elementFromPoint.html: Removed.
  • web-platform-tests/cssom-view/elementFromPosition-expected.txt: Removed.
  • web-platform-tests/cssom-view/elementFromPosition.html: Removed.
  • web-platform-tests/cssom-view/elementScroll-expected.txt: Removed.
  • web-platform-tests/cssom-view/elementScroll.html: Removed.
  • web-platform-tests/cssom-view/elementsFromPoint-expected.txt: Removed.
  • web-platform-tests/cssom-view/elementsFromPoint-iframes-expected.txt: Removed.
  • web-platform-tests/cssom-view/elementsFromPoint-iframes.html: Removed.
  • web-platform-tests/cssom-view/elementsFromPoint-invalid-cases-expected.txt: Removed.
  • web-platform-tests/cssom-view/elementsFromPoint-invalid-cases.html: Removed.
  • web-platform-tests/cssom-view/elementsFromPoint-shadowroot-expected.txt: Removed.
  • web-platform-tests/cssom-view/elementsFromPoint-shadowroot.html: Removed.
  • web-platform-tests/cssom-view/elementsFromPoint-simple-expected.txt: Removed.
  • web-platform-tests/cssom-view/elementsFromPoint-simple.html: Removed.
  • web-platform-tests/cssom-view/elementsFromPoint-svg-expected.txt: Removed.
  • web-platform-tests/cssom-view/elementsFromPoint-svg.html: Removed.
  • web-platform-tests/cssom-view/elementsFromPoint-table-expected.txt: Removed.
  • web-platform-tests/cssom-view/elementsFromPoint-table.html: Removed.
  • web-platform-tests/cssom-view/elementsFromPoint.html: Removed.
  • web-platform-tests/cssom-view/historical-expected.txt: Removed.
  • web-platform-tests/cssom-view/historical.html: Removed.
  • web-platform-tests/cssom-view/htmlelement-offset-width-001-expected.txt: Removed.
  • web-platform-tests/cssom-view/htmlelement-offset-width-001.html: Removed.
  • web-platform-tests/cssom-view/iframe.html: Removed.
  • web-platform-tests/cssom-view/interfaces-expected.txt: Removed.
  • web-platform-tests/cssom-view/interfaces.html: Removed.
  • web-platform-tests/cssom-view/matchMedia-expected.txt: Removed.
  • web-platform-tests/cssom-view/matchMedia.xht: Removed.
  • web-platform-tests/cssom-view/matchMediaAddListener-expected.txt: Removed.
  • web-platform-tests/cssom-view/matchMediaAddListener.html: Removed.
  • web-platform-tests/cssom-view/mouseEvent-expected.txt: Removed.
  • web-platform-tests/cssom-view/mouseEvent.html: Removed.
  • web-platform-tests/cssom-view/negativeMargins-expected.txt: Removed.
  • web-platform-tests/cssom-view/negativeMargins.html: Removed.
  • web-platform-tests/cssom-view/offsetParent_element_test-expected.txt: Removed.
  • web-platform-tests/cssom-view/offsetParent_element_test.html: Removed.
  • web-platform-tests/cssom-view/offsetTopLeftInScrollableParent-expected.txt: Removed.
  • web-platform-tests/cssom-view/offsetTopLeftInScrollableParent.html: Removed.
  • web-platform-tests/cssom-view/resources/elementsFromPoint.js: Removed.
  • web-platform-tests/cssom-view/resources/iframe1.html: Removed.
  • web-platform-tests/cssom-view/resources/iframe2.html: Removed.
  • web-platform-tests/cssom-view/resources/w3c-import.log: Removed.
  • web-platform-tests/cssom-view/scrollIntoView-shadow-expected.txt: Removed.
  • web-platform-tests/cssom-view/scrollIntoView-shadow.html: Removed.
  • web-platform-tests/cssom-view/scrollIntoView-smooth-expected.txt: Removed.
  • web-platform-tests/cssom-view/scrollIntoView-smooth.html: Removed.
  • web-platform-tests/cssom-view/scrollWidthHeight-expected.txt: Removed.
  • web-platform-tests/cssom-view/scrollWidthHeight.xht: Removed.
  • web-platform-tests/cssom-view/scrollWidthHeightWhenNotScrollable-expected.txt: Removed.
  • web-platform-tests/cssom-view/scrollWidthHeightWhenNotScrollable.xht: Removed.
  • web-platform-tests/cssom-view/scrolling-no-browsing-context-expected.txt: Removed.
  • web-platform-tests/cssom-view/scrolling-no-browsing-context.html: Removed.
  • web-platform-tests/cssom-view/scrolling-quirks-vs-nonquirks-expected.txt: Removed.
  • web-platform-tests/cssom-view/scrolling-quirks-vs-nonquirks.html: Removed.
  • web-platform-tests/cssom-view/scrollingElement-quirks-dynamic-001-expected.html: Removed.
  • web-platform-tests/cssom-view/scrollingElement-quirks-dynamic-001.html: Removed.
  • web-platform-tests/cssom-view/scrollingElement-quirks-dynamic-002-expected.html: Removed.
  • web-platform-tests/cssom-view/scrollingElement-quirks-dynamic-002.html: Removed.
  • web-platform-tests/cssom-view/scrollingElement.html: Removed.
  • web-platform-tests/cssom-view/scrollintoview-expected.txt: Removed.
  • web-platform-tests/cssom-view/scrollintoview.html: Removed.
  • web-platform-tests/cssom-view/support/1x1-green.png: Removed.
  • web-platform-tests/cssom-view/support/1x1-lime.png: Removed.
  • web-platform-tests/cssom-view/support/1x1-maroon.png: Removed.
  • web-platform-tests/cssom-view/support/1x1-navy.png: Removed.
  • web-platform-tests/cssom-view/support/1x1-red.png: Removed.
  • web-platform-tests/cssom-view/support/1x1-white.png: Removed.
  • web-platform-tests/cssom-view/support/60x60-gg-rr.png: Removed.
  • web-platform-tests/cssom-view/support/60x60-green.png: Removed.
  • web-platform-tests/cssom-view/support/60x60-red.png: Removed.
  • web-platform-tests/cssom-view/support/README: Removed.
  • web-platform-tests/cssom-view/support/a-green.css: Removed.
  • web-platform-tests/cssom-view/support/b-green.css: Removed.
  • web-platform-tests/cssom-view/support/c-red.css: Removed.
  • web-platform-tests/cssom-view/support/cat.png: Removed.
  • web-platform-tests/cssom-view/support/import-green.css: Removed.
  • web-platform-tests/cssom-view/support/import-red.css: Removed.
  • web-platform-tests/cssom-view/support/pattern-grg-rgr-grg.png: Removed.
  • web-platform-tests/cssom-view/support/pattern-grg-rrg-rgg.png: Removed.
  • web-platform-tests/cssom-view/support/pattern-rgr-grg-rgr.png: Removed.
  • web-platform-tests/cssom-view/support/pattern-tr.png: Removed.
  • web-platform-tests/cssom-view/support/ruler-h-50%.png: Removed.
  • web-platform-tests/cssom-view/support/ruler-h-50px.png: Removed.
  • web-platform-tests/cssom-view/support/ruler-v-100px.png: Removed.
  • web-platform-tests/cssom-view/support/ruler-v-50px.png: Removed.
  • web-platform-tests/cssom-view/support/square-purple.png: Removed.
  • web-platform-tests/cssom-view/support/square-teal.png: Removed.
  • web-platform-tests/cssom-view/support/square-white.png: Removed.
  • web-platform-tests/cssom-view/support/support/README: Removed.
  • web-platform-tests/cssom-view/support/support/swatch-green.png: Removed.
  • web-platform-tests/cssom-view/support/support/swatch-red.png: Removed.
  • web-platform-tests/cssom-view/support/support/w3c-import.log: Removed.
  • web-platform-tests/cssom-view/support/swatch-blue.png: Removed.
  • web-platform-tests/cssom-view/support/swatch-green.png: Removed.
  • web-platform-tests/cssom-view/support/swatch-lime.png: Removed.
  • web-platform-tests/cssom-view/support/swatch-orange.png: Removed.
  • web-platform-tests/cssom-view/support/swatch-red.png: Removed.
  • web-platform-tests/cssom-view/support/swatch-teal.png: Removed.
  • web-platform-tests/cssom-view/support/swatch-white.png: Removed.
  • web-platform-tests/cssom-view/support/swatch-yellow.png: Removed.
  • web-platform-tests/cssom-view/support/test-bl.png: Removed.
  • web-platform-tests/cssom-view/support/test-br.png: Removed.
  • web-platform-tests/cssom-view/support/test-inner-half-size.png: Removed.
  • web-platform-tests/cssom-view/support/test-outer.png: Removed.
  • web-platform-tests/cssom-view/support/test-tl.png: Removed.
  • web-platform-tests/cssom-view/support/test-tr.png: Removed.
  • web-platform-tests/cssom-view/support/w3c-import.log: Removed.
  • web-platform-tests/cssom-view/ttwf-js-cssomview-getclientrects-length-expected.txt: Removed.
  • web-platform-tests/cssom-view/ttwf-js-cssomview-getclientrects-length.html: Removed.
  • web-platform-tests/cssom-view/w3c-import.log: Removed.
  • web-platform-tests/cssom-view/window-screen-height-expected.txt: Removed.
  • web-platform-tests/cssom-view/window-screen-height-immutable-expected.txt: Removed.
  • web-platform-tests/cssom-view/window-screen-height-immutable.html: Removed.
  • web-platform-tests/cssom-view/window-screen-height.html: Removed.
  • web-platform-tests/cssom-view/window-screen-width-expected.txt: Removed.
  • web-platform-tests/cssom-view/window-screen-width-immutable-expected.txt: Removed.
  • web-platform-tests/cssom-view/window-screen-width-immutable.html: Removed.
  • web-platform-tests/cssom-view/window-screen-width.html: Removed.

LayoutTests:

Patch by Frederic Wang <fwang@free.fr> on 2018-09-03
Reviewed by Daniel Bates.

cssom-view tests were moved into web-platform-tests/css at r232903 but the old
directory and expectation were left. This patch finishes the migration.

  • TestExpectations:
  • platform/ios-simulator/imported/w3c/web-platform-tests/cssom-view/Screen-pixelDepth-Screen-colorDepth001-expected.txt: Removed.
  • platform/ios-simulator/imported/w3c/web-platform-tests/cssom-view/scrolling-quirks-vs-nonquirks-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/cssom-view/elementFromPoint-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/cssom-view/scrollIntoView-smooth-expected.txt: Removed.
  • platform/ios/TestExpectations:
4:17 AM Changeset in webkit [235598] by Philippe Normand
  • 5 edits in trunk/Source/WebCore

[GStreamer] elements registration clean-ups
https://bugs.webkit.org/show_bug.cgi?id=189192

Reviewed by Xabier Rodriguez-Calvar.

Register all our elements from the base player class. This
simplifies the MSE player by removing duplicated code.

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

(WebCore::MediaPlayerPrivateGStreamerBase::initializeGStreamerAndRegisterWebKitElements):
(WebCore::registerWebKitGStreamerElements): Deleted.

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:

(WebCore::MediaPlayerPrivateGStreamerMSE::registerMediaEngine):
(WebCore::MediaPlayerPrivateGStreamerMSE::load):
(WebCore::mimeTypeCache):
(WebCore::initializeGStreamerAndRegisterWebKitMSEElement): Deleted.
(WebCore::MediaPlayerPrivateGStreamerMSE::isAvailable): Deleted.

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h:
2:24 AM WebKitGTK/2.22.x edited by Carlos Garcia Campos
(diff)
2:06 AM Changeset in webkit [235597] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.22.0

WebKitGTK+ 2.22.0

2:06 AM Changeset in webkit [235596] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.22

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.22.0 release.

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.22.0.
1:29 AM Changeset in webkit [235595] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Tools

Merge r235588 - [WPE] 2.21.91 fails to build with ENABLE_MINIBROWSER
https://bugs.webkit.org/show_bug.cgi?id=189006

Reviewed by Darin Adler.

The MiniBrowser source code is missing from the tarball. Oops! Add it.

  • wpe/manifest.txt.in:
1:29 AM Changeset in webkit [235594] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.22/Source/WebKit

Merge r235529 - [GTK] Touchscreen pinch to zoom should scale the page like other platforms
https://bugs.webkit.org/show_bug.cgi?id=188746

Changes the pinch-to-zoom gesture to magnify/scale the page, rather than zooming in. Also resets this magnification when the zoom level is changed.

Patch by Justin Michaud <justin@justinmichaud.com> on 2018-08-30
Reviewed by Michael Catanzaro.

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkit_web_view_set_zoom_level):

  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::zoom): Deleted.

  • UIProcess/API/gtk/PageClientImpl.h:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:
  • UIProcess/gtk/GestureController.cpp:

(WebKit::GestureController::ZoomGesture::handleZoom):
(WebKit::GestureController::ZoomGesture::scaleChanged):

  • UIProcess/gtk/GestureController.h:
1:29 AM Changeset in webkit [235593] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebKit

Merge r235499 - [ConnectionUnix] Shrink sizeof AttachmentInfo by reordering members
https://bugs.webkit.org/show_bug.cgi?id=189149

Reviewed by Michael Catanzaro.

Reorder members to shrink the size of AttachmentInfo so that
we can attach more attachments.

  • Platform/IPC/unix/ConnectionUnix.cpp:
1:29 AM Changeset in webkit [235592] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/JavaScriptCore

Merge r235373 - [GTK][JSC] Add warn_unused_result attribute to some APIs
https://bugs.webkit.org/show_bug.cgi?id=188983

Patch by Patrick Griffis <Patrick Griffis> on 2018-08-27
Reviewed by Michael Catanzaro.

  • API/glib/JSCValue.h:
1:29 AM Changeset in webkit [235591] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22

Merge r235194 - Don't use WTF_CPU_MIPS when building for mips64
https://bugs.webkit.org/show_bug.cgi?id=188858

Reviewed by Michael Catanzaro.

  • CMakeLists.txt: Use WTF_CPU_MIPS64 for this architecture.

Sep 2, 2018:

8:41 PM Changeset in webkit [235590] by Alan Bujtas
  • 3 edits
    2 adds in trunk

REGRESSION (r191336): RenderFlexibleBox::adjustChildSizeForMinAndMax crashes in std::optional<>::value()
https://bugs.webkit.org/show_bug.cgi?id=189232
<rdar://problem/43886373>

Reviewed by Brent Fulgham.

Source/WebCore:

It's not guaranteed that RenderFlexibleBox::computeMainAxisExtentForChild() always returns with a valid value.

Test: fast/flexbox/crash-when-min-max-content-is-not-computed.html

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax):

LayoutTests:

  • fast/flexbox/crash-when-min-max-content-is-not-computed-expected.txt: Added.
  • fast/flexbox/crash-when-min-max-content-is-not-computed.html: Added.
9:41 AM Changeset in webkit [235589] by yusukesuzuki@slowstart.org
  • 7 edits
    1 add in trunk

Implement Object.fromEntries
https://bugs.webkit.org/show_bug.cgi?id=188481

Reviewed by Darin Adler.

JSTests:

  • stress/object-from-entries.js: Added.

(shouldBe):
(shouldThrow):
(shouldBe.JSON.stringify.Object.getOwnPropertyDescriptor):
(shouldBe.set get shouldThrow):

Source/JavaScriptCore:

Object.fromEntries becomes stage 3[1]. This patch implements it by using builtin JS.

[1]: https://tc39.github.io/proposal-object-from-entries/

  • builtins/ObjectConstructor.js:

(fromEntries):

  • runtime/ObjectConstructor.cpp:

LayoutTests:

  • js/Object-getOwnPropertyNames-expected.txt:
  • js/script-tests/Object-getOwnPropertyNames.js:
7:25 AM WebKitGTK/2.22.x edited by Michael Catanzaro
(diff)
7:24 AM WebKitGTK/2.22.x edited by berto@igalia.com
(diff)

Sep 1, 2018:

10:35 PM Changeset in webkit [235588] by Michael Catanzaro
  • 2 edits in trunk/Tools

[WPE] 2.21.91 fails to build with ENABLE_MINIBROWSER
https://bugs.webkit.org/show_bug.cgi?id=189006

Reviewed by Darin Adler.

The MiniBrowser source code is missing from the tarball. Oops! Add it.

  • wpe/manifest.txt.in:
10:33 PM Changeset in webkit [235587] by yoshiaki.jitsukawa@sony.com
  • 6 edits
    3 adds in trunk

[WinCairo] Add CryptoDigestOpenSSL
https://bugs.webkit.org/show_bug.cgi?id=188978

Reviewed by Darin Adler.

Source/WebCore/PAL:

Add a CryptoDigest implementation with OpenSSL/LibreSSL and let the
WinCairo port use it.

  • pal/PlatformAppleWin.cmake: Add CryptoDigestWin.cpp to PAL_SOURCES
  • pal/PlatformWin.cmake: Remove CryptoDigestWin.cpp from PAL_SOURCES
  • pal/PlatformWinCairo.cmake: Add CryptoDigestOpenSSL to PAL_SOURCES
  • pal/crypto/openssl/CryptoDigestOpenSSL.cpp: Added.

(PAL::toSHA1Context):
(PAL::toSHA224Context):
(PAL::toSHA256Context):
(PAL::toSHA384Context):
(PAL::toSHA512Context):
(PAL::CryptoDigest::CryptoDigest):
(PAL::CryptoDigest::~CryptoDigest):
(PAL::CryptoDigest::create):
(PAL::CryptoDigest::addBytes):
(PAL::CryptoDigest::computeHash):

Tools:

Add API tests for the PAL::CryptoDigest class.

  • TestWebKitAPI/PlatformWin.cmake:

Add CryptoDigest.cpp to TestWebCoreLib_Sources.

Define -DSTATICALLY_LINKED_WITH_PAL=1 to avoid warnings since
without the definition the functions marked with PAL_EXPORT are supposed to be
imported from another shared library, but as it is, TestWebCoreLib
links PAL statically.

  • TestWebKitAPI/Tests/WebCore/CryptoDigest.cpp: Added.

(TestWebKitAPI::toHex):
(TestWebKitAPI::expect):
(TestWebKitAPI::expectSHA1):
(TestWebKitAPI::expectSHA224):
(TestWebKitAPI::expectSHA256):
(TestWebKitAPI::expectSHA384):
(TestWebKitAPI::expectSHA512):
(TestWebKitAPI::TEST):

8:04 PM Changeset in webkit [235586] by Simon Fraser
  • 17 edits
    2 copies in trunk/Source/WebCore

Rename FilterEffectRenderer to CSSFilter
https://bugs.webkit.org/show_bug.cgi?id=189223

Reviewed by Sam Weinig.

Filter was subclassed by SVGFilter for SVG, and FilterEffectRenderer for CSS,
which was very confusing, especially when the code uses renderer() to get it.

Rename FilterEffectRenderer to CSSFilter, and access via filter().

Future cleanup will deal with FilterEffectRendererHelper.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSFilterImageValue.cpp:

(WebCore::CSSFilterImageValue::image):

  • platform/graphics/ca/cocoa/PlatformCAFiltersCocoa.mm:
  • platform/graphics/filters/Filter.h:

(WebCore::Filter::isCSSFilter const):

  • rendering/CSSFilter.cpp: Copied from Source/WebCore/rendering/FilterEffectRenderer.cpp.

(WebCore::endMatrixRow):
(WebCore::lastMatrixRow):
(WebCore::CSSFilter::create):
(WebCore::CSSFilter::CSSFilter):
(WebCore::m_sourceGraphic):
(WebCore::CSSFilter::inputContext):
(WebCore::CSSFilter::buildReferenceFilter):
(WebCore::CSSFilter::build):
(WebCore::CSSFilter::updateBackingStoreRect):
(WebCore::CSSFilter::allocateBackingStoreIfNeeded):
(WebCore::CSSFilter::clearIntermediateResults):
(WebCore::CSSFilter::apply):
(WebCore::CSSFilter::computeSourceImageRectForDirtyRect):
(WebCore::CSSFilter::output const):
(WebCore::CSSFilter::setSourceImageRect):
(WebCore::CSSFilter::setMaxEffectRects):
(WebCore::CSSFilter::outputRect const):

  • rendering/CSSFilter.h: Copied from Source/WebCore/rendering/FilterEffectRenderer.h.

(isType):

  • rendering/FilterEffectRenderer.cpp:

(WebCore::FilterEffectRendererHelper::prepareFilterEffect):
(WebCore::FilterEffectRendererHelper::filterContext const):
(WebCore::FilterEffectRendererHelper::beginFilterEffect):
(WebCore::FilterEffectRendererHelper::applyFilterEffect):
(WebCore::endMatrixRow): Deleted.
(WebCore::lastMatrixRow): Deleted.
(WebCore::FilterEffectRenderer::FilterEffectRenderer): Deleted.
(WebCore::m_sourceGraphic): Deleted.
(WebCore::FilterEffectRenderer::create): Deleted.
(WebCore::FilterEffectRenderer::inputContext): Deleted.
(WebCore::FilterEffectRenderer::buildReferenceFilter): Deleted.
(WebCore::FilterEffectRenderer::build): Deleted.
(WebCore::FilterEffectRenderer::updateBackingStoreRect): Deleted.
(WebCore::FilterEffectRenderer::allocateBackingStoreIfNeeded): Deleted.
(WebCore::FilterEffectRenderer::clearIntermediateResults): Deleted.
(WebCore::FilterEffectRenderer::apply): Deleted.
(WebCore::FilterEffectRenderer::computeSourceImageRectForDirtyRect): Deleted.
(WebCore::FilterEffectRenderer::output const): Deleted.
(WebCore::FilterEffectRenderer::setMaxEffectRects): Deleted.
(WebCore::FilterEffectRenderer::outputRect const): Deleted.

  • rendering/FilterEffectRenderer.h:

(WebCore::FilterEffectRendererHelper::FilterEffectRendererHelper):
(WebCore::FilterEffectRenderer::setSourceImageRect): Deleted.

  • rendering/RenderBlockFlow.cpp:
  • rendering/RenderFrame.cpp:
  • rendering/RenderImage.cpp:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::requiresFullLayerImageForFilters const):
(WebCore::RenderLayer::filter const):
(WebCore::RenderLayer::filterPainter const):
(WebCore::RenderLayer::setupFilters):
(WebCore::RenderLayer::calculateClipRects const):
(WebCore::RenderLayer::filterRenderer const): Deleted.

  • rendering/RenderLayer.h:
  • rendering/RenderLayerBacking.cpp:
  • rendering/RenderLayerFilterInfo.cpp:

(WebCore::RenderLayer::FilterInfo::setFilter):
(WebCore::RenderLayer::FilterInfo::updateReferenceFilterClients):
(WebCore::RenderLayer::FilterInfo::removeReferenceFilterClients):
(WebCore::RenderLayer::FilterInfo::setRenderer): Deleted.

  • rendering/RenderLayerFilterInfo.h:
  • rendering/updating/RenderTreeBuilderBlock.cpp:
7:54 PM Changeset in webkit [235585] by Darin Adler
  • 13 edits
    1 delete in trunk/Source

[CFNetwork] Update CFNetwork SPI use to use CFNetworkSPI.h more consistently
https://bugs.webkit.org/show_bug.cgi?id=189072
Source/WebCore:

Reviewed by Dan Bernstein.

  • platform/mac/WebCoreNSURLExtras.mm: Include CFNetworkSPI.h and remove a

declaration of +[NSURLProtocol _protocolClassForRequest:].

  • platform/network/mac/ResourceHandleMac.mm: Remove a declaration of

-[NSURLConnection _initWithRequest:delegate:usesCache:maxContentLength:startImmediately:connectionProperties:].
(WebCore::ResourceHandle::createNSURLConnection): Add ignore of
"-Wdeprecated-declarations" around use of the above method, since it
is deprecated.

Source/WebCore/PAL:

Reviewed by Dan Bernstein.

  • pal/spi/cf/CFNetworkSPI.h: Added a FIXME about USE(CFNETWORK_IGNORE_HSTS).

Sorted Objective-C class interfaces alphabetically instead of having them
relatively randomly ordered in the file. Reduced the platform #if statements
since it's not critical to have these SPIs declared only where they are
present, as long as they are used only when they are present. Moved some
additional declarations into this file.

  • pal/spi/cocoa/NSURLDownloadSPI.h: Added more NSURLDownload methods.

Source/WebKit:

Reviewed by Dan Bernstein.

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: Removed NSURLSessionTask

method declarations from this file, they are in CFNetworkSPI.h.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm: Removed NSURLSessionConfiguration

method declarations from this file, they are in CFNetworkSPI.h.

Source/WebKitLegacy/mac:

Reviewed by Dan Bernstein.

  • Misc/WebDownload.mm: Removed forward declaration of NSURLConnectionDelegateProxy

and declarations for NSURLDownload init methods.

  • Misc/WebDownloadInternal.h: Removed.
  • WebCoreSupport/WebFrameLoaderClient.mm: Removed include of WebDownloadInternal.h.

(WebFrameLoaderClient::convertMainResourceLoadToDownload): Ignore
"-Wdeprecated-declarations" because the method used here is deprecated.

  • WebView/WebView.mm:

(-[WebView _downloadURL:]): Ignore "-Wdeprecated-declarations" because the method
used here is deprecated.

4:14 PM Changeset in webkit [235584] by mitz@apple.com
  • 4 edits
    1 add in trunk

[Cocoa] Crash using KVO for 'serverTrust' property of WKWebView - "this class is not key value coding-compliant for the key serverTrust"
https://bugs.webkit.org/show_bug.cgi?id=189222
<rdar://problem/33283179>

Reviewed by Sam Weinig.

Source/WebKit:

Test: TestWebKitAPI/Tests/WebKitCocoa/WKWebViewServerTrustKVC.mm

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView valueForUndefinedKey:]): Override to handle the "serverTrust" key, which is not

handled automatically by the KVC machinery since the getter’s return type is not an
Objective-C type.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewServerTrustKVC.mm: Added.

(TEST):

1:16 PM Changeset in webkit [235583] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Add some more filter logging
https://bugs.webkit.org/show_bug.cgi?id=189221

Reviewed by Anders Carlsson.

Add logging in FilterEffect::apply() that shows all the filter rects, and logging
that brackets the application of a whole filter chain, for both SVG and CSS filters.

  • platform/graphics/filters/FilterEffect.cpp:

(WebCore::FilterEffect::apply):

  • rendering/FilterEffectRenderer.cpp:

(WebCore::FilterEffectRendererHelper::applyFilterEffect):

  • rendering/svg/RenderSVGResourceFilter.cpp:

(WebCore::RenderSVGResourceFilter::postApplyResource):

1:03 AM Changeset in webkit [235582] by yusukesuzuki@slowstart.org
  • 3 edits
    1 add in trunk

Function object should convert params to string before throw a parsing error
https://bugs.webkit.org/show_bug.cgi?id=188874

Reviewed by Darin Adler.

JSTests:

  • stress/function-body-to-string-before-parameter-syntax-check.js: Added.

(shouldThrow):

Source/JavaScriptCore:

ToString operation onto the body of the Function constructor should be performed
before checking syntax correctness of the parameters.

  • runtime/FunctionConstructor.cpp:

(JSC::constructFunctionSkippingEvalEnabledCheck):

Aug 31, 2018:

7:30 PM Changeset in webkit [235581] by bshafiei@apple.com
  • 7 edits in branches/safari-606.1.36.2-branch/Source

Versioning.

6:11 PM Changeset in webkit [235580] by bshafiei@apple.com
  • 1 copy in tags/Safari-606.1.36.2.4

Tag Safari-606.1.36.2.4.

5:16 PM Changeset in webkit [235579] by dino@apple.com
  • 2 edits
    2 adds in trunk/Websites/webkit.org

Add support for USDZ to webkit.org for a sample file
https://bugs.webkit.org/show_bug.cgi?id=189217

Rubber-stamped by Anders Carlsson.

Use the accepted MIME-type for USDZ files, and provide a
simple example file.

  • .htaccess: Serve USD with a MIME-type that we will accept.
  • demos/ar/heart.usdz: Added.
5:02 PM Changeset in webkit [235578] by Aditya Keerthi
  • 2 edits in trunk/Tools

Unreviewed, add an alternate email for Aditya Keerthi.

  • Scripts/webkitpy/common/config/contributors.json:
4:28 PM Changeset in webkit [235577] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Added a CSS rule to DarkMode.css to fix color on sidebar toggle.
<https://webkit.org/b/189139>

Patch by Jamal Nasser <xnasser@outlook.com> on 2018-08-31
Reviewed by Matt Baker.

  • UserInterface/Views/DarkMode.css:

(@media (prefers-dark-interface)):
(.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle):

4:27 PM Changeset in webkit [235576] by youenn@apple.com
  • 7 edits
    2 adds in trunk/Source/WebCore

Move stats gathering out of LibWebRTCMediaEndpoint
https://bugs.webkit.org/show_bug.cgi?id=189180

Reviewed by Alejandro G. Castro.

Move stats gathering in LibWebRTCStatsCollector.
Make sure that the lambda given to the collector is always called and destroyed from the main thread.
This allows capturing the promise here instead of storing it into the peer connection backend.
No change of behavior.

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::getStats):

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:

(WebCore::LibWebRTCPeerConnectionBackend::getStats):
(WebCore::LibWebRTCPeerConnectionBackend::doStop):

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h:
  • Modules/mediastream/libwebrtc/LibWebRTCStatsCollector.cpp: Added.

(WebCore::LibWebRTCStatsCollector::LibWebRTCStatsCollector):
(WebCore::LibWebRTCStatsCollector::~LibWebRTCStatsCollector):
(WebCore::fromStdString):
(WebCore::fillRTCStats):
(WebCore::fillRTCRTPStreamStats):
(WebCore::fillInboundRTPStreamStats):
(WebCore::fillOutboundRTPStreamStats):
(WebCore::fillRTCMediaStreamTrackStats):
(WebCore::fillRTCDataChannelStats):
(WebCore::iceCandidatePairState):
(WebCore::fillRTCIceCandidatePairStats):
(WebCore::fillRTCCertificateStats):
(WebCore::LibWebRTCStatsCollector::OnStatsDelivered):

  • Modules/mediastream/libwebrtc/LibWebRTCStatsCollector.h: Added.

(WebCore::LibWebRTCStatsCollector::create):

  • WebCore.xcodeproj/project.pbxproj:
4:22 PM Changeset in webkit [235575] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Compile error in RealtimeOutgoingVideoSource.cpp; unused parameter in libwebrtc header
https://bugs.webkit.org/show_bug.cgi?id=189203

Reviewed by Youenn Fablet.

If RealtimeOutgoingVideoSource.cpp is compiled alone (non-unified) or if it is the first file compiled in
a unified build, there is no pragma set to ignore unused parameter warnings in place.

  • platform/mediastream/RealtimeOutgoingVideoSource.cpp:
4:18 PM Changeset in webkit [235574] by Wenson Hsieh
  • 6 edits in trunk

[iOS] Consolidate the implementations of readString, stringForType, and readURL in PlatformPasteboardIOS.mm
https://bugs.webkit.org/show_bug.cgi?id=189054
<rdar://problem/43819779>

Reviewed by Tim Horton.

Source/WebCore:

Remove redundant and unnecessary logic for reading from the pasteboard on iOS.

  • platform/PlatformPasteboard.h:
  • platform/ios/PlatformPasteboardIOS.mm:

(WebCore::PlatformPasteboard::stringForType const):

This currently grabs a string corresponding to the given type from the first item in the pasteboard. Make
stringForType instead call readString with pasteboard item index 0.

(WebCore::PlatformPasteboard::count const):
(WebCore::PlatformPasteboard::readBuffer const):
(WebCore::PlatformPasteboard::readString const):

Make readString with "public.url" call readURL.

(WebCore::PlatformPasteboard::readURL const):

Remove logic for reading URLs from the pasteboard as property lists deserialized from properly lists. This was
added in r223195 due to fix a case "when UIPasteboard serializes NSURL as a plist" when grabbing pasteboard data
using -valuesForPasteboardType:inItemSet:. However, this case only arises in non-UI applications (i.e. when
UIApplicationInitialize() has not been invoked); this is currently exercised by the test CopyURL.ValidURL, but
doesn't really correspond to a real-world use case, since all UI applications where a user would be able to
paste in a web view already invoke UIApplicationInitialize().

Instead of handling the case where the pasteboard contains a property list that has not been coerced to an
NSURL, simply remove the code from PlatformPasteboard::readURL and allow UIKit to perform the coercion when
running the test.

(WebCore::PlatformPasteboard::count): Deleted.
(WebCore::PlatformPasteboard::readBuffer): Deleted.
(WebCore::PlatformPasteboard::readString): Deleted.
(WebCore::PlatformPasteboard::readURL): Deleted.

Mark these functions as const.

  • platform/wpe/PlatformPasteboardWPE.cpp:

(WebCore::PlatformPasteboard::readString const):
(WebCore::PlatformPasteboard::readString): Deleted.

Mark this function as const.

Tools:

See WebCore/ChangeLog for more detail.

  • TestWebKitAPI/Tests/WebKitCocoa/CopyURL.mm:

(createWebViewWithCustomPasteboardDataEnabled):

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

Compilation error in FormData.cpp: incomplete type 'WebCore::SharedBuffer'
https://bugs.webkit.org/show_bug.cgi?id=189207

Reviewed by Youenn Fablet.

If FormData.cpp is compiled alone (non-unified) or if it is the first file compiled in
a unified build, SharedBuffer.h is not included.

  • platform/network/FormData.cpp:
3:50 PM Changeset in webkit [235572] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Unreviewed, rolling out r235565.
https://bugs.webkit.org/show_bug.cgi?id=189212

Broke the WHLSL build (Requested by litherum on #webkit).

Reverted changeset:

"[WHLSL] Remove useless code in NameResolver"
https://bugs.webkit.org/show_bug.cgi?id=189176
https://trac.webkit.org/changeset/235565

3:23 PM Changeset in webkit [235571] by Simon Fraser
  • 4 edits in trunk/LayoutTests

Clean up TestExpectations so that ./Tools/Scripts/lint-test-expectations
succeeds now.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
2:48 PM Changeset in webkit [235570] by Chris Dumez
  • 11 edits
    1 move in trunk

[ WK2 ] http/tests/workers/service/client-*-page-cache.html LayoutTests are flaky
https://bugs.webkit.org/show_bug.cgi?id=183705
<rdar://problem/42440606>

Reviewed by Youenn Fablet.

Source/WebCore:

Add internals.serviceWorkerClientIdentifier() utility function so that a layout test can get the
service worker client identifier of a document.

  • testing/Internals.cpp:

(WebCore::Internals::serviceWorkerClientIdentifier const):

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

LayoutTests:

Update Layout tests to not rely on the total number of clients as this is flaky. Instead, check for specific client
identifiers to see if they are present or not.

  • http/tests/workers/service/client-added-to-clients-when-restored-from-page-cache.html:
  • http/tests/workers/service/client-removed-from-clients-while-in-page-cache.html:
  • http/tests/workers/service/resources/getClientIds-worker.js: Renamed from LayoutTests/http/tests/workers/service/resources/getClientCount-worker.js.

(event.then):

  • http/tests/workers/service/serviceworkerclients-matchAll-worker.js:

(async.doTestAfterMessage):

  • http/tests/workers/service/serviceworkerclients-matchAll.https.html:
  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:

Unskip tests as they should no longer be flaky.

2:09 PM Changeset in webkit [235569] by wilander@apple.com
  • 13 edits
    2 copies
    2 moves in trunk

Storage Access API: Maintain access through same-site navigations
https://bugs.webkit.org/show_bug.cgi?id=188564
<rdar://problem/43445160>

Reviewed by Alex Christensen.

Source/WebCore:

Tests: http/tests/storageAccess/request-and-grant-access-then-navigate-cross-site-should-not-have-access.html

http/tests/storageAccess/request-and-grant-access-then-navigate-same-site-should-have-access.html

  • dom/Document.h:

Removed unused member variable m_hasFrameSpecificStorageAccess.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::willSendRequest):

  • loader/FrameLoaderClient.h:

Source/WebKit:

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchWillChangeDocument):

Now takes the current URL and the new URL as parameters
and only clears out storage access if the navigation is
cross-site, i.e. with differing eTLD+1s.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:

LayoutTests:

  • http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-and-access-from-right-frame-expected.txt:
  • http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-and-access-from-right-frame.html:

Added both a same-site and a cross-site navigation to the sub frame to test maintained and cleared access.

  • http/tests/storageAccess/request-and-grant-access-then-navigate-cross-site-should-not-have-access-expected.txt: Copied from LayoutTests/http/tests/storageAccess/request-and-grant-access-then-navigate-should-not-have-access-expected.txt.
  • http/tests/storageAccess/request-and-grant-access-then-navigate-cross-site-should-not-have-access.html: Copied from LayoutTests/http/tests/storageAccess/request-and-grant-access-then-navigate-should-not-have-access.html.
  • http/tests/storageAccess/request-and-grant-access-then-navigate-same-site-should-have-access-expected.txt: Renamed from LayoutTests/http/tests/storageAccess/request-and-grant-access-then-navigate-should-not-have-access-expected.txt.
  • http/tests/storageAccess/request-and-grant-access-then-navigate-same-site-should-have-access.html: Renamed from LayoutTests/http/tests/storageAccess/request-and-grant-access-then-navigate-should-not-have-access.html.
  • http/tests/storageAccess/resources/get-cookies.php:

Support for the new test scenarios.

  • http/tests/storageAccess/resources/self-navigating-frame-after-granted-access.html:

Support for the new test scenarios.

  • platform/mac-wk2/TestExpectations:

Marked the new and the renamed tests as [ Pass ].

1:41 PM Changeset in webkit [235568] by rniwa@webkit.org
  • 3 edits in trunk/LayoutTests

slotchange-event-bubbling.html fails in Chrome & Firefox
https://bugs.webkit.org/show_bug.cgi?id=189183

Reviewed by Chris Dumez.

slotchange event is supposed to fire when a slot element is inserted and there are assigned nodes.

Firefox and Chrome implement this behavior and fail this test since the test doesn't let microstask
check point run before start mutating the DOM.

Fixed the test by manually waiting for the current microtask queue to be emptied after constructing
the test shadow tree so that slotchange event from the initial tree construction doesn't get merged
with slotchange event fired for the actual DOM mutation being tested.

Also fixed typos in slotchange-in-fallback.html and a bug that we were removing the slot instead
of the shadow host at the end of each test case.

  • fast/shadow-dom/slotchange-event-bubbling.html:
  • fast/shadow-dom/slotchange-in-fallback.html:
1:23 PM Changeset in webkit [235567] by Kocsen Chung
  • 7 edits in branches/safari-606.1.36.2-branch/Source

Versioning.

1:15 PM Changeset in webkit [235566] by Chris Dumez
  • 2 edits in trunk/Source/WebKitLegacy/win

Unreviewed Windows build fix after r235562.

  • WebCoreSupport/WebFrameLoaderClient.cpp:

(WebFrameLoaderClient::dispatchWillSubmitForm):

1:08 PM Changeset in webkit [235565] by mmaxfield@apple.com
  • 2 edits in trunk/Tools

[WHLSL] Remove useless code in NameResolver
https://bugs.webkit.org/show_bug.cgi?id=189176

Reviewed by Dean Jackson and Thomas Denney.

The check will always pass becase the standard library contains at least one function with the correct name.

  • WebGPUShadingLanguageRI/NameResolver.js:

(NameResolver.prototype.visitDotExpression):
(NameResolver.prototype._handlePropertyAccess): Deleted.
(NameResolver.prototype.visitIndexExpression): Deleted.

1:00 PM Changeset in webkit [235564] by Simon Fraser
  • 7 edits in trunk/Tools

Make it possible to mark tests as leaks in TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=189088

Reviewed by Jon Lee.

Have webkitpy parse out "Leak" expectations in TestExpectations, and do the right
thing if the test run did not use --world-leaks. Add unit tests for leaks combined
with various other result combinations.

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

(LayoutTestRunner._update_summary_with_result):
(LayoutTestRunner._annotate_results_with_additional_failures):

  • Scripts/webkitpy/layout_tests/models/test_expectations.py:

(TestExpectationParser):
(TestExpectations): The 'Leak' line was duplicated here, so remove a copy.
(TestExpectations.remove_leak_failures):
(TestExpectations.matches_an_expected_result):

  • Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py:

(Base.get_basic_tests):

  • Scripts/webkitpy/port/test.py:

(TestList.add_reftest):
(unit_test_list):

12:13 PM Changeset in webkit [235563] by youenn@apple.com
  • 4 edits in trunk/Source/WebCore

WebAudioBufferList.cpp/.h is named as cocoa/WebAudioBufferList.cpp/.h
https://bugs.webkit.org/show_bug.cgi?id=189160

Reviewed by Jer Noble.

Add WebAudioBufferList.cpp to unified build.
Update XCode project so that the file names are right.
No change of behavior.

  • PlatformMac.cmake:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
12:00 PM Changeset in webkit [235562] by Chris Dumez
  • 17 edits in trunk/Source

Assertion hit in ~CompletionHandler() from ~WebFrame()
https://bugs.webkit.org/show_bug.cgi?id=189199
<rdar://problem/42657233>

Reviewed by Youenn Fablet.

Source/WebCore:

The issue was caused by WebFrame::m_willSubmitFormCompletionHandlers implicitly containing
CompletionHandlers (wrapped in WTF::Functions) and not calling them upon WebFrame
destruction.

No new tests, covered by fast/frames/iframe-target.html.

  • loader/EmptyClients.cpp:

(WebCore::EmptyFrameLoaderClient::dispatchWillSubmitForm):

  • loader/EmptyFrameLoaderClient.h:
  • loader/FrameLoaderClient.h:

Source/WebKit:

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchWillSubmitForm):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::~WebFrame):
(WebKit::WebFrame::setUpWillSubmitFormListener):
(WebKit::WebFrame::invalidatePolicyListener):

  • WebProcess/WebPage/WebFrame.h:

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::dispatchWillSubmitForm):

Source/WebKitLegacy/win:

  • WebCoreSupport/WebFrameLoaderClient.cpp:

(WebFrameLoaderClient::dispatchWillSubmitForm):

  • WebCoreSupport/WebFrameLoaderClient.h:
11:07 AM Changeset in webkit [235561] by Alan Bujtas
  • 6 edits
    2 adds in trunk

[LFC] Add margin box verification back now that Display::Box has non-computed horizontal margin.
https://bugs.webkit.org/show_bug.cgi?id=189193

Reviewed by Antti Koivisto.

Source/WebCore:

Use the non-computed margin values to verify correctness.
This patch also fixes a margin collapsing issue when the inflow box has a float sibling. The float
sibling does not prevent collapsing with the parent's top/bottom margin.

Test: fast/block/block-only/floating-and-next-previous-inflow-with-margin-with-no-border.html

  • layout/Verification.cpp:

(WebCore::Layout::outputMismatchingBlockBoxInformationIfNeeded):
(WebCore::Layout::LayoutContext::verifyAndOutputMismatchingLayoutTree const):

  • layout/blockformatting/BlockMarginCollapse.cpp:

(WebCore::Layout::isMarginTopCollapsedWithParent):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::isMarginBottomCollapsedWithParent):

Tools:

  • LayoutReloaded/misc/LFC-passing-tests.txt:

LayoutTests:

  • fast/block/block-only/floating-and-next-previous-inflow-with-margin-with-no-border-expected.txt: Added.
  • fast/block/block-only/floating-and-next-previous-inflow-with-margin-with-no-border.html: Added.
10:59 AM Changeset in webkit [235560] by Antti Koivisto
  • 80 edits in trunk

Replace OptionSet |= and -= operators with add() and remove() functions
https://bugs.webkit.org/show_bug.cgi?id=189169

Reviewed by Anders Carlsson.

Source/WebCore:

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::rangeOfStringClosestToRangeInDirection const):

  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertTextDecoration):
(WebCore::StyleBuilderConverter::convertTextEmphasisPosition):
(WebCore::StyleBuilderConverter::convertTextUnderlinePosition):
(WebCore::StyleBuilderConverter::convertTextDecorationSkip):
(WebCore::StyleBuilderConverter::convertSpeakAs):
(WebCore::StyleBuilderConverter::convertHangingPunctuation):

  • css/parser/CSSParser.cpp:

(WebCore::CSSParser::parseSystemColor):

  • dom/Document.cpp:

(WebCore::Document::styleColorOptions const):

  • dom/DocumentMarkerController.cpp:

(WebCore::DocumentMarkerController::addMarker):
(WebCore::DocumentMarkerController::removeMarkers):

  • dom/ScriptedAnimationController.cpp:

(WebCore::ScriptedAnimationController::addThrottlingReason):
(WebCore::ScriptedAnimationController::removeThrottlingReason):

  • dom/SecurityContext.h:

(WebCore::SecurityContext::setFoundMixedContent):

  • dom/UIEventWithKeyState.cpp:

(WebCore::UIEventWithKeyState::modifiersFromInitializer):
(WebCore::UIEventWithKeyState::setModifierKeys):

  • dom/UserActionElementSet.cpp:

(WebCore::UserActionElementSet::setFlags):

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::moveParagraphs):

  • editing/Editor.cpp:

(WebCore::Editor::replaceSelectionWithFragment):
(WebCore::Editor::appliedEditing):
(WebCore::Editor::markMisspellingsAfterTypingToWord):
(WebCore::Editor::markMisspellingsAndBadGrammar):
(WebCore::Editor::resolveTextCheckingTypeMask):

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::moveWithoutValidationTo):
(WebCore::FrameSelection::setSelectedRange):

  • editing/FrameSelection.h:

(WebCore::FrameSelection::defaultSetSelectionOptions):

  • editing/MoveSelectionCommand.cpp:

(WebCore::MoveSelectionCommand::doApply):

  • editing/SpellChecker.cpp:

(WebCore::SpellChecker::didCheckSucceed):

  • editing/TextCheckingHelper.cpp:

(WebCore::TextCheckingHelper::findFirstMisspellingOrBadGrammar):
(WebCore::TextCheckingHelper::guessesForMisspelledOrUngrammaticalRange const):

  • editing/TextIterator.cpp:

(WebCore::SearchBuffer::SearchBuffer):

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::parseAttribute):

  • inspector/agents/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::reload):

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::contextMenuItemSelected):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::find const):

  • page/DragController.cpp:

(WebCore::DragController::concludeEditDrag):

  • page/FrameSnapshotting.cpp:

(WebCore::snapshotFrameRectWithClip):

  • page/FrameView.cpp:

(WebCore::updateLayerPositionFlags):
(WebCore::FrameView::willPaintContents):

  • page/Page.cpp:

(WebCore::Page::setIsVisible):

  • page/PerformanceObserver.cpp:

(WebCore::PerformanceObserver::observe):

  • page/TextIndicator.cpp:

(WebCore::TextIndicator::createWithRange):

  • page/WindowFeatures.cpp:

(WebCore::parseDisabledAdaptations):

  • page/csp/ContentSecurityPolicy.h:

(WebCore::ContentSecurityPolicy::addHashAlgorithmsForInlineScripts):
(WebCore::ContentSecurityPolicy::addHashAlgorithmsForInlineStylesheets):

  • page/csp/ContentSecurityPolicySourceList.cpp:

(WebCore::ContentSecurityPolicySourceList::parseHashSource):

  • platform/PlatformEvent.h:

(WebCore::PlatformEvent::PlatformEvent):

  • platform/ios/PlatformEventFactoryIOS.mm:

(WebCore::modifiersForEvent):

  • platform/mac/PlatformEventFactoryMac.mm:

(WebCore::modifiersForEvent):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::updateLayerPositions):
(WebCore::RenderLayer::updateLayerPositionsAfterScroll):
(WebCore::RenderLayer::paintLayer):
(WebCore::RenderLayer::paintLayerContentsAndReflection):
(WebCore::RenderLayer::paintLayerContents):
(WebCore::RenderLayer::paintForegroundForFragments):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::paintIntoLayer):
(WebCore::RenderLayerBacking::paintContents):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::reasonsForCompositing const):
(WebCore::RenderLayerCompositor::updateScrollCoordinatedStatus):

  • rendering/TextDecorationPainter.cpp:

(WebCore::collectStylesForRenderer):

  • rendering/TextPaintStyle.cpp:

(WebCore::computeTextPaintStyle):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::changeRequiresLayout const):
(WebCore::RenderStyle::changeRequiresLayerRepaint const):
(WebCore::RenderStyle::changeRequiresRepaint const):

  • testing/Internals.cpp:

(WebCore::parseFindOptions):
(WebCore::Internals::forceReload):
(WebCore::Internals::setPageVisibility):
(WebCore::Internals::setPageIsFocusedAndActive):

Source/WebKit:

  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):

  • Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h:

(WebKit::RemoteLayerTreeTransaction::LayerProperties::notePropertiesChanged):

  • Shared/WebEventConversion.cpp:

(WebKit::WebKit2PlatformMouseEvent::WebKit2PlatformMouseEvent):
(WebKit::WebKit2PlatformWheelEvent::WebKit2PlatformWheelEvent):
(WebKit::WebKit2PlatformKeyboardEvent::WebKit2PlatformKeyboardEvent):
(WebKit::WebKit2PlatformTouchEvent::WebKit2PlatformTouchEvent):
(WebKit::WebKit2PlatformGestureEvent::WebKit2PlatformGestureEvent):

  • Shared/WebsitePoliciesData.cpp:

(WebKit::WebsitePoliciesData::applyToDocumentLoader):

  • UIProcess/API/C/WKPage.cpp:

(WKPageReload):

  • UIProcess/API/C/WKResourceCacheManager.cpp:

(toWebsiteDataTypes):

  • UIProcess/API/C/WKWebsitePolicies.cpp:

(WKWebsitePoliciesSetAllowedAutoplayQuirks):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView reload]):

  • UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h:

(WebKit::toWebsiteDataTypes):

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _fetchDataRecordsOfTypes:withOptions:completionHandler:]):

  • UIProcess/API/Cocoa/_WKWebsitePolicies.mm:

(-[_WKWebsitePolicies setAllowedAutoplayQuirks:]):

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::viewDidMoveToWindow):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::updateActivityState):
(WebKit::WebPageProxy::activityStateDidChange):
(WebKit::WebPageProxy::dispatchActivityStateChange):

  • UIProcess/WebsiteData/WebsiteDataRecord.cpp:

(WebKit::WebsiteDataRecord::add):
(WebKit::WebsiteDataRecord::addCookieHostName):
(WebKit::WebsiteDataRecord::addPluginDataHostName):
(WebKit::WebsiteDataRecord::addHSTSCacheHostname):
(WebKit::WebsiteDataRecord::addOriginWithCredential):

  • UIProcess/mac/WKInspectorViewController.mm:

(-[WKInspectorViewController inspectorWKWebViewReload:]):

  • WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:

(WebKit::imageForRect):

  • WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:

(WebKit::InjectedBundleRangeHandle::renderedImage):

  • WebProcess/WebPage/FindController.cpp:

(WebKit::core):
(WebKit::FindController::findString):

Source/WebKitLegacy/mac:

  • WebView/WebFrame.mm:

(-[WebFrame _drawRect:contentsOnly:]):

  • WebView/WebView.mm:

(coreOptions):

Source/WTF:

Improve code readability.

  • wtf/OptionSet.h:

(WTF::OptionSet::add):
(WTF::OptionSet::remove):
(WTF::OptionSet::operator==):
(WTF::OptionSet::operator!=):
(WTF::OptionSet::operator|=): Deleted.
(WTF::OptionSet::operator-=): Deleted.

  • wtf/ProcessPrivilege.cpp:

(WTF::addProcessPrivilege):
(WTF::removeProcessPrivilege):

Tools:

  • TestWebKitAPI/Tests/WTF/OptionSet.cpp:

(TestWebKitAPI::TEST):

10:41 AM Changeset in webkit [235559] by Chris Dumez
  • 11 edits in trunk/Source/WebKit

Rename ShouldProcessSwapIfPossible to ProcessSwapRequestedByClient for clarity
https://bugs.webkit.org/show_bug.cgi?id=189195

Reviewed by Alex Christensen.

Rename ShouldProcessSwapIfPossible to ProcessSwapRequestedByClient for clarity, since it indicates the client
requested a process swap via its navigation policy decision.

  • UIProcess/API/C/WKFramePolicyListener.cpp:

(WKFramePolicyListenerUseInNewProcess):
(useWithPolicies):
(WKFramePolicyListenerUseWithPolicies):
(WKFramePolicyListenerUseInNewProcessWithPolicies):

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction):

  • UIProcess/WebFramePolicyListenerProxy.cpp:

(WebKit::WebFramePolicyListenerProxy::use):
(WebKit::WebFramePolicyListenerProxy::download):
(WebKit::WebFramePolicyListenerProxy::ignore):

  • UIProcess/WebFramePolicyListenerProxy.h:
  • UIProcess/WebFrameProxy.cpp:

(WebKit::WebFrameProxy::setUpPolicyListenerProxy):

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

(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
(WebKit::WebPageProxy::decidePolicyForResponse):

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

(WebKit::WebProcessPool::processForNavigation):
(WebKit::WebProcessPool::processForNavigationInternal):

  • UIProcess/WebProcessPool.h:
10:12 AM Changeset in webkit [235558] by mark.lam@apple.com
  • 4 edits
    1 add in trunk

Fix exception check accounting in constructJSWebAssemblyCompileError().
https://bugs.webkit.org/show_bug.cgi?id=189185
<rdar://problem/39786007>

Reviewed by Michael Saboff.

JSTests:

  • stress/regress-189185.js: Added.

(new.WebAssembly.CompileError.valueOf):

Source/JavaScriptCore:

Also add an exception check in JSWebAssemblyModule::createStub() so that we don't
inadvertently overwrite a pre-existing exception (if present).

  • wasm/js/JSWebAssemblyModule.cpp:

(JSC::JSWebAssemblyModule::createStub):

  • wasm/js/WebAssemblyCompileErrorConstructor.cpp:

(JSC::constructJSWebAssemblyCompileError):

10:06 AM Changeset in webkit [235557] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Gardening: ARMv7 build fix.
https://bugs.webkit.org/show_bug.cgi?id=158911

Not reviewed.

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::patchableBranch8):

9:49 AM Changeset in webkit [235556] by Aditya Keerthi
  • 22 edits
    1 copy
    1 add in trunk/Source

[Datalist][iOS] Add suggestions UI for TextFieldInputTypes
https://bugs.webkit.org/show_bug.cgi?id=186714

Reviewed by Wenson Hsieh.

Source/WebCore:

On iOS, the datalist button should appear as a downward triangle. Furthermore, the
button should only be displayed if the input has focus and there are suggested
values.

  • css/html.css:

(input::-webkit-list-button): Draw the triangle using an SVG.

  • html/DataListSuggestionInformation.h:
  • html/HTMLInputElement.h:
  • html/TextFieldInputType.cpp: Added logic to show and hide the datalist button as necessary.

(WebCore::TextFieldInputType::handleFocusEvent):
(WebCore::TextFieldInputType::handleBlurEvent):
(WebCore::TextFieldInputType::didSetValueByUserEdit):
(WebCore::TextFieldInputType::listAttributeTargetChanged):
(WebCore::TextFieldInputType::displaySuggestions):

Source/WebKit:

On iOS, we have less space to display suggestions from a datalist element compared
to macOS. Furthermore, iPhones and iPads have different form factors, leading to a
different approach on each device. The commonalities of the two implementations
can be found in WKDataListSuggestionsControl. This class is subclassed by the
device specific implementations.

On iPhone, we display the suggestions in a UIPickerView. This view is accessible
only after tapping on the datalist button element to the side of the input field.
This approach was chosen in order to avoid tricking the user into thinking that
the values displayed in the picker are the only accepted values.
WKDataListSuggestionsPicker is responsible for managing the interface shown on
iPhones.

On iPad, we display the suggestions in a popover, that is visible alongside the
keyboard. The suggestions in the popover update as the user types.
WKDataListSuggestionsPopover is responsible for managing the interface shown on
iPads.

Both devices display predictive text suggestions, taking the first three values
from the filtered suggestions list. In order to prevent other clients from
overwriting the suggestions provided by the datalist element, we prevent writing
to the predictive text bar if an input with the list attribute is the currently
assisted node.

  • Shared/AssistedNodeInformation.cpp:

(WebKit::AssistedNodeInformation::encode const):
(WebKit::AssistedNodeInformation::decode):

  • Shared/AssistedNodeInformation.h:
  • Shared/ios/InteractionInformationAtPosition.h:
  • Shared/ios/InteractionInformationAtPosition.mm:

(WebKit::InteractionInformationAtPosition::encode const):
(WebKit::InteractionInformationAtPosition::decode):

  • SourcesCocoa.txt:
  • UIProcess/WebDataListSuggestionsDropdownIOS.h: Added.
  • UIProcess/WebDataListSuggestionsDropdownIOS.mm: Added.

(WebKit::WebDataListSuggestionsDropdownIOS::create):
(WebKit::WebDataListSuggestionsDropdownIOS::WebDataListSuggestionsDropdownIOS):
(WebKit::WebDataListSuggestionsDropdownIOS::show):
(WebKit::WebDataListSuggestionsDropdownIOS::handleKeydownWithIdentifier):
(WebKit::WebDataListSuggestionsDropdownIOS::close):
(WebKit::WebDataListSuggestionsDropdownIOS::didSelectOption):
(-[WKDataListSuggestionsControl initWithInformation:inView:]):
(-[WKDataListSuggestionsControl updateWithInformation:]):
(-[WKDataListSuggestionsControl showSuggestionsDropdown:activationType:]):
(-[WKDataListSuggestionsControl didSelectOptionAtIndex:]):
(-[WKDataListSuggestionsControl invalidate]):
(-[WKDataListSuggestionsControl textSuggestions]):
(-[WKDataListSuggestionsControl suggestionsCount]):
(-[WKDataListSuggestionsControl suggestionAtIndex:]):
(-[WKDataListSuggestionsControl textAlignment]):
(-[WKDataListSuggestionsPicker initWithInformation:inView:]):
(-[WKDataListSuggestionsPicker updateWithInformation:]):
(-[WKDataListSuggestionsPicker showSuggestionsDropdown:activationType:]):
(-[WKDataListSuggestionsPicker numberOfComponentsInPickerView:]):
(-[WKDataListSuggestionsPicker pickerView:numberOfRowsInComponent:]):
(-[WKDataListSuggestionsPicker pickerView:titleForRow:forComponent:]):
(-[WKDataListSuggestionsPicker invalidate]):
(-[WKDataListSuggestionsPickerView controlView]):
(-[WKDataListSuggestionsPickerView controlBeginEditing]):
(-[WKDataListSuggestionsPickerView controlEndEditing]):
(-[WKDataListSuggestionsPopover initWithInformation:inView:]):
(-[WKDataListSuggestionsPopover updateWithInformation:]):
(-[WKDataListSuggestionsPopover showSuggestionsDropdown:activationType:]):
(-[WKDataListSuggestionsPopover invalidate]):
(-[WKDataListSuggestionsPopover didSelectOptionAtIndex:]):
(-[WKDataListSuggestionsViewController reloadData]):
(-[WKDataListSuggestionsViewController tableView:numberOfRowsInSection:]):
(-[WKDataListSuggestionsViewController tableView:cellForRowAtIndexPath:]):
(-[WKDataListSuggestionsViewController tableView:didSelectRowAtIndexPath:]):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::pageDidScroll):

  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::createDataListSuggestionsDropdown):

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

(-[WKFormInputSession endEditing]):
(-[WKFormInputSession setSuggestions:]):
(-[WKContentView _formInputSession]):
(-[WKContentView resignFirstResponderForWebView]):
(-[WKContentView textInteractionGesture:shouldBeginAtPoint:]):
(-[WKContentView accessoryTab:]):
(-[WKContentView insertTextSuggestion:]):

  • UIProcess/mac/WebDataListSuggestionsDropdownMac.h:
  • UIProcess/mac/WebDataListSuggestionsDropdownMac.mm:

(WebKit::WebDataListSuggestionsDropdownMac::didSelectOption):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didCloseSuggestions):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getPositionInformation):
(WebKit::WebPage::getAssistedNodeInformation):

9:44 AM Changeset in webkit [235555] by dbates@webkit.org
  • 2 edits in trunk/Tools

lldb-webkit: KeyError thrown for OptionSet with invalid value
https://bugs.webkit.org/show_bug.cgi?id=189070

Update comment to explain that we return early and do not compute the set of enumerators in the
OptionSet when the underlying value of the set is an invalid value.

Additionally, update the change log entry for r235482 to reflect the updated title for the bug
and to better describe the change that was made.

  • lldb/lldb_webkit.py:

(WTFOptionSetProvider.update):

9:05 AM Changeset in webkit [235554] by mark.lam@apple.com
  • 3 edits
    1 add in trunk

Fix exception check accounting in JSDataView::defineOwnProperty().
https://bugs.webkit.org/show_bug.cgi?id=189186
<rdar://problem/39786049>

Reviewed by Michael Saboff.

JSTests:

  • stress/regress-189186.js: Added.

Source/JavaScriptCore:

  • runtime/JSDataView.cpp:

(JSC::JSDataView::defineOwnProperty):

8:52 AM Changeset in webkit [235553] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebKit

REGRESSION(r235484) _WKPreferencesGetWebRTCLegacyAPIEnabled symbol not found when running Safari with external SDK build
https://bugs.webkit.org/show_bug.cgi?id=189188

Patch by Frederic Wang <fwang@igalia.com> on 2018-08-31
Reviewed by Youenn Fablet.

WebRTCLegacyAPI preference has been removed in r235484. However, the API is still used by
Safari when running external SDK builds. Hence we restore some dummy getter/setter for now.

  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetWebRTCLegacyAPIEnabled): no-op.
(WKPreferencesGetWebRTCLegacyAPIEnabled): Always return false.

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

(-[WKPreferences _webRTCLegacyAPIEnabled]): Always return false.
(-[WKPreferences _setWebRTCLegacyAPIEnabled:]): no-op.

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
8:51 AM Changeset in webkit [235552] by youenn@apple.com
  • 5 edits in trunk/Source/WebCore

Move LibWebRTCMediaEndpoint data channel code to LibWebRTCDataChannelHandler
https://bugs.webkit.org/show_bug.cgi?id=189182

Reviewed by Alejandro G. Castro.

Moving data channel code outside of LibWebRTCMediaEndpoint.
This will allow future development to support unified plan.
No change of behavior.

  • Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.cpp:

(WebCore::LibWebRTCDataChannelHandler::fromRTCDataChannelInit):
(WebCore::LibWebRTCDataChannelHandler::channelEvent):

  • Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.h:
  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::createDataChannel):
(WebCore::LibWebRTCMediaEndpoint::OnDataChannel):

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
8:50 AM Changeset in webkit [235551] by youenn@apple.com
  • 3 edits
    1 add in trunk/Source/WebCore

Move session observers outside LibWebRTCMediaEndpoint
https://bugs.webkit.org/show_bug.cgi?id=189181

Reviewed by Alejandro G. Castro.

Move classes of LibWebRTCMediaEndpoint to a separate file.
No change of behavior.

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
  • Modules/mediastream/libwebrtc/LibWebRTCObservers.h: Added.
  • WebCore.xcodeproj/project.pbxproj:
8:29 AM Changeset in webkit [235550] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

[Win] Some tests are failing on ews200 after upgrading iTunes.
https://bugs.webkit.org/show_bug.cgi?id=189194

Unreviewed test gardening.

  • platform/win/TestExpectations:
5:43 AM Changeset in webkit [235549] by eric.carlson@apple.com
  • 6 edits
    1 delete in trunk/Source/WebCore

[MediaStream] Remove AVMediaCaptureSource
https://bugs.webkit.org/show_bug.cgi?id=189159

Reviewed by Youenn Fablet.

No new tests, no change in functionality.

Refactor video capture to get rid of a base class we don't
need any more.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/mediastream/mac/AVMediaCaptureSource.h: Removed.
  • platform/mediastream/mac/AVMediaCaptureSource.mm: Removed.
  • platform/mediastream/mac/AVVideoCaptureSource.h:

(WebCore::AVVideoCaptureSource::session const):
(WebCore::AVVideoCaptureSource::device const):

  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::globaVideoCaptureSerialQueue):
(WebCore::AVVideoCaptureSource::AVVideoCaptureSource):
(WebCore::AVVideoCaptureSource::~AVVideoCaptureSource):
(WebCore::AVVideoCaptureSource::startProducingData):
(WebCore::AVVideoCaptureSource::stopProducingData):
(WebCore::AVVideoCaptureSource::beginConfiguration):
(WebCore::AVVideoCaptureSource::commitConfiguration):
(WebCore::AVVideoCaptureSource::settingsDidChange):
(WebCore::AVVideoCaptureSource::settings const):
(WebCore::AVVideoCaptureSource::capabilities const):
(WebCore::AVVideoCaptureSource::setPreset):
(WebCore::AVVideoCaptureSource::setupSession):
(WebCore::AVVideoCaptureSource::setupCaptureSession):
(WebCore::AVVideoCaptureSource::captureSessionIsRunningDidChange):
(WebCore::AVVideoCaptureSource::interrupted const):
(WebCore::AVVideoCaptureSource::captureSessionRuntimeError):
(WebCore::AVVideoCaptureSource::captureSessionBeginInterruption):
(WebCore::AVVideoCaptureSource::captureSessionEndInterruption):
(-[WebCoreAVVideoCaptureSourceObserver initWithCallback:]):
(-[WebCoreAVVideoCaptureSourceObserver disconnect]):
(-[WebCoreAVVideoCaptureSourceObserver addNotificationObservers]):
(-[WebCoreAVVideoCaptureSourceObserver removeNotificationObservers]):
(-[WebCoreAVVideoCaptureSourceObserver captureOutput:didOutputSampleBuffer:fromConnection:]):
(-[WebCoreAVVideoCaptureSourceObserver observeValueForKeyPath:ofObject:change:context:]):
(-[WebCoreAVVideoCaptureSourceObserver sessionRuntimeError:]):
(-[WebCoreAVVideoCaptureSourceObserver beginSessionInterrupted:]):
(-[WebCoreAVVideoCaptureSourceObserver endSessionInterrupted:]):
(WebCore::AVVideoCaptureSource::initializeCapabilities): Deleted.
(WebCore::AVVideoCaptureSource::initializeSupportedConstraints): Deleted.
(WebCore::AVVideoCaptureSource::updateSettings): Deleted.

5:02 AM Changeset in webkit [235548] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

Unreviewed, GTK Ubuntu LTS build fix after r235543.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
4:47 AM Changeset in webkit [235547] by ddkilzer@apple.com
  • 3 edits
    1 delete in trunk/Source/WTF

REGRESSION (r226407): Remove unused BlockStack.h
<https://webkit.org/b/189189>

Reviewed by Yusuke Suzuki.

  • WTF.xcodeproj/project.pbxproj: Remove references to BlockStack.h.
  • wtf/BlockStack.h: Remove.
  • wtf/CMakeLists.txt: Remove references to BlockStack.h.
3:54 AM Changeset in webkit [235546] by ddkilzer@apple.com
  • 2 edits
    1 move in trunk/Tools

WebKitLauncher: Move WebKitLauncher.entitlements into Configurations directory

This makes the Configurations folder in the Xcode project match
what's in the Configurations directory on disk. Found by
tidy-Xcode-project-file (see Bug 188754).

  • WebKitLauncher/Configurations/WebKitLauncher.entitlements: Rename from Tools/WebKitLauncher/WebKitLauncher.entitlements.
  • WebKitLauncher/WebKitLauncher.xcodeproj/project.pbxproj:
  • Update project for file move.
3:54 AM Changeset in webkit [235545] by ddkilzer@apple.com
  • 4 edits in trunk/Tools

WebKitLauncher: Fix build failures

  • WebKitLauncher/Configurations/Base.xcconfig:

(ARCHS): Use $(ARCHS_STANDARD_32_64_BIT).
(MACOSX_DEPLOYMENT_TARGET): Update from Snow Leopard to Sierra.

  • WebKitLauncher/WebKitNightlyEnabler.m:

(myApplicationWillFinishLaunching):

  • WebKitLauncher/main.m:

(displayErrorAndQuit):
(locateSafariBundle):

  • Use pragma to ignore deprecation warnings.
3:47 AM Changeset in webkit [235544] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix compilation warning in EME GStreamer backend.

Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:1293:19:
warning: format ‘%lu’ expects argument of type ‘long unsigned
int’, but argument 9 has type ‘unsigned int’ [-Wformat=]

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::initializationDataEncountered):

3:22 AM Changeset in webkit [235543] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

[GStreamer][GL] useless ifdef in pushTextureToCompositor
https://bugs.webkit.org/show_bug.cgi?id=188552

Patch by Philippe Normand <philn@igalia.com> on 2018-08-31
Reviewed by Xabier Rodriguez-Calvar.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::pushTextureToCompositor):
There's no need for an ifdef because the frame holder already
ensures a valid texture ID will be set if it maps a GL video frame.

3:19 AM Changeset in webkit [235542] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION (r235190): Fix name of WebAudioBufferList.{cpp,h} in Xcode project

  • WebCore.xcodeproj/project.pbxproj:
  • Add the 'name' parameter to the file references, then fix the visual name everywhere else, so these files don't appear as "cocoa/WebAudioBufferList.{cpp,h}" in the project.
3:19 AM Changeset in webkit [235541] by ddkilzer@apple.com
  • 2 edits
    1 move in trunk/Tools

MobileMiniBrowser: Move test2s.mp4 into Resources directory

This makes the Resources folder in the Xcode project match
what's in the Resources directory on disk. Found by
tidy-Xcode-project-file (see Bug 188754).

  • MobileMiniBrowser/MobileMiniBrowser.xcodeproj/project.pbxproj:
  • Update project for file move.
  • MobileMiniBrowser/MobileMiniBrowserFramework/Resources/test2s.mp4: Rename from Tools/MobileMiniBrowser/MobileMiniBrowserFramework/test2s.mp4.
1:40 AM Changeset in webkit [235540] by mark.lam@apple.com
  • 3 edits
    1 add in trunk

Add missing exception check in arrayProtoFuncLastIndexOf().
https://bugs.webkit.org/show_bug.cgi?id=189184
<rdar://problem/39785959>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/regress-189184.js: Added.

Source/JavaScriptCore:

  • runtime/ArrayPrototype.cpp:

(JSC::arrayProtoFuncLastIndexOf):

12:49 AM Changeset in webkit [235539] by commit-queue@webkit.org
  • 29 edits in trunk

Bug 182053 - [CSSOM View] Implement standard behavior for scrollingElement
https://bugs.webkit.org/show_bug.cgi?id=182053

Patch by Frederic Wang <fwang@igalia.com> on 2018-08-31
Reviewed by Simon Fraser.

Source/WebCore:

This commit introduces a new CSSOMViewScrollingAPIEnabled flag that will be used to implement
the standard behavior of DOM scroll* API as specified by the CSSOM View spec (see bug 5991).
It changes the behavior of document.scrollingElement so that it follows the spec when the
flag is enabled. This will allow to pass the WPT test cssom-view/scrollingElement.html when
it becomes the default behavior. WPT tests cssom-view/scrollingElement-quirks-dynamic*.html
still fail; comparing with Chromium's code, we might need to propagate the style of <html>
and <body> to the viewport element. Behaviors for other scrolling attributes will be changed
in follow-up bugs.

Tests: fast/dom/Document/scrollingElement-quirks-mode.html

fast/dom/Document/scrollingElement-standard-mode.html

  • dom/Document.cpp:

(WebCore::Document::isBodyPotentiallyScrollable): Helper function to verify whether the body
is potentially scrollable, as defined by the CSSOM View spec. It seems that
RenderObject::hasOverflowClip() may return incorrect value at this point and we might need
to do something similar to Chromium's style propagation to make it work. For now, we just
use the computed style. See bug 182292.
(WebCore::Document::scrollingElement): When CSSOMViewScrollingAPIEnabled is enabled, we
implement the algorithm of the CSSOM View spec.
(WebCore::Document::body const): Verify that the root is actually a <html> element or
otherwise return null. This is required by the CSSOM View spec and for WPT test
scrollingElement.html. It is consistent with bodyOrFrameset().

  • dom/Document.h: Add spec references for body() and bodyOrFrameset() and declare

isBodyPotentiallyScrollable().

  • page/Settings.yaml: Add developer option for enabling the CSSOM View behavior.
  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::isOverflowVisible const): Add helper function to check whether the
style implies visible overflow.

Source/WebKit:

Add developer flag to use standard behavior for scrolling* attributes.

  • Shared/WebPreferences.yaml:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetCSSOMViewScrollingAPIEnabled):
(WKPreferencesGetCSSOMViewScrollingAPIEnabled):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:

Source/WebKitLegacy/mac:

Add developer flag to use standard behavior for scrolling* attributes.

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences CSSOMViewScrollingAPIEnabled]):
(-[WebPreferences setCSSOMViewScrollingAPIEnabled:]):

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Source/WebKitLegacy/win:

Add developer flag to use standard behavior for scrolling* attributes.

  • Interfaces/IWebPreferencesPrivate.idl:
  • WebPreferenceKeysPrivate.h:
  • WebPreferences.cpp:

(WebPreferences::initializeDefaultSettings):
(WebPreferences::CSSOMViewScrollingAPIEnabled):
(WebPreferences::setCSSOMViewScrollingAPIEnabled):

  • WebPreferences.h:
  • WebView.cpp:

(WebView::notifyPreferencesChanged):

Tools:

Add FIXMEs comments to add the new developer flag in the future and disable it for now.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(enableExperimentalFeatures):
(resetWebPreferencesToConsistentValues):

  • DumpRenderTree/win/DumpRenderTree.cpp:

(enableExperimentalFeatures):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):

LayoutTests:

Add a test to check that in Quirks mode, the <body> element returned by
document.scrollingElement is indeed a child of a <html> root (i.e. in the HTML namespace).
Adjust scrollingElement*.html tests so that they are executed with the flag
CSSOMViewScrollingAPI enabled and update expectations now that these tests pass.

  • fast/dom/Document/scrollingElement-quirks-mode.html:
  • fast/dom/Document/scrollingElement-quirks-mode-expected.txt:
  • fast/dom/Document/scrollingElement-standards-mode.html:
  • fast/dom/Document/scrollingElement-standards-mode-expected.txt:
12:45 AM Changeset in webkit [235538] by sbarati@apple.com
  • 6 edits
    1 add in trunk

convertToRegExpMatchFastGlobal must use KnownString as the child use kind
https://bugs.webkit.org/show_bug.cgi?id=189173
<rdar://problem/43501645>

Reviewed by Michael Saboff.

JSTests:

  • stress/may-exit-should-be-false-regexp-constant-folding.js: Added.

(foo):
(bar):

Source/JavaScriptCore:

We were crashing during validation because mayExit returned true
at a point in the program when we weren't allowed to exit.

The issue was is in StrengthReduction: we end up emitting code that
had a StringUse on an edge after a node that did side effects and before
an ExitOK/bytecode number transition. However, StrenghReduction did the
right thing here and also emitted the type checks before the node with
side effects. It just did bad bookkeeping. The node we convert to needs
to use KnownStringUse instead of StringUse for the child edge.

  • dfg/DFGNode.cpp:

(JSC::DFG::Node::convertToRegExpExecNonGlobalOrStickyWithoutChecks):
(JSC::DFG::Node::convertToRegExpMatchFastGlobalWithoutChecks):
(JSC::DFG::Node::convertToRegExpExecNonGlobalOrSticky): Deleted.
(JSC::DFG::Node::convertToRegExpMatchFastGlobal): Deleted.

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

(JSC::DFG::StrengthReductionPhase::handleNode):

Note: See TracTimeline for information about the timeline view.