Timeline



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):

Aug 30, 2018:

9:27 PM Changeset in webkit [235537] by Alan Bujtas
  • 3 edits
    2 adds in trunk

CounterMaps should hold a unique_ptr of CounterMap.
https://bugs.webkit.org/show_bug.cgi?id=189174
<rdar://problem/43686458>

Reviewed by Ryosuke Niwa.

Source/WebCore:

In certain cases calls to CounterMaps might lead to unexpected deletion of the CounterMap object.

Test: fast/css/counters/crash-when-cloning-body.html

  • rendering/RenderCounter.cpp:

(WebCore::makeCounterNode):
(WebCore::destroyCounterNodeWithoutMapRemoval):
(WebCore::RenderCounter::destroyCounterNodes):
(WebCore::RenderCounter::destroyCounterNode):
(WebCore::updateCounters):
(showCounterRendererTree):

LayoutTests:

  • fast/css/counters/crash-when-cloning-body-expected.txt: Added.
  • fast/css/counters/crash-when-cloning-body.html: Added.
9:17 PM Changeset in webkit [235536] by Ross Kirsling
  • 2 edits in trunk/Source/WebCore

Speculative build fix for WPE after r235531.

  • platform/graphics/filters/PointLightSource.cpp:

Add missing include.

7:26 PM Changeset in webkit [235535] by rniwa@webkit.org
  • 7 edits in trunk

Add assignedElements to HTMLSlotElement
https://bugs.webkit.org/show_bug.cgi?id=189146

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaselined the tests now that we're passing all test cases.

  • web-platform-tests/shadow-dom/slots-expected.txt:
  • web-platform-tests/shadow-dom/slots-fallback-expected.txt:

Source/WebCore:

Added assignedElements to HTMLSlotElement. For now, we simply filter the results returned by assignedNodes.

Also fixed a bug that assignedNodes was returning the fallback content when the slot is not in a shadow tree,
which is specified in step 2 of the concept to find flattened slotables for a slot.

Spec: https://html.spec.whatwg.org/multipage/scripting.html#dom-slot-assignedelements

https://dom.spec.whatwg.org/#find-flattened-slotables

Tests: imported/w3c/web-platform-tests/shadow-dom/slots.html

imported/w3c/web-platform-tests/shadow-dom/slots-fallback.html

  • html/HTMLSlotElement.cpp:

(WebCore::flattenAssignedNodes): Updated to take Vector<Ref<Node>> for consistency.
(WebCore::HTMLSlotElement::assignedNodes const): Ditto.
(WebCore::HTMLSlotElement::assignedElements const):

  • html/HTMLSlotElement.h:
  • html/HTMLSlotElement.idl:
6:03 PM Changeset in webkit [235534] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

One more build fix

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView shareSheetDidDismiss:]):
Actually tested this time.

5:39 PM Changeset in webkit [235533] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

[WHLSL] Fix array indexing behavior
https://bugs.webkit.org/show_bug.cgi?id=189175

Array, pointer, and array ref types are now parsed and then constructed
in reverse so that the declaration order matches the indexing order, as
in C/C++.

Patch by Thomas Denney <tdenney@apple.com> on 2018-08-30
Reviewed by Myles C. Maxfield.

  • WebGPUShadingLanguageRI/Parse.js:

(parseType):

  • WebGPUShadingLanguageRI/Test.js:
4:32 PM Changeset in webkit [235532] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Add WKPageLoadFile SPI variant which returns a navigation object
https://bugs.webkit.org/show_bug.cgi?id=189168
<rdar://problem/43899330>

Reviewed by Alex Christensen.

Add WKPageLoadFile SPI variant which returns a navigation object, similarly to WKPageLoadURLRequestReturningNavigation().
This is needed in order to implement <rdar://problem/40309266>.

  • UIProcess/API/C/mac/WKPagePrivateMac.h:
  • UIProcess/API/C/mac/WKPagePrivateMac.mm:

(WKPageLoadFileReturningNavigation):

4:28 PM Changeset in webkit [235531] by don.olmstead@sony.com
  • 15 edits
    1 delete in trunk

[CMake] Replace AVFoundationSupport.py using CMake
https://bugs.webkit.org/show_bug.cgi?id=182891

Reviewed by Per Arne Vollan.

.:

Adds CMake checks for AVFoundation support replacing the functionality
of AVFoundationSupport.py.

CMake is used to detect the symbols expected with the HAVE_* checks for
AVFoundation support. This involves creating source files that will be
built which verifies the presence of symbols. For Apple frameworks it
is customary to include the main framework file which includes the
other associated headers.

The check for HAVE_AVCFPLAYERITEM_CALLBACK_VERSION_2 involves looking
for an enumeration which a symbol check cannot detect. Instead a small
program is used which will compile and link when the version 2
enumeration is present.

  • Source/cmake/OptionsAppleWin.cmake:
  • Source/cmake/OptionsWin.cmake:
  • Source/cmake/WebKitCommon.cmake:
  • Source/cmake/WebKitFeatures.cmake:

Source/WebCore:

No new tests. No change in behavior.

Remove refernces to PAL derived sources.

  • PlatformWin.cmake:
  • config.h:

Source/WebCore/PAL:

Remove AVFoundationSupport.py file and its invocation.

  • AVFoundationSupport.py: Removed.
  • config.h:
  • pal/PlatformWin.cmake:

Source/WebKitLegacy/win:

Remove references to the config.h contained in WebCore as it should
not be accessible from outside of WebCore.

  • WebKitPrefix.h:

Source/WTF:

Rely on CMake values for the added HAVE_* checks.

  • wtf/Platform.h:
4:10 PM Changeset in webkit [235530] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Try to fix the watchOS and tvOS build

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _showShareSheet:completionHandler:]):
(-[WKContentView shareSheetDidDismiss:]):

4:00 PM WebKitGTK/2.22.x edited by Michael Catanzaro
(diff)
3:55 PM Changeset in webkit [235529] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebKit

[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:
3:50 PM Changeset in webkit [235528] by Wenson Hsieh
  • 2 edits in trunk/Tools

Followup to [iOS] TestWebKitAPI.PasteImage tests are flaky failures
https://bugs.webkit.org/show_bug.cgi?id=185965

Reviewed by Andy Estes.

The first attempt to fix these flaky tests on iOS caused timeouts on macOS while waiting for a "loaded" message
from the page. To (hopefully) fix this across both platforms, make sure that we first register our script
message handlers in the UI process *before* evaluating script that could propagate the script message.

  • TestWebKitAPI/Tests/WebKitCocoa/PasteImage.mm:

(-[TestWKWebView waitForMessage:afterEvaluatingScript:]):
(TEST):

3:37 PM Changeset in webkit [235527] by sbarati@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

Switch int8_t to GPRReg in StructureStubInfo because sizeof(GPRReg) == sizeof(int8_t)
https://bugs.webkit.org/show_bug.cgi?id=189166

Reviewed by Mark Lam.

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateImpl):

  • bytecode/GetterSetterAccessCase.cpp:

(JSC::GetterSetterAccessCase::emitDOMJITGetter):

  • bytecode/InlineAccess.cpp:

(JSC::getScratchRegister):

  • bytecode/PolymorphicAccess.cpp:

(JSC::PolymorphicAccess::regenerate):

  • bytecode/StructureStubInfo.h:

(JSC::StructureStubInfo::valueRegs const):

  • jit/JITInlineCacheGenerator.cpp:

(JSC::JITByIdGenerator::JITByIdGenerator):
(JSC::JITGetByIdWithThisGenerator::JITGetByIdWithThisGenerator):
(JSC::JITInstanceOfGenerator::JITInstanceOfGenerator):

3:36 PM Changeset in webkit [235526] by bshafiei@apple.com
  • 21 edits in tags/Safari-607.1.4/Source/WebKit

Cherry-pick r235511. rdar://problem/43906230

Unreviewed, rolling out r235413 and r235444.
https://bugs.webkit.org/show_bug.cgi?id=189163

Causes crashes when running layout tests under GuardMalloc
(Requested by ryanhaddad on #webkit).

Reverted changesets:

"NetworkLoad::didReceiveResponse should pass its completion
handler to its client"
https://bugs.webkit.org/show_bug.cgi?id=188701
https://trac.webkit.org/changeset/235413

"Remove assertion introduced in r235413"
https://bugs.webkit.org/show_bug.cgi?id=188701
https://trac.webkit.org/changeset/235444

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

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

[WHLSL] Implement tests to verify array indexing order matches our desires
https://bugs.webkit.org/show_bug.cgi?id=189099

Patch by Thomas Denney <tdenney@apple.com> on 2018-08-30
Reviewed by Myles C. Maxfield.

  • WebGPUShadingLanguageRI/Test.js: Add new test for array indexing order

and the option to explicitly disable tests (this test is disabled by
default).

  • WebGPUShadingLanguageRI/TypeRef.js:

(TypeRef.wrap): Fixes typo.

2:33 PM Changeset in webkit [235524] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

REGRESSION(r235489): fast/dom/navigator-detached-no-crash.html crashes under Navigator::share
https://bugs.webkit.org/show_bug.cgi?id=189170

Patch by Olivia Barnett <obarnett@apple.com> on 2018-08-30
Reviewed by Tim Horton.

No new tests; fixing a failing existing test.

  • page/Navigator.cpp:

(WebCore::Navigator::share):
Added null check for frame.

2:28 PM Abandoned documents edited by Simon Fraser
(diff)
2:26 PM Abandoned documents edited by Simon Fraser
(diff)
1:54 PM Changeset in webkit [235523] by Truitt Savell
  • 3 edits
    2 deletes in trunk

Unreviewed, rolling out r235516.

Caused 50 Crashes on Sierra

Reverted changeset:

"The width of a nullptr TextRun should be zero"
https://bugs.webkit.org/show_bug.cgi?id=189154
https://trac.webkit.org/changeset/235516

1:47 PM Changeset in webkit [235522] by bshafiei@apple.com
  • 2 edits in tags/Safari-607.1.4/Source/WebCore

Revert r235363. rdar://problem/43899483

1:31 PM Changeset in webkit [235521] by timothy_horton@apple.com
  • 56 edits in trunk/Source

Bundle unified sources more tightly in projects with deep directory structures
https://bugs.webkit.org/show_bug.cgi?id=189009

Reviewed by Simon Fraser.

  • Scripts/generate-unified-source-bundles.rb:

It turns out our plan to switch unified source bundle every time the directory
changes is not a good fit for projects like WebKit2 with many small directories.
It leaves many unified source bundles with only a single source file,
achieving only ~40% density.

Instead, switch unified source bundles every time the top-level directory changes.
This still achieves the goal of *usually* only rebuilding the one top-level
directory you touched, and increases source bundle density wildly, to ~95%.

Fix a variety of unification errors due to reshuffling the bundles.

  • Modules/mediastream/RTCController.cpp:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • crypto/algorithms/CryptoAlgorithmECDSA.cpp:

(WebCore::CryptoAlgorithmECDSA::importKey):

  • dom/Document.h:
  • html/parser/HTMLTreeBuilder.cpp:
  • loader/appcache/ApplicationCacheResourceLoader.h:
  • page/AlternativeTextClient.h:
  • platform/Pasteboard.h:
  • platform/graphics/DisplayRefreshMonitor.cpp:
  • platform/graphics/FontFamilySpecificationNull.cpp:
  • platform/graphics/cocoa/WebGLLayer.mm:

(-[WebGLLayer initWithGraphicsContext3D:]):
(-[WebGLLayer copyImageSnapshotWithColorSpace:]):
(-[WebGLLayer display]):
(-[WebGLLayer allocateIOSurfaceBackingStoreWithSize:usingAlpha:]):

  • platform/graphics/cocoa/WebGPULayer.mm:

(-[WebGPULayer initWithGPUDevice:]):

  • platform/graphics/metal/GPUCommandQueueMetal.mm:
  • platform/mac/PasteboardMac.mm:
  • platform/mediastream/mac/DisplayCaptureManagerCocoa.cpp:
  • platform/network/ResourceRequestBase.cpp:
  • rendering/updating/RenderTreeBuilderBlockFlow.cpp:
  • rendering/updating/RenderTreeBuilderInline.cpp:
  • Shared/APIWebArchive.mm:
  • Shared/APIWebArchiveResource.mm:
  • Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:
  • Shared/Plugins/Netscape/mac/PluginInformationMac.mm:
  • SourcesCocoa.txt:
  • SourcesGTK.txt:
  • UIProcess/API/APIAutomationSessionClient.h:

(API::AutomationSessionClient::sessionIdentifier const):
(API::AutomationSessionClient::messageOfCurrentJavaScriptDialogOnPage):
(API::AutomationSessionClient::setUserInputForCurrentJavaScriptPromptOnPage):

  • UIProcess/Cocoa/LegacyCustomProtocolManagerClient.mm:

(-[WKCustomProtocolLoader initWithLegacyCustomProtocolManagerProxy:customProtocolID:request:]):
(-[WKCustomProtocolLoader connection:didFailWithError:]):
(-[WKCustomProtocolLoader connection:didReceiveResponse:]):

  • UIProcess/Plugins/PluginProcessProxy.cpp:

(WebKit::generatePluginProcessCallbackID):
(WebKit::PluginProcessProxy::fetchWebsiteData):
(WebKit::PluginProcessProxy::deleteWebsiteData):
(WebKit::PluginProcessProxy::deleteWebsiteDataForHostNames):
(WebKit::generateCallbackID): Deleted.

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:

(-[WKScrollingNodeScrollViewDelegate scrollViewWillEndDragging:withVelocity:targetContentOffset:]):

  • UIProcess/Storage/StorageProcessProxy.cpp:

(WebKit::generateStorageProcessCallbackID):
(WebKit::StorageProcessProxy::fetchWebsiteData):
(WebKit::StorageProcessProxy::deleteWebsiteData):
(WebKit::StorageProcessProxy::deleteWebsiteDataForOrigins):
(WebKit::generateCallbackID): Deleted.

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(-[WKPDFPluginAccessibilityObject accessibilityPerformAction:]):
(-[WKPDFPluginAccessibilityObject accessibilityFocusedUIElement]):
(-[WKPDFPluginAccessibilityObject accessibilityAssociatedControlForAnnotation:]):
(-[WKPDFPluginAccessibilityObject accessibilityHitTest:]):
(-[WKPDFLayerControllerDelegate updateScrollPosition:]):
(WebKit::PDFPlugin::updateCursor):
(WebKit::coreCursor):
(appendValuesInPDFNameSubtreeToVector): Deleted.
(getAllValuesInPDFNameTree): Deleted.
(getAllScriptsInPDFDocument): Deleted.

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

Fix the watchOS and tvOS build

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView cleanupInteraction]):
(-[WKContentView invokeShareSheetWithResolution:]):

