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

Timeline



Oct 5, 2020:

11:31 PM Changeset in webkit [268037] by Ross Kirsling
  • 4 edits in trunk

%TypedArray%.from must do mapping and putting in lockstep
https://bugs.webkit.org/show_bug.cgi?id=217349

Reviewed by Yusuke Suzuki.

JSTests:

  • test262/expectations.yaml:

Mark two test cases as passing.

Source/JavaScriptCore:

%TypedArray%.from first turns the input iterator into a list to find the size for the resulting typed array,
then it fills the typed array with the list elements.

If a map function is provided, however, it must be called during the *second* phase, not the first,
because if an element throws upon valueOf, that should prevent all further calls of the map function.

  • builtins/TypedArrayConstructor.js:

(from):

10:33 PM Changeset in webkit [268036] by Peng Liu
  • 4 edits in trunk/LayoutTests

[Media in GPU Process] Enable some fullscreen and picture-in-picture tests
https://bugs.webkit.org/show_bug.cgi?id=217360

Unreviewed test gardening.

  • gpu-process/TestExpectations:
  • media/navigate-with-pip-should-not-crash.html:
  • media/pip-video-going-into-fullscreen.html:
10:32 PM Changeset in webkit [268035] by Peng Liu
  • 2 edits in trunk/Source/WebCore

MobileSafari crashes at WebCore: -[WebAVPlayerViewControllerDelegate playerViewControllerWillStartPictureInPicture:]
https://bugs.webkit.org/show_bug.cgi?id=217356

Reviewed by Alex Christensen.

Since we replaced the RefPtr of VideoFullscreenInterfaceAVKit with a WeakPtr in
WebAVPlayerViewControllerDelegate to fix a leak in r262185, self.fullscreenInterface
could be NULL and we need to add NULL checks.

  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(-[WebAVPlayerViewControllerDelegate playerViewControllerWillStartPictureInPicture:]):
(-[WebAVPlayerViewControllerDelegate playerViewControllerDidStartPictureInPicture:]):
(-[WebAVPlayerViewControllerDelegate playerViewController:failedToStartPictureInPictureWithError:]):
(-[WebAVPlayerViewControllerDelegate playerViewControllerWillStopPictureInPicture:]):
(-[WebAVPlayerViewControllerDelegate playerViewControllerDidStopPictureInPicture:]):
(-[WebAVPlayerViewControllerDelegate playerViewController:shouldExitFullScreenWithReason:]):
(-[WebAVPlayerViewControllerDelegate playerViewController:restoreUserInterfaceForPictureInPictureStopWithCompletionHandler:]):

10:16 PM Changeset in webkit [268034] by Simon Fraser
  • 6 edits in trunk/Source/WebCore

Remove Page::scheduleImmediateRenderingUpdate()
https://bugs.webkit.org/show_bug.cgi?id=217361

Reviewed by Antti Koivisto.

There was only one remaining caller of Page::scheduleImmediateRenderingUpdate(), which
is RenderLayerCompositor::layerTreeAsText(). The immediate update here is necessary because
we flush compositing layers in layerTreeAsText(), and that can trigger a Core Animation commit
with painting, so we have to complete our rendering update first to ensure up-to-date layout.

However, this is a testing-only codepath, so have the naming reflect that.

  • page/Page.cpp:

(WebCore::Page::triggerRenderingUpdateForTesting):
(WebCore::Page::scheduleImmediateRenderingUpdate): Deleted.

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

(WebCore::RenderingUpdateScheduler::scheduleTimedRenderingUpdate):
(WebCore::RenderingUpdateScheduler::displayRefreshFired):
(WebCore::RenderingUpdateScheduler::triggerRenderingUpdateForTesting):
(WebCore::RenderingUpdateScheduler::triggerRenderingUpdate):
(WebCore::RenderingUpdateScheduler::scheduleImmediateRenderingUpdate): Deleted.

  • page/RenderingUpdateScheduler.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::layerTreeAsText):

9:42 PM Changeset in webkit [268033] by commit-queue@webkit.org
  • 4 edits in trunk

Don't NFC normalize strings from blobs
https://bugs.webkit.org/show_bug.cgi?id=217327

Patch by Alex Christensen <achristensen@webkit.org> on 2020-10-05
Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • web-platform-tests/FileAPI/unicode-expected.txt:

Source/WebCore:

This matches Chrome and Firefox.
Covered by newly passing web platform tests.

  • fileapi/BlobBuilder.cpp:

(WebCore::BlobBuilder::append):

9:41 PM Changeset in webkit [268032] by Lauro Moura
  • 3 edits in trunk/LayoutTests

[GLIB] Gardening some flaky crashes related to NetworkProcess

Unreviewed test gardening.

  • platform/gtk-wayland/TestExpectations:
  • platform/wpe/TestExpectations:
9:17 PM Changeset in webkit [268031] by Simon Fraser
  • 9 edits in trunk/Source/WebCore

Remove the unused Chrome::scheduleAnimation()
https://bugs.webkit.org/show_bug.cgi?id=217359

Reviewed by Sam Weinig.

Chrome::scheduleAnimation() and the tangentially related ScrollableArea::serviceScrollAnimations()
which are unused.

  • page/Chrome.h:
  • page/FrameView.cpp:

(WebCore::FrameView::scheduleAnimation): Deleted.

  • page/FrameView.h:
  • platform/HostWindow.h:
  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::serviceScrollAnimations): Deleted.

  • platform/ScrollAnimator.h:
  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::serviceScrollAnimations): Deleted.

  • platform/ScrollableArea.h:

(WebCore::ScrollableArea::scheduleAnimation): Deleted.

8:03 PM Changeset in webkit [268030] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebKit

Break reference cycle with NSURLSessionDataTask in NetworkDataTaskCocoa
https://bugs.webkit.org/show_bug.cgi?id=217347
<rdar://problem/69483575>

Reviewed by Geoffrey Garen.

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::applyCookiePolicyForThirdPartyCNAMECloaking):

7:55 PM Changeset in webkit [268029] by Aditya Keerthi
  • 2 edits in trunk/Tools

Unreviewed. Update my primary email address.

  • Scripts/webkitpy/common/config/contributors.json:
7:51 PM Changeset in webkit [268028] by Simon Fraser
  • 14 edits in trunk/Source

Use the "triggerRenderingUpdate" terminology in ChromeClient
https://bugs.webkit.org/show_bug.cgi?id=217355

Reviewed by Tim Horton.

ChromeClient confusingly had both scheduleRenderingUpdate() and scheduleTimedRenderingUpdate().
The former is for triggering an update soon, and the latter is a normal schedule, used by
SVGImages because they have their own Page.

Rename the one that the WebKits have to implement to triggerRenderingUpdate().

Source/WebCore:

  • loader/EmptyClients.h:
  • page/ChromeClient.h:
  • page/RenderingUpdateScheduler.cpp:

(WebCore::RenderingUpdateScheduler::scheduleImmediateRenderingUpdate):

Source/WebKit:

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::triggerRenderingUpdate):
(WebKit::WebChromeClient::scheduleRenderingUpdate): Deleted.

  • WebProcess/WebCoreSupport/WebChromeClient.h:

Source/WebKitLegacy/mac:

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

(WebChromeClient::triggerRenderingUpdate):
(WebChromeClient::scheduleRenderingUpdate): Deleted.

Source/WebKitLegacy/win:

  • WebCoreSupport/WebChromeClient.cpp:

(WebChromeClient::triggerRenderingUpdate):
(WebChromeClient::scheduleRenderingUpdate): Deleted.

  • WebCoreSupport/WebChromeClient.h:
7:06 PM Changeset in webkit [268027] by Hector Lopez
  • 2 edits in trunk/LayoutTests

REGRESSION(iOS 14): http/wpt/cache-storage/cache-quota-after-restart.any.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=217357

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
6:57 PM Changeset in webkit [268026] by Chris Dumez
  • 22 edits in trunk/Source/WebCore

Improvements to VectorMath API
https://bugs.webkit.org/show_bug.cgi?id=217343

Reviewed by Alex Christensen.

The following improvements were made to the VectorMath API:

  • Use clearer names for the functions, e.g. VectorMath::vmul() -> VectorMath::multiply()
  • Drop stride parameters as the call sites always pass 1. This helps simplify the code.
  • Stop using out-parameters and have the functions return a value when needed.
  • Pass input scalar as 'float' instead of 'const float*'.

No new tests, no Web-facing behavior change.

  • Modules/webaudio/AudioParam.cpp:

(WebCore::AudioParam::calculateFinalValues):

  • Modules/webaudio/AudioParamTimeline.cpp:

(WebCore::AudioParamTimeline::valuesForTimeRange):
(WebCore::AudioParamTimeline::processLinearRamp):
(WebCore::AudioParamTimeline::processSetTarget):

  • Modules/webaudio/OscillatorNode.cpp:

(WebCore::OscillatorNode::calculateSampleAccuratePhaseIncrements):

  • Modules/webaudio/PeriodicWave.cpp:

(WebCore::PeriodicWave::createBandLimitedTables):

  • Modules/webaudio/RealtimeAnalyser.cpp:

(WebCore::RealtimeAnalyser::getFloatFrequencyData):

  • platform/audio/AudioBus.cpp:

(WebCore::AudioBus::speakersSumFromByDownMixing):
(WebCore::AudioBus::copyWithGainFrom):
(WebCore::AudioBus::copyWithSampleAccurateGainValuesFrom):

  • platform/audio/AudioChannel.cpp:

(WebCore::AudioChannel::scale):
(WebCore::AudioChannel::sumFrom):
(WebCore::AudioChannel::maxAbsValue const):

  • platform/audio/DirectConvolver.cpp:
  • platform/audio/FFTConvolver.cpp:

(WebCore::FFTConvolver::process):

  • platform/audio/FFTFrame.cpp:

(WebCore::FFTFrame::scaleFFT):
(WebCore::FFTFrame::multiply):

  • platform/audio/IIRFilter.cpp:

(WebCore::IIRFilter::tailTime):

  • platform/audio/Reverb.cpp:

(WebCore::calculateNormalizationScale):

  • platform/audio/ReverbAccumulationBuffer.cpp:

(WebCore::ReverbAccumulationBuffer::accumulate):

  • platform/audio/ReverbConvolver.cpp:
  • platform/audio/ReverbConvolverStage.cpp:

(WebCore::ReverbConvolverStage::ReverbConvolverStage):

  • platform/audio/VectorMath.cpp:

(WebCore::VectorMath::multiplyByScalar):
(WebCore::VectorMath::add):
(WebCore::VectorMath::addScalar):
(WebCore::VectorMath::multiply):
(WebCore::VectorMath::multiplyComplex):
(WebCore::VectorMath::multiplyThenAddScalar):
(WebCore::VectorMath::maximumMagnitude):
(WebCore::VectorMath::sumOfSquares):
(WebCore::VectorMath::clamp):
(WebCore::VectorMath::linearToDecibels):
(WebCore::VectorMath::is16ByteAligned):

  • platform/audio/VectorMath.h:
  • platform/audio/gstreamer/FFTFrameGStreamer.cpp:

(WebCore::FFTFrame::doInverseFFT):

  • platform/audio/mac/AudioDestinationMac.cpp:

(WebCore::AudioDestinationCocoa::processBusAfterRender):

  • platform/audio/mac/AudioSampleBufferList.cpp:
  • platform/audio/mac/FFTFrameMac.cpp:

(WebCore::FFTFrame::doFFT):
(WebCore::FFTFrame::doInverseFFT):

6:27 PM Changeset in webkit [268025] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

REGRESSION(r267915): Many layout tests are asserting under ~CompletionHandler()
https://bugs.webkit.org/show_bug.cgi?id=217345
<rdar://problem/69973775>

Reviewed by Tim Horton.

I did *not* intend to schedule an async task after every single image load in r267915. Apart from triggering
assertions on various tests, this also causes us to send excessive IPC messages to the UI process when loading
images, which can't be good for performance. Fix this by only calling into computeAndSendEditDragSnapshot()
when we've finished loading all dropped image elements.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::didFinishLoadingImageForElement):

6:22 PM Changeset in webkit [268024] by Hector Lopez
  • 2 edits in trunk/LayoutTests

Adjust test expectation for timeouts
https://bugs.webkit.org/show_bug.cgi?id=215324

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
6:21 PM Changeset in webkit [268023] by eric.carlson@apple.com
  • 3 edits in trunk/Tools

Disable media capture if an app's entitlements won't allow access to capture devices
https://bugs.webkit.org/show_bug.cgi?id=217319
<rdar://problem/69956112>

Unreviewed, address post-review comments.

  • MiniBrowser/mac/Info.plist: Update media capture usage strings.
  • MobileMiniBrowser/MobileMiniBrowser/Info.plist: Ditto.
5:52 PM Changeset in webkit [268022] by Simon Fraser
  • 7 edits in trunk/Source

ChromeClient::needsImmediateRenderingUpdate() only existing to work around a WebKit1 bug
https://bugs.webkit.org/show_bug.cgi?id=217338

Reviewed by Said Abou-Hallawa.

WebViewLayerFlushScheduler has a bug where scheduling inside the callback would fail
because the RunLoopObserver was always invalidate at the end of the callback.

If we fix this, we can remove ChromeClient::needsImmediateRenderingUpdate() which I believe
only existed to work around this bug.

Source/WebCore:

  • page/ChromeClient.h:

(WebCore::ChromeClient::scheduleTimedRenderingUpdate):
(WebCore::ChromeClient::needsImmediateRenderingUpdate const): Deleted.

  • page/RenderingUpdateScheduler.cpp:

(WebCore::RenderingUpdateScheduler::scheduleRenderingUpdate):

Source/WebKitLegacy/mac:

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

(WebViewLayerFlushScheduler::schedule):
(WebViewLayerFlushScheduler::layerFlushCallback):

5:44 PM Changeset in webkit [268021] by Simon Fraser
  • 9 edits in trunk/Source/WebCore

Rename scheduleTimedRenderingUpdate() functions related to images
https://bugs.webkit.org/show_bug.cgi?id=217352

Reviewed by Tim Horton.

ImageObserver and CachedImageClient have scheduleTimedRenderingUpdate() so that an SVG image's
Page and trigger rendering updates. Rename these to make it clearer they are image-related,
and remove the "timed" terminology.

  • html/ImageBitmap.cpp:
  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::CachedImageObserver::scheduleRenderingUpdate):
(WebCore::CachedImage::scheduleRenderingUpdate):
(WebCore::CachedImage::CachedImageObserver::scheduleTimedRenderingUpdate): Deleted.
(WebCore::CachedImage::scheduleTimedRenderingUpdate): Deleted.

  • loader/cache/CachedImage.h:
  • loader/cache/CachedImageClient.h:

(WebCore::CachedImageClient::scheduleRenderingUpdateForImage):
(WebCore::CachedImageClient::scheduleTimedRenderingUpdate): Deleted.

  • platform/graphics/ImageObserver.h:
  • rendering/RenderElement.cpp:

(WebCore::RenderElement::scheduleRenderingUpdateForImage):
(WebCore::RenderElement::scheduleTimedRenderingUpdate): Deleted.

  • rendering/RenderElement.h:
  • svg/graphics/SVGImageClients.h:
5:28 PM Changeset in webkit [268020] by weinig@apple.com
  • 3 edits
    3 adds in trunk/Source/WTF

Add implementation of <filesystem> to WTF for macOS 10.14
https://bugs.webkit.org/show_bug.cgi?id=217302

Reviewed by Darin Adler.

Imports a copy of <filesystem> and its needed implementation files
from libc++ (r343838) and modifies them to build outside of libc++.
This is only needed and only built for versions of macOS < 10.15
and can be dropped when we require 10.15.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/StdFilesystem.cpp: Added.
  • wtf/StdFilesystem.h: Added.
  • LICENSE-libc++.txt: Added.
5:15 PM Changeset in webkit [268019] by beidson@apple.com
  • 2 edits in trunk/Source/WebKit

Change a PDF RELEASE_ASSERT to an early return.
rdar://problem/69805240 and https://bugs.webkit.org/show_bug.cgi?id=217346

Reviewed by Tim Horton.

No new tests (Wish they were possible)

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::installPDFDocument): This release assert is getting hit regularly.

Change to an early return while we continue tracking this down.

5:15 PM Changeset in webkit [268018] by Alan Coon
  • 8 edits in branches/safari-610-branch/Source

Versioning.

WebKit-7610.3.1

4:53 PM Changeset in webkit [268017] by achristensen@apple.com
  • 24 edits in trunk/Source/WebKit

Make DownloadID an ObjectIdentifier
https://bugs.webkit.org/show_bug.cgi?id=203962

Reviewed by Youenn Fablet and Geoffrey Garen.

Also deprecate the unused WKDownloadGetID because this identifier is internal.

  • NetworkProcess/Downloads/Download.cpp:

(WebKit::Download::Download):
(WebKit::Download::didReceiveData):
(WebKit::Download::didFinish):
(WebKit::Download::didFail):
(WebKit::Download::didCancel):
(WebKit::Download::messageSenderDestinationID const):

  • NetworkProcess/Downloads/DownloadID.h:

(WebKit::DownloadID::DownloadID): Deleted.
(WebKit::DownloadID::operator== const): Deleted.
(WebKit::DownloadID::operator!= const): Deleted.
(WebKit::DownloadID::downloadID const): Deleted.
(IPC::ArgumentCoder<WebKit::DownloadID>::encode): Deleted.
(IPC::ArgumentCoder<WebKit::DownloadID>::decode): Deleted.
(WTF::DownloadIDHash::hash): Deleted.
(WTF::DownloadIDHash::equal): Deleted.
(WTF::HashTraits<WebKit::DownloadID>::emptyValue): Deleted.
(WTF::HashTraits<WebKit::DownloadID>::constructDeletedValue): Deleted.
(WTF::HashTraits<WebKit::DownloadID>::isDeletedValue): Deleted.

  • NetworkProcess/Downloads/DownloadMonitor.cpp:

(WebKit::DownloadMonitor::applicationWillEnterForeground):
(WebKit::DownloadMonitor::applicationDidEnterBackground):
(WebKit::DownloadMonitor::timerFired):

  • NetworkProcess/Downloads/PendingDownload.cpp:

(WebKit::PendingDownload::messageSenderDestinationID const):

  • NetworkProcess/Downloads/PendingDownload.h:
  • NetworkProcess/NetworkDataTask.h:

(WebKit::NetworkDataTask::setPendingDownloadID):
(WebKit::NetworkDataTask::isDownload const):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::pendingDownloadCanceled):
(WebKit::NetworkProcess::findPendingDownloadLocation):

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

(WebKit::NetworkResourceLoader::convertToDownload):

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:task:didCompleteWithError:]):
(-[WKNetworkSessionDelegate URLSession:downloadTask:didFinishDownloadingToURL:]):
(-[WKNetworkSessionDelegate URLSession:downloadTask:didWriteData:totalBytesWritten:totalBytesExpectedToWrite:]):
(WebKit::NetworkSessionCocoa::continueDidReceiveChallenge):

  • Scripts/webkit/messages.py:
  • Shared/Authentication/AuthenticationManager.h:
  • UIProcess/API/C/WKDownload.cpp:

(WKDownloadGetID):

  • UIProcess/API/C/WKDownload.h:
  • UIProcess/Downloads/DownloadProxy.cpp:

(WebKit::DownloadProxy::DownloadProxy):
(WebKit::generateDownloadID): Deleted.

  • UIProcess/Downloads/DownloadProxy.h:
  • UIProcess/Downloads/DownloadProxyMap.cpp:

(WebKit::DownloadProxyMap::createDownloadProxy):
(WebKit::DownloadProxyMap::downloadFinished):
(WebKit::DownloadProxyMap::invalidate):

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::startDownload):
(WebKit::WebFrame::convertMainResourceLoadToDownload):

  • WebProcess/WebPage/WebFrame.h:
  • WebProcess/WebPage/WebPage.h:
4:36 PM Changeset in webkit [268016] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Uncaught Exception: TypeError: undefined is not an object (evaluating 'error.message')
https://bugs.webkit.org/show_bug.cgi?id=217232
<rdar://problem/69888156>

Patch by Federico Bucchi <Federico Bucchi> on 2020-10-05
Reviewed by Devin Rousso.

Add optional chaining for error to check its existence before using error.message

  • UserInterface/Models/Resource.js:
4:34 PM Changeset in webkit [268015] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Fix tvOS and watchOS build

  • NetworkProcess/NetworkProcess.cpp:

I noticed it was broken in an EWS build, and it is missing this include.

4:29 PM Changeset in webkit [268014] by Simon Fraser
  • 13 edits in trunk/Source/WebKit

Rename DrawingArea::scheduleRenderingUpdate()
https://bugs.webkit.org/show_bug.cgi?id=217337

Reviewed by Tim Horton.

DrawingArea::scheduleRenderingUpdate() always schedules an "immediate" update (either
on a zero-delay timer, or in the current runloop). To make this more clear, change
the terminology to "triggerRenderingUpdate()."

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::scheduleRenderingUpdate):

  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:

(WebKit::DrawingAreaCoordinatedGraphics::triggerRenderingUpdate):
(WebKit::DrawingAreaCoordinatedGraphics::scheduleRenderingUpdate): Deleted.

  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.h:
  • WebProcess/WebPage/DrawingArea.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.mm:

(WebKit::RemoteLayerTreeDisplayRefreshMonitor::requestRefreshCallback):

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::setRootCompositingLayer):
(WebKit::RemoteLayerTreeDrawingArea::updateGeometry):
(WebKit::RemoteLayerTreeDrawingArea::setExposedContentRect):
(WebKit::RemoteLayerTreeDrawingArea::triggerRenderingUpdate):
(WebKit::RemoteLayerTreeDrawingArea::didUpdate):
(WebKit::RemoteLayerTreeDrawingArea::addTransactionCallbackID):
(WebKit::RemoteLayerTreeDrawingArea::scheduleRenderingUpdate): Deleted.

  • WebProcess/WebPage/RemoteLayerTree/RemoteScrollingCoordinator.mm:

(WebKit::RemoteScrollingCoordinator::scheduleTreeStateCommit):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::scheduleFullEditorStateUpdate):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::dynamicViewportSizeUpdate):

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::triggerRenderingUpdate):
(WebKit::TiledCoreAnimationDrawingArea::attachViewOverlayGraphicsLayer):
(WebKit::TiledCoreAnimationDrawingArea::setShouldScaleViewToFitDocument):
(WebKit::TiledCoreAnimationDrawingArea::addTransactionCallbackID):
(WebKit::TiledCoreAnimationDrawingArea::activityStateDidChange):
(WebKit::TiledCoreAnimationDrawingArea::scheduleRenderingUpdate): Deleted.

4:29 PM Changeset in webkit [268013] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unrevewed, fix crash for ASan debug builds
https://bugs.webkit.org/show_bug.cgi?id=217261

Reviewed by Saam Barati.

This function touches memory region which ASan cannot understand whether this is safe.
And ASan makes pointer fat so that it will see some null pointers.

  • assembler/JITOperationList.cpp:

(JSC::addPointers):

4:15 PM Changeset in webkit [268012] by eric.carlson@apple.com
  • 8 edits in trunk

Disable media capture if an app's entitlements won't allow access to capture devices
https://bugs.webkit.org/show_bug.cgi?id=217319
<rdar://problem/69956112>

Reviewed by Youenn Fablet.

Source/WebKit:

No new tests, tested manually with MiniBrowser and Safari.

  • UIProcess/Cocoa/UserMediaPermissionRequestManagerProxy.mm:

(WebKit::UserMediaPermissionRequestManagerProxy::permittedToCaptureAudio): If the
app is sandboxed, check for the entitlement required for audio capture. Don't
bother checking for usage string if TCC has already authorized capture.
(WebKit::UserMediaPermissionRequestManagerProxy::permittedToCaptureVideo): Ditto
for video capture.

  • UIProcess/Cocoa/WebPreferencesCocoa.mm:

(WebKit::WebPreferences::platformInitializeStore): Initialize mediaDevicesEnabled
manually because its default value is always false in the WebProcess and may be
true in the UIProcess. WebPreferences assumes the default will always be the same
in both processes, and so has an optimization that only sends values to the
WebProcess if they differ from the default value. This means if the default in the
UIProcess is true it won't be pushed to the WebProcess, so capture won't work.

  • Platform/spi/ios/TCCSPI.h: Update TCCAccessPreflightResult.

Tools:

  • MiniBrowser/MiniBrowser.xcodeproj/project.pbxproj:
  • MiniBrowser/mac/AppDelegate.m:

(-[BrowserAppDelegate defaultConfiguration]): Don't set configuration._mediaCaptureEnabled,
it should no longer be necessary.

  • MiniBrowser/mac/Info.plist: Remove unneeded keys.
  • MobileMiniBrowser/MobileMiniBrowser/Info.plist: Ditto. Add usage strings.
4:11 PM Changeset in webkit [268011] by Russell Epstein
  • 1 copy in tags/Safari-611.1.2

Tag Safari-611.1.2.

3:40 PM Changeset in webkit [268010] by Russell Epstein
  • 1 copy in tags/Safari-610.2.8.0.1

Tag Safari-610.2.8.0.1.

3:38 PM Changeset in webkit [268009] by Alan Coon
  • 8 edits
    2 adds in branches/safari-610-branch

Cherry-pick r266909. rdar://problem/69101091

Source/WebCore:
Text replacements at the beginning of a second line are replaced too early
https://bugs.webkit.org/show_bug.cgi?id=216327
<rdar://problem/68170353>

Reviewed by Darin Adler.

In the changes in r258871, using SimpleRanges instead of Range causing some side effects
when the replacements at the beginning of lines. The ranges that we are counting are backwards
and the return characters are being counted instead of being ignored. There is almost
certainly a better fix than this, but this patch restores the original logic that
was present when Range was being used, until a better fix can be worked out.

Test: editing/spelling/text-replacement-first-word-second-line.html

  • editing/Editor.cpp: (WebCore::Editor::markAndReplaceFor):
  • editing/TextCheckingHelper.cpp: (WebCore::TextCheckingParagraph::automaticReplacementStart const): (WebCore::TextCheckingParagraph::automaticReplacementLength const):
  • editing/TextCheckingHelper.h:

LayoutTests:
Overlapping text replacements at the beginning of a line are replaced too early
https://bugs.webkit.org/show_bug.cgi?id=216327

Reviewed by Darin Adler.

  • editing/spelling/text-replacement-first-word-second-line-expected.txt: Added.
  • editing/spelling/text-replacement-first-word-second-line.html: Added.

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

3:38 PM Changeset in webkit [268008] by achristensen@apple.com
  • 13 edits in trunk/Source/WebKit

Use sendWithAsyncReply for DecideDestinationWithSuggestedFilename
https://bugs.webkit.org/show_bug.cgi?id=209195

Reviewed by Tim Horton.

This makes the download flow more clear.
No change in behavior.

  • NetworkProcess/Downloads/DownloadID.h:
  • NetworkProcess/Downloads/DownloadManager.cpp:

(WebKit::DownloadManager::downloadDestinationDecided):
(WebKit::DownloadManager::cancelDownload):
(WebKit::DownloadManager::willDecidePendingDownloadDestination): Deleted.
(WebKit::DownloadManager::continueDecidePendingDownloadDestination): Deleted.

  • NetworkProcess/Downloads/DownloadManager.h:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::findPendingDownloadLocation):
(WebKit::NetworkProcess::continueDecidePendingDownloadDestination): Deleted.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • Scripts/webkit/messages.py:
  • Shared/Authentication/AuthenticationManager.h:
  • UIProcess/API/APIDownloadClient.h:
  • UIProcess/Downloads/DownloadProxy.cpp:

(WebKit::DownloadProxy::decideDestinationWithSuggestedFilename):
(WebKit::DownloadProxy::decideDestinationWithSuggestedFilenameAsync): Deleted.

  • UIProcess/Downloads/DownloadProxy.h:
  • UIProcess/Downloads/DownloadProxy.messages.in:
3:27 PM Changeset in webkit [268007] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed assertion fix after r268006.

  • platform/audio/VectorMath.cpp:

(WebCore::VectorMath::vsvesq):

3:03 PM Changeset in webkit [268006] by Chris Dumez
  • 11 edits in trunk

[Cocoa] Vectorize linear to decibels conversion in RealtimeAnalyser
https://bugs.webkit.org/show_bug.cgi?id=217322

Reviewed by Darin Adler.

Source/WebCore:

Vectorize linear to decibels conversion in RealtimeAnalyser on Cocoa ports for
performance.

No new tests, no web-facing behavior change.

  • Modules/webaudio/RealtimeAnalyser.cpp:

(WebCore::RealtimeAnalyser::getFloatFrequencyData):

  • platform/audio/VectorMath.cpp:

(WebCore::VectorMath::linearToDecibels):

  • platform/audio/VectorMath.h:

LayoutTests:

Slightly increase the error threshold in a few WebAudio tests because the vectorization
output for linear to decibels conversion is not quite identical to our previous output
(although very close).

  • webaudio/Analyser/realtimeanalyser-downmix-expected.txt:
  • webaudio/Analyser/realtimeanalyser-downmix.html:
  • webaudio/Analyser/realtimeanalyser-fftsize-reset-expected.txt:
  • webaudio/Analyser/realtimeanalyser-fftsize-reset.html:
  • webaudio/Analyser/realtimeanalyser-freq-data-expected.txt:
  • webaudio/Analyser/realtimeanalyser-freq-data.html:
2:44 PM Changeset in webkit [268005] by Peng Liu
  • 2 edits in trunk/LayoutTests

Update TestExpectations for layout tests related to GPU process features
https://bugs.webkit.org/show_bug.cgi?id=217326

Unreviewed test gardening.

  • gpu-process/TestExpectations:
2:35 PM Changeset in webkit [268004] by keith_miller@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Add JSC option to trigger a hardware breakpoint when debugger expressions are reached.
https://bugs.webkit.org/show_bug.cgi?id=217334

Reviewed by Yusuke Suzuki.

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::debug):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::defaultCodeGenerationMode const):

  • runtime/OptionsList.h:
2:34 PM Changeset in webkit [268003] by ddkilzer@apple.com
  • 6 edits in trunk/Source

Make NetscapePlugInStreamLoaderClient a weak pointer on NetscapePlugInStreamLoader
<https://webkit.org/b/217237>
<rdar://problem/69776714>

Reviewed by Alex Christensen.

Source/WebCore:

Could not write a test since reproducing a crash requires
rapidly reloading a URL to a PDF at random points during the
previous load.

Make NetscapePlugInStreamLoaderClient a WeakPtr on
NetscapePlugInStreamLoader, and add nullptr checks for
NetscapePlugInStreamLoader.m_client as needed.

  • loader/NetscapePlugInStreamLoader.cpp:

(WebCore::NetscapePlugInStreamLoader::NetscapePlugInStreamLoader):
(WebCore::NetscapePlugInStreamLoader::willSendRequest):
(WebCore::NetscapePlugInStreamLoader::didReceiveResponse):
(WebCore::NetscapePlugInStreamLoader::didReceiveDataOrBuffer):
(WebCore::NetscapePlugInStreamLoader::didFinishLoading):
(WebCore::NetscapePlugInStreamLoader::didFail):
(WebCore::NetscapePlugInStreamLoader::willCancel):

  • loader/NetscapePlugInStreamLoader.h:

Source/WebKit:

Making NetscapePlugInStreamLoaderClient inherit from
CanMakeWeakPtr<> caused PDFPlugin to fail to compile because one
of its parent classes already inherited from CanMakeWeakPtr<>.
To fix this, extract a PDFPluginStreamLoaderClient class from
PDFPlugin and link the lifetime of PDFPluginStreamLoaderClient
to PDFPlugin.

After moving the NetscapePlugInStreamLoaderClient virtual
methods from PDFPlugin to PDFPluginStreamLoaderClient, add some
simple methods to PDFPlugin so that PDFPluginStreamLoaderClient
doesn't access the instance variables directly. Also make use
of these new methods in other parts of PDFPlugin.

  • WebProcess/Plugins/PDF/PDFPlugin.h:

(WebKit::PDFPlugin::documentFinishedLoading): Add.
(WebKit::PDFPlugin::identifierForLoader): Add.
(WebKit::PDFPlugin::removeOutstandingByteRangeRequest): Add.
(WebKit::PDFPlugin::PDFPluginStreamLoaderClient): Add class.

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::PDFPlugin):
(WebKit::PDFPlugin::receivedNonLinearizedPDFSentinel):
(WebKit::PDFPlugin::getResourceBytesAtPosition):
(WebKit::PDFPlugin::PDFPluginStreamLoaderClient::willSendRequest): Move from PDFPlugin.
(WebKit::PDFPlugin::PDFPluginStreamLoaderClient::didReceiveResponse): Ditto.
(WebKit::PDFPlugin::PDFPluginStreamLoaderClient::didReceiveData): Ditto.
(WebKit::PDFPlugin::PDFPluginStreamLoaderClient::didFail): Ditto.
(WebKit::PDFPlugin::PDFPluginStreamLoaderClient::didFinishLoading): Ditto.
(WebKit::PDFPlugin::byteRangeRequestForLoader):
(WebKit::PDFPlugin::forgetLoader):
(WebKit::PDFPlugin::willSendRequest): Move to PDFPluginStreamLoaderClient.
(WebKit::PDFPlugin::didReceiveResponse): Ditto.
(WebKit::PDFPlugin::didReceiveData): Ditto.
(WebKit::PDFPlugin::didFail): Ditto.
(WebKit::PDFPlugin::didFinishLoading): Ditto.

2:29 PM Changeset in webkit [268002] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Use memset to zero vectors in PeriodicWave::createBandLimitedTables()
https://bugs.webkit.org/show_bug.cgi?id=217328

Reviewed by Darin Adler.

Use memset to zero vectors in PeriodicWave::createBandLimitedTables() instead of a for
loop, for performance reasons.

No new tests, no Web-facing behavior change.

  • Modules/webaudio/PeriodicWave.cpp:

(WebCore::PeriodicWave::createBandLimitedTables):

2:15 PM Changeset in webkit [268001] by Chris Dumez
  • 25 edits in trunk/Source/WebCore

Use tryHoldLock() in WebAudio to simplify the code
https://bugs.webkit.org/show_bug.cgi?id=217332

Reviewed by Darin Adler.

Use tryHoldLock() in WebAudio to simplify the code a bit.

No new tests, no Web-facing behavior change.

  • Modules/webaudio/AudioBufferSourceNode.cpp:

(WebCore::AudioBufferSourceNode::process):
(WebCore::AudioBufferSourceNode::setBuffer):
(WebCore::AudioBufferSourceNode::startPlaying):
(WebCore::AudioBufferSourceNode::adjustGrainParameters):

  • Modules/webaudio/AudioBufferSourceNode.h:
  • Modules/webaudio/AudioParamTimeline.cpp:

(WebCore::AudioParamTimeline::setValueAtTime):
(WebCore::AudioParamTimeline::linearRampToValueAtTime):
(WebCore::AudioParamTimeline::exponentialRampToValueAtTime):
(WebCore::AudioParamTimeline::setTargetAtTime):
(WebCore::AudioParamTimeline::setValueCurveAtTime):
(WebCore::AudioParamTimeline::insertEvent):
(WebCore::AudioParamTimeline::cancelScheduledValues):
(WebCore::AudioParamTimeline::cancelAndHoldAtTime):
(WebCore::AudioParamTimeline::valueForContextTime):
(WebCore::AudioParamTimeline::valuesForTimeRange):

  • Modules/webaudio/AudioParamTimeline.h:
  • Modules/webaudio/ConvolverNode.cpp:

(WebCore::ConvolverNode::process):
(WebCore::ConvolverNode::setBuffer):

  • Modules/webaudio/ConvolverNode.h:
  • Modules/webaudio/MediaElementAudioSourceNode.cpp:

(WebCore::MediaElementAudioSourceNode::process):

  • Modules/webaudio/MediaStreamAudioSourceNode.cpp:

(WebCore::MediaStreamAudioSourceNode::setFormat):
(WebCore::MediaStreamAudioSourceNode::process):

  • Modules/webaudio/MediaStreamAudioSourceNode.h:
  • Modules/webaudio/OscillatorNode.cpp:

(WebCore::OscillatorNode::process):
(WebCore::OscillatorNode::setPeriodicWave):

  • Modules/webaudio/OscillatorNode.h:
  • Modules/webaudio/PannerNode.cpp:

(WebCore::PannerNode::process):
(WebCore::PannerNode::setPanningModel):
(WebCore::PannerNode::setPosition):
(WebCore::PannerNode::setOrientation):
(WebCore::PannerNode::setDistanceModel):
(WebCore::PannerNode::setRefDistance):
(WebCore::PannerNode::setMaxDistance):
(WebCore::PannerNode::setRolloffFactor):
(WebCore::PannerNode::setConeOuterGain):
(WebCore::PannerNode::setConeOuterAngle):
(WebCore::PannerNode::setConeInnerAngle):

  • Modules/webaudio/PannerNode.h:
  • Modules/webaudio/ScriptProcessorNode.cpp:

(WebCore::ScriptProcessorNode::process):

  • Modules/webaudio/WaveShaperProcessor.cpp:

(WebCore::WaveShaperProcessor::setCurve):
(WebCore::WaveShaperProcessor::setOversample):
(WebCore::WaveShaperProcessor::process):

  • Modules/webaudio/WaveShaperProcessor.h:
  • Modules/webaudio/WebKitAudioPannerNode.cpp:

(WebCore::WebKitAudioPannerNode::process):
(WebCore::WebKitAudioPannerNode::setPanningModel):

  • Modules/webaudio/WebKitAudioPannerNode.h:
  • platform/audio/ReverbConvolver.cpp:

(WebCore::ReverbConvolver::~ReverbConvolver):
(WebCore::ReverbConvolver::backgroundThreadEntry):
(WebCore::ReverbConvolver::process):

  • platform/audio/ReverbConvolver.h:
  • platform/audio/cocoa/AudioDestinationCocoa.cpp:

(WebCore::AudioDestinationCocoa::render):

  • platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:

(WebCore::AudioSourceProviderAVFObjC::~AudioSourceProviderAVFObjC):
(WebCore::AudioSourceProviderAVFObjC::provideInput):
(WebCore::AudioSourceProviderAVFObjC::finalizeCallback):
(WebCore::AudioSourceProviderAVFObjC::prepareCallback):
(WebCore::AudioSourceProviderAVFObjC::unprepareCallback):
(WebCore::AudioSourceProviderAVFObjC::processCallback):

  • platform/mediastream/mac/WebAudioSourceProviderAVFObjC.h:
  • platform/mediastream/mac/WebAudioSourceProviderAVFObjC.mm:

(WebCore::WebAudioSourceProviderAVFObjC::~WebAudioSourceProviderAVFObjC):
(WebCore::WebAudioSourceProviderAVFObjC::provideInput):
(WebCore::WebAudioSourceProviderAVFObjC::prepare):
(WebCore::WebAudioSourceProviderAVFObjC::unprepare):

1:55 PM Changeset in webkit [268000] by eocanha@igalia.com
  • 2 edits in trunk/Source/WebCore

[GTK][X11] WebProcess crash in WebCore::GLContextGLX::createPbufferContext() with NVidia proprietary drivers
https://bugs.webkit.org/show_bug.cgi?id=217323

Reviewed by Adrian Perez de Castro.

The returnedElements variable might remain uninitialized if the glXChooseFBConfig()
function call fails, leading to execution of the wrong code branch later.

  • platform/graphics/glx/GLContextGLX.cpp:

(WebCore::GLContextGLX::createPbufferContext): Initialized the returnedElements variable.

1:24 PM Changeset in webkit [267999] by commit-queue@webkit.org
  • 11 edits
    1 move
    1 add
    1 delete in trunk

REGRESSION(r267763) [SOUP] Some tests flaky crashing in NetworkSessionSoup::soupSession()
https://bugs.webkit.org/show_bug.cgi?id=217163

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2020-10-05
Reviewed by Alex Christensen.

Source/WebCore:

Stop using libsoup for DNS resolver. The libsoup APIs are actually using the GLib networking APIs, and the don't
really use the SoupSession. Rename DNSResolveQueueSoup as DNSResolveQueueGLib and use the GLib API instead.

  • PlatformGTK.cmake:
  • PlatformWPE.cmake:
  • platform/Soup.cmake:
  • platform/SourcesGLib.txt:
  • platform/SourcesSoup.txt:
  • platform/network/DNSResolveQueue.cpp:
  • platform/network/glib/DNSResolveQueueGLib.cpp: Added.

(WebCore::didResolveProxy):
(WebCore::proxyResolvedForHttpUriCallback):
(WebCore::proxyResolvedForHttpsUriCallback):
(WebCore::DNSResolveQueueGLib::updateIsUsingProxy):
(WebCore::DNSResolveQueueGLib::platformResolve):
(WebCore::DNSResolveQueueGLib::resolve):
(WebCore::DNSResolveQueueGLib::stopResolve):

  • platform/network/glib/DNSResolveQueueGLib.h: Renamed from Source/WebCore/platform/network/soup/DNSResolveQueueSoup.h.
  • platform/network/soup/DNSResolveQueueSoup.cpp: Removed.

Source/WebKit:

Remove code to set the SoupSession on DNSResolveQueue.

  • NetworkProcess/NetworkProcess.cpp:

LayoutTests:

Remove expectations for tests that should pass now.

  • platform/glib/TestExpectations:
1:03 PM Changeset in webkit [267998] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Uncaught Exception: TypeError: undefined is not an object (evaluating 'breakpoint.disabled = true')
https://bugs.webkit.org/show_bug.cgi?id=217241

Reviewed by Brian Burg.

  • UserInterface/Controllers/DOMManager.js:

(WI.DOMManager.prototype.removeBreakpointForEventListener):
It's possible for there to not be a breakpoint for a given event listener.

12:57 PM Changeset in webkit [267997] by Darin Adler
  • 19 edits
    6 deletes in trunk/LayoutTests

Selection API: Fix more editing tests that rely on non-standard selection API behavior
https://bugs.webkit.org/show_bug.cgi?id=217301

Reviewed by Sam Weinig.

These changes do not change what the tests are testing. They remove
dependencies in these tests on "canonicalization" of selection points.
This is often always a change to the setup for the test, not the test substance.

In other cases, tests that are not trying to test selection are leaving unimportant
remnants of the selection in their results: clear the selection for those.

Patch also includes a few other expectations fixes so all the tests in the editing
directory pass for me on my development machine.

  • editing/pasteboard/copy-null-characters-expected.txt: Remove expected selection.
  • editing/pasteboard/copy-null-characters.html: Clear the selection after one part

of this test so the markup dump doesn't contain selection endpoints.

  • editing/pasteboard/paste-noscript-xhtml-expected.txt: Remove expected selection.
  • editing/pasteboard/paste-noscript-xhtml.xhtml: Clear the selection at two points

in this test so the markup dump doesn't contain selection endpoints.

  • editing/selection/extend-by-sentence-002.html: Check the selected string rather

than checking the DOM node and offset of the selection. Keeps the substance of this
test without depending on the selection object selecting differently than what we
tell it to do.

  • editing/selection/extend-selection-enclosing-block-mac.html: Set the position

at the start of a text node instead of before the text node.

  • editing/selection/extend-selection-enclosing-block-win.html: Ditto.
  • editing/selection/home-end.html: Added a setPositionAfterLeadingWhitespace

function and use it to set the position at the point the test results are
expecting. Before this change, the code relied on the Selection API to adjust the
selection to the first non-whitespace character, even though that is both non-standard
and not what we are testing. Doing this lets us keep the expected test results the same.

  • editing/selection/move-by-word-visually-multi-line-expected.txt: Updated to

expect moving across the word, even the one that was preceded by a collapsed newline.

  • editing/selection/move-by-word-visually-multi-line.html: Ditto.
  • editing/selection/resources/extend-selection.js:

(setPositionAfterLeadingWhitespace): Added.
(runSelectionTestsWithGranularity): Use setPositionAfterLeadingWhitespace here
for the same purpose as in home-end.html above, to preserve the existing tests
without relying on non-standard Selection API behavior.

  • editing/selection/resources/move-by-word-visually.js:

(setPositionAfterCollapsedLeadingWhitespace): Added.
(moveByWordForEveryPosition): Same as above, use the function.

  • editing/selection/setBaseAndExtent-revert-selection.html: Fix the output function

to properly write out the node ID when the node is a text node within the node with
the ID. Before, the test could fail if the anchor node returned the text node we
passed in, but that relies on non-standard Selection API changes to the passed-in node.

  • editing/selection/toString-1.html: Write out the unexpected result when the test

fails. It's not failing, but at one point it was, and this made it easier to diagnose.

  • editing/undo/undo-after-event-edited.html: Use the Delete command to do a deletion

that we later undo. The old code was using the Selection API extractContents method,
which is not an undoable editing operation.

  • platform/gtk/editing/pasteboard/drop-text-without-selection-expected.txt: Removed.
  • platform/ios/editing/pasteboard/drop-text-without-selection-expected.txt: Removed.
  • platform/mac-bigsur-wk1/editing/pasteboard/drop-text-without-selection-expected.txt: Removed.
  • platform/mac-bigsur/editing/pasteboard/drop-text-without-selection-expected.txt: Removed.
  • platform/win/editing/pasteboard/drop-text-without-selection-expected.txt: Removed.
  • platform/wincairo/editing/pasteboard/drop-text-without-selection-expected.txt: Removed.

These unused files were incorrectly left behind when we converted this into a reftest.

  • platform/mac-wk1/TestExpectations: Changed retro-correction-spelling-markers.html

to "[ Pass Failure ]" since it's a flaky test, not a reliable failure.

  • platform/mac/TestExpectations: Changed some flakiness expectations that were marked

Release-only to be in effect in Debug builds too. For autocorrection-contraction.html,
expect a timeout on BigSur+ Debug. Not sure exactly what is causing it, but it's happening
both locally for me and on the bots.

  • platform/wk2/TestExpectations: Expect a timeout in Debug builds for two tests that are

timing out both for me and on the Modern WebKit Debug bots, but not Legacy WebKit and not
Release bots.

12:56 PM Changeset in webkit [267996] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

Unreviewed, reverting r267986.
https://bugs.webkit.org/show_bug.cgi?id=217329

Introduced layout test failures

Reverted changeset:

"[Cocoa] Reduce time waiting for Launch Services database"
https://bugs.webkit.org/show_bug.cgi?id=217253
https://trac.webkit.org/changeset/267986

12:36 PM Changeset in webkit [267995] by achristensen@apple.com
  • 47 edits in trunk

WebKit doesn't parse "#" as delimiter for fragment identifier in data URIs
https://bugs.webkit.org/show_bug.cgi?id=68089

Patch by Rob Buis <rbuis@igalia.com> on 2020-10-05
Reviewed by Alex Christensen, Ryosuke Niwa, and Darin Adler.

LayoutTests/imported/w3c:

Update improved test results.

  • web-platform-tests/fetch/data-urls/processing.any-expected.txt:
  • web-platform-tests/fetch/data-urls/processing.any.worker-expected.txt:
  • web-platform-tests/url/data-uri-fragment-expected.txt:

Source/WebCore:

To maintain compatibility with existing iOS and macOS apps, we only do this for apps linked
with the SDK after the change.

Covered by newly passing web platform tests (which Chrome and Firefox already passed).

  • loader/ResourceLoader.cpp:

(WebCore::shouldStripFragmentIdentifier):
(WebCore::ResourceLoader::loadDataURL):

  • platform/cocoa/VersionChecks.h:

Source/WTF:

  • wtf/URL.h:
  • wtf/spi/darwin/dyldSPI.h:

LayoutTests:

Adjusts tests thats use data URIs to escape the # character.

  • accessibility/ios-simulator/iframe-access.html:
  • accessibility/ios-simulator/unobscured-content-rect.html:
  • accessibility/resources/iframe.html:
  • accessibility/scroll-to-global-point-iframe.html:
  • accessibility/scroll-to-make-visible-iframe-offscreen.html:
  • accessibility/scroll-to-make-visible-iframe.html:
  • css3/blending/background-blend-mode-crossfade-image.html:
  • css3/blending/background-blend-mode-data-uri-svg-image.html:
  • css3/blending/background-blend-mode-tiled-layers.html:
  • css3/flexbox/flexitem.html:
  • css3/shapes/shape-outside/shape-image/shape-image-002.html:
  • css3/shapes/shape-outside/shape-image/shape-image-005.html:
  • editing/pasteboard/data-transfer-set-data-sanitize-url-when-copying-in-null-origin.html:
  • editing/pasteboard/data-transfer-set-data-sanitize-url-when-dragging-in-null-origin.html:
  • fast/css-grid-layout/grid-item-display.html:
  • fast/css/import-style-update.html:
  • fast/css/link-media-attr.html:
  • fast/dom/HTMLLinkElement/link-stylesheet-media-type.html:
  • fast/events/attribute-listener-cloned-from-frameless-doc-context-2.html:
  • fast/events/attribute-listener-cloned-from-frameless-doc-context.html:
  • fast/events/attribute-listener-extracted-from-frameless-doc-context-2.html:
  • fast/events/attribute-listener-extracted-from-frameless-doc-context.html:
  • fast/hidpi/image-srcset-data-escaped-srcset.html:
  • fast/html/link-rel-stylesheet.html:
  • fast/loader/data-url-encoding-html.html:
  • fast/loader/data-url-encoding-svg.html:
  • fast/spatial-navigation/resources/iframe.html:
  • http/tests/security/top-level-unique-origin.https.html:
  • platform/ios/css3/flexbox/flexitem-expected.txt:
  • platform/win/css3/flexbox/flexitem-expected.txt:
  • security/contentSecurityPolicy/link-with-data-url-allowed-by-style-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled.html:
  • svg/animations/css-animation-background-svg.html:
  • svg/animations/css-animation-embedded-svg.html:
  • svg/animations/css-animation-hover-svg.html:
  • svg/as-image/svg-canvas-data-url-svg-with-feimage-not-tainted.html:
  • svg/custom/object-data-href.html:
12:31 PM Changeset in webkit [267994] by svillar@igalia.com
  • 4 edits in trunk/LayoutTests

[css-flex] Fix expectations of a test which is actually passing
https://bugs.webkit.org/show_bug.cgi?id=217318

Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-flexbox/padding-overflow-crash-expected.html: Added a missing " only"

to match the string used in the test.

LayoutTests:

  • TestExpectations: Removed a padding-overflow-crash.html which is actually passing.
12:23 PM Changeset in webkit [267993] by Alan Coon
  • 23 edits
    3 adds in branches/safari-610.2.8.0-branch

Cherry-pick r267869. rdar://problem/69963917

[iOS WK1] Crashes when using ANGLE WebGL from another thread
https://bugs.webkit.org/show_bug.cgi?id=216106
<rdar://problem/68602452>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2020-10-02
Reviewed by Kenneth Russell.

Source/ThirdParty/ANGLE:

Add two extensions for EAGL and CGL backends to declare the
underlying platform context being "volatile". It means that
the thread-global current context is being modified behind
ANGLE. If ANGLE context is marked volatile for a particular
API, it will sync the underlying context for every EGL
function that needs the context. Most intuitive use is
for the client to call eglMakeCurrent before calling any
gl function if the client knowns the platform state might
be dirty.

Implement eglReleaseThread for EAGL and CGL backends.
Releasing thread will unset the platform current context.

Fix a bug of omitting EGL_ANGLE_device_eagl from being
advertised.

  • extensions/EGL_ANGLE_platform_angle_device_context_volatile_cgl.txt: Added.
  • extensions/EGL_ANGLE_platform_angle_device_context_volatile_eagl.txt: Added.
  • include/EGL/eglext_angle.h:
  • src/libANGLE/Caps.cpp: (egl::DeviceExtensions::getStrings const): (egl::ClientExtensions::getStrings const):
  • src/libANGLE/Caps.h:
  • src/libANGLE/Display.cpp: (egl::Display::prepareForCall): (egl::Display::releaseThread): (egl::GenerateClientExtensions):
  • src/libANGLE/Display.h:
  • src/libANGLE/renderer/DisplayImpl.cpp: (rx::DisplayImpl::prepareForCall): (rx::DisplayImpl::releaseThread):
  • src/libANGLE/renderer/DisplayImpl.h:
  • src/libANGLE/renderer/gl/cgl/DisplayCGL.h:
  • src/libANGLE/renderer/gl/cgl/DisplayCGL.mm: (rx::DisplayCGL::initialize): (rx::DisplayCGL::terminate): (rx::DisplayCGL::prepareForCall): (rx::DisplayCGL::releaseThread): (rx::DisplayCGL::makeCurrent):
  • src/libANGLE/renderer/gl/eagl/DisplayEAGL.h:
  • src/libANGLE/renderer/gl/eagl/DisplayEAGL.mm: (rx::DisplayEAGL::initialize): (rx::DisplayEAGL::terminate): (rx::DisplayEAGL::prepareForCall): (rx::DisplayEAGL::releaseThread):
  • src/libANGLE/validationEGL.cpp:
  • src/libGLESv2/entry_points_egl.cpp:
  • src/libGLESv2/entry_points_egl_ext.cpp:

Source/WebCore:

Source of the bug comes from following:

  • WK1 might run WebKit code in client main thread.
  • WK1 might run Webkit code in web thread.
  • WebKit code might run WebGL payload, notably access GraphicsContextGL classes. Client is able to modify EAGL/CGL current context.

The change to ANGLE incurred two distinct behavior changes
compared to raw EAGL / CGL:
1) Before: context was set current before any GL call
After: context was set current only if EGL current context
had been changed. (Explicit code as well as ANGLE implementation
optimization.)

2) Before: context being used was able to be current in
multiple threads at the same time. (EAGL/CGL feature)
After: context cannot be current in multiple threads
at the same time. (EGL feature)

Change in behavior 1) caused ANGLE to sometimes use
the EAGL/CGL context of the client instead of
the real context that ANGLE created.
Fix this by introducing
EGL_ANGLE_platform_angle_device_context_volatile_eagl
and
EGL_ANGLE_platform_angle_device_context_volatile_cgl
which make ANGLE sync the context on each eglMakeCurrent
eglReleaseThread and eglTerminate.

Change in behavior 2) caused ANGLE to use uninitialized
context object from one thread, if the real context object
was current in another thread.
Fix this by considering "GraphicsContextGLOpenGL current context"
as part of "data that is owned by WebCoreThread lock".
The current context is set with lock held, implicitly.
The current context is released when lock is released.
When the lock is not held, GraphicsContextGLOpenGL current context
is nullptr.

Adds soft linking for EAGL for the purpose of testing this in
TestWebKitAPI. The case of Apple Silicon Mac may sometimes
use CGL and sometimes EAGL, and the test should test that
client overriding both contexts will not cause problems.

Fix ANGLE header include path:

  • Do not include ANGLE in the path, as files are included with ANGLE/
  • Add WK_ALTERNATE_FRAMEWORKS_DIR so that SDK_VARIANT=iosmac e.g. maccatalyst builds work

Previously the ANGLE was not included from ThirdParty/ANGLE, rather
"WebKit SDK".

  • Configurations/WebCore.xcconfig:
  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm: (WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL): (WebCore::GraphicsContextGLOpenGL::~GraphicsContextGLOpenGL): (WebCore::GraphicsContextGLOpenGL::makeContextCurrent): (WebCore::GraphicsContextGLOpenGL::releaseCurrentContext): (WebCore::GraphicsContextGLOpenGL::checkGPUStatus): (WebCore::GraphicsContextGLOpenGL::allowOfflineRenderers const):
  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • platform/ios/wak/WebCoreThread.mm: (WebThreadUnlockFromAnyThread): (_WebThreadUnlock):

Tools:

Add a WK1 test which runs WebGL code both in
client main thread and in web thread.
This tests the case where ANGLE EGL context is
not being held current in one thread while the
other thread runs WebGL and thus ANGLE EGL code.

  • TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitLegacy/ios/WebGLNoCrashOnOtherThreadAccess.mm: Added. (-[WebGLNoCrashOnOtherThreadAccessWebViewDelegate webViewDidFinishLoad:]): (-[WebGLNoCrashOnOtherThreadAccessWebViewDelegate webView:shouldStartLoadWithRequest:navigationType:]): (TestWebKitAPI::TEST):

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

12:23 PM Changeset in webkit [267992] by Alan Coon
  • 45 edits
    1 move
    8 adds in branches/safari-610.2.8.0-branch/Source

Cherry-pick r267602. rdar://problem/69963917

WebGL should use GLES in iOS apps running on Apple Silicon
https://bugs.webkit.org/show_bug.cgi?id=216722
<rdar://problem/68976337>

Reviewed by Tim Horton and Ken Russell.

Source/ThirdParty/ANGLE:

Change ANGLE to dynamically load either EAGL (OpenGLES) or CGL (OpenGL) depending
on both compile and runtime configurations.

Intel Mac -> CGL
Intel Mac Catalyst -> CGL
Intel iOS Simulator -> EAGL
iOS Device -> EAGL
Apple Silicon Mac -> CGL
Apple Silicon Mac Catalyst (with Mac app) -> CGL
Apple Silicon Mac Catalyst (with iOS app) -> EAGL

The trickiest bit is Apple Silicon Mac Catalyst, which depends on the
type of the application it is attempting to run. In that case ANGLE must compile
both the CGL and EAGL interfaces and then pick one to use after launch.

  • ANGLE.xcodeproj/project.pbxproj: Add new files.
  • Configurations/ANGLE-dynamic.xcconfig: Remove all the OpenGL* linking.
  • Configurations/ANGLE-static.xcconfig:
  • GLESv2.cmake: New files.
  • src/common/platform.h: New definitions for CPU type on Apple Systems.
  • src/gpu_info_util/SystemInfo.h: Split SystemInfo for Apple into two files, for iOS and Mac. Added a field for isiOSAppOnMac that will only be true when running an iOS binary on Apple Silicon.
  • src/gpu_info_util/SystemInfo_apple.mm: Added. Decides which SystemInfo to call. (angle::GetSystemInfo):
  • src/gpu_info_util/SystemInfo_ios.cpp: (angle::GetSystemInfo_ios): (angle::GetSystemInfo): Deleted.
  • src/gpu_info_util/SystemInfo_macos.mm: (angle::GetSystemInfo_mac): (angle::GetSystemInfo): Deleted.
  • src/libANGLE/Caps.cpp: Can no longer just check for PLATFORM_IOS. This might still need a runtime check. (gl::DetermineDepthTextureANGLESupport): (gl::DetermineDepthTextureOESSupport):
  • src/libANGLE/Display.cpp: This is the main initialization point for ANGLE, which decides at compile/runtime which variant of Display to create.
  • src/libANGLE/formatutils.cpp: Add the correct formats. (gl::BuildInternalFormatInfoMap):
  • src/libANGLE/renderer/gl/SoftLinking_apple.h: Added. Macros to help soft-link functions and ObjC classes.
  • src/libANGLE/renderer/gl/cgl/CGLFunctions.cpp: Added. Where we soft-link all the OpenGL/CGL API.
  • src/libANGLE/renderer/gl/cgl/CGLFunctions.h: Added.
  • src/libANGLE/renderer/gl/cgl/DisplayCGL.mm: Use the soft-linked methods.
  • src/libANGLE/renderer/gl/cgl/IOSurfaceSurfaceCGL.cpp:
  • src/libANGLE/renderer/gl/cgl/WindowSurfaceCGL.h:
  • src/libANGLE/renderer/gl/cgl/WindowSurfaceCGL.mm: Rename WebSwapLayer to WebSwapLayerCGL otherwise it clashes with the EAGL version. (rx::WindowSurfaceCGL::initialize): (-[WebSwapLayer initWithSharedState:withContext:withFunctions:]): Deleted. (-[WebSwapLayer copyCGLPixelFormatForDisplayMask:]): Deleted. (-[WebSwapLayer copyCGLContextForPixelFormat:]): Deleted. (-[WebSwapLayer canDrawInCGLContext:pixelFormat:forLayerTime:displayTime:]): Deleted. (-[WebSwapLayer drawInCGLContext:pixelFormat:forLayerTime:displayTime:]): Deleted.
  • src/libANGLE/renderer/gl/eagl/DeviceEAGL.cpp: Similar changes to the CGL implementation.
  • src/libANGLE/renderer/gl/eagl/DeviceEAGL.h:
  • src/libANGLE/renderer/gl/eagl/DisplayEAGL.h:
  • src/libANGLE/renderer/gl/eagl/DisplayEAGL.mm: (rx::DisplayEAGL::initialize): (rx::DisplayEAGL::terminate): (rx::WorkerContextEAGL::~WorkerContextEAGL): (rx::WorkerContextEAGL::makeCurrent): (rx::WorkerContextEAGL::unmakeCurrent): (rx::DisplayEAGL::createWorkerContext):
  • src/libANGLE/renderer/gl/eagl/EAGLFunctions.h: Added.
  • src/libANGLE/renderer/gl/eagl/EAGLFunctions.mm: Added.
  • src/libANGLE/renderer/gl/eagl/IOSurfaceSurfaceEAGL.mm:
  • src/libANGLE/renderer/gl/eagl/PbufferSurfaceEAGL.cpp:
  • src/libANGLE/renderer/gl/eagl/RendererEAGL.cpp:
  • src/libANGLE/renderer/gl/eagl/WindowSurfaceEAGL.h:
  • src/libANGLE/renderer/gl/eagl/WindowSurfaceEAGL.mm: (-[WebSwapLayerEAGL display]): (rx::WindowSurfaceEAGL::initialize): (-[WebSwapLayer initWithSharedState:withContext:withFunctions:]): Deleted. (-[WebSwapLayer display]): Deleted.
  • src/libANGLE/renderer/gl/renderergl_utils.cpp: Runtime check. (rx::nativegl_gl::GenerateCaps):

Source/WebCore:

  • Configurations/WebCore.xcconfig: Remove all OpenGL/OpenGLES linking.
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/GraphicsContextGL.h: Change the ANGLE IOSurface texture binding enums into functions, because they have to be calculated at run-time.
  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm: Use the new soft-linked functions from PAL. Also implement the IOSurface texture binding helpers that were previously enums.
  • platform/mac/PlatformScreenMac.mm:
  • platform/mac/WebGLBlocklist.mm:

Source/WebCore/PAL:

Add soft-linking content for OpenGL/OpenGLES.

  • PAL.xcodeproj/project.pbxproj:
  • pal/PlatformMac.cmake:
  • pal/cocoa/OpenGLSoftLinkCocoa.h: Added.
  • pal/cocoa/OpenGLSoftLinkCocoa.mm: Added.

Source/WebKit:

  • Configurations/WebKit.xcconfig: Remove OpenGL linking.
  • UIProcess/mac/HighPerformanceGPUManager.mm: Renamed to .mm. Use the PAL soft-linked OpenGL API.

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

12:14 PM Changeset in webkit [267991] by Alan Coon
  • 8 edits in branches/safari-610.2.8.0-branch/Source

Versioning.

WebKit-7610.2.8.0.1

12:13 PM Changeset in webkit [267990] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GLIB] Remove two WebGL tests crashing that are passing since r266809.

Unreviewed test gardening.

Also emit GLIB baseline for webgl/1.0.3/conformance/context/context-lost-restored.html.

  • platform/glib/TestExpectations:
  • platform/glib/webgl/1.0.3/conformance/context/context-lost-restored-expected.txt:
12:01 PM Changeset in webkit [267989] by Alan Coon
  • 1 copy in branches/safari-610.2.8.0-branch

New branch.

11:56 AM Changeset in webkit [267988] by Aditya Keerthi
  • 35 edits
    16 adds in trunk

[Contact Picker API] Introduce bindings for the Contact Picker API
https://bugs.webkit.org/show_bug.cgi?id=216793
<rdar://problem/69317957>

Reviewed by Wenson Hsieh.

Source/WebCore:

Added IDL for the Contact Picker API, with the exception of the address
and icon contact properties (which will be added after an initial
implemention is complete). See: https://wicg.github.io/contact-api/spec/
for more information.

Test: contact-picker/contacts-interfaces.html

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/contact-picker/ContactInfo.h: Added.
  • Modules/contact-picker/ContactInfo.idl: Added.
  • Modules/contact-picker/ContactProperty.h: Added.
  • Modules/contact-picker/ContactProperty.idl: Added.
  • Modules/contact-picker/ContactsManager.cpp: Added.

(WebCore::ContactsManager::create):
(WebCore::ContactsManager::ContactsManager):
(WebCore::ContactsManager::navigator):
(WebCore::ContactsManager::getProperties):
(WebCore::ContactsManager::select):

Stub out these API calls for now by immediately rejecting the given promise.

  • Modules/contact-picker/ContactsManager.h: Added.
  • Modules/contact-picker/ContactsManager.idl: Added.
  • Modules/contact-picker/ContactsSelectOptions.h: Added.
  • Modules/contact-picker/ContactsSelectOptions.idl: Added.
  • Modules/contact-picker/NavigatorContacts.cpp: Added.

(WebCore::NavigatorContacts::NavigatorContacts):
(WebCore::NavigatorContacts::contacts):
(WebCore::NavigatorContacts::from):
(WebCore::NavigatorContacts::supplementName):

  • Modules/contact-picker/NavigatorContacts.h: Added.
  • Modules/contact-picker/Navigator+Contacts.idl: Added.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • page/Settings.yaml:

Source/WebKit:

Added a new experimental feature flag. See WebCore Changelog for more details.

  • Shared/WebPreferencesExperimental.yaml:

Source/WebKitLegacy/mac:

Added plumbing to support the associated experimental test option.

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

(-[WebPreferences contactPickerAPIEnabled]):
(-[WebPreferences setContactPickerAPIEnabled:]):

  • WebView/WebPreferencesPrivate.h:

Source/WebKitLegacy/win:

Added plumbing to support the associated experimental test option.

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

(WebPreferences::initializeDefaultSettings):
(WebPreferences::contactPickerAPIEnabled):
(WebPreferences::setContactPickerAPIEnabled):

  • WebPreferences.h:
  • WebView.cpp:

(WebView::notifyPreferencesChanged):

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

Add experimental preference for the Contact Picker API.

Tools:

Added plumbing to support the associated experimental test option.

  • DumpRenderTree/TestOptions.cpp:

(TestOptions::TestOptions):

  • DumpRenderTree/TestOptions.h:
  • DumpRenderTree/mac/DumpRenderTree.mm:

(setWebPreferencesForTestOptions):

  • DumpRenderTree/win/DumpRenderTree.cpp:

(setWebPreferencesForTestOptions):

LayoutTests:

  • contact-picker/contacts-interfaces-expected.txt: Added.
  • contact-picker/contacts-interfaces.html: Added.

Added a new test to verify the new API interfaces.

  • fast/dom/navigator-detached-no-crash-expected.txt:
  • platform/gtk/fast/dom/navigator-detached-no-crash-expected.txt:
  • platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt:
  • platform/mac/fast/dom/navigator-detached-no-crash-expected.txt:
  • platform/win/fast/dom/navigator-detached-no-crash-expected.txt:
  • platform/wincairo/fast/dom/navigator-detached-no-crash-expected.txt:
  • platform/wpe/fast/dom/navigator-detached-no-crash-expected.txt:

Updated an existing test to include "navigator.contacts".

11:52 AM Changeset in webkit [267987] by youenn@apple.com
  • 10 edits
    2 adds in trunk

MediaRecorder should respect enabled and muted tracks
https://bugs.webkit.org/show_bug.cgi?id=217312

Reviewed by Eric Carlson.

Source/WebCore:

If track is muted, replace it by either silence (audio buffer filled with zeros) or black frames.
MediaRecorderPrivate will keep track of whether the selected track should be muted.
It is then the responsibility of the specialization to do the appropriate processing.

Test: http/wpt/mediarecorder/mute-tracks.html

  • Modules/mediarecorder/MediaRecorder.cpp:

(WebCore::MediaRecorder::trackMutedChanged):
(WebCore::MediaRecorder::trackEnabledChanged):

  • Modules/mediarecorder/MediaRecorder.h:
  • platform/audio/cocoa/WebAudioBufferList.cpp:

(WebCore::WebAudioBufferList::zeroFlatBuffer):

  • platform/audio/cocoa/WebAudioBufferList.h:
  • platform/mediarecorder/MediaRecorderPrivate.cpp:

(WebCore::MediaRecorderPrivate::selectTracks):
(WebCore::MediaRecorderPrivate::checkTrackState):

  • platform/mediarecorder/MediaRecorderPrivate.h:

(WebCore::MediaRecorderPrivate::trackMutedChanged):
(WebCore::MediaRecorderPrivate::trackEnabledChanged):
(WebCore::MediaRecorderPrivate::shouldMuteAudio const):
(WebCore::MediaRecorderPrivate::shouldMuteVideo const):

  • platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp:

(WebCore::MediaRecorderPrivateAVFImpl::create):
(WebCore::MediaRecorderPrivateAVFImpl::videoSampleAvailable):
(WebCore::MediaRecorderPrivateAVFImpl::audioSamplesAvailable):

  • platform/mediarecorder/MediaRecorderPrivateAVFImpl.h:

LayoutTests:

  • http/wpt/mediarecorder/mute-tracks-expected.txt: Added.
  • http/wpt/mediarecorder/mute-tracks.html: Added.
11:43 AM Changeset in webkit [267986] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

[Cocoa] Reduce time waiting for Launch Services database
https://bugs.webkit.org/show_bug.cgi?id=217253
<rdar://problem/68585497>

Reviewed by Brent Fulgham.

Currently, the WebContent process is waiting up to 5 seconds for the Launch Services database to be updated.
This is too long, since the process may be considered unresponsive by the system. This patch also addresses
an issue where the required entitlement 'com.apple.private.webkit.use-xpc-endpoint' is missing from the
WebContent development XPC service. This entitlement is required in order to receive the Launch Services
database XPC object in the WebContent process.

  • Scripts/process-entitlements.sh:
  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::platformDidReceiveLoadParameters):

11:42 AM Changeset in webkit [267985] by graouts@webkit.org
  • 25 edits
    16 adds in trunk

Add non-animated support for the CSS rotate property
https://bugs.webkit.org/show_bug.cgi?id=217320
<rdar://problem/69956248>

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

WPT progressions showing the correct parsing and computed style output of a non-animated "rotate" property.

  • web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • web-platform-tests/css/css-transforms/animation/rotate-composition-expected.txt:
  • web-platform-tests/css/css-transforms/animation/rotate-interpolation-expected.txt:
  • web-platform-tests/css/css-transforms/parsing/rotate-parsing-valid-expected.txt:
  • web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:

Source/WebCore:

We add non-animated support for the CSS "rotate" property as specifed in by the CSS Transforms Level 2
specification (​​https://drafts.csswg.org/css-transforms-2/#propdef-rotate).

Tests: transforms/2d/rotate-and-scale-and-translate-order.html

transforms/2d/rotate-and-transform-attribute-in-svg-expected.svg
transforms/2d/rotate-and-transform-attribute-in-svg.svg
transforms/2d/rotate-and-transform-css-property-in-svg-expected.svg
transforms/2d/rotate-and-transform-css-property-in-svg.svg
transforms/2d/rotate-and-translate-in-svg-expected.svg
transforms/2d/rotate-and-translate-in-svg.svg
transforms/2d/rotate-and-translate-order.html
transforms/2d/rotate-in-svg-expected.svg
transforms/2d/rotate-in-svg.svg
transforms/2d/rotate-transform-order.html
transforms/2d/rotate-transform-origin-order.html

  • Headers.cmake:
  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::computedRotate): Create a CSSValueList to print out the computed value for the "rotate" property.
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/CSSProperties.json: Define the "rotate" property with the condition that the runtime setting for individual

CSS transform properties is set.

  • css/CSSValueKeywords.in: Define the "z" value for the "rotate" property and ensure the "x" and "y" values are

defined as well since -webkit-scroll-snap-type may not be enabled.

  • css/TransformFunctions.cpp:

(WebCore::rotateForValue): Convert a CSSValue to a RotateTransformOperation when parsing a "rotate" property value.

  • css/TransformFunctions.h:
  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeRotate): Create a CSSValueList when parsing a "rotate" property value.
(WebCore::CSSPropertyParser::parseSingleValue):

  • platform/graphics/transforms/RotateTransformOperation.h:
  • rendering/RenderObject.h:

(WebCore::RenderObject::hasTransform const): Consider that having the "rotate" property is akin to having a "transform" property
in the render tree.

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::setRotate):
(WebCore::RenderStyle::applyTransform const): Account for the RenderStyle::rotate() value in the right order, after applying the
transform origin and translate, but before applying the scale and main transform.

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::rotate const):
(WebCore::RenderStyle::hasTransformRelatedProperty const):
(WebCore::RenderStyle::initialRotate):

  • rendering/style/StyleRareNonInheritedData.h:
  • rendering/style/WillChangeData.cpp:

(WebCore::WillChangeData::propertyCreatesStackingContext):

  • style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertRotate):

  • svg/SVGGraphicsElement.cpp:

(WebCore::SVGGraphicsElement::animatedLocalTransform const): Account for the RenderStyle::rotate() value when rendering SVG, ensuring
that it is applied before the transform specified by either the "transform" CSS property or SVG attribute.

LayoutTests:

Add tests checking that the "rotate" CSS property is applied in the correct order related to
"transform-origin", "transform", "scale" and "translate". We also check that it is applied
in SVG as well.

  • platform/ios-13/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • transforms/2d/rotate-and-scale-and-translate-order-expected.html: Added.
  • transforms/2d/rotate-and-scale-and-translate-order.html: Added.
  • transforms/2d/rotate-and-transform-attribute-in-svg-expected.svg: Added.
  • transforms/2d/rotate-and-transform-attribute-in-svg.svg: Added.
  • transforms/2d/rotate-and-transform-css-property-in-svg-expected.svg: Added.
  • transforms/2d/rotate-and-transform-css-property-in-svg.svg: Added.
  • transforms/2d/rotate-and-translate-in-svg-expected.svg: Added.
  • transforms/2d/rotate-and-translate-in-svg.svg: Added.
  • transforms/2d/rotate-and-translate-order-expected.html: Added.
  • transforms/2d/rotate-and-translate-order.html: Added.
  • transforms/2d/rotate-in-svg-expected.svg: Added.
  • transforms/2d/rotate-in-svg.svg: Added.
  • transforms/2d/rotate-transform-order-expected.html: Added.
  • transforms/2d/rotate-transform-order.html: Added.
  • transforms/2d/rotate-transform-origin-order-expected.html: Added.
  • transforms/2d/rotate-transform-origin-order.html: Added.
11:39 AM Changeset in webkit [267984] by achristensen@apple.com
  • 1 edit
    2 deletes in trunk/LayoutTests/imported/w3c

Remove url-domainToUnicode web platform test as it was done upstream.

  • web-platform-tests/url/url-domainToUnicode-expected.txt: Removed.
  • web-platform-tests/url/url-domainToUnicode.html: Removed.
11:04 AM Changeset in webkit [267983] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

REGRESSION (r267602): editing/selection/ios/select-all-in-readonly-input-does-not-overflow.html fails
https://bugs.webkit.org/show_bug.cgi?id=217321

Reviewed by Dean Jackson.

Fixes an existing test by restoring the commented-out code.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _selectionClipRect]):

10:59 AM Changeset in webkit [267982] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests/imported/w3c

[WPE] Update baselines of two touch-events tests after r266649.

Unreviewed test gardening.

General baselines are updated because WPE is the only port running
these tests. They're skipped in all other ports.

  • web-platform-tests/touch-events/historical-expected.txt:
  • web-platform-tests/touch-events/idlharness.window-expected.txt:
10:41 AM Changeset in webkit [267981] by Alan Coon
  • 23 edits
    3 adds in branches/safari-610-branch

Cherry-pick r267869. rdar://problem/69904332

[iOS WK1] Crashes when using ANGLE WebGL from another thread
https://bugs.webkit.org/show_bug.cgi?id=216106
<rdar://problem/68602452>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2020-10-02
Reviewed by Kenneth Russell.

Source/ThirdParty/ANGLE:

Add two extensions for EAGL and CGL backends to declare the
underlying platform context being "volatile". It means that
the thread-global current context is being modified behind
ANGLE. If ANGLE context is marked volatile for a particular
API, it will sync the underlying context for every EGL
function that needs the context. Most intuitive use is
for the client to call eglMakeCurrent before calling any
gl function if the client knowns the platform state might
be dirty.

Implement eglReleaseThread for EAGL and CGL backends.
Releasing thread will unset the platform current context.

Fix a bug of omitting EGL_ANGLE_device_eagl from being
advertised.

  • extensions/EGL_ANGLE_platform_angle_device_context_volatile_cgl.txt: Added.
  • extensions/EGL_ANGLE_platform_angle_device_context_volatile_eagl.txt: Added.
  • include/EGL/eglext_angle.h:
  • src/libANGLE/Caps.cpp: (egl::DeviceExtensions::getStrings const): (egl::ClientExtensions::getStrings const):
  • src/libANGLE/Caps.h:
  • src/libANGLE/Display.cpp: (egl::Display::prepareForCall): (egl::Display::releaseThread): (egl::GenerateClientExtensions):
  • src/libANGLE/Display.h:
  • src/libANGLE/renderer/DisplayImpl.cpp: (rx::DisplayImpl::prepareForCall): (rx::DisplayImpl::releaseThread):
  • src/libANGLE/renderer/DisplayImpl.h:
  • src/libANGLE/renderer/gl/cgl/DisplayCGL.h:
  • src/libANGLE/renderer/gl/cgl/DisplayCGL.mm: (rx::DisplayCGL::initialize): (rx::DisplayCGL::terminate): (rx::DisplayCGL::prepareForCall): (rx::DisplayCGL::releaseThread): (rx::DisplayCGL::makeCurrent):
  • src/libANGLE/renderer/gl/eagl/DisplayEAGL.h:
  • src/libANGLE/renderer/gl/eagl/DisplayEAGL.mm: (rx::DisplayEAGL::initialize): (rx::DisplayEAGL::terminate): (rx::DisplayEAGL::prepareForCall): (rx::DisplayEAGL::releaseThread):
  • src/libANGLE/validationEGL.cpp:
  • src/libGLESv2/entry_points_egl.cpp:
  • src/libGLESv2/entry_points_egl_ext.cpp:

Source/WebCore:

Source of the bug comes from following:

  • WK1 might run WebKit code in client main thread.
  • WK1 might run Webkit code in web thread.
  • WebKit code might run WebGL payload, notably access GraphicsContextGL classes. Client is able to modify EAGL/CGL current context.

The change to ANGLE incurred two distinct behavior changes
compared to raw EAGL / CGL:
1) Before: context was set current before any GL call
After: context was set current only if EGL current context
had been changed. (Explicit code as well as ANGLE implementation
optimization.)

2) Before: context being used was able to be current in
multiple threads at the same time. (EAGL/CGL feature)
After: context cannot be current in multiple threads
at the same time. (EGL feature)

Change in behavior 1) caused ANGLE to sometimes use
the EAGL/CGL context of the client instead of
the real context that ANGLE created.
Fix this by introducing
EGL_ANGLE_platform_angle_device_context_volatile_eagl
and
EGL_ANGLE_platform_angle_device_context_volatile_cgl
which make ANGLE sync the context on each eglMakeCurrent
eglReleaseThread and eglTerminate.

Change in behavior 2) caused ANGLE to use uninitialized
context object from one thread, if the real context object
was current in another thread.
Fix this by considering "GraphicsContextGLOpenGL current context"
as part of "data that is owned by WebCoreThread lock".
The current context is set with lock held, implicitly.
The current context is released when lock is released.
When the lock is not held, GraphicsContextGLOpenGL current context
is nullptr.

Adds soft linking for EAGL for the purpose of testing this in
TestWebKitAPI. The case of Apple Silicon Mac may sometimes
use CGL and sometimes EAGL, and the test should test that
client overriding both contexts will not cause problems.

Fix ANGLE header include path:

  • Do not include ANGLE in the path, as files are included with ANGLE/
  • Add WK_ALTERNATE_FRAMEWORKS_DIR so that SDK_VARIANT=iosmac e.g. maccatalyst builds work

Previously the ANGLE was not included from ThirdParty/ANGLE, rather
"WebKit SDK".

  • Configurations/WebCore.xcconfig:
  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm: (WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL): (WebCore::GraphicsContextGLOpenGL::~GraphicsContextGLOpenGL): (WebCore::GraphicsContextGLOpenGL::makeContextCurrent): (WebCore::GraphicsContextGLOpenGL::releaseCurrentContext): (WebCore::GraphicsContextGLOpenGL::checkGPUStatus): (WebCore::GraphicsContextGLOpenGL::allowOfflineRenderers const):
  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • platform/ios/wak/WebCoreThread.mm: (WebThreadUnlockFromAnyThread): (_WebThreadUnlock):

Tools:

Add a WK1 test which runs WebGL code both in
client main thread and in web thread.
This tests the case where ANGLE EGL context is
not being held current in one thread while the
other thread runs WebGL and thus ANGLE EGL code.

  • TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitLegacy/ios/WebGLNoCrashOnOtherThreadAccess.mm: Added. (-[WebGLNoCrashOnOtherThreadAccessWebViewDelegate webViewDidFinishLoad:]): (-[WebGLNoCrashOnOtherThreadAccessWebViewDelegate webView:shouldStartLoadWithRequest:navigationType:]): (TestWebKitAPI::TEST):

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

10:41 AM Changeset in webkit [267980] by Alan Coon
  • 45 edits
    1 move
    8 adds in branches/safari-610-branch/Source

Cherry-pick r267602. rdar://problem/69904386

WebGL should use GLES in iOS apps running on Apple Silicon
https://bugs.webkit.org/show_bug.cgi?id=216722
<rdar://problem/68976337>

Reviewed by Tim Horton and Ken Russell.

Source/ThirdParty/ANGLE:

Change ANGLE to dynamically load either EAGL (OpenGLES) or CGL (OpenGL) depending
on both compile and runtime configurations.

Intel Mac -> CGL
Intel Mac Catalyst -> CGL
Intel iOS Simulator -> EAGL
iOS Device -> EAGL
Apple Silicon Mac -> CGL
Apple Silicon Mac Catalyst (with Mac app) -> CGL
Apple Silicon Mac Catalyst (with iOS app) -> EAGL

The trickiest bit is Apple Silicon Mac Catalyst, which depends on the
type of the application it is attempting to run. In that case ANGLE must compile
both the CGL and EAGL interfaces and then pick one to use after launch.

  • ANGLE.xcodeproj/project.pbxproj: Add new files.
  • Configurations/ANGLE-dynamic.xcconfig: Remove all the OpenGL* linking.
  • Configurations/ANGLE-static.xcconfig:
  • GLESv2.cmake: New files.
  • src/common/platform.h: New definitions for CPU type on Apple Systems.
  • src/gpu_info_util/SystemInfo.h: Split SystemInfo for Apple into two files, for iOS and Mac. Added a field for isiOSAppOnMac that will only be true when running an iOS binary on Apple Silicon.
  • src/gpu_info_util/SystemInfo_apple.mm: Added. Decides which SystemInfo to call. (angle::GetSystemInfo):
  • src/gpu_info_util/SystemInfo_ios.cpp: (angle::GetSystemInfo_ios): (angle::GetSystemInfo): Deleted.
  • src/gpu_info_util/SystemInfo_macos.mm: (angle::GetSystemInfo_mac): (angle::GetSystemInfo): Deleted.
  • src/libANGLE/Caps.cpp: Can no longer just check for PLATFORM_IOS. This might still need a runtime check. (gl::DetermineDepthTextureANGLESupport): (gl::DetermineDepthTextureOESSupport):
  • src/libANGLE/Display.cpp: This is the main initialization point for ANGLE, which decides at compile/runtime which variant of Display to create.
  • src/libANGLE/formatutils.cpp: Add the correct formats. (gl::BuildInternalFormatInfoMap):
  • src/libANGLE/renderer/gl/SoftLinking_apple.h: Added. Macros to help soft-link functions and ObjC classes.
  • src/libANGLE/renderer/gl/cgl/CGLFunctions.cpp: Added. Where we soft-link all the OpenGL/CGL API.
  • src/libANGLE/renderer/gl/cgl/CGLFunctions.h: Added.
  • src/libANGLE/renderer/gl/cgl/DisplayCGL.mm: Use the soft-linked methods.
  • src/libANGLE/renderer/gl/cgl/IOSurfaceSurfaceCGL.cpp:
  • src/libANGLE/renderer/gl/cgl/WindowSurfaceCGL.h:
  • src/libANGLE/renderer/gl/cgl/WindowSurfaceCGL.mm: Rename WebSwapLayer to WebSwapLayerCGL otherwise it clashes with the EAGL version. (rx::WindowSurfaceCGL::initialize): (-[WebSwapLayer initWithSharedState:withContext:withFunctions:]): Deleted. (-[WebSwapLayer copyCGLPixelFormatForDisplayMask:]): Deleted. (-[WebSwapLayer copyCGLContextForPixelFormat:]): Deleted. (-[WebSwapLayer canDrawInCGLContext:pixelFormat:forLayerTime:displayTime:]): Deleted. (-[WebSwapLayer drawInCGLContext:pixelFormat:forLayerTime:displayTime:]): Deleted.
  • src/libANGLE/renderer/gl/eagl/DeviceEAGL.cpp: Similar changes to the CGL implementation.
  • src/libANGLE/renderer/gl/eagl/DeviceEAGL.h:
  • src/libANGLE/renderer/gl/eagl/DisplayEAGL.h:
  • src/libANGLE/renderer/gl/eagl/DisplayEAGL.mm: (rx::DisplayEAGL::initialize): (rx::DisplayEAGL::terminate): (rx::WorkerContextEAGL::~WorkerContextEAGL): (rx::WorkerContextEAGL::makeCurrent): (rx::WorkerContextEAGL::unmakeCurrent): (rx::DisplayEAGL::createWorkerContext):
  • src/libANGLE/renderer/gl/eagl/EAGLFunctions.h: Added.
  • src/libANGLE/renderer/gl/eagl/EAGLFunctions.mm: Added.
  • src/libANGLE/renderer/gl/eagl/IOSurfaceSurfaceEAGL.mm:
  • src/libANGLE/renderer/gl/eagl/PbufferSurfaceEAGL.cpp:
  • src/libANGLE/renderer/gl/eagl/RendererEAGL.cpp:
  • src/libANGLE/renderer/gl/eagl/WindowSurfaceEAGL.h:
  • src/libANGLE/renderer/gl/eagl/WindowSurfaceEAGL.mm: (-[WebSwapLayerEAGL display]): (rx::WindowSurfaceEAGL::initialize): (-[WebSwapLayer initWithSharedState:withContext:withFunctions:]): Deleted. (-[WebSwapLayer display]): Deleted.
  • src/libANGLE/renderer/gl/renderergl_utils.cpp: Runtime check. (rx::nativegl_gl::GenerateCaps):

Source/WebCore:

  • Configurations/WebCore.xcconfig: Remove all OpenGL/OpenGLES linking.
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/GraphicsContextGL.h: Change the ANGLE IOSurface texture binding enums into functions, because they have to be calculated at run-time.
  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm: Use the new soft-linked functions from PAL. Also implement the IOSurface texture binding helpers that were previously enums.
  • platform/mac/PlatformScreenMac.mm:
  • platform/mac/WebGLBlocklist.mm:

Source/WebCore/PAL:

Add soft-linking content for OpenGL/OpenGLES.

  • PAL.xcodeproj/project.pbxproj:
  • pal/PlatformMac.cmake:
  • pal/cocoa/OpenGLSoftLinkCocoa.h: Added.
  • pal/cocoa/OpenGLSoftLinkCocoa.mm: Added.

Source/WebKit:

  • Configurations/WebKit.xcconfig: Remove OpenGL linking.
  • UIProcess/mac/HighPerformanceGPUManager.mm: Renamed to .mm. Use the PAL soft-linked OpenGL API.

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

10:37 AM Changeset in webkit [267979] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Sources: add a + to the Local Overrides section
https://bugs.webkit.org/show_bug.cgi?id=217235

Reviewed by Brian Burg.

  • UserInterface/Views/SourcesNavigationSidebarPanel.js:

(WI.SourcesNavigationSidebarPanel):
(WI.SourcesNavigationSidebarPanel.prototype._populateCreateLocalOverrideContextMenu): Added.
(WI.SourcesNavigationSidebarPanel.prototype._populateCreateResourceContextMenu):

10:37 AM Changeset in webkit [267978] by commit-queue@webkit.org
  • 6 edits in trunk/Source

WebDriver Input clear/value commands fails when target is inside shadow dom
https://bugs.webkit.org/show_bug.cgi?id=209233

Patch by Nitzan Uziely <nitzan@testim.io> on 2020-10-05
Reviewed by Brian Burg.

Source/WebCore:

Add support for nested shadow DOM in isDescendantOrShadowDescendantOf,

  • dom/Node.cpp:

(WebCore::Node::isDescendantOrShadowDescendantOf const):

  • dom/Node.h:

(WebCore::Node::isDescendantOrShadowDescendantOf const):

Source/WebKit:

Fixed nodeIsElement which would return true for non-element nodes,
which caused an exception to be thrown when getComputedStyle was called
on non shadow elements.

Fixed computeElementLayout to consider shadow root descendants as descendants
when executing elementsAtPoint.

Test for WPT (https://github.com/web-platform-tests/wpt/pull/25962)

  • UIProcess/Automation/atoms/ElementDisplayed.js:

(isShown.nodeIsElement):
(isShown.enclosingNodeOrSelfMatchingPredicate):
(isShown.enclosingElementOrSelfMatchingPredicate):

  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::WebAutomationSessionProxy::computeElementLayout):

10:36 AM Changeset in webkit [267977] by Devin Rousso
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: unable to create local override for resource that failed to load
https://bugs.webkit.org/show_bug.cgi?id=217234
<rdar://problem/69888143>

Reviewed by Brian Burg.

  • UserInterface/Models/Resource.js:

(WI.Resource.prototype.async createLocalResourceOverride):
Wrap the WI.SourceCode.prototype.requestContent call in a try in case the content is not
able to be fetched. If so, determine the MIME from the URL and fall back to "".

  • UserInterface/Views/ResourceContentView.js:

(WI.ResourceContentView.prototype.requestLocalResourceOverrideInitialContent):
(WI.ResourceContentView.prototype.async _getContentForLocalResourceOverrideFromFile):
Drive-by: drop initial from the parameter name as it's not really necessary.

  • UserInterface/Views/TextResourceContentView.js:

(WI.TextResourceContentView.prototype.requestLocalResourceOverrideInitialContent):
Drive-by: include the mimeType and base64Encoded of the related WI.Resource.

10:34 AM Changeset in webkit [267976] by Devin Rousso
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(?): cannot edit Event Breakpoint
https://bugs.webkit.org/show_bug.cgi?id=217244

Reviewed by Brian Burg.

  • UserInterface/Models/EventBreakpoint.js:

(WI.EventBreakpoint.get supportsEditing):
(WI.EventBreakpoint.prototype.get editable):
Move the specific listener breakpoint logic to the prototype function as this won't
exist in the static function (not to mention it's not possible to create a specific
listener breakpoint "at will" like it is for global event breakpoints).

  • UserInterface/Models/URLBreakpoint.js:

(WI.URLBreakpoint.get supportsEditing): Added.
(WI.URLBreakpoint.prototype.get editable):
(WI.URLBreakpoint.get editable): Deleted.

  • UserInterface/Views/URLBreakpointPopover.js:

(WI.URLBreakpointPopover.get supportsEditing):
Drive-by: update naming to match WI.EventBreakpoint.

10:30 AM Changeset in webkit [267975] by achristensen@apple.com
  • 1 edit
    1 delete in trunk/LayoutTests/imported/w3c

Remove unused -expected.txt file

  • web-platform-tests/url/urlencoded-parser-expected.txt: Removed.
10:23 AM Changeset in webkit [267974] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GLIB] Unreviewed test gardening. Move tests also timing out in WPE to GLIB test expectations.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
9:42 AM Changeset in webkit [267973] by wilander@apple.com
  • 14 edits in trunk

Storage Access API: Enable per-page storage access scope and align test cases
https://bugs.webkit.org/show_bug.cgi?id=217077
<rdar://problem/69017878>

Reviewed by Brent Fulgham.

It was decided in https://github.com/privacycg/storage-access/issues/3 that
browsers should grant storage access for all same-site resources on the whole
page, not just the requesting iframe.

Source/WebCore:

No new tests. Existing tests aligned, including
LayoutTests/http/tests/storageAccess/request-and-grant-access-with-per-page-scope-access-from-another-frame.html
which no longer calls
internals.settings.setStorageAccessAPIPerPageScopeEnabled(true)
to opt in to the setting that is now the default.

  • dom/DocumentStorageAccess.cpp:

(WebCore::DocumentStorageAccess::requestStorageAccess):

Changed the settings check to do the reverse, i.e. assume
per-page access by default and per-frame access as the
exception.

  • dom/DocumentStorageAccess.h:

Changed the default setting for m_storageAccessScope to per-page.

  • page/Settings.yaml:

Changed the default to true for
storageAccessAPIPerPageScopeEnabled.

Source/WebKit:

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::hasStorageAccess):

Added a call to WebPage::hasPageLevelStorageAccess()
and an early return if it returns true.

(WebKit::WebPage::clearPageLevelStorageAccess):

New function to clear the webpage's m_domainsWithPageLevelStorageAccess
map.

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

(WebKit::WebProcess::clearResourceLoadStatistics):

Now clears all webpages' page level storage access maps.

LayoutTests:

  • http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-and-access-from-right-frame.html:
  • http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-but-access-from-wrong-frame.html:
  • http/tests/storageAccess/request-and-grant-access-then-detach-should-not-have-access.html:
  • http/tests/storageAccess/request-and-grant-access-then-navigate-cross-site-should-not-have-access.html:

All of the above now explicitly call
internals.settings.setStorageAccessAPIPerPageScopeEnabled(false)
to opt out of the new default setting.

  • http/tests/storageAccess/request-and-grant-access-with-per-page-scope-access-from-another-frame.html:

Changed to assume per-page is the default.

9:38 AM Changeset in webkit [267972] by ddkilzer@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Build fix: Use JSC_DEFINE_HOST_FUNCTION_WITH_ATTRIBUTES() with SUPPRESS_ASAN
<rdar://problem/69954783>

  • tools/JSDollarVM.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION_WITH_ATTRIBUTES):

  • Change SUPPRESS_ASAN JSC_DEFINE_HOST_FUNCTION() to JSC_DEFINE_HOST_FUNCTION_WITH_ATTRIBUTES(..., SUPPRESS_ASAN, ...) to fix the build.
9:36 AM Changeset in webkit [267971] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Make text selectable in CPU timeline content view
https://bugs.webkit.org/show_bug.cgi?id=216999

Reviewed by Brian Burg.

  • UserInterface/Views/CPUTimelineView.css:

(.timeline-view.cpu > .content > .overview .legend):

  • UserInterface/Views/CPUUsageCombinedView.css:

(.cpu-usage-combined-view > .details):

9:17 AM Changeset in webkit [267970] by weinig@apple.com
  • 21 edits in trunk

Remove support for enabling subpixel CSSOM values, it's off by default everywhere and known to be not-compatible with the web
https://bugs.webkit.org/show_bug.cgi?id=217300

Reviewed by Simon Fraser.

Source/WebCore:

Remove support for subpixel CSSOM values, and fixup Element interfaces that were
only out of spec, returning doubles, due to the conditional support.

  • dom/Element+CSSOMView.idl:
  • dom/Element.cpp:

(WebCore::adjustForLocalZoom):
(WebCore::convertToNonSubpixelValue):
(WebCore::adjustOffsetForZoomAndSubpixelLayout):
(WebCore::Element::offsetLeftForBindings):
(WebCore::Element::offsetLeft):
(WebCore::Element::offsetTopForBindings):
(WebCore::Element::offsetTop):
(WebCore::Element::offsetWidth):
(WebCore::Element::offsetHeight):
(WebCore::Element::clientLeft):
(WebCore::Element::clientTop):
(WebCore::Element::clientWidth):
(WebCore::Element::clientHeight):
(WebCore::subpixelMetricsEnabled): Deleted.
(WebCore::convertToNonSubpixelValueIfNeeded): Deleted.

  • dom/Element.h:
  • html/HTMLElement+CSSOMView.idl:
  • page/Settings.yaml:

Source/WebKit:

Deprecate SPI for enabling subpixel CSSOM values. It is not web compatible.

  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetSubpixelCSSOMElementMetricsEnabled):
(WKPreferencesGetSubpixelCSSOMElementMetricsEnabled):

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

(-[WKPreferences _setSubpixelCSSOMElementMetricsEnabled:]):
(-[WKPreferences _subpixelCSSOMElementMetricsEnabled]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:

Source/WebKitLegacy/mac:

Deprecate SPI for enabling subpixel CSSOM values. It is not web compatible.

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

(-[WebPreferences setSubpixelCSSOMElementMetricsEnabled:]):
(-[WebPreferences subpixelCSSOMElementMetricsEnabled]):

  • WebView/WebPreferencesPrivate.h:

Source/WTF:

Remove preference for toggling subpixel CSSOM values.

  • Scripts/Preferences/WebPreferences.yaml:

Tools:

Remove support in MiniBrowser for toggling support for subpixel CSSOM values since it
is no longer supported in WebCore.

  • MiniBrowser/mac/SettingsController.h:
  • MiniBrowser/mac/SettingsController.m:

(-[SettingsController _populateMenu]):
(-[SettingsController validateMenuItem:]):
(-[SettingsController toggleEnableSubPixelCSSOMMetrics:]): Deleted.
(-[SettingsController subPixelCSSOMMetricsEnabled]): Deleted.

  • MiniBrowser/mac/WK1BrowserWindowController.m:

(-[WK1BrowserWindowController didChangeSettings]):

8:43 AM Changeset in webkit [267969] by Antti Koivisto
  • 18 edits
    4 moves
    1 delete in trunk/Source/WebCore

[LFC][Integration] Move Display::InlineContent to LayoutIntegration namespace
https://bugs.webkit.org/show_bug.cgi?id=217310

Reviewed by Zalan Bujtas.

It is only used by the integration code

Also move the related classes and rename the path independent iterator run to PathRun

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • display/DisplayView.h:
  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::contentHeightForFormattingContextRoot const):

  • layout/displaytree/DisplayRect.h: Removed.
  • layout/flexformatting/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::sizeAndPlaceFlexItems):

  • layout/flexformatting/FlexFormattingState.h:

(WebCore::Layout::FlexFormattingState::lines const):
(WebCore::Layout::FlexFormattingState::addLine):

  • layout/integration/LayoutIntegrationInlineContent.cpp: Renamed from Source/WebCore/layout/displaytree/DisplayInlineContent.cpp.
  • layout/integration/LayoutIntegrationInlineContent.h: Renamed from Source/WebCore/layout/displaytree/DisplayInlineContent.h.
  • layout/integration/LayoutIntegrationLine.h: Renamed from Source/WebCore/layout/displaytree/DisplayLine.h.
  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::layout):
(WebCore::LayoutIntegration::LineLayout::constructContent):
(WebCore::LayoutIntegration::LineLayout::lineCount const):
(WebCore::LayoutIntegration::LineLayout::adjustForPagination):
(WebCore::LayoutIntegration::LineLayout::collectOverflow):
(WebCore::LayoutIntegration::LineLayout::ensureInlineContent):
(WebCore::LayoutIntegration::LineLayout::textRunsFor const):
(WebCore::LayoutIntegration::LineLayout::runFor const):
(WebCore::LayoutIntegration::LineLayout::paint):
(WebCore::LayoutIntegration::LineLayout::hitTest):
(WebCore::LayoutIntegration::LineLayout::constructDisplayContent): Deleted.
(WebCore::LayoutIntegration::LineLayout::ensureDisplayInlineContent): Deleted.

  • layout/integration/LayoutIntegrationLineLayout.h:

(WebCore::LayoutIntegration::LineLayout::inlineContent const):
(WebCore::LayoutIntegration::LineLayout::displayInlineContent const): Deleted.

  • layout/integration/LayoutIntegrationPagination.cpp:

(WebCore::LayoutIntegration::computeLineTopAndBottomWithOverflow):
(WebCore::LayoutIntegration::updateMinimumPageHeight):
(WebCore::LayoutIntegration::makeAdjustedContent):
(WebCore::LayoutIntegration::adjustLinePositionsForPagination):

  • layout/integration/LayoutIntegrationPagination.h:
  • layout/integration/LayoutIntegrationRun.h: Renamed from Source/WebCore/layout/displaytree/DisplayRun.h.
  • layout/integration/LayoutIntegrationRunIterator.cpp:

(WebCore::LayoutIntegration::RunIterator::RunIterator):
(WebCore::LayoutIntegration::TextRunIterator::TextRunIterator):
(WebCore::LayoutIntegration::LineRunIterator::LineRunIterator):
(WebCore::LayoutIntegration::PathRun::modernPath):
(WebCore::LayoutIntegration::PathRun::legacyPath):
(WebCore::LayoutIntegration::Run::modernPath): Deleted.
(WebCore::LayoutIntegration::Run::legacyPath): Deleted.

  • layout/integration/LayoutIntegrationRunIterator.h:

(WebCore::LayoutIntegration::PathTextRun::legacyInlineBox const):
(WebCore::LayoutIntegration::RunIterator::operator* const):
(WebCore::LayoutIntegration::RunIterator::operator-> const):
(WebCore::LayoutIntegration::TextRunIterator::operator* const):
(WebCore::LayoutIntegration::TextRunIterator::operator-> const):
(WebCore::LayoutIntegration::TextRunIterator::get const):
(WebCore::LayoutIntegration::PathRun::PathRun):
(WebCore::LayoutIntegration::PathRun::isText const):
(WebCore::LayoutIntegration::PathRun::rect const):
(WebCore::LayoutIntegration::PathRun::baseline const):
(WebCore::LayoutIntegration::PathRun::isHorizontal const):
(WebCore::LayoutIntegration::PathRun::dirOverride const):
(WebCore::LayoutIntegration::PathRun::isLineBreak const):
(WebCore::LayoutIntegration::PathRun::useLineBreakBoxRenderTreeDumpQuirk const):
(WebCore::LayoutIntegration::PathRun::minimumCaretOffset const):
(WebCore::LayoutIntegration::PathRun::maximumCaretOffset const):
(WebCore::LayoutIntegration::PathRun::bidiLevel const):
(WebCore::LayoutIntegration::PathRun::onSameLine const):
(WebCore::LayoutIntegration::PathRun::legacyInlineBox const):
(WebCore::LayoutIntegration::PathTextRun::hasHyphen const):
(WebCore::LayoutIntegration::PathTextRun::PathTextRun):
(WebCore::LayoutIntegration::PathTextRun::text const):
(WebCore::LayoutIntegration::PathTextRun::localStartOffset const):
(WebCore::LayoutIntegration::PathTextRun::localEndOffset const):
(WebCore::LayoutIntegration::PathTextRun::length const):
(WebCore::LayoutIntegration::PathTextRun::isLastTextRunOnLine const):
(WebCore::LayoutIntegration::PathTextRun::isLastTextRun const):
(isType):
(WebCore::LayoutIntegration::Run::leftmostCaretOffset const): Deleted.
(WebCore::LayoutIntegration::Run::rightmostCaretOffset const): Deleted.
(WebCore::LayoutIntegration::Run::direction const): Deleted.
(WebCore::LayoutIntegration::Run::isLeftToRightDirection const): Deleted.
(WebCore::LayoutIntegration::TextRun::legacyInlineBox const): Deleted.
(WebCore::LayoutIntegration::Run::Run): Deleted.
(WebCore::LayoutIntegration::Run::isText const): Deleted.
(WebCore::LayoutIntegration::Run::rect const): Deleted.
(WebCore::LayoutIntegration::Run::baseline const): Deleted.
(WebCore::LayoutIntegration::Run::isHorizontal const): Deleted.
(WebCore::LayoutIntegration::Run::dirOverride const): Deleted.
(WebCore::LayoutIntegration::Run::isLineBreak const): Deleted.
(WebCore::LayoutIntegration::Run::useLineBreakBoxRenderTreeDumpQuirk const): Deleted.
(WebCore::LayoutIntegration::Run::minimumCaretOffset const): Deleted.
(WebCore::LayoutIntegration::Run::maximumCaretOffset const): Deleted.
(WebCore::LayoutIntegration::Run::bidiLevel const): Deleted.
(WebCore::LayoutIntegration::Run::onSameLine const): Deleted.
(WebCore::LayoutIntegration::Run::legacyInlineBox const): Deleted.
(WebCore::LayoutIntegration::TextRun::hasHyphen const): Deleted.
(WebCore::LayoutIntegration::TextRun::TextRun): Deleted.
(WebCore::LayoutIntegration::TextRun::text const): Deleted.
(WebCore::LayoutIntegration::TextRun::localStartOffset const): Deleted.
(WebCore::LayoutIntegration::TextRun::localEndOffset const): Deleted.
(WebCore::LayoutIntegration::TextRun::length const): Deleted.
(WebCore::LayoutIntegration::TextRun::isLastTextRunOnLine const): Deleted.
(WebCore::LayoutIntegration::TextRun::isLastTextRun const): Deleted.

  • layout/integration/LayoutIntegrationRunIteratorModernPath.h:

(WebCore::LayoutIntegration::ModernPath::ModernPath):
(WebCore::LayoutIntegration::ModernPath::runs const):
(WebCore::LayoutIntegration::ModernPath::run const):
(WebCore::LayoutIntegration::ModernPath::line const):

  • layout/layouttree/LayoutTreeBuilder.cpp:
  • rendering/RenderTreeAsText.cpp:

(WebCore::write):
(WebCore::writeTextRun): Deleted.

  • rendering/TextPainter.cpp:

(WebCore::TextPainter::clearGlyphDisplayLists):