1:01 PM Changeset in webkit [235519] by youenn@apple.com
  • 2 edits in trunk/LayoutTests

Remove WebRTC legacy API implementation
https://bugs.webkit.org/show_bug.cgi?id=189040
<rdar://problem/43861361>

Unreviewed.

  • platform/ios/TestExpectations: Use default expectations for the folder.

This allows skipping imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/setRemoteDescription.html

12:57 PM Changeset in webkit [235518] by aestes@apple.com
  • 16 edits
    5 copies in trunk

[Payment Request] Implement the PaymentMethodChangeEvent and PaymentMethodChangeEventInit interfaces
https://bugs.webkit.org/show_bug.cgi?id=189100

Reviewed by Daniel Bates.

LayoutTests/imported/w3c:

  • web-platform-tests/payment-request/PaymentMethodChangeEvent/methodDetails-attribute.https-expected.txt:
  • web-platform-tests/payment-request/PaymentMethodChangeEvent/methodName-attribute.https-expected.txt:
  • web-platform-tests/payment-request/onpaymentmenthodchange-attribute.https-expected.txt:

Source/WebCore:

Implement the PaymentMethodChangeEvent interface and PaymentMethodChangeEventInit dictionary
defined in the Payment Request API W3C Editor's Draft of 30 August 2018.

<https://w3c.github.io/payment-request/#paymentmethodchangeevent-interface>

The "payment method changed" algorithm will be implemented in a follow-up.

Covered by existing web platform tests.

  • CMakeLists.txt:
  • DerivedSources.make:
  • Modules/paymentrequest/PaymentMethodChangeEvent.cpp: Added.

(WebCore::PaymentMethodChangeEvent::eventInterface const):
(WebCore::PaymentMethodChangeEvent::PaymentMethodChangeEvent):

  • Modules/paymentrequest/PaymentMethodChangeEvent.h: Added.
  • Modules/paymentrequest/PaymentMethodChangeEvent.idl: Added.
  • Modules/paymentrequest/PaymentMethodChangeEventInit.h: Added.
  • Modules/paymentrequest/PaymentMethodChangeEventInit.idl: Added.
  • Modules/paymentrequest/PaymentRequest.idl:
  • Modules/paymentrequest/PaymentRequestUpdateEvent.cpp:

(WebCore::PaymentRequestUpdateEvent::PaymentRequestUpdateEvent):

  • Modules/paymentrequest/PaymentRequestUpdateEvent.h:
  • Modules/paymentrequest/PaymentRequestUpdateEventInit.h:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • dom/EventNames.h:
  • dom/EventNames.in:
12:46 PM Changeset in webkit [235517] by sbarati@apple.com
  • 11 edits in trunk/Source/JavaScriptCore

InlineAccess should do StringLength
https://bugs.webkit.org/show_bug.cgi?id=158911

Reviewed by Yusuke Suzuki.

This patch extends InlineAccess to support StringLength. This patch also
fixes AccessCase::fromStructureStubInfo to support ArrayLength and StringLength.
I forgot to implement this for ArrayLength in the initial InlineAccess
implementation. Supporting StringLength is a natural extension of the
InlineAccess machinery.

  • assembler/MacroAssembler.h:

(JSC::MacroAssembler::patchableBranch8):

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::patchableBranch8):

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::fromStructureStubInfo):

  • bytecode/BytecodeDumper.cpp:

(JSC::BytecodeDumper<Block>::printGetByIdCacheStatus):

  • bytecode/InlineAccess.cpp:

(JSC::InlineAccess::dumpCacheSizesAndCrash):
(JSC::InlineAccess::generateSelfPropertyAccess):
(JSC::getScratchRegister):
(JSC::InlineAccess::generateSelfPropertyReplace):
(JSC::InlineAccess::generateArrayLength):
(JSC::InlineAccess::generateSelfInAccess):
(JSC::InlineAccess::generateStringLength):

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

(JSC::PolymorphicAccess::regenerate):

  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::initStringLength):
(JSC::StructureStubInfo::deref):
(JSC::StructureStubInfo::aboutToDie):
(JSC::StructureStubInfo::propagateTransitions):

  • bytecode/StructureStubInfo.h:

(JSC::StructureStubInfo::baseGPR const):

  • jit/Repatch.cpp:

(JSC::tryCacheGetByID):

12:37 PM Changeset in webkit [235516] by Brent Fulgham
  • 3 edits
    2 adds in trunk

The width of a nullptr TextRun should be zero
https://bugs.webkit.org/show_bug.cgi?id=189154
<rdar://problem/43685926>

Reviewed by Zalan Bujtas.

Source/WebCore:

If a page has an empty TextRun and attempts to paint it we can crash with a nullptr.

This patch recognizes that an empty TextRun should always produce a zero width, rather than
attempt to compute this value from font data.

Test: fast/text/null-string-textrun.html

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::widthOfTextRange const): An empty TextRun has zero width.
(WebCore::FontCascade::width const): Ditto.
(WebCore::FontCascade::codePath const): ASSERT that the TextRun is non-empty.

LayoutTests:

  • fast/text/null-string-textrun-expected.txt: Added.
  • fast/text/null-string-textrun.html: Added.
12:27 PM Changeset in webkit [235515] by sbarati@apple.com
  • 6 edits
    2 adds in trunk

CSE DataViewGet* DFG nodes
https://bugs.webkit.org/show_bug.cgi?id=188768

Reviewed by Yusuke Suzuki.

JSTests:

  • microbenchmarks/dataview-cse.js: Added.

(assert):
(test):

  • stress/dataview-get-cse.js: Added.

(assert):
(test1.foo):
(test1):
(test2.foo):
(test2):
(test3.foo):
(test3):
(test4.foo):
(test4):
(test5.foo):
(test5):
(test6.foo):
(test6):

Source/JavaScriptCore:

This patch makes it so that we CSE DataViewGet* accesses. To do this,
I needed to add a third descriptor to HeapLocation to represent the
isLittleEndian child. This patch is neutral on compile time benchmarks,
and is a 50% speedup on a trivial CSE microbenchmark that I added.

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGHeapLocation.cpp:

(WTF::printInternal):

  • dfg/DFGHeapLocation.h:

(JSC::DFG::HeapLocation::HeapLocation):
(JSC::DFG::HeapLocation::hash const):
(JSC::DFG::HeapLocation::operator== const):
(JSC::DFG::indexedPropertyLocForResultType):

12:05 PM Changeset in webkit [235514] by yusukesuzuki@slowstart.org
  • 4 edits
    1 add in trunk

output of toString() of Generator is wrong
https://bugs.webkit.org/show_bug.cgi?id=188952

Reviewed by Saam Barati.

JSTests:

  • stress/function-to-string.js: Added.

(shouldBe):
(shouldBe.test):
(test):
(shouldBe.async.test):
(async.test):
(shouldBe.async):
(async):

  • test262/expectations.yaml:

Source/JavaScriptCore:

Function#toString does not respect generator and async generator.
This patch fixes them and supports all the function types.

  • runtime/FunctionPrototype.cpp:

(JSC::functionProtoFuncToString):

12:03 PM Changeset in webkit [235513] by eric.carlson@apple.com
  • 33 edits
    2 adds
    2 deletes in trunk

Mock video devices should only support discrete sizes
https://bugs.webkit.org/show_bug.cgi?id=189000
<rdar://problem/43766551>

Reviewed by Youenn Fablet.
Source/WebCore:

While many/most video capture devices only support a finite number of discrete width/height
pairs, our mock video capture devices supported arbitrary width and height combinations which
made it difficult to write realistic tests using them. Change the mock devices to support
finite "presets" like those supported by AVFoundation. Create a RealtimeVideoSource base
class with support for these presets, so the same code will eventually be used by the mock
and real capture devices.

No new tests, existing tests updated for these changes.

  • Sources.txt: Add RealtimeVideoSource.cpp, remove MockRealtimeMediaSource.cpp.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • platform/mediastream/MediaConstraints.h: Deal with min constraint less than the supported minimum

and max larger than the supported maximum when there is no ideal.

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::selectSettings): Use supportsSizeAndFrameRate for widths,
heights, and framerates in advanced constraints so a width and height that are supported but
in the same preset are filtered out.
(WebCore::RealtimeMediaSource::setSize): New.

  • platform/mediastream/RealtimeMediaSource.h:
  • platform/mediastream/RealtimeMediaSourceSettings.h: Remove an unneeded include.
  • platform/mediastream/RealtimeVideoSource.cpp: Added.

(WebCore::RealtimeVideoSource::RealtimeVideoSource):
(WebCore::RealtimeVideoSource::~RealtimeVideoSource):
(WebCore::RealtimeVideoSource::startProducingData):
(WebCore::RealtimeVideoSource::setSupportedFrameRates):
(WebCore::RealtimeVideoSource::addSupportedCapabilities const):
(WebCore::RealtimeVideoSource::supportsSizeAndFrameRate):
(WebCore::RealtimeVideoSource::bestSupportedCaptureSizeForWidthAndHeight):
(WebCore::RealtimeVideoSource::applySize):
(WebCore::RealtimeVideoSource::applySizeAndFrameRate):
(WebCore::RealtimeVideoSource::videoSampleAvailable):
(WebCore::RealtimeVideoSource::applyFrameRate):
(WebCore::RealtimeVideoSource::supportsFrameRate):

  • platform/mediastream/RealtimeVideoSource.h: Copied from Source/WebCore/platform/mock/MockRealtimeAudioSource.h.

(WebCore::RealtimeVideoSource::setSupportedCaptureSizes):
(WebCore::RealtimeVideoSource::setDefaultSize):
(WebCore::RealtimeVideoSource::observedFrameRate const):

  • platform/mediastream/mac/AVMediaCaptureSource.mm:

(WebCore::AVMediaCaptureSource::initializeSettings): Don't set label, it isn't used.

  • platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:

(WebCore::MockRealtimeVideoSourceMac::applySize): Call the base class.

  • platform/mock/MockMediaDevice.h:

(WebCore::MockCameraProperties::encode const): Add frame rates, sizes, and facing mode.
(WebCore::MockCameraProperties::decode): Ditto.

  • platform/mock/MockRealtimeAudioSource.cpp:

(WebCore::MockRealtimeAudioSource::MockRealtimeAudioSource): No more MockRealtimeMediaSource.
(WebCore::MockRealtimeAudioSource::settings const): Clean up.
(WebCore::MockRealtimeAudioSource::capabilities const): Ditto.
(WebCore::MockRealtimeAudioSource::settingsDidChange): Ditto.
(WebCore::MockRealtimeAudioSource::stopProducingData): m_elapsedTime isn't used, delete it.
(WebCore::MockRealtimeAudioSource::updateSettings): Deleted.
(WebCore::MockRealtimeAudioSource::initializeCapabilities): Deleted.
(WebCore::MockRealtimeAudioSource::initializeSupportedConstraints): Deleted.
(WebCore::MockRealtimeAudioSource::elapsedTime): Deleted.

  • platform/mock/MockRealtimeAudioSource.h:
  • platform/mock/MockRealtimeMediaSourceCenter.cpp: Moved all of the mock device management

code from MockRealtimeMediaSource.cpp here.
(WebCore::defaultDevices):
(WebCore::devices):
(WebCore::deviceMap):
(WebCore::deviceListForDevice):
(WebCore::createCaptureDevice):
(WebCore::MockRealtimeMediaSourceCenter::resetDevices):
(WebCore::MockRealtimeMediaSourceCenter::setDevices):
(WebCore::MockRealtimeMediaSourceCenter::addDevice):
(WebCore::MockRealtimeMediaSourceCenter::removeDevice):
(WebCore::MockRealtimeMediaSourceCenter::mockDeviceWithPersistentID):
(WebCore::MockRealtimeMediaSourceCenter::captureDeviceWithPersistentID):
(WebCore::MockRealtimeMediaSourceCenter::audioDevices):
(WebCore::MockRealtimeMediaSourceCenter::videoDevices):
(WebCore::MockRealtimeMediaSourceCenter::displayDevices):

  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::MockRealtimeVideoSource): Use RealtimeVideoSource, no
more MockRealtimeMediaSource.
(WebCore::MockRealtimeVideoSource::capabilities const): Ditto, cleanup.
(WebCore::MockRealtimeVideoSource::settings const): Ditto.
(WebCore::MockRealtimeVideoSource::settingsDidChange): Ditto.
(WebCore::MockRealtimeVideoSource::startCaptureTimer): Ditto.
(WebCore::MockRealtimeVideoSource::startProducingData): Ditto.
(WebCore::MockRealtimeVideoSource::stopProducingData): Ditto.
(WebCore::MockRealtimeVideoSource::elapsedTime): Ditto.
(WebCore::MockRealtimeVideoSource::applySize): Ditto.
(WebCore::MockRealtimeVideoSource::drawText): Render the actual frame rate.
(WebCore::MockRealtimeVideoSource::generateFrame): Use m_fillColor.
(WebCore::MockRealtimeVideoSource::~MockRealtimeVideoSource): Deleted.
(WebCore::MockRealtimeVideoSource::updateSettings): Deleted.
(WebCore::MockRealtimeVideoSource::initializeCapabilities): Deleted.
(WebCore::MockRealtimeVideoSource::initializeSupportedConstraints): Deleted.
(WebCore::MockRealtimeVideoSource::applyFrameRate): Deleted.

  • platform/mock/MockRealtimeVideoSource.h:

(WebCore::MockRealtimeVideoSource::updateSampleBuffer): Deleted.

Source/WebKit:

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::resetMockMediaDevices):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::resetMockMediaDevices):

LayoutTests:

Updated tests and results now that we have better support for width and height constraints.

  • fast/mediastream/MediaDevices-getUserMedia.html:
  • fast/mediastream/MediaStreamTrack-getCapabilities-expected.txt:
  • fast/mediastream/apply-constraints-advanced-expected.txt:
  • fast/mediastream/apply-constraints-advanced.html:
  • fast/mediastream/apply-constraints-video-expected.txt:
  • fast/mediastream/apply-constraints-video.html:
  • fast/mediastream/getUserMedia-default-expected.txt:
  • fast/mediastream/getUserMedia-default.html:
  • imported/w3c/web-platform-tests/mediacapture-streams/MediaStreamTrack-getSettings.https-expected.txt:
  • webrtc/video-interruption.html:
  • webrtc/video.html:
11:29 AM Changeset in webkit [235512] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebKit

Web Share API compatible with AppleTV and WatchOS
https://bugs.webkit.org/show_bug.cgi?id=189157

Patch by Olivia Barnett <obarnett@apple.com> on 2018-08-30
Reviewed by Tim Horton.

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

(-[WKContentView fileUploadPanelDidDismiss:]):

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

(-[WKShareSheet invokeShareSheetWithResolution:]):
Added platform checks.

11:21 AM Changeset in webkit [235511] by commit-queue@webkit.org
  • 21 edits in trunk/Source/WebKit

Unreviewed, rolling out r235413 and r235444.
https://bugs.webkit.org/show_bug.cgi?id=189163

Causes crashes when running layout tests under GuardMalloc
(Requested by ryanhaddad on #webkit).

Reverted changesets:

"NetworkLoad::didReceiveResponse should pass its completion
handler to its client"
https://bugs.webkit.org/show_bug.cgi?id=188701
https://trac.webkit.org/changeset/235413

"Remove assertion introduced in r235413"
https://bugs.webkit.org/show_bug.cgi?id=188701
https://trac.webkit.org/changeset/235444

11:13 AM Changeset in webkit [235510] by Basuke Suzuki
  • 2 edits in trunk/Source/WebKit

[Curl][WebKit] Bugfix on redirect.
https://bugs.webkit.org/show_bug.cgi?id=189056

Reviewed by Alex Christensen.

Forget to call updateFromDelegatePreservingOldProperties in continueWillSendRequest like other ports do.

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::continueWillSendRequest):

10:03 AM Changeset in webkit [235509] by sihui_liu@apple.com
  • 2 edits in trunk/Tools

WKNavigation.ProcessCrashDuringCallback is failing on iOS
https://bugs.webkit.org/show_bug.cgi?id=189148

Reviewed by Chris Dumez.

We should not deference WebView or we may get WKErrorWebViewInvalidated error, because
WebView could be destroyed before Web Process termination is noticed.

  • TestWebKitAPI/Tests/WebKitCocoa/WebContentProcessDidTerminate.mm:

(TEST):

9:53 AM Changeset in webkit [235508] by youenn@apple.com
  • 2 edits in trunk/LayoutTests

fast/mediastream/RTCPeerConnection-overloaded-operations.html is flaky after r235484
https://bugs.webkit.org/show_bug.cgi?id=189155

Reviewed by Eric Carlson.

  • fast/mediastream/RTCPeerConnection-overloaded-operations.html:

createOffer/createAnswer will now reject promises if callbacks are passed as parameters.
Make sure that these promises are handled.

9:35 AM Changeset in webkit [235507] by Aditya Keerthi
  • 2 edits in trunk/Source/WebKit

[macOS] Color picker layout is broken if suggested colors are specified
https://bugs.webkit.org/show_bug.cgi?id=189117

Reviewed by Tim Horton.

NSPopoverColorWell recently changed the size of its swatches. We need to update
the width of the swatches we provide to match the width of the other swatches,
in order to avoid breaking the layout.

While such a solution is not a good precedent, we do not have fully-functional SPI
to customize the suggested colors. A FIXME has been added for this reason.
However, even once we obtain SPI, we will need to find a way to support older
clients, making conditional compilation a potential necessity.

  • UIProcess/mac/WebColorPickerMac.mm:
9:30 AM Changeset in webkit [235506] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[macOS] Whitelist Network process features for VPN
https://bugs.webkit.org/show_bug.cgi?id=189023
<rdar://problem/43310000>

Reviewed by Eric Carlson.

CFNetwork needs access to some VPN preference files to configure networking, and
need to be allowed to communicate with the VPN process from the Network Process
sandbox.

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
7:44 AM Changeset in webkit [235505] by Alan Bujtas
  • 9 edits
    8 adds in trunk

Source/WebCore:
[LFC][Floating] Block formatting context roots avoid floats.
https://bugs.webkit.org/show_bug.cgi?id=189150

Reviewed by Antti Koivisto.

This patch implements the float avoiding behaviour for block formatting context roots.

When a box establishes a block formatting context, floats from outside of the context can't interfere with content inside. In order
to achive this, such formatting root boxes need to be positioned so that they don't overlap with floats (floats that share the same
context with the formatting root). In ltr block direction, roots start with avoiding floats on the left, while in rtl on the right.

Tests: fast/block/block-only/float-avoider-multiple-roots.html

fast/block/block-only/float-avoider-simple-left.html
fast/block/block-only/float-avoider-simple-right.html
fast/block/block-only/float-avoider-with-margins.html

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot const):
(WebCore::Layout::BlockFormattingContext::computeEstimatedMarginTopForAncestors const):
(WebCore::Layout::BlockFormattingContext::computePositionToAvoidFloats const):

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/floats/FloatAvoider.cpp:

(WebCore::Layout::FloatAvoider::FloatAvoider):

  • layout/floats/FloatingContext.cpp:

(WebCore::Layout::FloatingContext::positionForFloatAvoiding const):

  • layout/floats/FloatingContext.h:

Tools:
[LFC][Floating] Formatting context roots avoid floats.
https://bugs.webkit.org/show_bug.cgi?id=189150

Reviewed by Antti Koivisto.

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

LayoutTests:
[LFC][Floating] Formatting context roots avoid floats.
https://bugs.webkit.org/show_bug.cgi?id=189150

Reviewed by Antti Koivisto.

  • fast/block/block-only/float-avoider-multiple-roots-expected.txt: Added.
  • fast/block/block-only/float-avoider-multiple-roots.html: Added.
  • fast/block/block-only/float-avoider-simple-left-expected.txt: Added.
  • fast/block/block-only/float-avoider-simple-left.html: Added.
  • fast/block/block-only/float-avoider-simple-right-expected.txt: Added.
  • fast/block/block-only/float-avoider-simple-right.html: Added.
  • fast/block/block-only/float-avoider-with-margins-expected.txt: Added.
  • fast/block/block-only/float-avoider-with-margins.html: Added.
7:35 AM Changeset in webkit [235504] by Wenson Hsieh
  • 2 edits in trunk/Tools