8:40 AM Changeset in webkit [267968] by Diego Pino Garcia
  • 9 edits
    2 copies
    1 move
    2 adds
    2 deletes in trunk/LayoutTests

[GLIB] Unreviewed test gardening. Merge common GTK and WPE baselines and emit new baselines for WPE tests after r267960.

Also move webaudio/oscillator-sine.html failure to glib.

  • platform/glib/TestExpectations:
  • platform/glib/fetch/fetch-url-serialization-expected.txt:
  • platform/glib/imported/w3c/web-platform-tests/mathml/relations/css-styling/attribute-mapping-002-expected.txt:
  • platform/glib/imported/w3c/web-platform-tests/mathml/relations/html5-tree/display-1-expected.txt:
  • platform/gtk/TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/mathml/relations/html5-tree/display-1-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/selection/selection-select-all-move-input-crash-expected.txt: Copied from LayoutTests/platform/glib/imported/w3c/web-platform-tests/selection/selection-select-all-move-input-crash-expected.txt.
  • platform/wpe/http/tests/storageAccess/aggregate-sorted-data-with-storage-access-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/css-sizing/percentage-height-in-flexbox-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/mathml/relations/css-styling/attribute-mapping-002-expected.txt: Renamed from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mathml/relations/css-styling/attribute-mapping-002-expected.txt.
  • platform/wpe/imported/w3c/web-platform-tests/selection/selection-select-all-move-input-crash-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/selection/selection-select-all-move-input-crash-expected.txt.
8:28 AM Changeset in webkit [267967] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Enable non-uniform line height content with floats
https://bugs.webkit.org/show_bug.cgi?id=217306

Reviewed by Antti Koivisto.

Expand coverage now that we support non-uniform line heights.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForLineLayoutWithReason):

7:57 AM Changeset in webkit [267966] by achristensen@apple.com
  • 48 edits
    2 adds
    2 deletes in trunk

Unify linkedOnOrAfter duplicate code and use SPI/WebCoreTestSupport instead of NSUserDefaults
https://bugs.webkit.org/show_bug.cgi?id=217239

Reviewed by Darin Adler.

Source/WebCore:

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/cocoa/VersionChecks.h: Renamed from Source/WebKit/UIProcess/Cocoa/VersionChecks.h.
  • platform/cocoa/VersionChecks.mm: Renamed from Source/WebKit/UIProcess/Cocoa/VersionChecks.mm.

(WebCore::linkedOnOrAfter):

  • testing/js/WebCoreTestSupport.cpp:

(WebCoreTestSupport::setLinkedOnOrAfterEverythingForTesting):

  • testing/js/WebCoreTestSupport.h:

Source/WebKit:

  • NetworkProcess/WebStorage/ios/LocalStorageDatabaseTrackerIOS.mm:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:
  • Shared/Cocoa/CompletionHandlerCallChecker.mm:

(WebKit::shouldThrowExceptionForDuplicateCompletionHandlerCall):

  • Shared/Cocoa/DefaultWebBrowserChecks.mm:

(WebKit::determineITPState):

  • Shared/Cocoa/WebKit2InitializeCocoa.mm:

(WebKit::InitializeWebKit2):

  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultPassiveTouchListenersAsDefaultOnDocument):

  • SourcesCocoa.txt:
  • UIProcess/API/C/WKPage.cpp:

(WKPageReload):

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(+[WKProcessPool _setLinkedOnOrAfterEverythingForTesting]):

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

(shouldAllowSettingAnyXHRHeaderFromFileURLs):
(shouldRestrictBaseURLSchemes):
(-[WKWebView _initializeWithConfiguration:]):
(-[WKWebView _setupPageConfiguration:]):
(-[WKWebView reload]):
(-[WKWebView takeSnapshotWithConfiguration:completionHandler:]):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(defaultShouldDecidePolicyBeforeLoadingQuickLookPreview):
(-[WKWebViewConfiguration init]):

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore init]):

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _computedObscuredInset]):

  • UIProcess/API/mac/WKWebViewMac.mm:

(-[WKWebView _web_dragDestinationActionForDraggingInfo:]):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::WebProcessPool::platformInitializeNetworkProcess):

  • UIProcess/Inspector/mac/WKInspectorViewController.mm:

(-[WKInspectorViewController inspectorWKWebViewReload:]):

  • UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:

(WebKit::RemoteScrollingCoordinatorProxy::hasScrollableOrZoomedMainFrame const):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::createWebPage):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::isMainThreadOrCheckDisabled):

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _commonInitializationWithProcessPool:configuration:]):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _shouldUseContextMenus]):
(applicationIsKnownToIgnoreMouseEvents):

  • UIProcess/ios/WKScrollView.mm:

(-[WKScrollView _systemContentInset]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::desktopClassBrowsingRecommended):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/cocoa/WebProcessCocoa.mm:

Source/WebKitLegacy/mac:

  • DefaultDelegates/WebDefaultUIDelegate.mm:

(-[WebDefaultUIDelegate webView:dragDestinationActionMaskForDraggingInfo:]):

  • Misc/WebIconDatabase.mm:

(+[WebIconDatabase sharedIconDatabase]):

  • Misc/WebKitVersionChecks.h:
  • Misc/WebKitVersionChecks.mm:

(WebKitLinkTimeVersion):
(linkedOnOrAfter): Deleted.

  • WebView/WebPreferencesDefaultValues.mm:

(WebKit::defaultPassiveTouchListenersAsDefaultOnDocument):
(WebKit::defaultShouldRestrictBaseURLSchemes):

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(setDefaultsToConsistentValuesForTesting):
(DumpRenderTreeMain):

  • MiniBrowser/mac/main.m:

(main):

  • MobileMiniBrowser/MobileMiniBrowser/main.m:

(main):

  • TestWebKitAPI/Configurations/TestWTF.xcconfig:
  • TestWebKitAPI/ios/mainIOS.mm:

(main):

  • TestWebKitAPI/mac/mainMac.mm:

(main):

  • WebKitTestRunner/ios/mainIOS.mm:

(main):

  • WebKitTestRunner/mac/main.mm:

(setDefaultsToConsistentValuesForTesting):
(main):

7:51 AM Changeset in webkit [267965] by achristensen@apple.com
  • 9 edits in trunk

URLParser should fail to parse URLs with hosts containing invalid punycode encodings
https://bugs.webkit.org/show_bug.cgi?id=217285

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/url/a-element-expected.txt:
  • web-platform-tests/url/a-element-xhtml-expected.txt:
  • web-platform-tests/url/failure-expected.txt:
  • web-platform-tests/url/toascii.window-expected.txt:
  • web-platform-tests/url/url-constructor-expected.txt:

Source/WTF:

URLParser has a fast path for parsing hosts that are all ASCII, but that does not validate hosts that are invalid punycode, such as "xn--".
Since all punycode encoded strings start with "xn--", if the input string starts with "xn--" then skip the fast path and let ICU decide if it's valid.

  • wtf/URLParser.cpp:

(WTF::URLParser::domainToASCII):
(WTF::URLParser::startsWithXNDashDash):
(WTF::URLParser::parseHostAndPort):

  • wtf/URLParser.h:
7:43 AM Changeset in webkit [267964] by achristensen@apple.com
  • 7 edits in trunk

When appending a Windows drive letter to a file URL, remove any path we may have copied from the base URL
https://bugs.webkit.org/show_bug.cgi?id=217284

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/url/a-element-expected.txt:
  • web-platform-tests/url/a-element-xhtml-expected.txt:
  • web-platform-tests/url/resources/urltestdata.json:
  • web-platform-tests/url/url-constructor-expected.txt:

Source/WTF:

This fixes a web platform test and adds another to verify that we remove the entire path, not just the last segment like we do with ..
Edge has implemented this, and in order to have a platform-independent URL we should do it too.

  • wtf/URLParser.cpp:

(WTF::URLParser::isWindowsDriveLetter):
(WTF::URLParser::appendWindowsDriveLetter):
(WTF::URLParser::parse):

7:40 AM Changeset in webkit [267963] by achristensen@apple.com
  • 17 edits in trunk

Fix UTF-8 encoding in URL parsing
https://bugs.webkit.org/show_bug.cgi?id=217289

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/url/a-element-expected.txt:
  • web-platform-tests/url/a-element-origin-expected.txt:
  • web-platform-tests/url/a-element-origin-xhtml-expected.txt:
  • web-platform-tests/url/a-element-xhtml-expected.txt:
  • web-platform-tests/url/resources/urltestdata.json:
  • web-platform-tests/url/url-constructor-expected.txt:
  • web-platform-tests/url/url-origin-expected.txt:

Source/WTF:

This matches the behavior of Firefox and the Unicode and whatwg encoding specifications.

  • wtf/URLParser.cpp:

(WTF::URLParser::utf8PercentEncode):
(WTF::URLParser::utf8QueryEncode):
(WTF::URLParser::parseHostAndPort):

Tools:

  • TestWebKitAPI/Tests/WTF/URLParser.cpp:

(TestWebKitAPI::TEST_F):

LayoutTests:

  • fast/url/anchor-expected.txt:
  • fast/url/anchor.html:
  • fast/url/path-expected.txt:
  • fast/url/path.html:
7:39 AM Changeset in webkit [267962] by Antti Koivisto
  • 14 edits
    1 add in trunk/Source/WebCore

[LFC][Integration] Avoid ensureLineBoxes for some call sites of inlineBoxAndOffset
https://bugs.webkit.org/show_bug.cgi?id=217225

Reviewed by Zalan Bujtas.

Separate inlineRunAndOffset from inlineBoxAndOffset.
The formet returns iterator while the later forces the legacy path.

Use inlineRunAndOffset in a few places.

  • dom/Position.cpp:

(WebCore::Position::rendersInDifferentPosition const):
(WebCore::Position::inlineRunAndOffset const):
(WebCore::Position::inlineBoxAndOffset const):
(WebCore::Position::ensureLineBoxes const):
(WebCore::InlineBoxAndOffset::InlineBoxAndOffset): Deleted.

  • dom/Position.h:

(WebCore::InlineBoxAndOffset::InlineBoxAndOffset):

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::directionOfSelection):

  • editing/VisiblePosition.h:

(WebCore::VisiblePosition::inlineRunAndOffset const):

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForFontAndText):

  • layout/integration/LayoutIntegrationRunIterator.h:

(WebCore::LayoutIntegration::Run::onSameLine const):

  • layout/integration/LayoutIntegrationRunIteratorLegacyPath.h:

(WebCore::LayoutIntegration::LegacyPath::onSameLine const):
(WebCore::LayoutIntegration::LegacyPath::atEnd const):

  • layout/integration/LayoutIntegrationRunIteratorModernPath.h:

(WebCore::LayoutIntegration::ModernPath::onSameLine const):
(WebCore::LayoutIntegration::ModernPath::atEnd const):

  • platform/DragImage.cpp:
  • rendering/RenderTextLineBoxes.h:
7:35 AM Changeset in webkit [267961] by Simon Fraser
  • 7 edits in trunk/Source/WebKit

Clean up "rendering update" terminology in DrawingArea
https://bugs.webkit.org/show_bug.cgi?id=217307

Reviewed by Tim Horton.

DrawingArea doesn't know about "immediate" vs. "normal" rendering updates; for it,
all requests are for immediate rendering updates; the only difference is whether
layer tree freezing is respected.

This is the first step to correcting the naming; scheduleImmediateRenderingUpdate()
doesn't have to be exposed at all. A future patch will rename DrawingArea::scheduleRenderingUpdate()
to make it clear that it's not about timed updates.

  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.h:
  • WebProcess/WebPage/DrawingArea.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::setLayerTreeStateIsFrozen):
(WebKit::RemoteLayerTreeDrawingArea::startRenderingUpdateTimer):
(WebKit::RemoteLayerTreeDrawingArea::scheduleRenderingUpdate):
(WebKit::RemoteLayerTreeDrawingArea::activityStateDidChange):
(WebKit::RemoteLayerTreeDrawingArea::scheduleImmediateRenderingUpdate): Deleted.

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::scheduleRenderingUpdate):
(WebKit::TiledCoreAnimationDrawingArea::scheduleImmediateRenderingUpdate): Deleted.

7:19 AM Changeset in webkit [267960] by pvollan@apple.com
  • 6 edits in trunk/Source/WebKit

[GPU Process] Make it possible to dynamically block IOKit in the WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=217129
<rdar://problem/69466039>

Reviewed by Geoffrey Garen.

We need to be able to enable IOKit blocking via the WebContent sandbox dynamically.

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

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

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

(WebKit::gpuIOKitClasses):
(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

3:30 AM Changeset in webkit [267959] by commit-queue@webkit.org
  • 5 edits in trunk

Make xhr.response more conforming to the specification
https://bugs.webkit.org/show_bug.cgi?id=217296

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

LayoutTests/imported/w3c:

Update improved test result.

  • web-platform-tests/xhr/overridemimetype-blob-expected.txt:

Source/WebCore:

Make xhr.response more conforming to the specification when dealing
with Blob type responses, the type for the Blob should be computed
by the "get a final MIME type" algorithm [1, 2].

Behavior matches Firefox.

Test: imported/w3c/web-platform-tests/xhr/overridemimetype-blob.html

[1] https://xhr.spec.whatwg.org/#ref-for-final-mime-type③
[2] https://xhr.spec.whatwg.org/#final-mime-type

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::createResponseBlob):
(WebCore::XMLHttpRequest::responseMIMEType const):

  • xml/XMLHttpRequest.h:
2:46 AM Changeset in webkit [267958] by graouts@webkit.org
  • 27 edits
    14 adds in trunk

Add non-animated support for the CSS scale property
https://bugs.webkit.org/show_bug.cgi?id=217291
<rdar://problem/69926254>

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

WPT progressions showing the correct parsing and computed style output of a non-animated "scale" property.
We are also adding some more tests to the invalid "scale" parsing to check that we bail once we get junk
for optional values after valid values and move percentage values to invalid tests (also filed a WPT PR
at https://github.com/web-platform-tests/wpt/pull/25960).

  • web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • web-platform-tests/css/css-transforms/animation/scale-composition-expected.txt:
  • web-platform-tests/css/css-transforms/animation/scale-interpolation-expected.txt:
  • web-platform-tests/css/css-transforms/parsing/scale-parsing-invalid-expected.txt:
  • web-platform-tests/css/css-transforms/parsing/scale-parsing-invalid.html:
  • web-platform-tests/css/css-transforms/parsing/scale-parsing-valid-expected.txt:
  • web-platform-tests/css/css-transforms/parsing/scale-parsing-valid.html:
  • web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:

Source/WebCore:

We add non-animated support for the CSS "scale" property as specifed in by the CSS Transforms Level 2
specification (​https://drafts.csswg.org/css-transforms-2/#propdef-scale).

Tests: transforms/2d/scale-and-transform-attribute-in-svg-expected.svg

transforms/2d/scale-and-transform-attribute-in-svg.svg
transforms/2d/scale-and-transform-css-property-in-svg-expected.svg
transforms/2d/scale-and-transform-css-property-in-svg.svg
transforms/2d/scale-and-translate-in-svg-expected.svg
transforms/2d/scale-and-translate-in-svg.svg
transforms/2d/scale-and-translate-order.html
transforms/2d/scale-in-svg-expected.svg
transforms/2d/scale-in-svg.svg
transforms/2d/scale-transform-order.html
transforms/2d/scale-transform-origin-order.html

  • Headers.cmake:
  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::computedTranslate): Remove the extraneous is<RenderInline> check which is already covered by rendererCanBeTransformed().
(WebCore::computedScale): Create a CSSValueList to print out the computed value for the "scale" property.
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/CSSProperties.json: Define the "scale" property with the condition that the runtime setting for individual

CSS transform properties is set.

  • css/TransformFunctions.cpp:

(WebCore::scaleForValue): Convert a CSSValue to a TranslateTransformOperation when parsing a "scale" property value.

  • css/TransformFunctions.h:
  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeScale): Create a CSSValueList when parsing a "scale" property value.
(WebCore::CSSPropertyParser::parseSingleValue):

  • platform/graphics/transforms/ScaleTransformOperation.h:
  • rendering/RenderObject.h:

(WebCore::RenderObject::hasTransform const): Consider that having the "scale" property is akin to having a "transform" property
in the render tree.

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::setScale):
(WebCore::RenderStyle::applyTransform const): Account for the RenderStyle::scale() value in the right order, after applying the
transform origin and translate, but before applying the main transform.

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::scale const):
(WebCore::RenderStyle::hasTransformRelatedProperty const):
(WebCore::RenderStyle::initialScale):

  • rendering/style/StyleRareNonInheritedData.h:
  • rendering/style/WillChangeData.cpp:

(WebCore::WillChangeData::propertyCreatesStackingContext):

  • style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertScale):

  • svg/SVGGraphicsElement.cpp:

(WebCore::SVGGraphicsElement::animatedLocalTransform const): Account for the RenderStyle::scale() value when rendering SVG, ensuring
that it is applied before the transform specified by either the "transform" CSS property or SVG attribute.

LayoutTests:

Add tests checking that the "scale" CSS property is applied in the correct order related to
"transform-origin" and "transform" and that it is applied in SVG as well.

  • platform/ios-13/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • transforms/2d/scale-and-transform-attribute-in-svg-expected.svg: Added.
  • transforms/2d/scale-and-transform-attribute-in-svg.svg: Added.
  • transforms/2d/scale-and-transform-css-property-in-svg-expected.svg: Added.
  • transforms/2d/scale-and-transform-css-property-in-svg.svg: Added.
  • transforms/2d/scale-and-translate-in-svg-expected.svg: Added.
  • transforms/2d/scale-and-translate-in-svg.svg: Added.
  • transforms/2d/scale-and-translate-order-expected.html: Added.
  • transforms/2d/scale-and-translate-order.html: Added.
  • transforms/2d/scale-in-svg-expected.svg: Added.
  • transforms/2d/scale-in-svg.svg: Added.
  • transforms/2d/scale-transform-order-expected.html: Added.
  • transforms/2d/scale-transform-order.html: Added.
  • transforms/2d/scale-transform-origin-order-expected.html: Added.
  • transforms/2d/scale-transform-origin-order.html: Added.