[iOS] TestWebKitAPI.PasteImage tests are flaky failures
https://bugs.webkit.org/show_bug.cgi?id=185965

Reviewed by Andy Estes.

These tests pass reliably when run locally, but sometimes fail in automation when checking that the image
element with its "src" attribute set to a new blob URL has an empty size. It's possible that this is happening
because we're checking the size of the image element prior to image load after setting the blob URL; we can fix
this by waiting for the "load" event (which is also done in some of the other tests in this file).

  • TestWebKitAPI/Tests/WebKitCocoa/PasteImage.mm:

(TEST):

7:32 AM Changeset in webkit [235503] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][Floating] Move containing block constraint logic from FloatAvoider to FloatingContext
https://bugs.webkit.org/show_bug.cgi?id=189145

Reviewed by Antti Koivisto.

When the float avoider is constrained horizontally, simply align it with the left/right edge of its containing block (with the combination of the constraints)
and check the overflow as part of the FloatingContext::floatingPosition() logic. It simplifies the constraint logic/helps implementing the non-float avoider
case.

  • layout/floats/FloatAvoider.cpp:

(WebCore::Layout::FloatAvoider::setHorizontalConstraints):
(WebCore::Layout::FloatAvoider::overflowsContainingBlock const):

  • layout/floats/FloatAvoider.h:
  • layout/floats/FloatingContext.cpp:

(WebCore::Layout::FloatingContext::floatingPosition const):

7:28 AM Changeset in webkit [235502] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][Floating] Use non-computed horizontal margins when intersecting floats with float avoiders.
https://bugs.webkit.org/show_bug.cgi?id=189143

Reviewed by Antti Koivisto.

  • layout/Verification.cpp:

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

  • layout/floats/FloatAvoider.cpp:

(WebCore::Layout::FloatAvoider::setHorizontalConstraints):
(WebCore::Layout::FloatAvoider::initialHorizontalPosition const):

  • layout/floats/FloatAvoider.h:

(WebCore::Layout::FloatAvoider::marginTop const):
(WebCore::Layout::FloatAvoider::marginBottom const):
(WebCore::Layout::FloatAvoider::marginLeft const):
(WebCore::Layout::FloatAvoider::marginRight const):
(WebCore::Layout::FloatAvoider::marginBoxWidth const):

  • layout/floats/FloatBox.cpp:

(WebCore::Layout::FloatBox::rect const):
(WebCore::Layout::FloatBox::horizontalPositionCandidate):
(WebCore::Layout::FloatBox::verticalPositionCandidate):
(WebCore::Layout::FloatBox::initialVerticalPosition const):

  • layout/floats/FloatBox.h:
7:25 AM Changeset in webkit [235501] by Alan Bujtas
  • 9 edits in trunk/Source/WebCore

[LFC][Margins] Add non-computed horizontal margins to DisplayBox
https://bugs.webkit.org/show_bug.cgi?id=189141

Reviewed by Antti Koivisto.

Inflow block boxes' horizontal margins extend all the way to the left/right edge of their containing block.
See https://www.w3.org/TR/CSS22/visudet.html#blockwidth for example
"...
10.3.3 Block-level, non-replaced elements in normal flow
'margin-left' + 'border-left-width' + 'padding-left' + 'width' + 'padding-right' + 'border-right-width' + 'margin-right' = width of containing block
..."

In certain cases (float avoiding) we need to know the original (non-extended) horiztonal margin values.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeFloatingWidthAndMargin const):
(WebCore::Layout::FormattingContext::computeOutOfFlowHorizontalGeometry const):

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::floatingNonReplacedWidthAndMargin):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedWidthAndMargin):

  • layout/LayoutContext.cpp:

(WebCore::Layout::LayoutContext::initializeRoot):

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

(WebCore::Layout::BlockFormattingContext::computeInFlowWidthAndMargin const):

  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedWidthAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowReplacedWidthAndMargin):

  • layout/displaytree/DisplayBox.h:

(WebCore::Display::Box::setHasValidHorizontalNonComputedMargin):
(WebCore::Display::Box::setHorizontalNonComputedMargin):
(WebCore::Display::Box::nonComputedMarginLeft const):
(WebCore::Display::Box::nonComputedMarginRight const):

7:22 AM WebKitGTK/2.22.x edited by Michael Catanzaro
(diff)
7:21 AM Changeset in webkit [235500] by Michael Catanzaro
  • 4 edits
    3 adds in trunk/Tools

Unreviewed, rolling out r235114.

ostree server deleted our commits?

Reverted changeset:

"[Flatpak] Update to GNOME master runtime"
https://bugs.webkit.org/show_bug.cgi?id=188731
https://trac.webkit.org/changeset/235114

7:01 AM Changeset in webkit [235499] by yoshiaki.jitsukawa@sony.com
  • 2 edits in trunk/Source/WebKit

[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:
3:24 AM Changeset in webkit [235498] by yusukesuzuki@slowstart.org
  • 2 edits in trunk/Source/WebCore

Unreviewed, add comments about enum names to bitfields
https://bugs.webkit.org/show_bug.cgi?id=188944

  • xml/XMLHttpRequest.h:
3:17 AM Changeset in webkit [235497] by yusukesuzuki@slowstart.org
  • 2 edits in trunk/Source/WebCore

Unreviewed, add comments about enum names to bitfields
https://bugs.webkit.org/show_bug.cgi?id=188945

  • html/HTMLCollection.h:

Aug 29, 2018:

10:05 PM Changeset in webkit [235496] by bshafiei@apple.com
  • 4 edits in tags/Safari-607.1.4/Source/WebKit

Cherry-pick r235492. rdar://problem/43860224

Revert some of r235398
https://bugs.webkit.org/show_bug.cgi?id=189133

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

  • UIProcess/API/APILoaderClient.h: (API::LoaderClient::processDidCrash): (API::LoaderClient::didChangeBackForwardList): (API::LoaderClient::didCommitLoadForFrame):
  • UIProcess/API/C/WKPage.cpp: (WKPageSetPageLoaderClient):
  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didChangeBackForwardList): (WebKit::WebPageProxy::didCommitLoadForFrame): (WebKit::WebPageProxy::dispatchProcessDidTerminate):

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

8:39 PM Changeset in webkit [235495] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Avoid code duplication in ResourceLoadStatisticsMemoryStore::processStatisticsAndDataRecords()
https://bugs.webkit.org/show_bug.cgi?id=189130

Reviewed by Youenn Fablet.

Move if check inside the lambda instead of outside to avoid code duplication.

  • UIProcess/ResourceLoadStatisticsMemoryStore.cpp:

(WebKit::ResourceLoadStatisticsMemoryStore::processStatisticsAndDataRecords):

7:26 PM Changeset in webkit [235494] by aestes@apple.com
  • 2 edits in trunk/Source/WebCore

Addressed additional review feedback after r235342.

  • Modules/applepay/ApplePayRequestBase.cpp:

(WebCore::convertAndValidate):

Used '"' instead of "\"" with makeString().

6:50 PM Changeset in webkit [235493] by mmaxfield@apple.com
  • 4 edits in trunk/Tools

[WHLSL] Test row-majorness of matrices
https://bugs.webkit.org/show_bug.cgi?id=189101

The matrix multiplication functions are temporarily commented out of the standard library,
so I've temporarily copy/pasted them into the test. Matrix multiplication is not
commutative, so it requires the right indexing order.

Reviewed by Dean Jackson and Thomas Denney.

  • WebGPUShadingLanguageRI/Intrinsics.js:
  • WebGPUShadingLanguageRI/StandardLibrary.js:

(let.standardLibrary):

  • WebGPUShadingLanguageRI/Test.js:
6:22 PM Changeset in webkit [235492] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit

Revert some of r235398
https://bugs.webkit.org/show_bug.cgi?id=189133

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

  • UIProcess/API/APILoaderClient.h:

(API::LoaderClient::processDidCrash):
(API::LoaderClient::didChangeBackForwardList):
(API::LoaderClient::didCommitLoadForFrame):

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageLoaderClient):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didChangeBackForwardList):
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::dispatchProcessDidTerminate):

6:20 PM Changeset in webkit [235491] by mark.lam@apple.com
  • 4 edits
    1 add in trunk

Add some missing exception checks in JSRopeString::resolveRopeToAtomicString().
https://bugs.webkit.org/show_bug.cgi?id=189132
<rdar://problem/42513068>

Reviewed by Saam Barati.

JSTests:

  • stress/regress-189132.js: Added.

Source/JavaScriptCore:

  • runtime/JSCJSValueInlines.h:

(JSC::JSValue::toPropertyKey const):

  • runtime/JSString.cpp:

(JSC::JSRopeString::resolveRopeToAtomicString const):

5:26 PM Changeset in webkit [235490] by Aditya Keerthi
  • 6 edits
    2 adds in trunk

[Datalist] Display prefix-matched suggestions first
https://bugs.webkit.org/show_bug.cgi?id=189106

Reviewed by Tim Horton.

Source/WebCore:

In order to increase suggestion relevancy, we should display suggestions that have
the same prefix as the input value first. In order to achieve this, we can place
the suggestions into two buckets, one that contains prefix-matched values and
another that contains only substring-matched values.

TextFieldInputType::suggestions() can be called up to three times before we
display the values. In order to avoid generating the same suggestions multiple
times, the most recent values can be stored and reused. We clear the cached values
whenever the datalist element is modified or when the suggestions view is hidden.

Finally, removed logic to de-duplicate the list of suggested values. This behavior
is not a part of the specification and leads to unnecessary slowdown when
populating the suggestions view.

Test: fast/forms/datalist/datalist-textinput-suggestions-order.html

  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::listAttributeTargetChanged):
(WebCore::TextFieldInputType::suggestions):
(WebCore::TextFieldInputType::didCloseSuggestions):

  • html/TextFieldInputType.h:
  • platform/DataListSuggestionsClient.h:

LayoutTests:

Added a test to verify that prefix-matched suggestions are shown before other
matches.

  • fast/forms/datalist/datalist-textinput-suggestions-order-expected.txt: Added.
  • fast/forms/datalist/datalist-textinput-suggestions-order.html: Added.
  • platform/ios/TestExpectations:
5:20 PM Changeset in webkit [235489] by commit-queue@webkit.org
  • 55 edits
    14 adds in trunk

Implement the Web Share API
https://bugs.webkit.org/show_bug.cgi?id=171100
<rdar://problem/31751734>

Patch by Olivia Barnett <obarnett@apple.com> on 2018-08-29
Reviewed by Tim Horton.

LayoutTests/imported/w3c:

  • web-platform-tests/web-share/idlharness.https-expected.txt:
  • web-platform-tests/web-share/share-empty.https-expected.txt:
  • web-platform-tests/web-share/share-securecontext.http-expected.txt:
  • web-platform-tests/web-share/share-url-invalid.https-expected.txt:
  • web-platform-tests/web-share/share-without-user-gesture.https-expected.txt:

Updated expected results.

Source/WebCore:

Added one test in fast/events/ios called share.html; adjusted expectations for existing tests.

  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • features.json:
  • loader/EmptyClients.cpp:

(WebCore::EmptyChromeClient::showShareSheet):

  • loader/EmptyClients.h:

Added empty showShareSheet function.

  • page/Chrome.cpp:

(WebCore::Chrome::showShareSheet):

  • page/Chrome.h:

Added call to showShareSheet on client.

  • page/ChromeClient.h:

Virtual showShareSheet function.

  • page/Navigator.cpp:

(WebCore::Navigator::share):

  • page/Navigator.h:

Share function that returns a promise and invokes the share sheet.

  • page/Navigator.idl:

Implements NavigatorShare

  • page/NavigatorShare.idl: Added.

Added definition of share function returning a promise.

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setWebShareEnabled):
(WebCore::RuntimeEnabledFeatures::webShareEnabled const):
Added RuntimeEnabledFeature switch.

  • page/ShareData.h: Added.
  • page/ShareData.idl: Added.

Definition of ShareData struct.

Source/WebKit:

  • Platform/spi/ios/UIKitSPI.h:

Added NSURL _title property as in the WebCore UIKitSPI.

  • Scripts/webkit/messages.py:

ShareDataWithParsedURL special case for header for type.

  • Shared/ShareSheetCallbackID.h:

Added a typedef for a share sheet callback id.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<ShareData>::encode):
(IPC::ArgumentCoder<ShareData>::decode):
(IPC::ArgumentCoder<ShareDataWithParsedURL>::encode):
(IPC::ArgumentCoder<ShareDataWithParsedURL>::decode):

  • Shared/WebCoreArgumentCoders.h:

Added encoding and decoding functionality for new structs.

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

(WKPreferencesSetWebShareEnabled):
(WKPreferencesGetWebShareEnabled):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:

Added switch for RuntimeEnabledFeature.

  • UIProcess/API/Cocoa/WKWebView.mm:
  • UIProcess/API/Cocoa/WKWebViewPrivate.h:

Added hook for share sheet testing.

  • UIProcess/PageClient.h:

(WebKit::PageClient::showShareSheet):
Page client call to invoke share sheet.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::showShareSheet):

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

Web page proxy handling of call to invoke share sheet.
Creates completion handler to send to WKShareSheet.mm
Completion handler sends message to WebPage with message id.

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

(WebKit::PageClientImpl::showShareSheet):
Page client implementation call to invoke share sheet.

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

(-[WKContentView cleanupInteraction]):
(-[WKContentView _showShareSheet:completionHandler:]):
(-[WKContentView shareSheetDidDismiss:]):
(-[WKContentView invokeShareSheetWithResolution:resolved):
Call to WKShareSheet to invoke the share sheet and callback.
Hook for share sheet resolution testing.

  • UIProcess/ios/forms/WKShareSheet.h: Added.
  • UIProcess/ios/forms/WKShareSheet.mm: Added.

(-[WKShareSheet initWithView:]):
(-[WKShareSheet presentWithParameters:completionHandler:]):
(-[WKShareSheet _dispatchDidDismiss]):
(-[WKShareSheet _cancel]):
(-[WKShareSheet dismiss]):
(-[WKShareSheet _dismissDisplayAnimated:]):
(-[WKShareSheet _presentFullscreenViewController:animated:]):
(-[WKShareSheet invokeShareSheetWithResolution:resolved:]):
Completion handler call and creation of share sheet with parameters.
Hook that force resolves the share sheet completion handler for testing.

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::showShareSheet):
Call to page to invoke share sheet.

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

(WebKit::nextShareSheetContextId):
(WebKit::WebPage::showShareSheet):
(WebKit::WebPage::showShareSheetResponse):
WebPage calls proxy and saves context id for promise.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Callback for completed response.

Source/WebKitLegacy/ios:

  • WebCoreSupport/WebChromeClientIOS.h:
  • WebCoreSupport/WebChromeClientIOS.mm:

(WebChromeClientIOS::showShareSheet):
Empty declaration of showShareSheet.

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebChromeClient.h:
  • WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::showShareSheet):
Empty declaration of showShareSheet.

LayoutTests:

  • fast/dom/navigator-detached-no-crash-expected.txt:

Updated expected results.

5:04 PM Changeset in webkit [235488] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Layout Test js/error-should-not-strong-reference-global-object.html is flaky on macOS
https://bugs.webkit.org/show_bug.cgi?id=187103

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations: Consolidate expectations.
4:41 PM Changeset in webkit [235487] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Crash under WebKit: WTF::Function<void ()>::CallableWrapper<WebKit::ResourceLoadStatisticsMemoryStore::removeDataRecords(WTF::CompletionHandler<void ()>&&)::$_1>::call()
https://bugs.webkit.org/show_bug.cgi?id=189098
<rdar://problem/43179891>

Reviewed by Youenn Fablet.

The crash was caused by implicitly using |this| on the main thread by accessing member variables, even though
|this| gets destroyed on the statistics queue. To address the issue, capture what we need on the statistics
queue, *before* dispatching to the main thread.

Also stop capturing |this| in the lambdas to make this less error prone.

  • UIProcess/ResourceLoadStatisticsMemoryStore.cpp:

(WebKit::ResourceLoadStatisticsMemoryStore::removeDataRecords):
(WebKit::ResourceLoadStatisticsMemoryStore::grandfatherExistingWebsiteData):
(WebKit::ResourceLoadStatisticsMemoryStore::updateCookieBlocking):

4:39 PM Changeset in webkit [235486] by jer.noble@apple.com
  • 2 edits in trunk/Tools

Unreviewed test gardening; NowPlayingTest API tests require High Sierra.

  • TestWebKitAPI/Tests/WebKitCocoa/NowPlaying.mm:
4:35 PM Changeset in webkit [235485] by dbates@webkit.org
  • 3 edits
    2 adds in trunk

REGRESSION (r226138): WebCore::subdivide() may return an empty vector; Web process can crash when performing find in Epiphany
https://bugs.webkit.org/show_bug.cgi?id=184390
<rdar://problem/41804994>
And
<rdar://problem/39771867>

Reviewed by Simon Fraser.

Source/WebCore:

Speculative fix for Epiphany.

In theory, WebCore::subdivide() should never return an empty vector - no subdivisions - as such a
result represents a programmer error. In practice, InlineTextBox can invoke WebCore::subdivide()
such that it returns an empty vector. One way this can happen is when subdividing an empty inline
text box associated with combined text (RenderCombineText). For now we add a check to bail out of
resolving the style of subdivisions when WebCore::subdivide() returns no subdivisions. In a
subsequent patch we will look to assert that WebCore::subdivide() always returns subdivisions.

Test: fast/text/text-combine-surroundContents-crash.html

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::subdivideAndResolveStyle):

LayoutTests:

Add a test to ensure that we do not crash when painting an empty inline text box associated
with combined text.

  • fast/text/text-combine-surroundContents-crash-expected.txt: Added.
  • fast/text/text-combine-surroundContents-crash.html: Added.
3:42 PM Changeset in webkit [235484] by youenn@apple.com
  • 74 edits
    23 deletes in trunk

Remove WebRTC legacy API implementation
https://bugs.webkit.org/show_bug.cgi?id=189040

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/mediacapture-streams/MediaDevices-IDL-all-expected.txt:
  • web-platform-tests/mediacapture-streams/MediaDevices-IDL-enumerateDevices-expected.txt:
  • web-platform-tests/mediacapture-streams/MediaStream-default-feature-policy.https-expected.txt:
  • web-platform-tests/webrtc/historical-expected.txt:
  • web-platform-tests/webrtc/no-media-call.html:
  • web-platform-tests/webrtc/simplecall.https.html:

Source/WebCore:

This API is no longer needed as the runtime flag is off by default.
Removing this option allows removing some code and will ease future WebRTC improvements.
Covered by existing tests.

  • CMakeLists.txt:
  • DerivedSources.make:
  • Modules/mediastream/MediaStreamEvent.cpp: Removed.
  • Modules/mediastream/MediaStreamEvent.h: Removed.
  • Modules/mediastream/MediaStreamEvent.idl: Removed.
  • Modules/mediastream/NavigatorUserMedia.idl: Removed.
  • Modules/mediastream/NavigatorUserMedia.js: Removed.
  • Modules/mediastream/PeerConnectionBackend.cpp:
  • Modules/mediastream/PeerConnectionBackend.h:
  • Modules/mediastream/RTCPeerConnection.h:
  • Modules/mediastream/RTCPeerConnection.idl:
  • Modules/mediastream/RTCPeerConnection.js:

(initializeRTCPeerConnection):
(createOffer):
(createAnswer):
(setLocalDescription):
(setRemoteDescription):
(addIceCandidate):
(getLocalStreams): Deleted.
(getStreamById): Deleted.
(addStream): Deleted.
(): Deleted.

  • Modules/mediastream/RTCPeerConnectionInternals.js:

(callbacksAndDictionaryOverload):
(if): Deleted.

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::mediaStreamFromRTCStream):
(WebCore::LibWebRTCMediaEndpoint::addRemoteStream):
(WebCore::LibWebRTCMediaEndpoint::removeRemoteStream):

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

(WebCore::LibWebRTCPeerConnectionBackend::doStop):
(WebCore::LibWebRTCPeerConnectionBackend::removeRemoteStream): Deleted.
(WebCore::LibWebRTCPeerConnectionBackend::addRemoteStream): Deleted.

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSDOMGlobalObject::addBuiltinGlobals):
(WebCore::isWebRTCLegacyAPIEnabled): Deleted.

  • bindings/js/WebCoreBuiltinNames.h:
  • dom/EventNames.in:
  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setPeerConnectionEnabled):
(WebCore::RuntimeEnabledFeatures::webRTCLegacyAPIEnabled const): Deleted.
(WebCore::RuntimeEnabledFeatures::setWebRTCLegacyAPIEnabled): Deleted.

Source/WebKit:

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

(WKPreferencesSetWebRTCLegacyAPIEnabled): Deleted.
(WKPreferencesGetWebRTCLegacyAPIEnabled): Deleted.

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

(-[WKPreferences _webRTCLegacyAPIEnabled]): Deleted.
(-[WKPreferences _setWebRTCLegacyAPIEnabled:]): Deleted.

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):

Source/WebKitLegacy/mac:

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

(+[WebPreferences initialize]):
(-[WebPreferences webRTCLegacyAPIEnabled]): Deleted.
(-[WebPreferences setWebRTCLegacyAPIEnabled:]): Deleted.

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

(-[WebView _preferencesChanged:]):

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(enableExperimentalFeatures):

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setWebRTCLegacyAPIEnabled): Deleted.

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):

LayoutTests:

  • TestExpectations:
  • fast/events/constructors/media-stream-event-constructor-expected.txt: Removed.
  • fast/events/constructors/media-stream-event-constructor.html: Removed.
  • fast/mediastream/RTCPeerConnection-AddRemoveStream-expected.txt: Removed.
  • fast/mediastream/RTCPeerConnection-AddRemoveStream.html: Removed.
  • fast/mediastream/RTCPeerConnection-createAnswer-expected.txt:
  • fast/mediastream/RTCPeerConnection-createAnswer.html:
  • fast/mediastream/RTCPeerConnection-createOffer-expected.txt: Removed.
  • fast/mediastream/RTCPeerConnection-createOffer.html: Removed.
  • fast/mediastream/RTCPeerConnection-dtmf.html: Removed.
  • fast/mediastream/RTCPeerConnection-events-expected.txt: Removed.
  • fast/mediastream/RTCPeerConnection-events.html: Removed.
  • fast/mediastream/RTCPeerConnection-have-local-offer-expected.txt:
  • fast/mediastream/RTCPeerConnection-have-local-offer.html:
  • fast/mediastream/RTCPeerConnection-have-local-pranswer-expected.txt:
  • fast/mediastream/RTCPeerConnection-have-local-pranswer.html:
  • fast/mediastream/RTCPeerConnection-have-remote-offer-expected.txt:
  • fast/mediastream/RTCPeerConnection-have-remote-offer.html:
  • fast/mediastream/RTCPeerConnection-have-remote-pranswer-expected.txt:
  • fast/mediastream/RTCPeerConnection-have-remote-pranswer.html:
  • fast/mediastream/RTCPeerConnection-legacy-stream-based-api-expected.txt: Removed.
  • fast/mediastream/RTCPeerConnection-legacy-stream-based-api.html: Removed.
  • fast/mediastream/RTCPeerConnection-localDescription-expected.txt:
  • fast/mediastream/RTCPeerConnection-localDescription.html:
  • fast/mediastream/RTCPeerConnection-remoteDescription-expected.txt:
  • fast/mediastream/RTCPeerConnection-remoteDescription.html:
  • fast/mediastream/RTCPeerConnection-stable-expected.txt:
  • fast/mediastream/RTCPeerConnection-stable.html:
  • fast/mediastream/RTCPeerConnection-stats.html:
  • fast/mediastream/RTCPeerConnection-statsSelector-expected.txt:
  • fast/mediastream/RTCPeerConnection-statsSelector.html:
  • fast/mediastream/argument-types-expected.txt: Removed.
  • fast/mediastream/argument-types.html: Removed.
  • fast/mediastream/getusermedia-expected.txt: Removed.
  • fast/mediastream/getusermedia.html: Removed.
  • fast/mediastream/webkitGetUserMedia-shadowing-then-expected.txt: Removed.
  • fast/mediastream/webkitGetUserMedia-shadowing-then.html: Removed.
  • platform/mac/TestExpectations:
  • webrtc/legacy-api-expected.txt:
  • webrtc/legacy-api.html:
3:23 PM Changeset in webkit [235483] by rniwa@webkit.org
  • 4 edits in trunk/Source/WebCore

Modernize SlotAssignment
https://bugs.webkit.org/show_bug.cgi?id=189075

Reviewed by Antti Koivisto.

Modernized the code related to SlotAssignment. Namely, use HashMap<>::get instead of HashMap<>::find,
and use HashMap<>::ensure instead of HashMap<>::add. Also use WeakPtr to keep track of HTMLSlotElement
instead of a raw pointer.

  • dom/SlotAssignment.cpp:

(WebCore::SlotAssignment::findAssignedSlot):
(WebCore::SlotAssignment::addSlotElementByName):
(WebCore::SlotAssignment::removeSlotElementByName):
(WebCore::SlotAssignment::didChangeSlot):
(WebCore::SlotAssignment::findFirstSlotElement):
(WebCore::SlotAssignment::resolveAllSlotElements):
(WebCore::SlotAssignment::assignToSlot):

  • dom/SlotAssignment.h:

(WebCore::SlotAssignment::Slot::Slot): Renamed from SlotInfo since "Info" doesn't add any value.

  • html/HTMLSlotElement.h:
3:20 PM Changeset in webkit [235482] by dbates@webkit.org
  • 2 edits in trunk/Tools

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

Reviewed by Simon Fraser.

Do not compute what enumerators are in an uninitialized OptionSet. A local OptionSet variable
is only considered initialized when execution passes over its assignment regardless of whether
the variable is in scope.

The LLDB Python API does not provide a way to determine whether an variable is initialized.
So, we use a simple heuristic: when the value of the OptionSet is greater than the value
of the bitmask with all enumerators set then we consider the OptionSet to be garbage (i.e.
uninitialized memory). When the variable is finally initialized LLDB will notify us to update
our state.

  • lldb/lldb_webkit.py:

(WTFOptionSetProvider.update):

3:01 PM Changeset in webkit [235481] by Chris Dumez
  • 7 edits in trunk

[PSON] We should only process-swap when eTLD+1 changes on navigation
https://bugs.webkit.org/show_bug.cgi?id=189090
<rdar://problem/43799225>

Reviewed by Geoffrey Garen.

Source/WebCore:

Add toRegistrableDomain() utility function to get the eTLD+1 (aka "registrable
domain") from an URL.

  • platform/network/ResourceRequestBase.h:

(WebCore::toRegistrableDomain):
(WebCore::registrableDomainsAreEqual):

Source/WebKit:

When navigating cross-origin, only process swap when the eTLD+1 (aka "Registrable
domain") changes, instead of considering the full security origin.

This has performance benefits and is also needed to keep document.domain origin
relaxation working.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::addProcessToOriginCacheSet):
(WebKit::WebProcessPool::removeProcessFromOriginCacheSet):
(WebKit::WebProcessPool::processForNavigation):
(WebKit::WebProcessPool::processForNavigationInternal):

  • UIProcess/WebProcessPool.h:

Tools:

Update existing PSON API tests to use different registrable domains instead of different
protocols, as we now only process-swap when the eTLD+1 (aka "registrable domain") changes.

Add test coverage to make sure that we do not process swap when eTLD+1 does not change.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
2:50 PM Changeset in webkit [235480] by youenn@apple.com
  • 19 edits in trunk

Add a runtime flag for WebRTC unified plan
https://bugs.webkit.org/show_bug.cgi?id=189068

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/webrtc/RTCPeerConnection-addTrack.https-expected.txt:

Source/WebCore:

Covered by existing updated tests.
Main change is to call addTrack with a stream parameter so that on the other side, the track will be tied to a stream.
Receive-only case in unified plan is not yet supported.
This will be supported in follow-up patches.

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::setConfiguration): Activate unified plan based on runtime flag.
(WebCore::LibWebRTCMediaEndpoint::addTrack): Do not use AddStream in case of unified plan.
(WebCore::LibWebRTCMediaEndpoint::shouldOfferAllowToReceiveAudio const):
(WebCore::LibWebRTCMediaEndpoint::shouldOfferAllowToReceiveVideo const):
(WebCore::LibWebRTCMediaEndpoint::doCreateOffer): Use legacy webrtc option for receive only cases only in plan B case.

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::webRTCUnifiedPlanEnabled const):
(WebCore::RuntimeEnabledFeatures::setWebRTCUnifiedPlanEnabled):

Source/WebKit:

  • Shared/WebPreferences.yaml:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):

Tools:

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setWebRTCUnifiedPlanEnabled):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:

LayoutTests:

  • fast/mediastream/RTCPeerConnection-add-removeTrack-expected.txt:
  • webrtc/peer-connection-audio-mute2.html:
  • webrtc/peer-connection-remote-audio-mute2.html:
  • webrtc/video-addTrack-expected.txt:
  • webrtc/video-addTrack.html:
  • webrtc/video-addTransceiver.html:
2:20 PM Changeset in webkit [235479] by ajuma@chromium.org
  • 3 edits in trunk/LayoutTests

Generalize suppresion for flaky IntersectionObserver web platform tests
https://bugs.webkit.org/show_bug.cgi?id=189091

Unreviewed test gardening.

2:09 PM Changeset in webkit [235478] by Aditya Keerthi
  • 2 edits in trunk/Source/WebKit

Followup (r235427): Use the null string instead of std::nullopt when no suggestion is selected
https://bugs.webkit.org/show_bug.cgi?id=189095

Reviewed by Tim Horton.

Followup to r235427 as per Darin's comment.

We can avoid unnecessary use of std::optional by taking advantage of the fact that
WTF::String already has a null value distinct from the empty value.

No change in behavior.

  • UIProcess/mac/WebDataListSuggestionsDropdownMac.mm:

(WebKit::WebDataListSuggestionsDropdownMac::selectOption):
(-[WKDataListSuggestionsView currentSelectedString]):

1:55 PM Changeset in webkit [235477] by don.olmstead@sony.com
  • 2 edits
    4 adds in trunk/Tools

[CMake] Split Tools/CMakeLists.txt into platform files
https://bugs.webkit.org/show_bug.cgi?id=189093

Reviewed by Michael Catanzaro.

  • CMakeLists.txt:
  • PlatformGTK.cmake: Added.
  • PlatformMac.cmake: Added.
  • PlatformWPE.cmake: Added.
  • PlatformWin.cmake: Added.
1:33 PM Changeset in webkit [235476] by mitz@apple.com
  • 9 copies
    1 add in releases/Apple/Safari Technology Preview 64

Added a tag for Safari Technology Preview release 64.

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

Fix crash when reflections and backdrop filter are combined
https://bugs.webkit.org/show_bug.cgi?id=188504
rdar://problem/43225590

Reviewed by Dan Bates.
Source/WebCore:

GraphicsLayerCA::updateBackdropFiltersRect() was confused about which hash map to modify
when changes to the clipping rect affect whether we make backdrop clipping layers;
we need to add/remove from backdropClippingLayerClones, not backdropLayerClones.

Test: compositing/filters/backdrop-filter-update-rect.html

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::updateBackdropFiltersRect):

LayoutTests:

  • compositing/filters/backdrop-filter-update-rect-expected.txt: Added.
  • compositing/filters/backdrop-filter-update-rect.html: Added.
12:39 PM Changeset in webkit [235474] by jer.noble@apple.com
  • 8 edits
    2 adds in trunk

Muted elements do not have their Now Playing status updated when unmuted.
https://bugs.webkit.org/show_bug.cgi?id=189069

Reviewed by Eric Carlson.

Source/WebCore:

Schedule an updateNowPlayingInfo() when an element becomes unmuted.

  • platform/audio/PlatformMediaSessionManager.h:
  • platform/audio/mac/MediaSessionManagerMac.h:
  • platform/audio/mac/MediaSessionManagerMac.mm:

(WebCore::MediaSessionManagerMac::sessionCanProduceAudioChanged):

Source/WebCore/PAL:

  • pal/spi/mac/MediaRemoteSPI.h:

Tools:

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

(userInfoHasNowPlayingApplicationPID):
(getNowPlayingClient):
(getNowPlayingClientPid):
(NowPlayingTest::webView):
(NowPlayingTest::configuration):
(NowPlayingTest::webViewPid):
(NowPlayingTest::loadPage):
(NowPlayingTest::runScriptWithUserGesture):
(NowPlayingTest::runScriptWithoutUserGesture):
(NowPlayingTest::executeAndWaitForPlaying):
(NowPlayingTest::executeAndWaitForWebViewToBecomeNowPlaying):
(NowPlayingTest::observers):
(NowPlayingTest::addObserver):
(NowPlayingTest::removeObserver):
(NowPlayingTest::notificationCallback):
(NowPlayingTest::receivedNotification):
(NowPlayingTest::performAfterReceivingNotification):
(TEST_F):

  • TestWebKitAPI/Tests/WebKitCocoa/now-playing.html: Added.
12:24 PM Changeset in webkit [235473] by ddkilzer@apple.com
  • 3 edits
    1 copy
    1 delete in trunk/Source/WTF

Rename wtf/text/mac/StringMac.mm to wtf/text/cococa/StringCococa.mm
<https://webkit.org/b/189082>

Reviewed by Sam Weinig.

Includes a drive-by fix for a webkit-style warning:

ERROR: Source/WTF/wtf/text/cocoa/StringCocoa.mm:34: Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons. [readability/comparison_to_zero] [5]

  • WTF.xcodeproj/project.pbxproj: Update for move and rename.
  • wtf/PlatformMac.cmake: Add missing cocoa/StringCocoa.mm source

file. Drive-by fix for rename of
TextBreakIteratorInternalICUMac.mm to
TextBreakIteratorInternalICUCocoa.cpp.

  • wtf/text/cocoa/StringCocoa.mm: Renamed from Source/WTF/wtf/text/mac/StringMac.mm.

(WTF::String::String):

12:17 PM Changeset in webkit [235472] by Wenson Hsieh
  • 8 edits in trunk/Source

Use the null string instead of std::nullopt for missing attachment file names and content types
https://bugs.webkit.org/show_bug.cgi?id=189080

Reviewed by Tim Horton.

Replace instances of std::optional<String> with just String instead, and use the null string to represent a
missing value instead of std::nullopt. No change in behavior.

Source/WebCore:

  • html/HTMLAttachmentElement.cpp:

(WebCore::HTMLAttachmentElement::updateAttributes):

  • html/HTMLAttachmentElement.h:

Source/WebKit:

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::updateAttachmentAttributes):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updateAttachmentAttributes):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
11:44 AM Changeset in webkit [235471] by ajuma@chromium.org
  • 2 edits in trunk/LayoutTests