1:13 AM Changeset in webkit [267957] by commit-queue@webkit.org
  • 6 edits in trunk

MIME type parser should skip trailing HTTP whitespace
https://bugs.webkit.org/show_bug.cgi?id=217179

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

LayoutTests/imported/w3c:

Update test expectation.

  • web-platform-tests/xhr/overridemimetype-blob-expected.txt:

Source/WebCore:

MIME type parser should skip trailing HTTP whitespace in Mimesniff mode [1].

[1] https://mimesniff.spec.whatwg.org/#parse-a-mime-type (Steps 8 and 11.9.2)

  • platform/network/ParsedContentType.cpp:

(WebCore::parseToken):

Tools:

Add unit tests for trailing HTTP whitespace.

  • TestWebKitAPI/Tests/WebCore/ParsedContentType.cpp:

(TestWebKitAPI::TEST):

Oct 4, 2020:

11:57 PM Changeset in webkit [267956] by commit-queue@webkit.org
  • 7 edits
    2 adds in trunk

DataTransfer.setDragImage takes a non nullable Element parameter
https://bugs.webkit.org/show_bug.cgi?id=217283

Patch by Rob Buis <rbuis@igalia.com> on 2020-10-04
Reviewed by Sam Weinig.

Source/WebCore:

DataTransfer.setDragImage takes a non nullable Element parameter [1].

Behavior matches Firefox and Chrome.

Test: fast/events/setDragImage-element-non-nullable.html

[1] https://html.spec.whatwg.org/multipage/dnd.html#dom-datatransfer-setdragimage

  • dom/DataTransfer.cpp:

(WebCore::DataTransfer::setDragImage):

  • dom/DataTransfer.h:
  • dom/DataTransfer.idl:
  • page/EventHandler.cpp:

(WebCore::EventHandler::handleDrag):

LayoutTests:

Add test to verify DataTransfer.setDragImage throws if a null
is passed for the Element parameter.

  • fast/events/setDragImage-element-non-nullable-expected.txt: Added.
  • fast/events/setDragImage-element-non-nullable.html: Added.
  • platform/ios/TestExpectations:
9:40 PM Changeset in webkit [267955] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][Floats] Do not assert when right aligned float overflows the containing block on the left
https://bugs.webkit.org/show_bug.cgi?id=217305

Reviewed by Antti Koivisto.

Source/WebCore:

It's okay for a float: right; to overflow the containing block on the left.
In such cases let's just constrain the logical right value by the logical left edge.

Test: fast/layoutformattingcontext/intrusive-floats-takes-entire-horizontal-space.html

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::constraintsForLine):

LayoutTests:

  • fast/layoutformattingcontext/intrusive-floats-takes-entire-horizontal-space-expected.html: Added.
  • fast/layoutformattingcontext/intrusive-floats-takes-entire-horizontal-space.html: Added.
9:19 PM Changeset in webkit [267954] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

[curl] WebSocket tests are failing since r267931
https://bugs.webkit.org/show_bug.cgi?id=217298

Reviewed by Darin Adler.

"http:" is a invalid URL since r267931. Change the way how to
construct a URL for libcurl.

  • platform/network/curl/CurlStream.cpp:

(WebCore::CurlStream::CurlStream): Construct the URL just by
replacing the scheme part. Removed a local variable
urlForConnection.

9:00 PM Changeset in webkit [267953] by weinig@apple.com
  • 21 edits in trunk/Source/WebCore

[WebIDL] Address consistency around [SameObject] extended attributes
https://bugs.webkit.org/show_bug.cgi?id=217303

Reviewed by Darin Adler.

There isn't any real value in keeping comments around in the IDLs saying:

FIXME: Add [SameObject] once it is supported

It's unclear what we would want the bindings generator to do with [SameObject],
perhaps for wrapper types, assert if the implementation doesn't return the same
object each time in a debug build, perhaps error out if a non-wrapper type doesn't
also have CachedAttribute or maybe just have SameObject imply it. Regardless,
in the mean time, there is no harm in just annotating the types with the attribute
and letting the generator do nothing while we think.

  • Modules/fetch/FetchRequest.idl:
  • Modules/fetch/FetchResponse.idl:
  • Modules/mediastream/MediaStreamTrackEvent.idl:
  • css/DocumentOrShadowRoot+CSSOM.idl:
  • css/ElementCSSInlineStyle.idl:
  • dom/DOMQuad.idl:
  • dom/DataTransfer.idl:
  • dom/Document+HTML.idl:
  • dom/Document+HTMLObsolete.idl:
  • dom/Document.idl:
  • dom/Element.idl:
  • dom/MutationRecord.idl:
  • dom/Node.idl:
  • dom/NodeIterator.idl:
  • dom/ParentNode.idl:
  • dom/TreeWalker.idl:
  • html/HTMLOrForeignElement.idl:
  • html/HTMLSelectElement.idl:
  • page/Location.idl:
  • svg/SVGFitToViewBox.idl:
8:25 PM Changeset in webkit [267952] by Lauro Moura
  • 3 edits in trunk/Source/WebKit

webkitpy: Update messages reference files after r267916
https://bugs.webkit.org/show_bug.cgi?id=217304

Reviewed by Simon Fraser.

Covered by existing tests.

  • Scripts/test-legacyMessageReceiver.cpp:
  • Scripts/testMessageReceiver.cpp:
5:28 PM Changeset in webkit [267951] by commit-queue@webkit.org
  • 5 edits
    7 adds in trunk

Presence of CSS variable causes a background url() to get resolved with a different base
https://bugs.webkit.org/show_bug.cgi?id=198512

Patch by Tyler Wilcock <Tyler Wilcock> on 2020-10-04
Reviewed by Darin Adler.

Source/WebCore:

Prior to this patch, url()s within CSSPendingSubstitutionValues
were resolved relative to the document root rather than the stylesheet
they were created from, which is wrong.

With this patch, when CSSPendingSubstitutionValues are created, they
now store the base URL that should be used when they are later
resolved in StyleBuilder.

Test: fast/css/variables/url-with-variable-is-sheet-relative.html

  • css/CSSPendingSubstitutionValue.h: Store baseURL for later

resolution.
(WebCore::CSSPendingSubstitutionValue::create): Add baseURL
parameter.
(WebCore::CSSPendingSubstitutionValue::baseURL const): Add m_baseURL
getter.
(WebCore::CSSPendingSubstitutionValue::CSSPendingSubstitutionValue):
Add baseURL parameter.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::parseValueStart): When creating a
CSSPendingSubstitutionValue, also pass along the baseURL from this
context for later resolution.

  • style/StyleBuilder.cpp:

(WebCore::Style::Builder::resolvedVariableValue): If the value
we are resolving is a CSSPendingSubstitutionValue, resolve it
relative to the baseURL it has stored.

LayoutTests:

Add test ensuring shorthands containing url() and CSS variable(s)
resolve the url() relative to the stylesheet the rule is present in,
not the document root.

  • fast/css/variables/support/images/600x600-green-square.png: Added.
  • fast/css/variables/support/styles/url-with-variable-is-sheet-relative.css: Added.
  • fast/css/variables/url-with-variable-is-sheet-relative-expected.html: Added.
  • fast/css/variables/url-with-variable-is-sheet-relative.html: Added.
2:47 PM Changeset in webkit [267950] by BJ Burg
  • 9 edits in trunk

[Cocoa] Add WKUIDelegate SPI to inform clients when a _WKInspector is about to close
https://bugs.webkit.org/show_bug.cgi?id=217233

Reviewed by Timothy Hatcher and Devin Rousso.

Source/WebKit:

This is complementary to _webView:didAttachLocalInspector: and works similarly.
Clients need to be careful in depending on this during teardown, because it won't
come if the UIDelegate has already been cleared out while the inspected page is being closed.

API test: WKInspectorDelegate.WillCloseLocalInspector

  • UIProcess/API/APIUIClient.h:

(API::UIClient::willCloseLocalInspector):

  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::willCloseLocalInspector):

  • UIProcess/Inspector/WebInspectorProxy.h:
  • UIProcess/Inspector/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::closeFrontendPageAndWindow):
Add a guard for reentrant calls to close().

Tools:

Add new test case for -_webView:willCloseLocalInspector:.

  • TestWebKitAPI/Tests/WebKitCocoa/WKInspectorDelegate.mm:

(-[InspectorDelegate inspectorDidEnableBrowserDomain:]):
(-[UIDelegate _webView:didAttachLocalInspector:]):
(-[UIDelegate _webView:willCloseLocalInspector:]):
(TEST):
Clean up how the other test case works so we don't call close from
inside a delegate callback. Let's keep our tests structured the same way.

2:09 PM Changeset in webkit [267949] by commit-queue@webkit.org
  • 10 edits in trunk

Submission failure with "make: * No rule to make target `installsrc'. Stop"
https://bugs.webkit.org/show_bug.cgi?id=214696
<rdar://problem/62268104>

Patch by Ryan Hostetler <rhost@apple.com> on 2020-10-04
Reviewed by Darin Adler.

.:

Add installsrc phase to support xbs submitproject for WebKit repository.
This change allows internal tools to submit and build in a single step.

  • Makefile:
  • Makefile.shared:
  • Source/Makefile:

Source/ThirdParty:

Add installsrc phase to support xbs submitproject for WebKit repository.
This change allows internal tools to submit and build in a single step.

  • Makefile:

Tools:

Add support for XBS single base project build for WebKit repository.
This change allows internal tools to submit and build from the repository root in a single step.

  • Makefile:

Tools does not need to be submitted, so we stub out the installsrc phase.

WebKitLibraries:

Add support for XBS single base project build for WebKit repository.
This change allows internal tools to submit and build from the repository root in a single step.

  • Makefile:

WebKitLibraries do not need to be submitted, so we stub out the installsrc phase.

10:06 AM Changeset in webkit [267948] by Alan Bujtas
  • 4 edits
    1 add
    2 deletes in trunk

[LFC][Integration] Enable soft hyphen
https://bugs.webkit.org/show_bug.cgi?id=217293

Reviewed by Antti Koivisto.

Source/WebCore:

Let's expand IFC coverage with soft hyphen rendering.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForText):

LayoutTests:

  • fast/parser/entities-in-html-expected.txt: Progression? Now soft hyphen "renders".
  • fast/text/softHyphen-expected.html: Added. Text-dumping soft hyphens seems defective in some cases.

In this test case there should not be any hyphenation triggered by soft hyphens,
so let's use a reftest instead (which should have been used the first place).

  • platform/mac/fast/text/softHyphen-expected.png: Removed.
  • platform/mac/fast/text/softHyphen-expected.txt: Removed.
9:12 AM Changeset in webkit [267947] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC][Soft hyphen] Fix the case when the first content overflows with hyphen
https://bugs.webkit.org/show_bug.cgi?id=217295

Reviewed by Antti Koivisto.

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::rebuildLineForTrailingSoftHyphen):

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

[LFC][IFC] Remove Line::appendPartialTrailingTextItem special case
https://bugs.webkit.org/show_bug.cgi?id=217287

Reviewed by Antti Koivisto.

Use the newly added Line::addTrailingHyphen to display hyphen for partial content.

  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::append):
(WebCore::Layout::Line::appendTextContent):
(WebCore::Layout::Line::Run::Run):
(WebCore::Layout::Line::appendPartialTrailingTextItem): Deleted.
(WebCore::Layout::Line::appendWith): Deleted.

  • layout/inlineformatting/InlineLine.h:
  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::commitPartialContent):

  • layout/inlineformatting/InlineLineRun.h:

(WebCore::Layout::LineRun::Text::Text):

5:22 AM Changeset in webkit [267945] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC][Soft hyphen] Reset Line::m_trailingSoftHyphenWidth when the text content does not end with a soft hyphen
https://bugs.webkit.org/show_bug.cgi?id=217292

Reviewed by Antti Koivisto.

  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::appendTextContent):

5:13 AM Changeset in webkit [267944] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC][Soft hyphen] endsWithSoftWrapOpportunity should check if hyphenation is disabled
https://bugs.webkit.org/show_bug.cgi?id=217288

Reviewed by Antti Koivisto.

This is very similar InlineTextItem::createAndAppendTextItems where we
also construct a LazyLineBreakIterator to check for word wrap opportunities.

  • layout/inlineformatting/InlineContentBreaker.cpp:

(WebCore::Layout::isTextContent): The trailing "only" is misleading since we can't have a mixture of text and non-text content
within a continuous content (there's always a word wrap opportunity between a text and a non-text content).
(WebCore::Layout::isVisuallyEmptyWhitespaceContent):
(WebCore::Layout::InlineContentBreaker::processInlineContent):
(WebCore::Layout::InlineContentBreaker::processOverflowingContent const):
(WebCore::Layout::isTextContentOnly): Deleted.
(WebCore::Layout::isVisuallyEmptyWhitespaceContentOnly): Deleted.

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::endsWithSoftWrapOpportunity):

4:37 AM Changeset in webkit [267943] by Adrian Perez de Castro
  • 19 edits in releases/WebKitGTK/webkit-2.30/Source/WebCore

Merge r267934 - [GTK] Build broken with ENABLE_MEDIA_STREAM enabled and ENABLE_WEB_RTC_DISABLED
https://bugs.webkit.org/show_bug.cgi?id=217128

Remove USE(LIBWEBRTC) guards from media stream code, as it does not actually
depend on libwebrtc and can be built by itself. This allows using e.g. live
audio recording inputs with WebAudio.

Reviewed by Philippe Normand.

No new tests needed.

  • platform/mediastream/gstreamer/GStreamerAudioCaptureSource.cpp:
  • platform/mediastream/gstreamer/GStreamerAudioCaptureSource.h:
  • platform/mediastream/gstreamer/GStreamerAudioCapturer.cpp:

(WebCore::GStreamerAudioCapturer::GStreamerAudioCapturer):

  • platform/mediastream/gstreamer/GStreamerAudioCapturer.h:
  • platform/mediastream/gstreamer/GStreamerAudioStreamDescription.h:
  • platform/mediastream/gstreamer/GStreamerCapturer.cpp:
  • platform/mediastream/gstreamer/GStreamerCapturer.h:
  • platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:
  • platform/mediastream/gstreamer/GStreamerVideoCaptureSource.h:
  • platform/mediastream/gstreamer/GStreamerVideoCapturer.cpp:
  • platform/mediastream/gstreamer/GStreamerVideoCapturer.h:
  • platform/mediastream/gstreamer/MockRealtimeAudioSourceGStreamer.cpp:
  • platform/mediastream/gstreamer/MockRealtimeAudioSourceGStreamer.h:
  • platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp:
  • platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.h:
  • platform/mediastream/gstreamer/RealtimeMediaSourceCenterLibWebRTC.cpp:
  • platform/mock/MockRealtimeAudioSource.cpp:
  • platform/mock/MockRealtimeVideoSource.cpp:
4:37 AM WebKitGTK/2.30.x edited by Adrian Perez de Castro
(diff)
4:37 AM Changeset in webkit [267942] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.30

Merge r267882 - [GTK] Build broken with ENABLE_MEDIA_STREAM enabled and ENABLE_WEB_RTC_DISABLED
https://bugs.webkit.org/show_bug.cgi?id=217128

Reviewed by Philippe Normand.

.:

  • Source/cmake/GStreamerChecks.cmake: Only enable USE_LIBWEBRTC when both

ENABLE_MEDIA_STREAM and ENABLE_WEB_RTC is defined. This prevents trying to
build code that uses libwebrtc types when ENABLE_WEB_RTC is disabled but
ENABLE_MEDIA_STREAM is enabled.

Source/WebCore:

No new tests needed.

  • platform/mediastream/gstreamer/GStreamerAudioData.h: Remove USE(LIBWEBRTC) guard, as

there is nothing specific to WebRTC in this file, and it is needed when building with
ENABLE_MEDIA_STREAM enabled.

4:34 AM WebKitGTK/2.30.x edited by Adrian Perez de Castro
(diff)
1:16 AM Changeset in webkit [267941] by youenn@apple.com
  • 10 edits in trunk

Make sure MediaRecorder does not call fetchData until the last fetchData is completed
https://bugs.webkit.org/show_bug.cgi?id=217276

Reviewed by Darin Adler.

Source/WebCore:

When fetchData is called while an existing fetchData is inflight, enqueue the callback in a deque.
When the inflight fetchData completes, call the enqueued callbacks in order with a null blob.

Add ASSERT in MediaRecorderPrivateWriter to make sure we do not call requestMediaDataWhenReadyOnQueue too many times.

Covered by updated http/wpt/mediarecorder/MediaRecorder-dataavailable.html.

  • Modules/mediarecorder/MediaRecorder.cpp:

(WebCore::MediaRecorder::stopRecording):
(WebCore::MediaRecorder::requestData):
Do not enable the timer if MediaRecorder is not active as a small optimization.
(WebCore::MediaRecorder::fetchData):

  • Modules/mediarecorder/MediaRecorder.h:
  • platform/mediarecorder/MediaRecorderPrivateMock.cpp:

(WebCore::MediaRecorderPrivateMock::fetchData):

  • platform/mediarecorder/MediaRecorderPrivateMock.h:
  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:

(WebCore::MediaRecorderPrivateWriter::flushCompressedSampleBuffers):

LayoutTests:

Add test to cover patch
Update some test expectations according bot results.

  • http/wpt/mediarecorder/MediaRecorder-dataavailable-expected.txt:
  • http/wpt/mediarecorder/MediaRecorder-dataavailable.html:
  • platform/mac/TestExpectations:
Note: See TracTimeline for information about the timeline view.