[mac-wk1] Mark three IntersectionObserver web platform tests as flaky
https://bugs.webkit.org/show_bug.cgi?id=189091

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
11:24 AM Changeset in webkit [235470] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

[WHLSL] Ensure that isLValue is copied by the rewriter
https://bugs.webkit.org/show_bug.cgi?id=189083

The value of isLValue was not propagated when new TernaryExpressions are
created in Rewriter.

Patch by Thomas Denney <tdenney@apple.com> on 2018-08-29
Reviewed by Myles C. Maxfield.

  • WebGPUShadingLanguageRI/Rewriter.js:

(Rewriter.prototype.visitTernaryExpression):

  • WebGPUShadingLanguageRI/Test.js: Add new test to verify the value is

propagated.

11:21 AM Changeset in webkit [235469] by mmaxfield@apple.com
  • 24 edits
    1 copy
    3 moves
    5 deletes in trunk/Tools

[WHLSL] Add more functions to the standard library
https://bugs.webkit.org/show_bug.cgi?id=188873

Reviewed by Filip Pizlo.

This patch adds the rest of the standard library to StandardLibrary.js, and updates the compiler to be able to compile it.

There are a few major pieces:

  1. Swizzle operators are now implemented in the language, instead of as native functions
  2. Vector constructors are now implemented in the language, instead of as native functions
  3. The matrix type is implemented
  4. Vector operator&[] is illegal, and is removed from the compiler
  5. Vector index setters & index getters are now implemented in the language, instead of as native functions
  6. Vector and matrix equality operators are implemented in the language, instead of as native functions
  7. Casting a scalar to a boolean is implemented in the language, instead of as native functions
  8. Casting a vector to a boolean is not part of the language, and is removed from the compiler
  9. Half-precision floating point types are implemented
  • WebGPUShadingLanguageRI/All.js:
  • WebGPUShadingLanguageRI/BuiltinMatrixGetter.js: Copied from Tools/WebGPUShadingLanguageRI/BuiltinVectorIndexSetter.js.

(BuiltinMatrixGetter):
(BuiltinMatrixGetter.prototype.get height):
(BuiltinMatrixGetter.prototype.get width):
(BuiltinMatrixGetter.prototype.toString):
(BuiltinMatrixGetter.functions):
(BuiltinMatrixGetter.prototype.instantiateImplementation):

  • WebGPUShadingLanguageRI/BuiltinMatrixSetter.js: Renamed from Tools/WebGPUShadingLanguageRI/BuiltinVectorIndexSetter.js.

(BuiltinMatrixSetter):
(BuiltinMatrixSetter.prototype.get height):
(BuiltinMatrixSetter.prototype.get width):
(BuiltinMatrixSetter.prototype.toString):
(BuiltinMatrixSetter.functions):
(BuiltinMatrixSetter.prototype.instantiateImplementation):

  • WebGPUShadingLanguageRI/BuiltinVectorConstructors.js: Removed.
  • WebGPUShadingLanguageRI/BuiltinVectorEqualityOperator.js: Removed.
  • WebGPUShadingLanguageRI/BuiltinVectorGetter.js:

(BuiltinVectorGetter.prototype.instantiateImplementation):
(BuiltinVectorGetter):

  • WebGPUShadingLanguageRI/BuiltinVectorSetter.js:

(BuiltinVectorSetter.functions):
(BuiltinVectorSetter.prototype.instantiateImplementation):
(BuiltinVectorSetter):

  • WebGPUShadingLanguageRI/CallExpression.js:

(CallExpression.prototype.resolve):

  • WebGPUShadingLanguageRI/CheckTypesWithArguments.js:

(checkTypesWithArguments.TypeWithArgumentsChecker.prototype.visitTypeRef):
(checkTypesWithArguments.TypeWithArgumentsChecker):
(checkTypesWithArguments):

  • WebGPUShadingLanguageRI/Checker.js:

(Checker.prototype.visitVectorType):
(Checker.prototype.visitMatrixType):

  • WebGPUShadingLanguageRI/ConstexprFolder.js:

(ConstexprFolder.prototype.visitCallExpression):
(ConstexprFolder):

  • WebGPUShadingLanguageRI/Evaluator.js:

(Evaluator.prototype.visitTernaryExpression):

  • WebGPUShadingLanguageRI/FlattenedStructOffsetGatherer.js:

(FlattenedStructOffsetGatherer.prototype.visitMatrixType):
(FlattenedStructOffsetGatherer):

  • WebGPUShadingLanguageRI/Intrinsics.js:

(Intrinsics.):
(Intrinsics):

  • WebGPUShadingLanguageRI/MatrixType.js: Renamed from Tools/WebGPUShadingLanguageRI/BuiltinVectorIndexGetter.js.

(MatrixType):
(MatrixType.prototype.get elementType):
(MatrixType.prototype.get numRows):
(MatrixType.prototype.get numColumns):
(MatrixType.prototype.get numRowsValue):
(MatrixType.prototype.get numColumnsValue):
(MatrixType.prototype.get size):
(MatrixType.prototype.unifyImpl):
(MatrixType.prototype.populateDefaultValue):
(MatrixType.prototype.toString):

  • WebGPUShadingLanguageRI/NameContext.js:

(NameContext.prototype.add):

  • WebGPUShadingLanguageRI/NativeType.js:

(NativeType.create):
(NativeType):

  • WebGPUShadingLanguageRI/OperatorAnderIndexer.js: Renamed from Tools/WebGPUShadingLanguageRI/OperatorAnderIndex.js.

(OperatorAnderIndexer):

  • WebGPUShadingLanguageRI/OperatorBool.js: Removed.
  • WebGPUShadingLanguageRI/Prepare.js:

(let.prepare):

  • WebGPUShadingLanguageRI/Program.js:

(Program.prototype.add):

  • WebGPUShadingLanguageRI/Rewriter.js:

(Rewriter.prototype.visitMatrixType):
(Rewriter):

  • WebGPUShadingLanguageRI/SPIRV.html:
  • WebGPUShadingLanguageRI/StandardLibrary.js:

(operator.bool):
(bool.operator):
(uchar.operator):
(ushort.operator):
(char.operator):
(short.operator):
(uint.operator):
(int.operator):
(half.operator):
(float.operator):
(uchar2.operator):
(uchar3.operator):
(uchar4.operator):
(ushort2.operator):
(ushort3.operator):
(ushort4.operator):
(uint2.operator):
(uint3.operator):
(uint4.operator):
(char2.operator):
(char3.operator):
(char4.operator):
(short2.operator):
(short3.operator):
(short4.operator):
(int2.operator):
(int3.operator):
(int4.operator):
(half2.operator):
(half3.operator):
(half4.operator):
(float2.operator):
(float3.operator):
(float4.operator):
(half2x2.operator):
(half2x3.operator):
(half2x4.operator):
(half3x2.operator):
(half3x3.operator):
(half3x4.operator):
(half4x2.operator):
(half4x3.operator):
(half4x4.operator):
(float2x2.operator):
(float2x3.operator):
(float2x4.operator):
(float3x2.operator):
(float3x3.operator):
(float3x4.operator):
(float4x2.operator):
(float4x3.operator):
(float4x4.operator):
(operator.bool2):
(operator.bool3):
(operator.bool4):
(uint.operator.length):
(operator.uchar2):
(operator.uchar3):
(operator.uchar4):
(operator.ushort2):
(operator.ushort3):
(operator.ushort4):
(operator.uint2):
(operator.uint3):
(operator.uint4):
(operator.char2):
(operator.char3):
(operator.char4):
(operator.short2):
(operator.short3):
(operator.short4):
(operator.int2):
(operator.int3):
(operator.int4):
(operator.half2):
(operator.half3):
(operator.half4):
(operator.float2):
(operator.float3):
(operator.float4):
(bool2.operator):
(bool3.operator):
(bool4.operator):
(allVectorTypeNames):

  • WebGPUShadingLanguageRI/SwizzleOp.js: Removed.
  • WebGPUShadingLanguageRI/SynthesizeDefaultConstructorOperator.js:

(synthesizeDefaultConstructorOperator.FindAllTypes.prototype.visitMatrixType):
(synthesizeDefaultConstructorOperator.FindAllTypes):
(synthesizeDefaultConstructorOperator):

  • WebGPUShadingLanguageRI/SynthesizeOperatorBool.js: Removed.
  • WebGPUShadingLanguageRI/Test.html:
  • WebGPUShadingLanguageRI/Test.js:

(makeHalf):
(checkHalf):

  • WebGPUShadingLanguageRI/Visitor.js:

(Visitor.prototype.visitMatrixType):
(Visitor):

  • WebGPUShadingLanguageRI/index.html:
10:56 AM Changeset in webkit [235468] by Truitt Savell
  • 3 edits in trunk/LayoutTests

Layout Test svg/animations/animate-end-attribute-numeric-precision.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=189087

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk1/TestExpectations:
10:51 AM Changeset in webkit [235467] by Simon Fraser
  • 21 edits in trunk

Teach webkitpy how to check leaks and treat leaks as test failures
https://bugs.webkit.org/show_bug.cgi?id=189067

Reviewed by Darin Adler.

Tools:

Add a new "--world-leaks" argument to run-webkit-tests. When enabled, DRT/WTR are launched
with a --world-leaks argument (which is renamed in this patch for consistency). This enables the
behavior added in r235408, namely that they check for leaked documents after each test, and at
the end of one (if --run-singly) or a set of tests run in a single DRT/WTR instance handle the
"#CHECK FOR WORLD LEAKS" command to get still-live documents.

LayoutTestRunner in webkitpy now has the notion of doing "post-tests work", called via _finished_test_group(),
and here it sends the "#CHECK FOR WORLD LEAKS" command to the runner and parses the resulting output block.
If this results block includes leaks, we convert an existing TestResult into a LEAK failure
in TestRunResults.change_result_to_failure(). Leaks are then added to the ouput JSON for display in results.html

Unit tests are updated with some leak examples.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(initializeGlobalsFromCommandLineOptions):

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

(ParsedJSONResultsTest):

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

(LayoutTestRunner._annotate_results_with_additional_failures):
(LayoutTestRunner._handle_finished_test_group):
(Worker.handle):
(Worker._run_test):
(Worker._do_post_tests_work):
(Worker._finished_test_group):
(Worker._run_test_in_another_thread):

  • Scripts/webkitpy/layout_tests/layout_package/json_layout_results_generator.py:

(JSONLayoutResultsGenerator):

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

(TestExpectationParser):
(TestExpectations):

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

(Base.get_basic_tests):

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

(determine_result_type):
(FailureLeak):
(FailureLeak.init):
(FailureLeak.message):
(FailureDocumentLeak):
(FailureDocumentLeak.init):
(FailureDocumentLeak.message):

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

(TestResult.convert_to_failure):

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

(TestRunResults.change_result_to_failure):
(_interpret_test_failures):
(summarize_results):

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

(get_result):
(run_results):
(summarized_results):

  • Scripts/webkitpy/layout_tests/run_webkit_tests.py:

(parse_args):

  • Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:

(parse_args):
(RunTest.test_check_for_world_leaks):

  • Scripts/webkitpy/port/driver.py:

(DriverPostTestOutput):
(DriverPostTestOutput.init):
(Driver.do_post_tests_work):
(Driver._parse_world_leaks_output):
(Driver.cmd_line):
(DriverProxy.do_post_tests_work):

  • Scripts/webkitpy/port/test.py:

(unit_test_list):

  • WebKitTestRunner/Options.cpp:

(WTR::OptionsHandler::OptionsHandler):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::checkForWorldLeaks):

LayoutTests:

Put some fake leaks in full_results.json, and update results.html to show a table
of leaks when results are expanded.

  • fast/harness/full_results.json:
  • fast/harness/results-expected.txt:
  • fast/harness/results.html:
10:50 AM Changeset in webkit [235466] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Missed adding expctations to ios for webkit.org/b/188985
https://bugs.webkit.org/show_bug.cgi?id=188985

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
10:14 AM Changeset in webkit [235465] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

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

9:44 AM Changeset in webkit [235464] by Kocsen Chung
  • 1 copy in tags/Safari-607.1.4

Tag Safari-607.1.4.

9:30 AM Changeset in webkit [235463] by Kocsen Chung
  • 7 edits in trunk/Source

Versioning.

9:25 AM Changeset in webkit [235462] by ddkilzer@apple.com
  • 6 edits
    100 deletes in trunk

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

Source/ThirdParty/ANGLE:

  • src/angle.xcodeproj: Removed.
  • src/common/third_party/numerics: Removed.

Source/ThirdParty/libwebrtc:

  • Source/webrtc/base: Removed.
  • Source/webrtc/media/devices: Removed.
  • Source/webrtc/modules/audio_conference_mixer: Removed.
  • Source/webrtc/modules/remote_bitrate_estimator/include/mock: Removed.
  • Source/webrtc/system_wrappers/test: Removed.
  • Source/webrtc/test/testsupport/mac: Removed.
  • Source/webrtc/voice_engine: Removed.

Source/WebCore:

  • Modules/proximity: Removed.

Source/WebInspectorUI:

  • WebInspectorUI.esproj: Removed.

Tools:

  • DumpRenderTree/TestNetscapePlugIn/unix: Removed.
  • WebKitTestRunner/UIScriptContext: Removed.

LayoutTests:

  • css3/filters/backdrop/script-tests: Removed.
  • css3/filters/script-tests: Removed.
  • indieui: Removed.
  • legacy-animation-engine/fullscreen: Removed.
  • platform/gtk/editing/pasteboard/script-tests: Removed.
  • platform/gtk/resources: Removed.
  • platform/ios-wk2/fast/backgrounds: Removed.
  • platform/ios-wk2/fast/block/margin-collapse/block-inside-inline: Removed.
  • platform/ios-wk2/fast/block/positioning/auto/vertical-lr: Removed.
  • platform/ios-wk2/fast/body-propagation/background-color: Removed.
  • platform/ios-wk2/fast/body-propagation/background-image: Removed.
  • platform/ios-wk2/fast/borders: Removed.
  • platform/ios-wk2/fast/box-shadow: Removed.
  • platform/ios-wk2/fast/box-sizing: Removed.
  • platform/ios-wk2/fast/canvas: Removed.
  • platform/ios-wk2/fast/compact: Removed.
  • platform/ios-wk2/fast/css/counters: Removed.
  • platform/ios-wk2/fast/css/namespaces: Removed.
  • platform/ios-wk2/fast/css3-text: Removed.
  • platform/ios-wk2/fast/doctypes: Removed.
  • platform/ios-wk2/fast/dom/Element: Removed.
  • platform/ios-wk2/fast/dom/HTMLDocument: Removed.
  • platform/ios-wk2/fast/dom/HTMLElement: Removed.
  • platform/ios-wk2/fast/dom/HTMLHeadElement: Removed.
  • platform/ios-wk2/fast/dom/HTMLImageElement: Removed.
  • platform/ios-wk2/fast/dom/HTMLInputElement: Removed.
  • platform/ios-wk2/fast/dom/HTMLLinkElement: Removed.
  • platform/ios-wk2/fast/dom/HTMLMeterElement: Removed.
  • platform/ios-wk2/fast/dom/HTMLObjectElement: Removed.
  • platform/ios-wk2/fast/dom/HTMLProgressElement: Removed.
  • platform/ios-wk2/fast/dom/HTMLTableColElement: Removed.
  • platform/ios-wk2/fast/dom/HTMLTableElement: Removed.
  • platform/ios-wk2/fast/dom/Range: Removed.
  • platform/ios-wk2/fast/dom/Window: Removed.
  • platform/ios-wk2/fast/events/touch: Removed.
  • platform/ios-wk2/fast/fast-mobile-scrolling: Removed.
  • platform/ios-wk2/fast/forms/color: Removed.
  • platform/ios-wk2/fast/forms/datalist: Removed.
  • platform/ios-wk2/fast/forms/file: Removed.
  • platform/ios-wk2/fast/forms/number: Removed.
  • platform/ios-wk2/fast/forms/range: Removed.
  • platform/ios-wk2/fast/forms/select: Removed.
  • platform/ios-wk2/fast/gradients: Removed.
  • platform/ios-wk2/fast/inspector-support: Removed.
  • platform/ios-wk2/fast/line-grid: Removed.
  • platform/ios-wk2/fast/multicol/span: Removed.
  • platform/ios-wk2/fast/multicol/vertical-lr: Removed.
  • platform/ios-wk2/fast/preloader: Removed.
  • platform/ios-wk2/fast/reflections: Removed.
  • platform/ios-wk2/fast/regions/auto-size: Removed.
  • platform/ios-wk2/fast/replaced/vertical-lr: Removed.
  • platform/ios-wk2/fast/replaced/vertical-rl: Removed.
  • platform/ios-wk2/fast/sub-pixel: Removed.
  • platform/ios-wk2/fast/text/firstline: Removed.
  • platform/ios-wk2/fast/text/shaping: Removed.
  • platform/ios-wk2/fast/tokenizer: Removed.
  • platform/ios-wk2/scrolling: Removed.
  • platform/ios/fast/viewport: Removed.
  • platform/ios/ios/fast/events/touch/script-tests: Removed.
  • platform/ios/ios/fast/html: Removed.
  • platform/ios/ios/scrolling: Removed.
  • platform/mac-sierra-wk2/js: Removed.
  • platform/mac-sierra/http/tests/ssl: Removed.
  • platform/mac-wk2/http/tests/plugins: Removed.
  • platform/mac-wk2/js: Removed.
  • platform/mac-wk2/tiled-drawing: Removed.
  • platform/mac/accessibility/resources: Removed.
  • platform/mac/accessibility/select-text: Removed.
  • platform/mac/editing/attributed-string: Removed.
  • platform/mac/editing/dictionary-lookup: Removed.
  • platform/mac/editing/input/resources: Removed.
  • platform/mac/editing/selection/script-tests: Removed.
  • platform/mac/fast/canvas/resources: Removed.
  • platform/mac/fast/forms/script-tests: Removed.
  • platform/mac/fast/ruby/resources: Removed.
  • platform/mac/fast/scrolling/resources: Removed.
  • platform/mac/http/tests/usercontentfilter: Removed.
  • platform/mac/platform/mac/accessibility: Removed.
  • platform/mac/platform/mac/editing: Removed.
  • platform/win-xp: Removed.
  • platform/win/editing/exeCommand: Removed.
  • platform/win/platform/win/accessibility: Removed.
  • platform/win/sputnik: Removed.
  • platform/wk2/js: Removed.
  • platform/wk2/storage: Removed.
  • proximity: Removed.
  • vibration: Removed.
8:07 AM Changeset in webkit [235461] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

[GTK][WPE] Add JSCOnly Release bot for Linux ARMv7 Thumb2 SoftFP
https://bugs.webkit.org/show_bug.cgi?id=189077

Patch by Pablo Saavedra <Pablo Saavedra> on 2018-08-29
Reviewed by Michael Catanzaro.

Deployed new bot for WPE Release in Linux ARMv7 Thumb2 SoftFP
This bot (jsconly-linux-igalia-bot-5) will run the 'JSCOnly
Linux ARMv7 Thumb2 SoftFP Release' buildjob.

  • BuildSlaveSupport/build.webkit.org-config/config.json:
  • BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:
7:49 AM Changeset in webkit [235460] by Alan Bujtas
  • 7 edits
    2 copies in trunk/Source/WebCore

[LFC][Floating] Introduce FloatBox, a FloatAvoider subclass.
https://bugs.webkit.org/show_bug.cgi?id=189074

Reviewed by Antti Koivisto.

FloatBox is a float avoider and a float positioned box as well.
This is in preparation for the float avoidance feature where formatting context root boxes avoid existing floats.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • layout/displaytree/DisplayBox.h:
  • layout/floats/FloatAvoider.cpp:

(WebCore::Layout::FloatAvoider::FloatAvoider):
(WebCore::Layout::FloatAvoider::setHorizontalConstraints):
(WebCore::Layout::FloatAvoider::setVerticalConstraint):
(WebCore::Layout::FloatAvoider::horizontalPositionCandidate):
(WebCore::Layout::FloatAvoider::verticalPositionCandidate):
(WebCore::Layout::FloatAvoider::resetPosition):
(WebCore::Layout::FloatAvoider::rectInContainingBlock const):
(WebCore::Layout::FloatAvoider::initializePosition): Deleted.
(WebCore::Layout::FloatAvoider::isLeftAligned const): Deleted.
(WebCore::Layout::FloatAvoider::rect const): Deleted.
(WebCore::Layout::FloatAvoider::resetHorizontalConstraints): Deleted.
(WebCore::Layout::FloatAvoider::initialVerticalPosition const): Deleted.

  • layout/floats/FloatAvoider.h:

(WebCore::Layout::FloatAvoider::rect const):
(WebCore::Layout::FloatAvoider::isLeftAligned const):
(WebCore::Layout::FloatAvoider::initialVerticalPosition const):
(WebCore::Layout::FloatAvoider::floatingState const):
(WebCore::Layout::FloatAvoider::layoutBox const):
(WebCore::Layout::FloatAvoider::displayBox const):

  • layout/floats/FloatBox.cpp: Copied from Source/WebCore/layout/floats/FloatAvoider.h.

(WebCore::Layout::FloatBox::FloatBox):
(WebCore::Layout::FloatBox::horizontalPositionCandidate):
(WebCore::Layout::FloatBox::verticalPositionCandidate):
(WebCore::Layout::FloatBox::initialVerticalPosition const):

  • layout/floats/FloatBox.h: Copied from Source/WebCore/layout/floats/FloatAvoider.h.
  • layout/floats/FloatingContext.cpp:

(WebCore::Layout::FloatingContext::positionForFloat const):
(WebCore::Layout::FloatingContext::floatingPosition const):

5:36 AM Changeset in webkit [235459] by ajuma@chromium.org
  • 14 edits in trunk

[IntersectionObserver] Implement intersection logic for the same-document implicit root case
https://bugs.webkit.org/show_bug.cgi?id=189055

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Rebaseline tests.

  • web-platform-tests/intersection-observer/display-none-expected.txt:
  • web-platform-tests/intersection-observer/inline-client-rect-expected.txt:
  • web-platform-tests/intersection-observer/multiple-targets-expected.txt:
  • web-platform-tests/intersection-observer/multiple-thresholds-expected.txt:
  • web-platform-tests/intersection-observer/observer-without-js-reference-expected.txt:
  • web-platform-tests/intersection-observer/root-margin-expected.txt:
  • web-platform-tests/intersection-observer/same-document-no-root-expected.txt:
  • web-platform-tests/intersection-observer/same-document-zero-size-target-expected.txt:
  • web-platform-tests/intersection-observer/shadow-content-expected.txt:
  • web-platform-tests/intersection-observer/text-target-expected.txt:
  • web-platform-tests/intersection-observer/zero-area-element-hidden-expected.txt:

Source/WebCore:

Extend the intersection logic to handle computing the intersection of the target and the
viewport, for the case where the target is in the main frame.

Tested by existing tests in imported/w3c/web-platform-tests/intersection-observer.

  • dom/Document.cpp:

(WebCore::computeIntersectionRects):
(WebCore::Document::updateIntersectionObservations):

Note: See TracTimeline for information about the timeline view.