Timeline



Aug 15, 2020:

3:53 PM Changeset in webkit [265740] by timothy_horton@apple.com
  • 5 edits in trunk

Live Web Content processes do not respect accent color if dynamically changed to "multicolor"
https://bugs.webkit.org/show_bug.cgi?id=215523
<rdar://problem/63941133>

Reviewed by Wenson Hsieh.

Source/WebKit:

  • UIProcess/Cocoa/PreferenceObserver.mm:

(-[WKUserDefaults _notifyObserversOfChangeFromValuesForKeys:toValuesForKeys:]):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::setPreferenceValue):
The NSUserDefaults syncing mechanism does not propagate defaults that are
deleted or changed to nil.

Allow nil, and fix up an assert that would fire for the same reason.

Tools:

  • TestWebKitAPI/Tests/WebKit/PreferenceChanges.mm:

(deleteTestDefaults):
(TEST):
Fix some minor style issues with these tests.
Fix a bug where these tests would leak state between themselves by leaving defaults behind.
Change the NSUserDefaults key name so that it is abundantly obvious where it comes from when you see it in your defaults.
Leave a FIXME for the future that these tests should probably not be writing to the real persistent defaults.
Add a test that ensures that the observer correctly respects deletion of a default.

1:26 PM Changeset in webkit [265739] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merged r264676 - Update Chrome and Firefox versions in user agent quirks
https://bugs.webkit.org/show_bug.cgi?id=214595

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-07-21
Reviewed by Adrian Perez de Castro.

  • platform/UserAgentQuirks.cpp:

(WebCore::UserAgentQuirks::stringForQuirk):

1:26 PM Changeset in webkit [265738] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merged r264986 - [GTK] Crash in Nicosia::GC3DLayer::makeContextCurrent due to failure in EGL display creation
https://bugs.webkit.org/show_bug.cgi?id=201507

Reviewed by Carlos Garcia Campos.

Ensure that EGL context and display creation failures are always
logged using RELEASE_LOG_INFO(), even for intermediate failures for
which a fallback will be tried next, in order to ease diagnosis of
related issues. Failure to create contexts at the end of the public
methods ::createContext() and ::createSharingContext() is still
logged with WTFLogAlways() to write a notice to standard error, and
let users/developers know that something failed and checking the
complete logs (e.g. with "journalctl" on Linux) may reveal more
information.

This also replaces the chains of "if" statements with a single
"switch" on the PlatformDisplay::Type enum, which makes the code
easier to follow and should be more robust as well.

No new tests needed.

  • platform/graphics/egl/GLContextEGL.cpp:

(WebCore::GLContextEGL::getEGLConfig):
(WebCore::GLContextEGL::createWindowContext):
(WebCore::GLContextEGL::createSurfacelessContext):
(WebCore::GLContextEGL::createContext):
(WebCore::GLContextEGL::createSharingContext):

1:26 PM Changeset in webkit [265737] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit

Merged r265326 - [WPE][GTK] Wrong argument order for clone syscall seccomp filter on s390x
https://bugs.webkit.org/show_bug.cgi?id=215212

Reviewed by Michael Catanzaro.

Patch based on this Flatpak pull request:
https://github.com/flatpak/flatpak/pull/3777

No new tests needed.

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::setupSeccomp): Add preprocessor guard to choose the correct
clone() system call argument on S390.

1:25 PM Changeset in webkit [265736] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/JavaScriptCore

Merged r265692 - [ARMv7][JSC] Conservative GC is not considering r7 as a root
https://bugs.webkit.org/show_bug.cgi?id=215512

Reviewed by Yusuke Suzuki.

Since r7 is a callee-saved register on ARMv7
we need to consider it as a conservative root.

See the statement "A subroutine must preserve
the contents of the registers r4-r8, r10, r11
and SP (and r9 in PCS variants that designate
r9 as v6) form page 15 of
https://developer.arm.com/documentation/ihi0042/f/.

  • heap/RegisterState.h:
1:04 PM WebKitGTK/2.28.x edited by Adrian Perez de Castro
(diff)
11:40 AM Changeset in webkit [265735] by ysuzuki@apple.com
  • 19 edits
    1 copy in trunk/Source/WTF

Use std::call_once + LazyNeverDestroyed to initialize complex data structures
https://bugs.webkit.org/show_bug.cgi?id=215535
<rdar://problem/66774266>

Reviewed by Mark Lam.

NeverDestroyed<> is not thread-safe in Darwin build since it is not using C++11 thread-safe static variable semantics.
This patch uses LazyNeverDestroyed and call_once to initialize complex data structures so that we can ensure they are
initialized atomically.

We also move some of singleton definitions from headers to cpp files. This is important since this ensures that singleton
is only one instance which is generated in one translation unit.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/FastMalloc.cpp:

(WTF::MallocCallTracker::singleton):

  • wtf/Language.cpp:

(WTF::observerMap):
(WTF::preferredLanguagesOverride):

  • wtf/Logger.cpp:

(WTF::Logger::observers):

  • wtf/Logger.h:

(WTF::Logger::observerLock):
(WTF::Logger::observers): Deleted.

  • wtf/MemoryPressureHandler.cpp:

(WTF::MemoryPressureHandler::singleton):

  • wtf/MemoryPressureHandler.h:
  • wtf/RunLoop.cpp:

(WTF::RunLoop::current):

  • wtf/Threading.cpp:

(WTF::Thread::initializeInThread):

  • wtf/URL.cpp:

(WTF::aboutBlankURL):
(WTF::aboutSrcDocURL):

  • wtf/cf/LanguageCF.cpp:

(WTF::preferredLanguages):

  • wtf/cocoa/NSURLExtras.mm:

(WTF::rangeOfURLScheme):

  • wtf/text/LineBreakIteratorPoolICU.cpp: Copied from Source/WTF/wtf/Logger.cpp.

(WTF::LineBreakIteratorPool::sharedPool):

  • wtf/text/LineBreakIteratorPoolICU.h:

(WTF::LineBreakIteratorPool::sharedPool): Deleted.

  • wtf/text/StringView.cpp:
  • wtf/text/TextBreakIterator.cpp:

(WTF::TextBreakIteratorCache::singleton):

  • wtf/text/TextBreakIterator.h:

(WTF::TextBreakIteratorCache::singleton): Deleted.

  • wtf/threads/Signals.cpp:

(WTF::activeThreads):

10:49 AM Changeset in webkit [265734] by Andres Gonzalez
  • 2 edits in trunk/Source/WebCore

Revert unnecessary change for https://bugs.webkit.org/show_bug.cgi?id=215521.
https://bugs.webkit.org/show_bug.cgi?id=215541

Reviewed by Chris Fleizach.

These additional checks are no longer necessary since makeSimpleRange
returns a null Optional if any of the VisiblePosition parameters is
null. Darin Adler already fixed the crasher in
https://bugs.webkit.org/show_bug.cgi?id=215521
with the patch
https://trac.webkit.org/changeset/265044/webkit.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::rangeMatchesTextNearRange):

10:29 AM Changeset in webkit [265733] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[GTK][WPE] Add provisional expectation to http/tests to allow the bots to run

Unreviewed test gardening.

  • platform/glib/TestExpectations:
9:25 AM Changeset in webkit [265732] by youenn@apple.com
  • 9 edits in trunk

WritableStream rejected promises should be marked as handled as per spec
https://bugs.webkit.org/show_bug.cgi?id=215501

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/streams/writable-streams/aborting.any-expected.txt:
  • web-platform-tests/streams/writable-streams/aborting.any.worker-expected.txt:
  • web-platform-tests/streams/writable-streams/bad-underlying-sinks.any-expected.txt:
  • web-platform-tests/streams/writable-streams/bad-underlying-sinks.any.worker-expected.txt:
  • web-platform-tests/streams/writable-streams/close.any-expected.txt:
  • web-platform-tests/streams/writable-streams/close.any.worker-expected.txt:

Source/WebCore:

Marking promises that got rejected as handled to ensure onunhandledrejection handler is not called erroneously.
Covered by rebased tests.

  • Modules/streams/WritableStreamInternals.js:

(setUpWritableStreamDefaultWriter):
(writableStreamRejectCloseAndClosedPromiseIfNeeded):
(writableStreamDefaultWriterEnsureClosedPromiseRejected):
(writableStreamDefaultWriterEnsureReadyPromiseRejected):

6:32 AM WebKitGTK/2.30.x edited by Adrian Perez de Castro
(diff)
6:30 AM Changeset in webkit [265731] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.30/Source/JavaScriptCore

Merged r265692 - [ARMv7][JSC] Conservative GC is not considering r7 as a root
https://bugs.webkit.org/show_bug.cgi?id=215512

Reviewed by Yusuke Suzuki.

Since r7 is a callee-saved register on ARMv7
we need to consider it as a conservative root.

See the statement "A subroutine must preserve
the contents of the registers r4-r8, r10, r11
and SP (and r9 in PCS variants that designate
r9 as v6) form page 15 of
https://developer.arm.com/documentation/ihi0042/f/.

  • heap/RegisterState.h:
6:22 AM Changeset in webkit [265730] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.29.90

WPE WebKit 2.29.90

6:22 AM Changeset in webkit [265729] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.30

Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.29.90 release

.:

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

Source/WebKit:

  • wpe/NEWS: Add release notes for 2.29.90.
5:51 AM WebKitGTK/2.28.x edited by Adrian Perez de Castro
(diff)
5:50 AM WebKitGTK/2.30.x edited by Adrian Perez de Castro
(diff)
5:49 AM WebKitGTK/2.30.x edited by Adrian Perez de Castro
(diff)
1:39 AM Changeset in webkit [265728] by Adrian Perez de Castro
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed non-unified source build fix

  • dfg/DFGOSRAvailabilityAnalysisPhase.cpp: Add missing OperandsInlines.h header.

Aug 14, 2020:

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

Revert r263551
https://bugs.webkit.org/show_bug.cgi?id=215530
<rdar://problem/66961066>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-08-14
Reviewed by Geoffrey Garen.

I was hoping to fix many developers' bugs, but it caused hangs and more hangs, so back to the status quo.
https://bugs.webkit.org/show_bug.cgi?id=203547 will fix this the right way in the hopefully-not-too-distant future.

  • UIProcess/API/APIHTTPCookieStore.cpp:

(API::HTTPCookieStore::setCookies):
(API::HTTPCookieStore::registerForNewProcessPoolNotifications):
(API::HTTPCookieStore::flushDefaultUIProcessCookieStore):

  • UIProcess/API/APIHTTPCookieStore.h:
  • UIProcess/API/Cocoa/APIHTTPCookieStoreCocoa.mm:

(API::HTTPCookieStore::flushDefaultUIProcessCookieStore):

8:15 PM Changeset in webkit [265726] by Lauro Moura
  • 1 edit
    6 adds in trunk/LayoutTests

[GTK][WPE] Add platform baselines after r265701

Unreviewed test gardening.

  • platform/glib/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-panner-connections-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-panner-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-tail-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-automation-basic-expected.txt: Added.
6:46 PM Changeset in webkit [265725] by Kate Cheney
  • 31 edits in trunk/Source/WebKit

Convert remaining SharedMemory::Handle to SharedMemory::IPCHandle
https://bugs.webkit.org/show_bug.cgi?id=215471
<rdar://problem/67024177>

Reviewed by David Kilzer.

Use the new struct for sending SharedMemory::Handle objects via IPC, so
we can include the exact size of data (SharedMemory::Handle::size()
rounds up to the nearest page), and verify these sizes match when decoding.

In many cases, the size is not sent as a separate argument via IPC, so
we can initialize the IPCHandle object with SharedMemory::Handle::size().

We can remove the additional size parameter when it exists, because
we are now passing IPCHandle which should include the size value.

  • GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.cpp:

(WebKit::RemoteAudioMediaStreamTrackRenderer::audioSamplesStorageChanged):

  • GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.h:
  • GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.messages.in:
  • GPUProcess/webrtc/RemoteMediaRecorder.cpp:

(WebKit::RemoteMediaRecorder::audioSamplesStorageChanged):

  • GPUProcess/webrtc/RemoteMediaRecorder.h:
  • GPUProcess/webrtc/RemoteMediaRecorder.messages.in:

Send SharedMemory::IPCHandle object instead of SharedMemory::Handle
over IPC.

  • NetworkProcess/ServiceWorker/WebSWOriginStore.cpp:

(WebKit::WebSWOriginStore::sendStoreHandle):
Since no additional size parameter is being sent in this function, we
can use handle.size() as the IPCHandle::dataSize parameter.

  • Platform/SharedMemory.h:

Remove encode/decode functions in SharedMemory::Handle.

  • Platform/cocoa/SharedMemoryCocoa.cpp:

(WebKit::SharedMemory::Handle::encode const): Deleted.
(WebKit::SharedMemory::Handle::decode): Deleted.

  • Platform/unix/SharedMemoryUnix.cpp:

(WebKit::SharedMemory::IPCHandle::encode const):
(WebKit::SharedMemory::IPCHandle::decode):

  • Platform/win/SharedMemoryWin.cpp:

(WebKit::SharedMemory::IPCHandle::encode const):
(WebKit::SharedMemory::IPCHandle::decode):
(WebKit::SharedMemory::Handle::encode const): Deleted.
(WebKit::SharedMemory::Handle::decode): Deleted.
Remove SharedMemory::Handle encode/decode functions so we will not
ever send a SharedMemory::Handle object over IPC accidentally in the future.

  • Shared/ShareableBitmap.cpp:

(WebKit::ShareableBitmap::Handle::encode const):
(WebKit::ShareableBitmap::Handle::decode):
Keep m_size here because it is an IntSize object and is useful to
check width/height parameters in the SharableBitmap object.

  • Shared/ShareableResource.cpp:

(WebKit::ShareableResource::Handle::encode const):
(WebKit::ShareableResource::Handle::decode):

  • Shared/WebCompiledContentRuleListData.cpp:

(WebKit::WebCompiledContentRuleListData::encode const):
(WebKit::WebCompiledContentRuleListData::decode):

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::encodeSharedBuffer):
(IPC::decodeSharedBuffer):

  • Shared/WebHitTestResultData.cpp:

(WebKit::WebHitTestResultData::encode const):
(WebKit::WebHitTestResultData::decode):
More cases of converting between SharedMemory::Handle and
SharedMemory::IPCHandle when encoding/decoding.

  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
  • UIProcess/VisitedLinkStore.cpp:

(WebKit::VisitedLinkStore::sendStoreHandleToProcess):

  • WebProcess/GPU/media/RemoteAudioBusData.h:

(WebKit::RemoteAudioBusData::encode const):
(WebKit::RemoteAudioBusData::decode):
Since no additional size parameter is being sent in this function, we
can use handle.size() as the IPCHandle::dataSize parameter.

  • WebProcess/GPU/webrtc/AudioMediaStreamTrackRenderer.cpp:

(WebKit::AudioMediaStreamTrackRenderer::storageChanged):

  • WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp:

(WebKit::MediaRecorderPrivate::storageChanged):

  • WebProcess/Storage/WebSWClientConnection.cpp:

(WebKit::WebSWClientConnection::setSWOriginTableSharedMemory):

  • WebProcess/Storage/WebSWClientConnection.h:
  • WebProcess/Storage/WebSWClientConnection.messages.in:
  • WebProcess/WebPage/VisitedLinkTableController.cpp:

(WebKit::VisitedLinkTableController::setVisitedLinkTable):

  • WebProcess/WebPage/VisitedLinkTableController.h:
  • WebProcess/WebPage/VisitedLinkTableController.messages.in:
  • WebProcess/cocoa/RemoteCaptureSampleManager.cpp:

(WebKit::RemoteCaptureSampleManager::audioStorageChanged):

  • WebProcess/cocoa/RemoteCaptureSampleManager.h:
  • WebProcess/cocoa/RemoteCaptureSampleManager.messages.in:

More cases of converting between SharedMemory::Handle and
SharedMemory::IPCHandle when encoding/decoding.

6:24 PM Changeset in webkit [265724] by Devin Rousso
  • 4 edits
    3 adds in trunk

Web Inspector: Assertion Failed: Appended a string with newlines. This breaks the source map.
https://bugs.webkit.org/show_bug.cgi?id=215494

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

  • UserInterface/Workers/Formatter/JSFormatter.js:

(JSFormatter.prototype._insertComment):
C-style comments can contain newlines, so use appendStringWithPossibleNewlines.

LayoutTests:

  • inspector/formatting/resources/javascript-source-map-tests/2.js: Added.
  • inspector/formatting/source-map-javascript-2.html: Added.
  • inspector/formatting/source-map-javascript-2-expected.txt: Added.

With appendStringWithPossibleNewlines the source map properly indents the comment inside
the function body so that the * all line up.

5:35 PM Changeset in webkit [265723] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Crash inside FrameLoader::defaultRequestCachingPolicy (null DocumentLoader)
<rdar://problem/42167093> and https://bugs.webkit.org/show_bug.cgi?id=215527

Reviewed by Darin Adler.

We have CrashTracer data, but despite my best efforts no way of reproducing.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::defaultRequestCachingPolicy): If a PingLoader is sending a CSP violation

report sometime after part of the Document's lifecycle, the FrameLoader as a null DocumentLoader here.
Like everywhere else in FrameLoader, null check it.

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

RenderTextControlSingleLine::scroll* functions should not call Element::scroll* on the inner text content
https://bugs.webkit.org/show_bug.cgi?id=215516
<rdar://problem/64739768>

Reviewed by Simon Fraser.

Normally the RenderBox::content*, border*, padding* and scroll* functions grab the geometry information from the renderer itself.
The clients of these functions expect the geometry data to be consistent with the rest of the rendering context
(e.g coordinates are in the coordinate system of the containing block, paint time operations are not applied etc).
Also these functions are supposed to be const. They should not mutate the geometry or the render tree itself.
Forwarding ::scroll* calls to Element::scroll* can't guarantee neither of these above.

  • rendering/RenderTextControlSingleLine.cpp:

(WebCore::RenderTextControlSingleLine::scrollWidth const):
(WebCore::RenderTextControlSingleLine::scrollHeight const):
(WebCore::RenderTextControlSingleLine::scrollLeft const):
(WebCore::RenderTextControlSingleLine::scrollTop const):

5:17 PM Changeset in webkit [265721] by Russell Epstein
  • 8 edits in branches/safari-610.1-branch

Cherry-pick r265709. rdar://problem/67106107

RTL: volume slider and icons are backwards
https://bugs.webkit.org/show_bug.cgi?id=215482
<rdar://problem/65730749>

Reviewed by Eric Carlson.

Source/WebCore:

  • Modules/modern-media-controls/controls/inline-media-controls.js: (InlineMediaControls.prototype.layout): Flip the inline volume button when not in LTR.
  • Modules/modern-media-controls/controls/macos-fullscreen-media-controls.js: (MacOSFullscreenMediaControls.prototype.layout): (MacOSFullscreenMediaControls.prototype._volumeControlsForCurrentDirection): Added. Reverse the order of the fullscreen volume controls when not in LTR.
  • Modules/modern-media-controls/controls/macos-fullscreen-media-controls.css: (.media-controls.mac.fullscreen:not(.uses-ltr-user-interface-layout-direction) :is(.volume-down, .volume.slider, .volume-up)): Added. (.media-controls.mac.fullscreen:not(.uses-ltr-user-interface-layout-direction) .volume.slider): Deleted. Also flip the fullscreen volume up and volume down buttons.

LayoutTests:

MacOSFullscreenMediaControls defaults to having usesLTRUserInterfaceLayoutDirection be
false, so flip the order of the volume controls to match the non-LTR UI.

  • media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-constructor.html:
  • media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-constructor-expected.txt:
  • media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-volume-styles.html:

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

5:16 PM Changeset in webkit [265720] by Russell Epstein
  • 17 edits in branches/safari-610.1-branch/Source/WebKit

Cherry-pick r265702. rdar://problem/67106079

Convert SharedMemory::Handle to SharedMemory::IPCHandle WebPage image/pasteboard functions
https://bugs.webkit.org/show_bug.cgi?id=215478
<rdar://problem/67024582>

Reviewed by Chris Dumez.

Convert SharedMemory::Handle objects to SharedMemory::IPCHandle
objects which automatically verify the size of data being sent.

We can remove the additional size parameter being sent in many IPC
messages along with the handle, now that both are stored in the
IPCHandle struct.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm: (WebKit::WebPageProxy::setPromisedDataForImage):
  • UIProcess/Cocoa/WebPasteboardProxyCocoa.mm: (WebKit::WebPasteboardProxy::getPasteboardBufferForType): No longer need size check, this is done in the IPCHandle::decode() function. (WebKit::WebPasteboardProxy::setPasteboardBufferForType): (WebKit::WebPasteboardProxy::readBufferFromPasteboard):
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/WebPasteboardProxy.cpp: (WebKit::WebPasteboardProxy::readBufferFromPasteboard):
  • UIProcess/WebPasteboardProxy.h:
  • UIProcess/WebPasteboardProxy.messages.in:
  • UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::saveImageToLibrary):
  • UIProcess/mac/WebPageProxyMac.mm: (WebKit::WebPageProxy::dataSelectionForPasteboard): No longer need size check, this is done in the IPCHandle::decode() function. (WebKit::WebPageProxy::setPromisedDataForImage):
  • WebProcess/Plugins/PDF/PDFPlugin.mm: (WebKit::PDFPlugin::writeItemsToPasteboard):
  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: (WebKit::WebPlatformStrategies::bufferForType): (WebKit::WebPlatformStrategies::setBufferForType): (WebKit::WebPlatformStrategies::readBufferFromPasteboard): No longer need size check, this is done in the IPCHandle::decode() function.
  • WebProcess/WebCoreSupport/mac/WebDragClientMac.mm: (WebKit::WebDragClient::declareAndWriteDragImage):
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::getDataSelectionForPasteboard): (WebKit::WebPage::performActionOnElement):
  • WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::getDataSelectionForPasteboard):

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

5:16 PM Changeset in webkit [265719] by Russell Epstein
  • 2 edits in branches/safari-610.1-branch/Source/WebCore

Cherry-pick r265690. rdar://problem/67100613

The PiP button on the fullscreen youtube player disappears after starting a new video in a playlist
https://bugs.webkit.org/show_bug.cgi?id=215488

Reviewed by Eric Carlson.

When a fullscreen video player (e.g., YouTube.com) completes the current video and starts
the next one in a playlist, it may reuse the video element, so m_mediaElement of the
PlaybackSessionModelMediaElement instance won't change. However, the video element
will exit video fullscreen standby and then enter video fullscreen standby. Those
transitions are invisible to users. But the corresponding PlaybackSessionModelContext
instance will be destroyed and a new instance will be created.

By default, the member variable m_pictureInPictureSupported of the PlaybackSessionModelContext
instance is "false". After a new video starts to play, the function
PlaybackSessionModelMediaElement::setMediaElement() won't ask the PlaybackSessionManager
to send a PlaybackSessionManagerProxy::PictureInPictureSupportedChanged message
(because we don't change m_mediaElement) to notify the PlaybackSessionModelContext
instance in the UI process that m_pictureInPictureSupported should be "true". Therefore,
the PlaybackSessionModelContext instance will tell the WKFullScreenViewController instance
that picture-in-picture is not supported, which in turn will hide the picture-in-picture button.

With this patch, PlaybackSessionModelMediaElement::setMediaElement() will ask the
PlaybackSessionManager instance to send an IPC message if m_mediaElement is not nullptr
even we don't change the media element. So that the PlaybackSessionModelContext instance
in the UI process will always have a consistent state as the PlaybackSessionModelMediaElement
instance in the Web process.

  • platform/cocoa/PlaybackSessionModelMediaElement.mm: (WebCore::PlaybackSessionModelMediaElement::setMediaElement):

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

5:16 PM Changeset in webkit [265718] by Russell Epstein
  • 8 edits
    1 add in branches/safari-610.1-branch

Cherry-pick r265685. rdar://problem/67106093

OSRAvailabilityAnalysis shouldn't mark GetStack nodes directly as valid places for recovery
https://bugs.webkit.org/show_bug.cgi?id=215434

Reviewed by Saam Barati.

JSTests:

  • stress/for-of-post-sinking-osr-availability.js: Added. (foo):

Source/JavaScriptCore:

It's somewhat subtle why we cannot use the node for the GetStack
itself in the Availability's node field. The reason is that if we
did we would need to make any phase that converts nodes to
GetStack availability aware. For instance, a place where this
could come up is in constant folding if you had a graph like the
following, which could arise from PutStack sinking:

BB#1:
@1: NewObject()
@2: MovHint(@1, inline-arg1)
@3: Jump(#2, #3)

BB#2:
@4: PutStack(@1, inline-arg1)
@5: GetMyArgumentByVal(inline-arg1)
@6: Jump(#3)

BB#3:
@7: InvalidationPoint()

If constant folding converts @5 to a GetStack then at @7
inline-arg1 won't be available since at the end of BB#1 our
availability is (@1, DeadFlush) and (@5,
FlushedAt(inline-arg1)). When that gets merged at BB#3 then the
availability will be (nullptr, ConflictingFlush).

This patch also makes validation check that availability is sane
at each pontential exit site if
Options::validateFTLOSRExitLiveness() is set. Since this is
actually a Phase we also need to make sure that we don't infinite
loop, so there is now a m_isValidating field on m_graph. The
validateOSRExitAvailability phase is also careful not to modify
the Graph, in order to avoid masking bugs when validating.

In a followup patch I intend to look into why MovHint elimination
will convert:

@2: MovHint(@0, loc1, bc#1, ExitInvalid)
@3: KillStack(loc1, bc#2, ExitValid)
@4: MovHint(@1 loc1, bc#2, ExitInvalid)

into

@2: ZombieHint(@0, loc1, bc#1, ExitInvalid)
@3: KillStack(loc1, bc#2, ExitValid)
@4: MovHint(@1 loc1, bc#2, ExitInvalid)

when loc1 is live in the bytecode at bc#2. But for now, the
validation rule works around this by only checking when mayExit
and the nodes exitOK agree exiting is possible.

  • dfg/DFGGraph.h:
  • dfg/DFGOSRAvailabilityAnalysisPhase.cpp: (JSC::DFG::OSRAvailabilityAnalysisPhase::OSRAvailabilityAnalysisPhase): (JSC::DFG::OSRAvailabilityAnalysisPhase::run): (JSC::DFG::performOSRAvailabilityAnalysis): (JSC::DFG::validateOSRExitAvailability): (JSC::DFG::LocalOSRAvailabilityCalculator::executeNode):
  • dfg/DFGOSRAvailabilityAnalysisPhase.h:
  • dfg/DFGPhase.h: (JSC::DFG::runPhase):
  • dfg/DFGValidate.cpp:

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

5:16 PM Changeset in webkit [265717] by Russell Epstein
  • 14 edits in branches/safari-610.1-branch/Source

Cherry-pick r265623. rdar://problem/67100650

REGRESSION (r260684): Messages YouTube inline video: after Multitasking away and Back, Audio is heard but icon indicates "muted"
https://bugs.webkit.org/show_bug.cgi?id=215453
<rdar://problem/66136673>

Reviewed by Tim Horton.

Source/WebCore:

r260684 silenced all JS events during the snapshot sequence that occurs whenever the user homes out of Safari.
This was meant to address compatibility with websites that did not expect various resize/orientationchange
events when homing out. However, the snapshot sequence is fairly long and this was causing us to silence JS
events which have nothing to do with the snapshot sequence, like window.postMessage()'s message events. This is
what caused this regression.

To address the issue, this patch basically reverts r260684 and deals with websites-compatibility issues via
less risky site-specific and event-specific quirks:

  • We silence Window resize events on nytimes.com to address <rdar://problem/59763843>.
  • We silence Window resize events and MediaQueryList change events on twitter.com to address <rdar://problem/58804852> and <rdar://problem/61731801>.
  • css/MediaQueryMatcher.cpp: (WebCore::MediaQueryMatcher::evaluateAll):
  • dom/EventTarget.cpp: (WebCore::EventTarget::fireEventListeners):
  • page/FrameView.cpp: (WebCore::FrameView::sendResizeEventIfNeeded):
  • page/Page.h: (WebCore::Page::isTakingSnapshotsForApplicationSuspension const): (WebCore::Page::setIsTakingSnapshotsForApplicationSuspension): (WebCore::Page::shouldFireEvents const): Deleted. (WebCore::Page::setShouldFireEvents): Deleted.
  • page/Quirks.cpp: (WebCore::Quirks::shouldSilenceWindowResizeEvents const): (WebCore::Quirks::shouldSilenceMediaQueryListChangeEvents const):
  • page/Quirks.h:

Source/WebKit:

  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::setIsDoingSnapshotSequence): (WebKit::WebPageProxy::setShouldFireEvents): Deleted.
  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKApplicationStateTrackingView.mm: (-[WKApplicationStateTrackingView _willBeginSnapshotSequence]): (-[WKApplicationStateTrackingView _didCompleteSnapshotSequence]):
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::setIsDoingSnapshotSequence): (WebKit::WebPage::setShouldFireEvents): Deleted.
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

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

4:28 PM Changeset in webkit [265716] by Jonathan Bedard
  • 2 edits in trunk/Tools

[webkitcorepy] Add a NullHandler to logger
https://bugs.webkit.org/show_bug.cgi?id=215524
<rdar://problem/67102367>

Reviewed by Dewei Zhu.

  • Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Add default logging handler to webkitcorepy.log.
4:27 PM Changeset in webkit [265715] by pvollan@apple.com
  • 6 edits
    2 adds in trunk/Source/WebKit

[Cocoa] Avoid changing XPC target queue inside XPC event handler
https://bugs.webkit.org/show_bug.cgi?id=215460

Reviewed by Darin Adler.

In WebProcess::handleXPCEndpointMessages we currently change the XPC target queue for the XPC bootstrap connection while
under the XPC event handler. This sometimes causes simulated crashes on iOS and should be avoided. According to the
documentation in https://developer.apple.com/documentation/xpc/1448786-xpc_connection_set_target_queue?language=objc,
there does not seem to be anything saying this is a programming error, but the simulated crash claims otherwise. This
patch addresses this issue by changing the initial target queue for the XPC bootstrap connection from the main thread
queue to a queue on a secondary thread. The WebKit initializer function needs to be called on the main thread, which
is done by synchronously dispatching the call on the main thread. This patch also stops changing the event handler for
the bootstrap connection, but instead adds the additional XPC handling to the current event handler.

No new tests, since this is covered by existing tests. The handling of the Launch Services XPC endpoint message that
this patch changes, is used to receive the Launch Services database from the Networking process. The Launch Services
database is used in MIME type mapping APIs, and many tests would fail if this database was not received in the
WebContent process.

  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:

(WebKit::XPCServiceEventHandler):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::platformDidReceiveLoadParameters):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeConnection):

  • WebProcess/WebProcess.h:
  • WebProcess/cocoa/HandleXPCEndpointMessages.h: Added.
  • WebProcess/cocoa/HandleXPCEndpointMessages.mm: Added.

(WebKit::handleXPCEndpointMessages):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::handleXPCEndpointMessages const): Deleted.

4:09 PM Changeset in webkit [265714] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Assertion Failed: removeEventListener cannot remove css-manager-style-sheet-added because it doesn't exist.
https://bugs.webkit.org/show_bug.cgi?id=215495

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/FrameTreeElement.js:

(WI.FrameTreeElement.prototype.ondetach):
Check this.listItemElement, which is equivalent to WI.View.prototype.didInitialLayout for WI.TreeElement.

3:54 PM Changeset in webkit [265713] by Chris Dumez
  • 16 edits in trunk

OfflineAudioContext.destination has incorrect number of channels & channel count mode
https://bugs.webkit.org/show_bug.cgi?id=215522

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

Rebaseline WPT tests now that more checks are passing.
Note that some tests are now failing when checking the audio channels on the OfflineAudioContext's destination.
Previously, there were no such channels to check since the channel count was always 0.

  • web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-scheduling-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-biquad-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-constant-source-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-delay-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-gain-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-oscillator-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-panner-connections-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-panner-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/convolver-response-2-chan-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-gainnode-interface/gain-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-offlineaudiocontext-interface/ctor-offlineaudiocontext-expected.txt:

Source/WebCore:

OfflineAudioContext.destination currently always has a number of channels that is 0, no
matter the numberOfChannels provided when constructing the OfflineAudioContext. The
channel count mode is also "max" instead of "explicit" (as per [1]).

[1] https://www.w3.org/TR/webaudio/#AudioDestinationNode

No new tests, rebaselined existing tests.

  • Modules/webaudio/OfflineAudioDestinationNode.cpp:

(WebCore::OfflineAudioDestinationNode::OfflineAudioDestinationNode):
(WebCore::OfflineAudioDestinationNode::maxChannelCount const):

  • Modules/webaudio/OfflineAudioDestinationNode.h:
3:42 PM Changeset in webkit [265712] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Assertion Failed: removeEventListener cannot remove frame-main-resource-did-change because it doesn't exist.
https://bugs.webkit.org/show_bug.cgi?id=215496

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/ChangesDetailsSidebarPanel.js:

(WI.ChangesDetailsSidebarPanel.prototype.shown):
(WI.ChangesDetailsSidebarPanel.prototype.attached): Added.
(WI.ChangesDetailsSidebarPanel.prototype.detached):
Move event listener to attach, which is guaranteed to be called before detach.

3:33 PM Changeset in webkit [265711] by commit-queue@webkit.org
  • 19 edits in trunk

[WebGL2] releaseShaderCompiler is not allowed to be supported in WebGL
https://bugs.webkit.org/show_bug.cgi?id=215432

Patch by James Darpinian <James Darpinian> on 2020-08-14
Reviewed by Dean Jackson.

Source/WebCore:

Fixes WebGL conformance tests methods.html and methods-2.html

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::releaseShaderCompiler): Deleted.

  • html/canvas/WebGLRenderingContextBase.h:
  • html/canvas/WebGLRenderingContextBase.idl:
  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLOpenGL::releaseShaderCompiler): Deleted.

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

(WebCore::GraphicsContextGLOpenGL::releaseShaderCompiler): Deleted.

  • platform/graphics/opengl/GraphicsContextGLOpenGLES.cpp:

(WebCore::GraphicsContextGLOpenGL::releaseShaderCompiler): Deleted.

LayoutTests:

  • webgl/1.0.3/conformance/context/methods-expected.txt:
  • webgl/2.0.0/conformance/context/methods-expected.txt:
  • webgl/2.0.0/conformance2/context/methods-2-expected.txt:
3:30 PM Changeset in webkit [265710] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[WebGL2] Skip buggy conformance tests
https://bugs.webkit.org/show_bug.cgi?id=215466

Patch by James Darpinian <James Darpinian> on 2020-08-14
Reviewed by Dean Jackson.

  • webgl/TestExpectations:
3:14 PM Changeset in webkit [265709] by Devin Rousso
  • 8 edits in trunk

RTL: volume slider and icons are backwards
https://bugs.webkit.org/show_bug.cgi?id=215482
<rdar://problem/65730749>

Reviewed by Eric Carlson.

Source/WebCore:

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

(InlineMediaControls.prototype.layout):
Flip the inline volume button when not in LTR.

  • Modules/modern-media-controls/controls/macos-fullscreen-media-controls.js:

(MacOSFullscreenMediaControls.prototype.layout):
(MacOSFullscreenMediaControls.prototype._volumeControlsForCurrentDirection): Added.
Reverse the order of the fullscreen volume controls when not in LTR.

  • Modules/modern-media-controls/controls/macos-fullscreen-media-controls.css:

(.media-controls.mac.fullscreen:not(.uses-ltr-user-interface-layout-direction) :is(.volume-down, .volume.slider, .volume-up)): Added.
(.media-controls.mac.fullscreen:not(.uses-ltr-user-interface-layout-direction) .volume.slider): Deleted.
Also flip the fullscreen volume up and volume down buttons.

LayoutTests:

MacOSFullscreenMediaControls defaults to having usesLTRUserInterfaceLayoutDirection be
false, so flip the order of the volume controls to match the non-LTR UI.

  • media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-constructor.html:
  • media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-constructor-expected.txt:
  • media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-volume-styles.html:
3:06 PM Changeset in webkit [265708] by commit-queue@webkit.org
  • 57 edits in trunk

[WebGL2] expando-loss and expando-loss-2 conformance tests are failing
https://bugs.webkit.org/show_bug.cgi?id=214765

Patch by Kenneth Russell <kbr@chromium.org> on 2020-08-14
Reviewed by Yusuke Suzuki.

Re-land with locking fixes ysuzuki@ pointed out as necessary, and
advised heavily on.

Source/WebCore:

Use JSWebGLRenderingContext's and JSWebGL2RenderingContext's
existing visitAdditionalChildren hook, via JSCustomMarkFunction in
their IDL, to add opaque roots for all WebGLObjects latched in to
the context state, and all WebGLObjects they refer to. Extensions
were already previously handled.

In order to support JSC's concurrent marking, grab a
per-WebGL-context lock in visitAdditionalChildren, and in all
WebGL context- and object-related methods which modify compound
data structures like HashMaps and Vectors that are traversed by
visitAdditionalChildren and its callees. Add "const
AbstractLocker&" throughout WebGL's call hierarchy to guarantee
that this lock is held where needed. Add needed exception in
WebGLObjects' destructors to avoid recursive locking, and in
WebGLContextGroup destruction to avoid mutating objects that GC
might be traversing when a lock is no longer available on the
application's thread.

Add "GenerateIsReachable=Impl" to the IDL files of needed WebGL
objects (WebGLBuffer, WebGLTexture, etc.) so that they pay
attention to the opaque root state when determining liveness of
their JavaScript wrappers. Add a FIXME to objectGraphLock in
WebGLRenderingContextBase to consider rewriting this in a
lock-free manner.

Covered by existing WebGL conformance tests.

  • bindings/js/JSWebGL2RenderingContextCustom.cpp:

(WebCore::JSWebGL2RenderingContext::visitAdditionalChildren):

  • bindings/js/JSWebGLRenderingContextCustom.cpp:

(WebCore::JSWebGLRenderingContext::visitAdditionalChildren):

  • html/canvas/OESVertexArrayObject.cpp:

(WebCore::OESVertexArrayObject::deleteVertexArrayOES):
(WebCore::OESVertexArrayObject::bindVertexArrayOES):

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::validateAndCacheBufferBinding):
(WebCore::WebGL2RenderingContext::bindFramebuffer):
(WebCore::WebGL2RenderingContext::deleteFramebuffer):
(WebCore::WebGL2RenderingContext::deleteQuery):
(WebCore::WebGL2RenderingContext::beginQuery):
(WebCore::WebGL2RenderingContext::endQuery):
(WebCore::WebGL2RenderingContext::deleteSampler):
(WebCore::WebGL2RenderingContext::bindSampler):
(WebCore::WebGL2RenderingContext::deleteSync):
(WebCore::WebGL2RenderingContext::deleteTransformFeedback):
(WebCore::WebGL2RenderingContext::bindTransformFeedback):
(WebCore::WebGL2RenderingContext::beginTransformFeedback):
(WebCore::WebGL2RenderingContext::setIndexedBufferBinding):
(WebCore::WebGL2RenderingContext::deleteVertexArray):
(WebCore::WebGL2RenderingContext::bindVertexArray):
(WebCore::WebGL2RenderingContext::addMembersToOpaqueRoots):
(WebCore::WebGL2RenderingContext::uncacheDeletedBuffer):

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

(WebCore::WebGLBuffer::~WebGLBuffer):
(WebCore::WebGLBuffer::deleteObjectImpl):

  • html/canvas/WebGLBuffer.h:
  • html/canvas/WebGLBuffer.idl:
  • html/canvas/WebGLContextGroup.cpp:

(WebCore::WebGLContextGroup::hasAContext const):
(WebCore::WebGLContextGroup::objectGraphLockForAContext):
(WebCore::WebGLContextGroup::detachAndRemoveAllObjects):

  • html/canvas/WebGLContextGroup.h:
  • html/canvas/WebGLContextObject.cpp:

(WebCore::WebGLContextObject::detachContext):
(WebCore::WebGLContextObject::objectGraphLockForContext):

  • html/canvas/WebGLContextObject.h:
  • html/canvas/WebGLFramebuffer.cpp:

(WebCore::WebGLFramebuffer::~WebGLFramebuffer):
(WebCore::WebGLFramebuffer::removeAttachmentFromBoundFramebuffer):
(WebCore::WebGLFramebuffer::deleteObjectImpl):
(WebCore::WebGLFramebuffer::initializeAttachments):
(WebCore::WebGLFramebuffer::addMembersToOpaqueRoots):
(WebCore::WebGLFramebuffer::setAttachmentInternal):
(WebCore::WebGLFramebuffer::removeAttachmentInternal):

  • html/canvas/WebGLFramebuffer.h:
  • html/canvas/WebGLFramebuffer.idl:
  • html/canvas/WebGLObject.cpp:

(WebCore::WebGLObject::runDestructor):
(WebCore::WebGLObject::deleteObject):

  • html/canvas/WebGLObject.h:
  • html/canvas/WebGLProgram.cpp:

(WebCore::WebGLProgram::~WebGLProgram):
(WebCore::WebGLProgram::deleteObjectImpl):
(WebCore::WebGLProgram::attachShader):
(WebCore::WebGLProgram::detachShader):
(WebCore::WebGLProgram::addMembersToOpaqueRoots):

  • html/canvas/WebGLProgram.h:
  • html/canvas/WebGLProgram.idl:
  • html/canvas/WebGLQuery.cpp:

(WebCore::WebGLQuery::~WebGLQuery):
(WebCore::WebGLQuery::deleteObjectImpl):

  • html/canvas/WebGLQuery.h:
  • html/canvas/WebGLQuery.idl:
  • html/canvas/WebGLRenderbuffer.cpp:

(WebCore::WebGLRenderbuffer::~WebGLRenderbuffer):
(WebCore::WebGLRenderbuffer::deleteObjectImpl):

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

(WebCore::WebGLRenderingContextBase::attachShader):
(WebCore::WebGLRenderingContextBase::validateAndCacheBufferBinding):
(WebCore::WebGLRenderingContextBase::bindBuffer):
(WebCore::WebGLRenderingContextBase::bindFramebuffer):
(WebCore::WebGLRenderingContextBase::bindRenderbuffer):
(WebCore::WebGLRenderingContextBase::bindTexture):
(WebCore::WebGLRenderingContextBase::deleteObject):
(WebCore::WebGLRenderingContextBase::uncacheDeletedBuffer):
(WebCore::WebGLRenderingContextBase::setBoundVertexArrayObject):
(WebCore::WebGLRenderingContextBase::deleteBuffer):
(WebCore::WebGLRenderingContextBase::deleteFramebuffer):
(WebCore::WebGLRenderingContextBase::deleteProgram):
(WebCore::WebGLRenderingContextBase::deleteRenderbuffer):
(WebCore::WebGLRenderingContextBase::deleteShader):
(WebCore::WebGLRenderingContextBase::deleteTexture):
(WebCore::WebGLRenderingContextBase::detachShader):
(WebCore::WebGLRenderingContextBase::useProgram):
(WebCore::WebGLRenderingContextBase::vertexAttribPointer):
(WebCore::WebGLRenderingContextBase::detachAndRemoveAllObjects):
(WebCore::WebGLRenderingContextBase::setFramebuffer):
(WebCore::WebGLRenderingContextBase::addMembersToOpaqueRoots):
(WebCore::WebGLRenderingContextBase::objectGraphLock):

  • html/canvas/WebGLRenderingContextBase.h:

(WebCore::WebGLRenderingContextBase::setBoundVertexArrayObject): Deleted.

  • html/canvas/WebGLSampler.cpp:

(WebCore::WebGLSampler::~WebGLSampler):
(WebCore::WebGLSampler::deleteObjectImpl):

  • html/canvas/WebGLSampler.h:
  • html/canvas/WebGLSampler.idl:
  • html/canvas/WebGLShader.cpp:

(WebCore::WebGLShader::~WebGLShader):
(WebCore::WebGLShader::deleteObjectImpl):

  • html/canvas/WebGLShader.h:
  • html/canvas/WebGLShader.idl:
  • html/canvas/WebGLSharedObject.cpp:

(WebCore::WebGLSharedObject::detachContextGroup):
(WebCore::WebGLSharedObject::detachContextGroupWithoutDeletingObject):
(WebCore::WebGLSharedObject::hasGroupOrContext const):
(WebCore::WebGLSharedObject::objectGraphLockForContext):

  • html/canvas/WebGLSharedObject.h:
  • html/canvas/WebGLSync.cpp:

(WebCore::WebGLSync::~WebGLSync):
(WebCore::WebGLSync::deleteObjectImpl):

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

(WebCore::WebGLTexture::~WebGLTexture):
(WebCore::WebGLTexture::deleteObjectImpl):

  • html/canvas/WebGLTexture.h:
  • html/canvas/WebGLTexture.idl:
  • html/canvas/WebGLTransformFeedback.cpp:

(WebCore::WebGLTransformFeedback::~WebGLTransformFeedback):
(WebCore::WebGLTransformFeedback::deleteObjectImpl):
(WebCore::WebGLTransformFeedback::setProgram):
(WebCore::WebGLTransformFeedback::setBoundIndexedTransformFeedbackBuffer):
(WebCore::WebGLTransformFeedback::addMembersToOpaqueRoots):
(WebCore::WebGLTransformFeedback::unbindBuffer):

  • html/canvas/WebGLTransformFeedback.h:
  • html/canvas/WebGLTransformFeedback.idl:
  • html/canvas/WebGLVertexArrayObject.cpp:

(WebCore::WebGLVertexArrayObject::~WebGLVertexArrayObject):
(WebCore::WebGLVertexArrayObject::deleteObjectImpl):

  • html/canvas/WebGLVertexArrayObject.h:
  • html/canvas/WebGLVertexArrayObject.idl:
  • html/canvas/WebGLVertexArrayObjectBase.cpp:

(WebCore::WebGLVertexArrayObjectBase::setElementArrayBuffer):
(WebCore::WebGLVertexArrayObjectBase::setVertexAttribState):
(WebCore::WebGLVertexArrayObjectBase::unbindBuffer):
(WebCore::WebGLVertexArrayObjectBase::addMembersToOpaqueRoots):

  • html/canvas/WebGLVertexArrayObjectBase.h:
  • html/canvas/WebGLVertexArrayObjectOES.cpp:

(WebCore::WebGLVertexArrayObjectOES::~WebGLVertexArrayObjectOES):
(WebCore::WebGLVertexArrayObjectOES::deleteObjectImpl):

  • html/canvas/WebGLVertexArrayObjectOES.h:
  • html/canvas/WebGLVertexArrayObjectOES.idl:

LayoutTests:

Rebaseline expando-loss.html and expando-loss-2.html, which are
now fully passing.

Add a hook to js-test-pre.js which allows these tests to be run
correctly in the MiniBrowser by setting the following environment
variables:

export JSC_useDollarVM=1
export XPC_JSC_useDollarVM=1

  • webgl/2.0.0/conformance/misc/expando-loss-expected.txt:
  • webgl/2.0.0/conformance2/misc/expando-loss-2-expected.txt:
  • webgl/2.0.0/resources/webgl_test_files/js/js-test-pre.js:
3:00 PM Changeset in webkit [265707] by Devin Rousso
  • 8 edits in trunk/Source/WebInspectorUI

Web Inspector: use WI.DropZoneView instead of handleFileDrop
https://bugs.webkit.org/show_bug.cgi?id=215493

Reviewed by Joseph Pecoraro.

WI.DropZoneView indicates that things can be dropped, whereas handleFileDrop has no UI.

  • UserInterface/Base/Main.js:

(WI.contentLoaded):
(WI._handleDrop): Deleted.

  • UserInterface/Views/AuditTabContentView.js:

(WI.AuditTabContentView.prototype.dropZoneShouldAppearForDragEvent): Added.
(WI.AuditTabContentView.prototype.dropZoneHandleDrop): Added.
(WI.AuditTabContentView.prototype.initialLayout):
(WI.AuditTabContentView.prototype.async handleFileDrop): Deleted.

  • UserInterface/Views/GraphicsTabContentView.js:

(WI.GraphicsTabContentView.prototype.dropZoneShouldAppearForDragEvent): Added.
(WI.GraphicsTabContentView.prototype.dropZoneHandleDrop): Added.
(WI.GraphicsTabContentView.prototype.initialLayout):
(WI.GraphicsTabContentView.prototype.async handleFileDrop): Deleted.

  • UserInterface/Views/NetworkTabContentView.js:

(WI.NetworkTabContentView.prototype.initialLayout):
(WI.NetworkTabContentView.prototype.dropZoneShouldAppearForDragEvent): Added.
(WI.NetworkTabContentView.prototype.dropZoneHandleDrop): Added.
(WI.NetworkTabContentView.prototype.async handleFileDrop): Deleted.

  • UserInterface/Views/TimelineTabContentView.js:

(WI.TimelineTabContentView.prototype.dropZoneShouldAppearForDragEvent): Added.
(WI.TimelineTabContentView.prototype.dropZoneHandleDrop): Added.
(WI.TimelineTabContentView.prototype.initialLayout):
(WI.TimelineTabContentView.prototype.async handleFileDrop): Deleted.

  • UserInterface/Views/GraphicsOverviewContentView.js:

(WI.GraphicsOverviewContentView.prototype.initialLayout):
(WI.GraphicsOverviewContentView.prototype.dropZoneShouldAppearForDragEvent): Deleted.
(WI.GraphicsOverviewContentView.prototype.dropZoneHandleDrop): Deleted.
Remove this WI.DropZoneView as it's now handled by WI.GraphicsTabContentView.

  • Localizations/en.lproj/localizedStrings.js:
2:56 PM Changeset in webkit [265706] by wenson_hsieh@apple.com
  • 3 edits in trunk/LayoutTests

Unreviewed, clean up some test expectations after r265639

  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
2:55 PM Changeset in webkit [265705] by Andres Gonzalez
  • 2 edits in trunk/Source/WebCore

Crash in WebCore::AXObjectCache::rangeMatchesTextNearRange.
https://bugs.webkit.org/show_bug.cgi?id=215521
<rdar://problem/64773177>

Reviewed by Chris Fleizach.

The test accessibility/ios-simulator/text-marker-range-matches-text.html
exercises this code path, but doesn't reproduce this crash.

Added a check for nullity of the VisiblePositions before creating the
SimpleRange.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::rangeMatchesTextNearRange):

2:42 PM Changeset in webkit [265704] by Alan Coon
  • 1 copy in tags/Safari-610.2.1

Tag Safari-610.2.1.

1:47 PM Changeset in webkit [265703] by beidson@apple.com
  • 2 edits in trunk/Tools

Gamepad.GCFVersusHID fails on Big Sur.
<rdar://problem/66948608> and https://bugs.webkit.org/show_bug.cgi?id=215520

Reviewed by Tim Horton.

  • TestWebKitAPI/Tests/mac/HIDGamepads.mm: Accept two different names for the virtual Xbox One controller
1:41 PM Changeset in webkit [265702] by Kate Cheney
  • 17 edits in trunk/Source/WebKit

Convert SharedMemory::Handle to SharedMemory::IPCHandle WebPage image/pasteboard functions
https://bugs.webkit.org/show_bug.cgi?id=215478
<rdar://problem/67024582>

Reviewed by Chris Dumez.

Convert SharedMemory::Handle objects to SharedMemory::IPCHandle
objects which automatically verify the size of data being sent.

We can remove the additional size parameter being sent in many IPC
messages along with the handle, now that both are stored in the
IPCHandle struct.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::setPromisedDataForImage):

  • UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:

(WebKit::WebPasteboardProxy::getPasteboardBufferForType):
No longer need size check, this is done in the IPCHandle::decode()
function.
(WebKit::WebPasteboardProxy::setPasteboardBufferForType):
(WebKit::WebPasteboardProxy::readBufferFromPasteboard):

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

(WebKit::WebPasteboardProxy::readBufferFromPasteboard):

  • UIProcess/WebPasteboardProxy.h:
  • UIProcess/WebPasteboardProxy.messages.in:
  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::saveImageToLibrary):

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::dataSelectionForPasteboard):
No longer need size check, this is done in the IPCHandle::decode()
function.
(WebKit::WebPageProxy::setPromisedDataForImage):

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::writeItemsToPasteboard):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::bufferForType):
(WebKit::WebPlatformStrategies::setBufferForType):
(WebKit::WebPlatformStrategies::readBufferFromPasteboard):
No longer need size check, this is done in the IPCHandle::decode()
function.

  • WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:

(WebKit::WebDragClient::declareAndWriteDragImage):

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

(WebKit::WebPage::getDataSelectionForPasteboard):
(WebKit::WebPage::performActionOnElement):

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::getDataSelectionForPasteboard):

1:27 PM Changeset in webkit [265701] by Chris Dumez
  • 33 edits
    12 adds in trunk

Add support for suspending / resuming an OfflineAudioContext
https://bugs.webkit.org/show_bug.cgi?id=215417

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

Rebaseline WPT tests now that more checks are passing.

  • web-platform-tests/webaudio/idlharness.https.window-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/active-processing.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-suspend-resume-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/suspend-after-construct-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode-disconnect-audioparam-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-channel-count.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/suspended-context-messageport.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/no-dezippering-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-disconnect-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/convolver-response-4-chan-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/no-dezippering-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-gainnode-interface/no-dezippering-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-offlineaudiocontext-interface/current-time-block-size-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-oscillatornode-interface/osc-basic-waveform-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/automation-changes-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-automation-basic-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-copy-curve-expected.txt:

Source/WebCore:

Add support for suspending / resuming an OfflineAudioContext, as per:

Tests: webaudio/offlineaudiocontext-suspend-resume-basic.html

webaudio/offlineaudiocontext-suspend-resume-eventhandler.html
webaudio/offlineaudiocontext-suspend-resume-graph-manipulation.html
webaudio/offlineaudiocontext-suspend-resume-promise.html
webaudio/offlineaudiocontext-suspend-resume-sequence.html

  • Modules/webaudio/BaseAudioContext.cpp:

(WebCore::BaseAudioContext::didSuspendRendering):

  • Modules/webaudio/BaseAudioContext.h:

(WebCore::BaseAudioContext::shouldSuspend):

  • Modules/webaudio/OfflineAudioContext.cpp:

(WebCore::OfflineAudioContext::uninitialize):
(WebCore::OfflineAudioContext::startOfflineRendering):
(WebCore::OfflineAudioContext::suspendOfflineRendering):
(WebCore::OfflineAudioContext::resumeOfflineRendering):
(WebCore::OfflineAudioContext::shouldSuspend):
(WebCore::OfflineAudioContext::didSuspendRendering):
(WebCore::OfflineAudioContext::didFinishOfflineRendering):

  • Modules/webaudio/OfflineAudioContext.h:
  • Modules/webaudio/OfflineAudioContext.idl:
  • Modules/webaudio/OfflineAudioDestinationNode.cpp:

(WebCore::OfflineAudioDestinationNode::OfflineAudioDestinationNode):
(WebCore::OfflineAudioDestinationNode::startRendering):
(WebCore::OfflineAudioDestinationNode::offlineRender):

  • Modules/webaudio/OfflineAudioDestinationNode.h:

LayoutTests:

Import tests for this feature from Blink since the WPT coverage is not great.

  • webaudio/offlineaudiocontext-suspend-resume-basic-expected.txt: Added.
  • webaudio/offlineaudiocontext-suspend-resume-basic.html: Added.
  • webaudio/offlineaudiocontext-suspend-resume-eventhandler-expected.txt: Added.
  • webaudio/offlineaudiocontext-suspend-resume-eventhandler.html: Added.
  • webaudio/offlineaudiocontext-suspend-resume-graph-manipulation-expected.txt: Added.
  • webaudio/offlineaudiocontext-suspend-resume-graph-manipulation.html: Added.
  • webaudio/offlineaudiocontext-suspend-resume-promise-expected.txt: Added.
  • webaudio/offlineaudiocontext-suspend-resume-promise.html: Added.
  • webaudio/offlineaudiocontext-suspend-resume-sequence-expected.txt: Added.
  • webaudio/offlineaudiocontext-suspend-resume-sequence.html: Added.
  • webaudio/resources/audit-util.js: Added.

(compareBuffersWithConstraints):
(createImpulseBuffer):
(createLinearRampBuffer):
(createConstantBuffer):
(createStereoImpulseBuffer):
(timeToSampleFrame):
(grainLengthInSampleFrames):
(isValidNumber):

  • webaudio/resources/audit.js: Added.

(_logError):
(_logPassed):
(_logFailed):
(_throwException):
(_generateDescription):
(_formatFailureEntry):
(_closeToThreshold):
(Should):
(Should.prototype._processArguments):
(Should.prototype._buildResultText):
(Should.prototype._finalize):
(Should.prototype._assert):
(Should.prototype.get result):
(Should.prototype.get detail):
(Should.prototype.exist):
(Should.prototype.throw):
(Should.prototype.notThrow):
(Should.prototype.beResolved):
(Should.prototype.beRejected):
(Should.prototype.beRejectedWith):
(Should.prototype.beTrue):
(Should.prototype.beFalse):
(Should.prototype.beEqualTo):
(Should.prototype.notBeEqualTo):
(Should.prototype.beNaN):
(Should.prototype.notBeNaN):
(Should.prototype.beGreaterThan):
(Should.prototype.beGreaterThanOrEqualTo):
(Should.prototype.beLessThan):
(Should.prototype.beLessThanOrEqualTo):
(Should.prototype.beConstantValueOf):
(Should.prototype.notBeConstantValueOf):
(Should.prototype.beEqualToArray):
(Should.prototype.containValues):
(Should.prototype.notGlitch):
(Should.prototype.beCloseTo):
(Should.prototype.beCloseToArray):
(Should.prototype.message):
(Should.prototype.haveOwnProperty):
(Should.prototype.notHaveOwnProperty):
(Should.prototype.inheritFrom):
(Task):
(Task.prototype.get label):
(Task.prototype.get state):
(Task.prototype.get result):
(Task.prototype.should):
(Task.prototype.run):
(Task.prototype.update):
(Task.prototype.done):
(Task.prototype.timeout):
(Task.prototype.isPassed):
(Task.prototype.toString):
(TaskRunner):
(TaskRunner.prototype._finish):
(TaskRunner.prototype.define):
(TaskRunner.prototype.run):
(loadFileFromUrl):
(return.createTaskRunner):
(window.Audit):

12:48 PM Changeset in webkit [265700] by Alan Coon
  • 6 edits
    3 adds in branches/safari-610.1-branch

Cherry-pick r265603. rdar://problem/67084483

Font loads quickly followed by navigations may fail indefinitely
https://bugs.webkit.org/show_bug.cgi?id=215435
<rdar://problem/65560550>

Reviewed by Darin Adler.

Source/WebCore:

Font loads are coalesced using a zero-delay timer. However, that zero-delay timer
can fire while the page is in the middle of a navigation, which will cause the font
loads to fail. Then, the second page can request those same fonts, which are marked
as failed, and as such will never actually load/use the desired web font.

This patch just stops the zero-delay timer during navigations, and resumes it
when resuming the document. This means:

  1. The second page in the above story will not see that the font has failed, or even started, and will then re-request the font and load it successfully
  2. If the user goes "back" to the previous page, the zero-delay timer is restarted, the CachedFont realizes it's already succeeded, and the previous page is rendered as expected.

Test: fast/loader/font-load-timer.html

  • css/CSSFontSelector.cpp: (WebCore::CSSFontSelector::suspendFontLoadingTimer): (WebCore::CSSFontSelector::restartFontLoadingTimer):
  • css/CSSFontSelector.h:
  • dom/Document.cpp: (WebCore::Document::resume):
  • loader/DocumentLoader.cpp: (WebCore::DocumentLoader::stopLoading):

LayoutTests:

1) The page has some content that has “font-family: WebFont” but there are no @font-face blocks on the page
2) In script, after the page has loaded, add an @font-face rule to the page with “font-family: WebFont” and some valid font URL
3) Synchronously, within the same turn of the run loop, trigger a synchronous layout of the element (using offsetWidth or something). This will add the font to the 0-delay time work list.
4) Synchronously, within the same turn of the run loop, navigate to a second page that doesn’t use the web font.
5) The second page waits some small-but-positive amount of time. This will cause the 0-delay timer to fire, but because the page is in the middle of navigating, the font load should fail.
6) The second page adds the same @font-face rule to itself using script. This should pull the same (failed) CachedResource object out of the memory cache.
7) Use the CSS Font Loading API to wait for the font load to complete
8) Make sure that the font is used on the second page (as a reference test). Today, the second page’s font load will fail because it pulled the failed font out of the memory cache. The test makes sure the second page’s font load succeeds.

  • fast/loader/font-load-timer-expected.html: Added.
  • fast/loader/font-load-timer.html: Added.
  • fast/loader/resources/font-load-timer-navigation-destination.html: Added.

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

12:48 PM Changeset in webkit [265699] by Alan Coon
  • 2 edits in branches/safari-610.1-branch/Source/WebInspectorUI

Cherry-pick r265597. rdar://problem/67084522

Web Inspector: REGRESSION(r259170): text inputs in box-shadow editor push sliders offscreen
https://bugs.webkit.org/show_bug.cgi?id=215436

Reviewed by Darin Adler.

  • UserInterface/Views/BoxShadowEditor.js: (WI.BoxShadowEditor.createInputRow): Make sure the inputs are type="text" so that CSS is able to distinguish them from sliders.

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

12:48 PM Changeset in webkit [265698] by Alan Coon
  • 2 edits in branches/safari-610.1-branch/Source/WebCore

Cherry-pick r265581. rdar://problem/67083937

First search on Google Maps shows black bar at top of map and blank strips through the middle
https://bugs.webkit.org/show_bug.cgi?id=214945
<rdar://problem/63374422>

Reviewed by Tim Horton.

On iOS with an attached keyboard, Google Maps appears to calculate
the viewport it will use for map display at a time when the Unified
Control Bar (keyboard accessories) is visible. If it then changes the
map location via the user submitting a search form, the resulting map
will be using the incorrect viewport as the control bar has disappeared.
This causes parts of the map display to get the wrong stencil masks, leaving
blank strips. This fixes itself as soon as you force the map to recalculate
its viewport (e.g. by rotating the device).

Rather than have Google Maps update its code to detect these viewport changes,
we're adding a Quirk to not use the control bar in these calculations.

  • page/Quirks.cpp: (WebCore::Quirks::shouldAvoidResizingWhenInputViewBoundsChange const): Return true for "*.google.com/maps/".

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

12:48 PM Changeset in webkit [265697] by Alan Coon
  • 4 edits in branches/safari-610.1-branch

Cherry-pick r265573. rdar://problem/67083969

Fail preconnect requests to deprecated TLS instead of allowing application to show warning
https://bugs.webkit.org/show_bug.cgi?id=215424
<rdar://problem/66784116>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-08-12
Reviewed by Geoffrey Garen.

Source/WebKit:

Preconnecting is just a suggestion, so if the content really wants to load something from the deprecated TLS server,
we will see the warning when the load actually happens.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm: (-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/TLSDeprecation.mm: (TestWebKitAPI::TEST): (TestWebKitAPI::webViewWithNavigationDelegate):

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

12:48 PM Changeset in webkit [265696] by Alan Coon
  • 2 edits in branches/safari-610.1-branch/Source/WebKit

Cherry-pick r265560. rdar://problem/67084214

WebPageProxy::registerEditCommand should be robust against invalid undo step identifiers
https://bugs.webkit.org/show_bug.cgi?id=215412
<rdar://problem/66296820>

Reviewed by Tim Horton.

Add a MESSAGE_CHECK to avoid ever creating a WebEditCommandProxy with an invalid command identifier.

  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::registerEditCommand):

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

12:48 PM Changeset in webkit [265695] by Alan Coon
  • 8 edits in branches/safari-610.1-branch

Cherry-pick r265510. rdar://problem/67084518

Deferred WKUserScripts are exponentially injected on preloaded pages with frames.
https://bugs.webkit.org/show_bug.cgi?id=215382
rdar://problem/66837802

Reviewed by Sam Weinig.

Source/WebCore:

When defering a script in a frame it was previously added to a vector per-page.
Later when notified to inject the defered scripts, the page would iterate over all
the frames and evaluate the scripts on each frame. Since this vector had all the
frame's scripts the evaluations would be multiplied by the number of frames.

Now the defered scripts are stored per-frame and the page asks each frame to
inject the defered scripts.

  • page/Frame.cpp: (WebCore::Frame::injectUserScripts): (WebCore::Frame::addUserScriptAwaitingNotification): (WebCore::Frame::injectUserScriptsAwaitingNotification):
  • page/Frame.h:
  • page/Page.cpp: (WebCore::Page::notifyToInjectUserScripts): (WebCore::Page::addUserScriptAwaitingNotification): Deleted.
  • page/Page.h:
  • page/Quirks.cpp: (WebCore::Quirks::triggerOptionalStorageAccessQuirk const):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/UserContentController.mm: (TEST):

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

12:48 PM Changeset in webkit [265694] by Alan Coon
  • 6 edits
    2 adds in branches/safari-610.1-branch

Cherry-pick r265499. rdar://problem/67084446

[AutoTableLayout] REGRESSION(r263855) Paypal email is rendered right aligned on Safari
https://bugs.webkit.org/show_bug.cgi?id=215340
<rdar://problem/66540254>

Reviewed by Simon Fraser.

Source/WebCore:

Prior to r263855, these zero-length, non-empty columns had the preferred width value of 1px and the available space got distributed based on this made-up 1px value.
In this patch, we distribute the available horizontal space evenly among these zero-length, 'width: auto' columns.

Test: fast/table/zero-length-non-empty-columns-with-auto-width.html

  • rendering/AutoTableLayout.cpp: (WebCore::AutoTableLayout::layout):

LayoutTests:

  • fast/table/zero-length-non-empty-columns-with-auto-width-expected.html: Added.
  • fast/table/zero-length-non-empty-columns-with-auto-width.html: Added.
  • platform/mac/fast/table/empty-cells-expected.txt: progression

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

12:48 PM Changeset in webkit [265693] by Alan Coon
  • 7 edits in branches/safari-610.1-branch

Cherry-pick r265420. rdar://problem/67083903

REGRESSION (r260831): Web process crashes under Editor::setComposition() after navigating with marked text
https://bugs.webkit.org/show_bug.cgi?id=215315
<rdar://problem/64740092>

Reviewed by Darin Adler.

Source/WebCore:

To address a variety of crashes due to frames changing (or otherwise losing) their document while executing
editing commands, r260831 refactored the Editor class such that it extends the functionality of the Document
class, rather than the Frame class. In nearly all scenarios, this either leads to no behavior change or prevents
null pointer crashes, since a document is almost always attached to a frame when applying any editing commands.

However, there is one scenario where a document that has not yet been attached to its frame (and therefore does
not have a browsing context) will cause a null deref when trying to confirm an existing IME composition. The
logic added in <https://trac.webkit.org/r150291> will try and confirm any existing composition range on a
document right before committing provisional navigation. In the case where we are navigating back to a
previously visited page, m_frame's document in FrameLoader::commitProvisionalLoad() will not be attached
until the cached page's mainframe is opened underneath CachedPage::restore(). Since the call to
Editor::confirmComposition() currently happens before this step, we end up crashing while attempting to create
a UserTypingGestureIndicator. Note that even if we avoid this with a null check, we'll still end up crashing
shortly thereafter, underneath Editor::insertTextForConfirmedComposition. And even if this second crash is
avoided with another null check, we'll just end up with some version of webkit.org/b/59121, where the
composition range is present after navigation, but is out of sync with platform UI.

To fix the crash (and also not bring back bug #59121), we refactor this composition confirmation logic so that
it lives in Editor, and is also robust against the case where the document is not attached to a frame; we then
invoke this call after we're done committing the provisional load, so that any frame that is not yet attached
before commiting the load still has a chance to confirm its composition.

Test: WKWebViewMacEditingTests.ProcessSwapAfterSettingMarkedText

  • editing/Editor.cpp: (WebCore::Editor::confirmCompositionAndNotifyClient):

Move functionality from willTransitionToCommitted to confirmCompositionAndNotifyClient, a helper method that
will bail if the document is not attached, but otherwise confirm the active composition (if it exists).

  • editing/Editor.h:
  • loader/FrameLoader.cpp: (WebCore::FrameLoader::commitProvisionalLoad):

Add a call to confirm the editor's current composition after we're done committing the load. Note that in the
case where we had a composition before committing the load, we'll end up confirming the composition earlier (in
the first call site), rather than confirming after the load has been committed. This means that this second call
will be a no-op, due to the editor not having any composition.

(WebCore::FrameLoader::willTransitionToCommitted): Deleted.

  • loader/FrameLoader.h:

Tools:

Add a new API that exercises the crash by:

  • Enabling PSON.
  • Navigating to page A and inserting some marked text.
  • Navigating to page B with a process swap (without confirming the marked text).
  • Navigating back to page A, and verifying that the previoulsy marked text is now committed.
  • TestWebKitAPI/Tests/mac/WKWebViewMacEditingTests.mm:

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

12:13 PM Changeset in webkit [265692] by Caio Lima
  • 2 edits in trunk/Source/JavaScriptCore

[ARMv7][JSC] Conservative GC is not considering r7 as a root
https://bugs.webkit.org/show_bug.cgi?id=215512

Reviewed by Yusuke Suzuki.

Since r7 is a callee-saved register on ARMv7
we need to consider it as a conservative root.

See the statement "A subroutine must preserve
the contents of the registers r4-r8, r10, r11
and SP (and r9 in PCS variants that designate
r9 as v6) form page 15 of
https://developer.arm.com/documentation/ihi0042/f/.

  • heap/RegisterState.h:
11:58 AM Changeset in webkit [265691] by Ryan Haddad
  • 3 edits in trunk/Tools

Move WebGL bot from debug to release builds
https://bugs.webkit.org/show_bug.cgi?id=215509

Rubber-stamped by Darin Adler.

Make the switch to release builds since many of the tests are already slow, and running in debug configuration makes them even slower

  • BuildSlaveSupport/build.webkit.org-config/config.json:
  • BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:
11:57 AM Changeset in webkit [265690] by Peng Liu
  • 2 edits in trunk/Source/WebCore

The PiP button on the fullscreen youtube player disappears after starting a new video in a playlist
https://bugs.webkit.org/show_bug.cgi?id=215488

Reviewed by Eric Carlson.

When a fullscreen video player (e.g., YouTube.com) completes the current video and starts
the next one in a playlist, it may reuse the video element, so m_mediaElement of the
PlaybackSessionModelMediaElement instance won't change. However, the video element
will exit video fullscreen standby and then enter video fullscreen standby. Those
transitions are invisible to users. But the corresponding PlaybackSessionModelContext
instance will be destroyed and a new instance will be created.

By default, the member variable m_pictureInPictureSupported of the PlaybackSessionModelContext
instance is "false". After a new video starts to play, the function
PlaybackSessionModelMediaElement::setMediaElement() won't ask the PlaybackSessionManager
to send a PlaybackSessionManagerProxy::PictureInPictureSupportedChanged message
(because we don't change m_mediaElement) to notify the PlaybackSessionModelContext
instance in the UI process that m_pictureInPictureSupported should be "true". Therefore,
the PlaybackSessionModelContext instance will tell the WKFullScreenViewController instance
that picture-in-picture is not supported, which in turn will hide the picture-in-picture button.

With this patch, PlaybackSessionModelMediaElement::setMediaElement() will ask the
PlaybackSessionManager instance to send an IPC message if m_mediaElement is not nullptr
even we don't change the media element. So that the PlaybackSessionModelContext instance
in the UI process will always have a consistent state as the PlaybackSessionModelMediaElement
instance in the Web process.

  • platform/cocoa/PlaybackSessionModelMediaElement.mm:

(WebCore::PlaybackSessionModelMediaElement::setMediaElement):

11:56 AM Changeset in webkit [265689] by commit-queue@webkit.org
  • 52 edits
    5 adds in trunk

Introduce ConstantSourceNode Interface
https://bugs.webkit.org/show_bug.cgi?id=215377

Patch by Clark Wang <clark_wang@apple.com> on 2020-08-14
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Re-baselined existing tests. Some fail further, mainly due to lack of support for automation rate in AudioParam.

  • web-platform-tests/webaudio/idlharness.https.window-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-minimum-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/adding-events-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-close-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/automation-rate-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/cancel-scheduled-values-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/event-insertion-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-audiobuffersource-connections-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-audioworklet-connections.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-audioworklet.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-connections-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-constant-source-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-delay-connections-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-dynamics-compressor-connections-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-oscillator-connections-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-panner-connections-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-panner-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/retrospective-exponentialRampToValueAtTime-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/retrospective-linearRampToValueAtTime-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/retrospective-setTargetAtTime-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/retrospective-setValueAtTime-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/retrospective-setValueCurveAtTime-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/set-target-conv-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-audioparam.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletprocessor-process-frozen-array.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-constantsourcenode-interface/constant-source-basic-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-constantsourcenode-interface/constant-source-onended-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-constantsourcenode-interface/constant-source-output-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-constantsourcenode-interface/ctor-constantsource-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-constantsourcenode-interface/test-constantsourcenode-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/realtime-conv-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/delaynode-channel-count-1-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/maxdelay-rounding-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-azimuth-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-stereopanner-interface/no-dezippering-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-waveshapernode-interface/silent-inputs-expected.txt:

Source/WebCore:

Introduced new ConstantSourceNode interface according to spec:
https://www.w3.org/TR/webaudio/#ConstantSourceNode and with
guidance from Chromium implementation:
https://source.chromium.org/chromium/chromium/src/+/master:third_party/blink/renderer/modules/webaudio/constant_source_node.cc.

Re-baselined existing tests. Some fail further, mainly due to lack of support for automation rate in AudioParam.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/webaudio/AudioNode.cpp:

(WebCore::convertEnumerationToString):

  • Modules/webaudio/AudioNode.h:
  • Modules/webaudio/BaseAudioContext.cpp:

(WebCore::BaseAudioContext::createConstantSource):

  • Modules/webaudio/BaseAudioContext.h:
  • Modules/webaudio/BaseAudioContext.idl:
  • Modules/webaudio/ConstantSourceNode.cpp: Added.

(WebCore::ConstantSourceNode::create):
(WebCore::ConstantSourceNode::ConstantSourceNode):
(WebCore::ConstantSourceNode::~ConstantSourceNode):
(WebCore::ConstantSourceNode::process):
(WebCore::ConstantSourceNode::propagatesSilence const):

  • Modules/webaudio/ConstantSourceNode.h: Added.
  • Modules/webaudio/ConstantSourceNode.idl: Added.
  • Modules/webaudio/ConstantSourceOptions.h: Added.
  • Modules/webaudio/ConstantSourceOptions.idl: Added.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:

LayoutTests:

Added flaky tests.

11:56 AM Changeset in webkit [265688] by wenson_hsieh@apple.com
  • 7 edits in trunk

Unreviewed, revert r265213 and r265441
https://bugs.webkit.org/show_bug.cgi?id=215089

Source/WebKit:

This logging is no longer needed, since the test seems to be passing reliably in internal automation now.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView selectAllForWebView:]):

Tools:

  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptControllerIOS::keyDown):

LayoutTests:

  • editing/selection/ios/select-all-non-editable-text-using-keyboard-expected.txt:
  • editing/selection/ios/select-all-non-editable-text-using-keyboard.html:
11:55 AM Changeset in webkit [265687] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Simplify FrameLoader::open
https://bugs.webkit.org/show_bug.cgi?id=215505

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

There is no need to set m_isComplete to false since the started() call
a few lines below does the same thing.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::open):

11:53 AM Changeset in webkit [265686] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Simplify HTMLFrameElementBase::openURL
https://bugs.webkit.org/show_bug.cgi?id=215504

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

The expression effectively uses the indirection document -> frame -> document, but
we can just use the document directly.

  • html/HTMLFrameElementBase.cpp:

(WebCore::HTMLFrameElementBase::openURL):

11:42 AM Changeset in webkit [265685] by keith_miller@apple.com
  • 8 edits
    1 add in trunk

OSRAvailabilityAnalysis shouldn't mark GetStack nodes directly as valid places for recovery
https://bugs.webkit.org/show_bug.cgi?id=215434

Reviewed by Saam Barati.

JSTests:

  • stress/for-of-post-sinking-osr-availability.js: Added.

(foo):

Source/JavaScriptCore:

It's somewhat subtle why we cannot use the node for the GetStack
itself in the Availability's node field. The reason is that if we
did we would need to make any phase that converts nodes to
GetStack availability aware. For instance, a place where this
could come up is in constant folding if you had a graph like the
following, which could arise from PutStack sinking:

BB#1:
@1: NewObject()
@2: MovHint(@1, inline-arg1)
@3: Jump(#2, #3)

BB#2:
@4: PutStack(@1, inline-arg1)
@5: GetMyArgumentByVal(inline-arg1)
@6: Jump(#3)

BB#3:
@7: InvalidationPoint()

If constant folding converts @5 to a GetStack then at @7
inline-arg1 won't be available since at the end of BB#1 our
availability is (@1, DeadFlush) and (@5,
FlushedAt(inline-arg1)). When that gets merged at BB#3 then the
availability will be (nullptr, ConflictingFlush).

This patch also makes validation check that availability is sane
at each pontential exit site if
Options::validateFTLOSRExitLiveness() is set. Since this is
actually a Phase we also need to make sure that we don't infinite
loop, so there is now a m_isValidating field on m_graph. The
validateOSRExitAvailability phase is also careful not to modify
the Graph, in order to avoid masking bugs when validating.

In a followup patch I intend to look into why MovHint elimination
will convert:

@2: MovHint(@0, loc1, bc#1, ExitInvalid)
@3: KillStack(loc1, bc#2, ExitValid)
@4: MovHint(@1 loc1, bc#2, ExitInvalid)

into

@2: ZombieHint(@0, loc1, bc#1, ExitInvalid)
@3: KillStack(loc1, bc#2, ExitValid)
@4: MovHint(@1 loc1, bc#2, ExitInvalid)

when loc1 is live in the bytecode at bc#2. But for now, the
validation rule works around this by only checking when mayExit
and the nodes exitOK agree exiting is possible.

  • dfg/DFGGraph.h:
  • dfg/DFGOSRAvailabilityAnalysisPhase.cpp:

(JSC::DFG::OSRAvailabilityAnalysisPhase::OSRAvailabilityAnalysisPhase):
(JSC::DFG::OSRAvailabilityAnalysisPhase::run):
(JSC::DFG::performOSRAvailabilityAnalysis):
(JSC::DFG::validateOSRExitAvailability):
(JSC::DFG::LocalOSRAvailabilityCalculator::executeNode):

  • dfg/DFGOSRAvailabilityAnalysisPhase.h:
  • dfg/DFGPhase.h:

(JSC::DFG::runPhase):

  • dfg/DFGValidate.cpp:
11:39 AM Changeset in webkit [265684] by Chris Dumez
  • 8 edits in trunk

Make sure OfflineAudioContext::startOfflineRendering() does lazy initialization
https://bugs.webkit.org/show_bug.cgi?id=215481

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

Rebaseline WPT tests now that more checks are passing.

  • web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/active-processing.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-channel-count.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/suspended-context-messageport.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-offlineaudiocontext-interface/current-time-block-size-expected.txt:

Source/WebCore:

Make sure OfflineAudioContext::startOfflineRendering() does lazy initialization before
actually starting rendering. If lazy initialization has not happened yet (because no
audio nodes were created for this context yet), then rendering would fail with an
InvalidStateError, due to lack on initialization.

No new tests, rebaselined existing tests.

  • Modules/webaudio/OfflineAudioContext.cpp:

(WebCore::OfflineAudioContext::startOfflineRendering):

  • Modules/webaudio/OfflineAudioDestinationNode.cpp:

(WebCore::OfflineAudioDestinationNode::offlineRender):

11:27 AM Changeset in webkit [265683] by Chris Dumez
  • 15 edits in trunk

Fix bad check in AudioBufferSourceNode::renderFromBuffer()
https://bugs.webkit.org/show_bug.cgi?id=215513

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline WPT tests now that more checks are passing.

  • web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-gain-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-one-sample-loop-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode-connect-method-chaining-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode-disconnect-audioparam-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-method-chaining-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-setValueCurve-exceptions-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/setTargetAtTime-after-event-within-block-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/setValueAtTime-within-block-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-tail-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-disconnect-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-automation-basic-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-automation-position-expected.txt:

Source/WebCore:

Fix bad check in AudioBufferSourceNode::renderFromBuffer() that is causing us to incorrectly output silence
and failing many WPT tests.

No new tests, rebaselined existing tests.

  • Modules/webaudio/AudioBufferSourceNode.cpp:

(WebCore::AudioBufferSourceNode::renderFromBuffer):

11:24 AM Changeset in webkit [265682] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: add aria-label for [>>] overflow tab picker
https://bugs.webkit.org/show_bug.cgi?id=215342
<rdar://problem/66804113>

Patch by Patrick Angle <Patrick Angle> on 2020-08-14
Reviewed by Devin Rousso.

  • UserInterface/Views/TabBar.js: Moved title for tabPickerTabBarItem to title attribute instead of the unused displayName argument

(WI.TabBar):

11:19 AM Changeset in webkit [265681] by Chris Dumez
  • 6 edits in trunk

AudioBufferSourceNode.buffer setter should throw when the buffer was already set
https://bugs.webkit.org/show_bug.cgi?id=215510

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline WPT test now that all checks are passing.

  • web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-channels-expected.txt:

Source/WebCore:

AudioBufferSourceNode.buffer setter should throw when the buffer was already set:

Note that the setter for the WebKit-prefixed AudioBufferSourceNode still does not throw,
to ensure backward-compatibility.

No new tests, rebaselined existing test.

  • Modules/webaudio/AudioBufferSourceNode.cpp:

(WebCore::AudioBufferSourceNode::setBuffer):

  • Modules/webaudio/AudioBufferSourceNode.h:

(WebCore::AudioBufferSourceNode::isWebKitAudioBufferSourceNode const):

  • Modules/webaudio/WebKitAudioBufferSourceNode.h:
10:54 AM Changeset in webkit [265680] by Hector Lopez
  • 3 edits in trunk/LayoutTests

[ macOS iOS ] imported/w3c/web-platform-tests/user-timing/measure_navigation_timing.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=215515

Unreviewed test gardening.

  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
10:49 AM Changeset in webkit [265679] by Russell Epstein
  • 4 edits
    2 moves in branches/safari-610.1-branch/Tools

Cherry-pick r265271. rdar://problem/66945210

Move poseAsClass() into the TestRunnerShared directory
https://bugs.webkit.org/show_bug.cgi?id=215147

Reviewed by Tim Horton.

Move the duplicated implementations of poseAsClass() out of WebKitTestRunner and DumpRenderTree,
and into helper files in TestRunnerShared instead.

No change in behavior.

  • DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
  • DumpRenderTree/mac/DumpRenderTree.mm: (poseAsClass): Deleted. (setPersistentUserStyleSheetLocation): Deleted.
  • TestRunnerShared/cocoa/PoseAsClass.h: Renamed from Tools/WebKitTestRunner/mac/PoseAsClass.h.
  • TestRunnerShared/cocoa/PoseAsClass.mm: Renamed from Tools/WebKitTestRunner/mac/PoseAsClass.mm. (swizzleAllMethods): (poseAsClass):
  • WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:

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

10:38 AM Changeset in webkit [265678] by wenson_hsieh@apple.com
  • 5 edits in trunk

REGRESSION (r259184): Typing -- then Return into an email moves the selection by two lines
https://bugs.webkit.org/show_bug.cgi?id=215491
<rdar://problem/66938121>

Reviewed by Darin Adler.

Source/WebCore:

When inserting a newline after text that is about to be replaced (e.g. using smart dashes, or a system-wide text
replacement), logic in Editor::markAndReplaceFor attempts to detect the fact that we've just inserted a new
paragraph (setting adjustSelectionForParagraphBoundaries to true), and subsequently causes us to advance
the selection forward by 1 character after we're done handling the text replacement.

This logic appears to have been added to deal with the fact that prior to r259184, TextIterator::subrange()
with a range that ended in a line break would not include the line break as a part of the resulting subrange.
For instance, suppose we're inserting a newline after "--", text replacement has just run and replaced the
two hyphens with a single dash (—), and there is a newline after the dash. The extended paragraph range consists
of the dash, followed by the line break after it ("—\n"), with a selectionOffset of 2. The following code:

auto selectionRange = extendedParagraph.subrange({ 0, selectionOffset });

...would compute a selectionRange that encompasses only the "—", despite a selection offset of 2, causing the
following code to only move the selection to the end of the "—":

m_document.selection().moveTo(createLegacyEditingPosition(selectionRange.end), DOWNSTREAM);

This requires the logic in the adjustSelectionForParagraphBoundaries to subsequently move the selection to the
line break, as the user would expect. However, after the changes in r259184, the subrange now (correctly)
returns a range that starts before the "—" and ends at the following line break. However, this also means that
the subsequent adjustment logic will cause us to advance unnecessarily!

To fix this, we remove the adjustSelectionForParagraphBoundaries case altogether, since its only (apparent)
purpose is to work around the fact that TextIterator::subrange didn't include trailing line breaks before
r259184.

Test: editing/spelling/text-replacement-after-typing-to-word.html

  • editing/Editor.cpp:

(WebCore::Editor::markAndReplaceFor):

LayoutTests:

Tweaks an existing layout test so that it additionally exercises this bug. The erroneous code was already hit
during this test, but it currently does not result in any behavioral difference because after inserting the
newline, the caret is already at the end of the editable root; this means that the redundant call to advance
the selection forward by 1 character ends up being a no-op, and the test passes.

To adjust the test so that it fails, we simply start the root editable container off with two lines instead of
just one, such that the test (without this fix) will cause the selection to end up at the very end of the root
editable container instead of the first line after the "?".

To check that the selection ends up in the right place, we also use dump-as-markup.js to dump the caret
position after inserting the newline.

  • editing/spelling/text-replacement-after-typing-to-word-expected.txt:
  • editing/spelling/text-replacement-after-typing-to-word.html:
10:34 AM Changeset in webkit [265677] by commit-queue@webkit.org
  • 7 edits in trunk

@font-face font-weight descriptor should reject bolder and lighter
https://bugs.webkit.org/show_bug.cgi?id=215359

Patch by Takeshi Kurosawa <taken.spc@gmail.com> on 2020-08-14
Reviewed by Darin Adler.

Both bolder and lighter are not allowed in font-weight descriptor. This patch splits
font-weight descriptor parsers from font-weight property parsers.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-fonts/variations/at-font-face-descriptors-expected.txt:

Source/WebCore:

Tested by existing (formerly failing) test: web-platform-tests/css/css-fonts/variations/at-font-face-descriptors.html:

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeFontWeightAbsoluteKeywordValue):
(WebCore::consumeFontWeightAbsoluteRange):
(WebCore::consumeFontWeightAbsolute):
(WebCore::CSSPropertyParser::parseFontFaceDescriptor):
(WebCore::consumeFontWeightRange): Deleted.

LayoutTests:

  • fast/text/font-face-javascript-expected.txt:
  • fast/text/font-face-javascript.html:
10:26 AM Changeset in webkit [265676] by youenn@apple.com
  • 13 edits in trunk

WritableStreamDefaultWriterEnsureReadyPromiseRejected should create a new readPromise if the current readyPromise is not pending
https://bugs.webkit.org/show_bug.cgi?id=215500

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

  • web-platform-tests/streams/writable-streams/aborting.any-expected.txt:
  • web-platform-tests/streams/writable-streams/aborting.any.worker-expected.txt:
  • web-platform-tests/streams/writable-streams/bad-underlying-sinks.any-expected.txt:
  • web-platform-tests/streams/writable-streams/bad-underlying-sinks.any.worker-expected.txt:
  • web-platform-tests/streams/writable-streams/close.any-expected.txt:
  • web-platform-tests/streams/writable-streams/close.any.worker-expected.txt:
  • web-platform-tests/streams/writable-streams/general.any-expected.txt:
  • web-platform-tests/streams/writable-streams/general.any.worker-expected.txt:
  • web-platform-tests/streams/writable-streams/reentrant-strategy.any-expected.txt:
  • web-platform-tests/streams/writable-streams/reentrant-strategy.any.worker-expected.txt:

Source/WebCore:

Create new promise if current is not pending.
Also mark it as handled so that it does not end up call onunhandledrejection.
Covered by rebased tests.

  • Modules/streams/WritableStreamInternals.js:

(writableStreamDefaultWriterEnsureClosedPromiseRejected):

10:22 AM Changeset in webkit [265675] by commit-queue@webkit.org
  • 9 edits in trunk/Source/WebInspectorUI

REGRESSION (r265224): Web Inspector: LOCALIZED STRING NOT FOUND next to the Image checkbox in the Sources prefs panel
https://bugs.webkit.org/show_bug.cgi?id=215387
<rdar://problem/66855263>

Patch by Patrick Angle <Patrick Angle> on 2020-08-14
Reviewed by Devin Rousso.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/LoadLocalizedStrings.js:

(WI.repeatedUIString.showTransparencyGridTooltip):

  • UserInterface/Views/CanvasContentView.js:

(WI.CanvasContentView):

  • UserInterface/Views/GraphicsOverviewContentView.js:

(WI.GraphicsOverviewContentView):

  • UserInterface/Views/ImageResourceContentView.js:
  • UserInterface/Views/RecordingContentView.js:

(WI.RecordingContentView):

  • UserInterface/Views/ResourceCollectionContentView.js:

(WI.ResourceCollectionContentView):

  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createSourcesSettingsView):

9:47 AM Changeset in webkit [265674] by Karl Rackler
  • 1 edit
    1 delete in trunk/LayoutTests

rdar://66995964 (REGRESSION (r265358): [ Win10 wk1 ] animations/steps-transform-rendering-updates.html is a constant failure (215454))
Rebaseline Test - Remore html file.

Unreviewed test gardening.

  • platform/wincairo/animations/steps-transform-rendering-updates.html: Removed.
9:39 AM Changeset in webkit [265673] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ macOS ] imported/w3c/web-platform-tests/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events-onerror.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=215506

Unreviewed test gardening.

  • platform/mac/TestExpectations:
9:33 AM Changeset in webkit [265672] by Lauro Moura
  • 5 edits in trunk/LayoutTests

[WPE] Gardening

Unreviewed test gardening.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
  • platform/wpe/fast/text/basic/013-expected.txt: Rebaselined.
8:33 AM Changeset in webkit [265671] by Karl Rackler
  • 1 edit
    2 adds in trunk/LayoutTests

rdar://66995964 (REGRESSION (r265358): [ Win10 wk1 ] animations/steps-transform-rendering-updates.html is a constant failure (215454))
Rebaseline Test - Remore test expectation.

Unreviewed test gardening.

  • platform/wincairo/animations/steps-transform-rendering-updates-expected.txt: Added.
  • platform/wincairo/animations/steps-transform-rendering-updates.html: Added.
8:27 AM Changeset in webkit [265670] by Karl Rackler
  • 2 edits in trunk/LayoutTests

rdar://66995964 (REGRESSION (r265358): [ Win10 wk1 ] animations/steps-transform-rendering-updates.html is a constant failure (215454))
Rebaseline Test - Remore test expectation.

Unreviewed test gardening.

  • platform/wincairo/TestExpectations:
3:59 AM Changeset in webkit [265669] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.29.91

WebKitGTK 2.29.91

3:58 AM Changeset in webkit [265668] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.30

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.29.91 release

.:

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

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.29.91.
3:58 AM Changeset in webkit [265667] by Carlos Garcia Campos
  • 5 edits
    2 deletes in releases/WebKitGTK/webkit-2.30/Source/WebCore

Revert r265658 - Merge r265630 - REGRESSION(r254506): [Freetype] Spektra variable font does not work properly
https://bugs.webkit.org/show_bug.cgi?id=215214
<rdar://problem/66984524>

Reviewed by Adrian Perez de Castro.

This regressed in r254506, when a font smoothing mode is passed to drawGlyphsToContext() a new cairo font
options is set, using the default font options and changing the antialiasing. This means the font options from
the font (the ones containing the variation settings) set in the context by cairo_set_scaled_font() are
lost. We should copy the scaled font options instead, then set the antialiasing and apply them.

  • platform/graphics/cairo/CairoOperations.cpp:

(WebCore::Cairo::drawGlyphsToContext): Use cairo_scaled_font_get_font_options() instead of getDefaultCairoFontOptions().

3:08 AM Changeset in webkit [265666] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

[Flatpak SK] Enable GNOME keyring support in subversion
https://bugs.webkit.org/show_bug.cgi?id=215498

Patch by Philippe Normand <pnormand@igalia.com> on 2020-08-14
Reviewed by Sergio Villar Senin.

  • buildstream/elements/sdk/subversion.bst: Enable GNOME Keyring support, which pulls into libsecret.
  • flatpak/flatpakutils.py:

(WebkitFlatpak.run_in_sandbox): Allow session dbus access to the host secret service.

1:24 AM Changeset in webkit [265665] by svillar@igalia.com
  • 12 edits
    2 adds in trunk

[WebXR] Implement WebXRSession::updateRenderState()
https://bugs.webkit.org/show_bug.cgi?id=213555

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

New expectations.

  • web-platform-tests/webxr/render_state_update.https-expected.txt: Added.
  • web-platform-tests/webxr/render_state_vertical_fov_immersive.https-expected.txt: Added.

Source/WebCore:

Added an implementation which matches the current specs. The updateRenderState() is specially useful to set
the base layer in the session where WebXR contents would be rendered. Authors would normally do:

glCanvas.getContext("webgl").makeXRCompatible().then(() => {

xrSession.updateRenderState({ baseLayer: new XRWebGLLayer(xrSession, gl) });

});

The XRRenderStateInit has also been updated to the latest version of specs.

  • Modules/webxr/WebXRRenderState.cpp:

(WebCore::WebXRRenderState::WebXRRenderState):
(WebCore::WebXRRenderState::depthNear const): Inlined.
(WebCore::WebXRRenderState::depthFar const): Ditto.
(WebCore::WebXRRenderState::inlineVerticalFieldOfView const): Ditto.
(WebCore::WebXRRenderState::baseLayer const): Ditto.

  • Modules/webxr/WebXRRenderState.h:

(WebCore::WebXRRenderState::depthNear const): Inlined.
(WebCore::WebXRRenderState::setDepthNear): Ditto.
(WebCore::WebXRRenderState::depthFar const): Ditto.
(WebCore::WebXRRenderState::setDepthFar): Ditto.
(WebCore::WebXRRenderState::inlineVerticalFieldOfView const): Added.
(WebCore::WebXRRenderState::setInlineVerticalFieldOfView): Ditto.
(WebCore::WebXRRenderState::baseLayer const): Ditto.
(WebCore::WebXRRenderState::setBaseLayer): Ditto.

  • Modules/webxr/WebXRSession.cpp:

(WebCore::isImmersive):
(WebCore::WebXRSession::updateRenderState): Implemented.
(WebCore::WebXRSession::referenceSpaceIsSupported const):

  • Modules/webxr/WebXRSession.h: updateRenderState may throw exception.
  • Modules/webxr/WebXRSession.idl: Ditto.
  • Modules/webxr/WebXRWebGLLayer.h:

(WebCore::WebXRWebGLLayer::session): Added.

  • Modules/webxr/XRRenderStateInit.h: Added layers and made many attributes optional.
  • Modules/webxr/XRRenderStateInit.idl: Ditto.

LayoutTests:

  • platform/wpe/TestExpectations: Added a couple of tests that pass now.
1:17 AM Changeset in webkit [265664] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.29.90

WebKitGTK 2.29.90

1:15 AM Changeset in webkit [265663] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.30

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.29.90 release

.:

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

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.29.90.

Aug 13, 2020:

11:39 PM Changeset in webkit [265662] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.30/Source/WebKit

Merge r265650 - [GTK4] Notify the web process on drag leave
https://bugs.webkit.org/show_bug.cgi?id=215373

Reviewed by Adrian Perez de Castro.

We missed this when implemented drag and drop support for GTK4.

  • UIProcess/API/gtk/DropTargetGtk4.cpp:

(WebKit::DropTarget::leave): Call dragExited() and resetCurrentDragInformation() on WebPageProxy.

11:39 PM Changeset in webkit [265661] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.30/Source/WebKit

Merge r265649 - [GTK] Do not accept drag operations when the matched target list is empty
https://bugs.webkit.org/show_bug.cgi?id=215372

Reviewed by Adrian Perez de Castro.

Do not initialize m_selectionData if we don't have valid targets.

  • UIProcess/API/gtk/DropTargetGtk3.cpp:

(WebKit::DropTarget::accept):
(WebKit::DropTarget::leaveTimerFired):

11:39 PM Changeset in webkit [265660] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.30/Source/WebCore

Merge r265648 - REGRESSION(r254506): [Freetype] Spektra variable font does not work properly
https://bugs.webkit.org/show_bug.cgi?id=215214
<rdar://problem/66984524>

Reviewed by Adrian Perez de Castro.

This regressed in r254506, when a font smoothing mode is passed to drawGlyphsToContext() a new cairo font
options is set, using the default font options and changing the antialiasing. This means the font options from
the font (the ones containing the variation settings) set in the context by cairo_set_scaled_font() are
lost. We should copy the scaled font options instead, then set the antialiasing and apply them.

  • platform/graphics/cairo/CairoOperations.cpp:

(WebCore::Cairo::drawGlyphsToContext): Use cairo_scaled_font_get_font_options() instead of getDefaultCairoFontOptions().

11:39 PM Changeset in webkit [265659] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.30

Merge r265647 - Crash in WebCore::StyledMarkupAccumulator::traverseNodesForSerialization
https://bugs.webkit.org/show_bug.cgi?id=199224

Reviewed by Michael Catanzaro.

Source/WebCore:

The crash happens in StyledMarkupAccumulator::traverseNodesForSerialization() when we can't enter the node and
nextSkippingChildren() returns nullptr.

Test: editing/pasteboard/copy-across-shadow-boundaries-crash.html

  • editing/markup.cpp:

(WebCore::StyledMarkupAccumulator::traverseNodesForSerialization): Set next to pastEnd if nextSkippingChildren()
returns nullptr.

LayoutTests:

  • editing/pasteboard/copy-across-shadow-boundaries-crash-expected.txt: Added.
  • editing/pasteboard/copy-across-shadow-boundaries-crash.html: Added.
11:39 PM Changeset in webkit [265658] by Carlos Garcia Campos
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.30/Source/WebCore

Merge r265630 - Add RenderTreeMutationDisallowedScope to track intrusive render tree mutations
https://bugs.webkit.org/show_bug.cgi?id=215463
<rdar://problem/67012831>

Reviewed by Simon Fraser.

RenderLayer::enclosingScrollableLayer should not mutate the render tree accidentally.
This is related to <rdar://problem/64739768>.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • rendering/RenderTreeMutationDisallowedScope.cpp: Added.
  • rendering/RenderTreeMutationDisallowedScope.h: Added.

(WebCore::RenderTreeMutationDisallowedScope::RenderTreeMutationDisallowedScope):
(WebCore::RenderTreeMutationDisallowedScope::~RenderTreeMutationDisallowedScope):
(WebCore::RenderTreeMutationDisallowedScope::isMutationAllowed):

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::destroy):

11:39 PM Changeset in webkit [265657] by Carlos Garcia Campos
  • 6 edits
    3 adds in releases/WebKitGTK/webkit-2.30

Merge r265603 - Font loads quickly followed by navigations may fail indefinitely
https://bugs.webkit.org/show_bug.cgi?id=215435
<rdar://problem/65560550>

Reviewed by Darin Adler.

Source/WebCore:

Font loads are coalesced using a zero-delay timer. However, that zero-delay timer
can fire while the page is in the middle of a navigation, which will cause the font
loads to fail. Then, the second page can request those same fonts, which are marked
as failed, and as such will never actually load/use the desired web font.

This patch just stops the zero-delay timer during navigations, and resumes it
when resuming the document. This means:

  1. The second page in the above story will not see that the font has failed, or

even started, and will then re-request the font and load it successfully

  1. If the user goes "back" to the previous page, the zero-delay timer is restarted,

the CachedFont realizes it's already succeeded, and the previous page is rendered
as expected.

Test: fast/loader/font-load-timer.html

  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::suspendFontLoadingTimer):
(WebCore::CSSFontSelector::restartFontLoadingTimer):

  • css/CSSFontSelector.h:
  • dom/Document.cpp:

(WebCore::Document::resume):

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::stopLoading):

LayoutTests:

1) The page has some content that has “font-family: WebFont” but there are no @font-face blocks on the page
2) In script, after the page has loaded, add an @font-face rule to the page with “font-family: WebFont” and some valid font URL
3) Synchronously, within the same turn of the run loop, trigger a synchronous layout of the element (using offsetWidth or something). This will add the font to the 0-delay time work list.
4) Synchronously, within the same turn of the run loop, navigate to a second page that doesn’t use the web font.
5) The second page waits some small-but-positive amount of time. This will cause the 0-delay timer to fire, but because the page is in the middle of navigating, the font load should fail.
6) The second page adds the same @font-face rule to itself using script. This should pull the same (failed) CachedResource object out of the memory cache.
7) Use the CSS Font Loading API to wait for the font load to complete
8) Make sure that the font is used on the second page (as a reference test). Today, the second page’s font load will fail because it pulled the failed font out of the memory cache. The test makes sure the second page’s font load succeeds.

  • fast/loader/font-load-timer-expected.html: Added.
  • fast/loader/font-load-timer.html: Added.
  • fast/loader/resources/font-load-timer-navigation-destination.html: Added.
11:39 PM Changeset in webkit [265656] by Carlos Garcia Campos
  • 6 edits
    22 deletes in releases/WebKitGTK/webkit-2.30

Merge r265599 - Highpass Biquads use old formulas
https://bugs.webkit.org/show_bug.cgi?id=181191

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

*
web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-highpass-expected.txt:
Rebaselined

Source/WebCore:

Like r265517, but for the highpass filter.

Spec: https://www.w3.org/TR/webaudio/#dom-biquadfiltertype-highpass

Covered by existing tests

  • platform/audio/Biquad.cpp:

(WebCore::Biquad::setHighpassParams):

LayoutTests:

Gardening r265517 (lowpass) showed our test failing for GStreamer due
to a different threshold than used by the imported WPT biquad tests.

As they test the same functionality, remove the old webaudio/biquad
tests and keep using the imported WPT ones with the detailed
thresholds.

  • platform/glib/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-highpass-expected.txt: Removed.
  • platform/mac-wk2/TestExpectations: Removed expectation regarding

deleted file.

  • webaudio/biquad-allpass-expected.txt: Removed.
  • webaudio/biquad-allpass.html: Removed.
  • webaudio/biquad-bandpass-expected.txt: Removed.
  • webaudio/biquad-bandpass.html: Removed.
  • webaudio/biquad-getFrequencyResponse-expected.txt: Removed.
  • webaudio/biquad-getFrequencyResponse.html: Removed.
  • webaudio/biquad-highpass-expected.txt: Removed.
  • webaudio/biquad-highpass.html: Removed.
  • webaudio/biquad-highshelf-expected.txt: Removed.
  • webaudio/biquad-highshelf.html: Removed.
  • webaudio/biquad-lowpass-expected.txt: Removed.
  • webaudio/biquad-lowpass.html: Removed.
  • webaudio/biquad-lowshelf-expected.txt: Removed.
  • webaudio/biquad-lowshelf.html: Removed.
  • webaudio/biquad-notch-expected.txt: Removed.
  • webaudio/biquad-notch.html: Removed.
  • webaudio/biquad-peaking-expected.txt: Removed.
  • webaudio/biquad-peaking.html: Removed.
  • webaudio/biquadfilternode-basic-expected.txt: Removed.
  • webaudio/biquadfilternode-basic.html: Removed.
  • webaudio/resources/biquad-testing.js: Removed.
11:39 PM Changeset in webkit [265655] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.30/Source/WebInspectorUI

Merge r265597 - Web Inspector: REGRESSION(r259170): text inputs in box-shadow editor push sliders offscreen
https://bugs.webkit.org/show_bug.cgi?id=215436

Reviewed by Darin Adler.

  • UserInterface/Views/BoxShadowEditor.js:

(WI.BoxShadowEditor.createInputRow):
Make sure the inputs are type="text" so that CSS is able to distinguish them from sliders.

11:38 PM Changeset in webkit [265654] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.30/Source/WebCore

Merge r265564 - [PlayStation] Build fix for !ENABLE(ACCESSIBILITY) after r265514
https://bugs.webkit.org/show_bug.cgi?id=215426

AXObjectCache::getOrCreate(AccessibilityRole) changed names
in the above, but the short definition for
!ENABLE(ACCESSIBILITY) didn't update.

Unreviewed build fix.

  • accessibility/AXObjectCache.h: Update name to match new name
11:38 PM Changeset in webkit [265653] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.30

Merge r265561 - Broken formatting in price table on yandex.ru after translating to English
https://bugs.webkit.org/show_bug.cgi?id=215416
<rdar://problem/66354018>

Reviewed by Tim Horton.

Source/WebCore:

Extend the behavior added in r265188 so that it applies to all elements that have display: table-cell;, rather
than only table data cell elements.

  • editing/TextManipulationController.cpp:

(WebCore::isEnclosingItemBoundaryElement):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:

(TestWebKitAPI::TEST):

11:38 PM Changeset in webkit [265652] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.30/Source/WebKit

Merge r265560 - WebPageProxy::registerEditCommand should be robust against invalid undo step identifiers
https://bugs.webkit.org/show_bug.cgi?id=215412
<rdar://problem/66296820>

Reviewed by Tim Horton.

Add a MESSAGE_CHECK to avoid ever creating a WebEditCommandProxy with an invalid command identifier.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::registerEditCommand):

11:38 PM Changeset in webkit [265651] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.30/Source/WebCore

Merge r265559 - Unreviewed non-unified build fix.

No new tests needed.

  • accessibility/AccessibilityMenuListOption.cpp: Add missing inclusion of

HTMLSelectElement.h.

  • page/Quirks.h: Add mising forward declaration of HTMLVideoElement.
  • page/UndoItem.cpp: Add missing inclusion of Document.h.
11:01 PM Changeset in webkit [265650] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

[GTK4] Notify the web process on drag leave
https://bugs.webkit.org/show_bug.cgi?id=215373

Reviewed by Adrian Perez de Castro.

We missed this when implemented drag and drop support for GTK4.

  • UIProcess/API/gtk/DropTargetGtk4.cpp:

(WebKit::DropTarget::leave): Call dragExited() and resetCurrentDragInformation() on WebPageProxy.

11:00 PM Changeset in webkit [265649] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

[GTK] Do not accept drag operations when the matched target list is empty
https://bugs.webkit.org/show_bug.cgi?id=215372

Reviewed by Adrian Perez de Castro.

Do not initialize m_selectionData if we don't have valid targets.

  • UIProcess/API/gtk/DropTargetGtk3.cpp:

(WebKit::DropTarget::accept):
(WebKit::DropTarget::leaveTimerFired):

10:59 PM Changeset in webkit [265648] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

REGRESSION(r254506): [Freetype] Spektra variable font does not work properly
https://bugs.webkit.org/show_bug.cgi?id=215214
<rdar://problem/66984524>

Reviewed by Adrian Perez de Castro.

This regressed in r254506, when a font smoothing mode is passed to drawGlyphsToContext() a new cairo font
options is set, using the default font options and changing the antialiasing. This means the font options from
the font (the ones containing the variation settings) set in the context by cairo_set_scaled_font() are
lost. We should copy the scaled font options instead, then set the antialiasing and apply them.

  • platform/graphics/cairo/CairoOperations.cpp:

(WebCore::Cairo::drawGlyphsToContext): Use cairo_scaled_font_get_font_options() instead of getDefaultCairoFontOptions().

10:57 PM Changeset in webkit [265647] by Carlos Garcia Campos
  • 3 edits
    2 adds in trunk

Crash in WebCore::StyledMarkupAccumulator::traverseNodesForSerialization
https://bugs.webkit.org/show_bug.cgi?id=199224

Reviewed by Michael Catanzaro.

Source/WebCore:

The crash happens in StyledMarkupAccumulator::traverseNodesForSerialization() when we can't enter the node and
nextSkippingChildren() returns nullptr.

Test: editing/pasteboard/copy-across-shadow-boundaries-crash.html

  • editing/markup.cpp:

(WebCore::StyledMarkupAccumulator::traverseNodesForSerialization): Set next to pastEnd if nextSkippingChildren()
returns nullptr.

LayoutTests:

  • editing/pasteboard/copy-across-shadow-boundaries-crash-expected.txt: Added.
  • editing/pasteboard/copy-across-shadow-boundaries-crash.html: Added.
10:42 PM Changeset in webkit [265646] by Diego Pino Garcia
  • 1 edit
    1 add in trunk/LayoutTests

[GLIB] Unreviewed test gardening. Add baseline for css3/filters/backdrop/blur-input-bounds.html.

  • platform/glib/css3/filters/backdrop/blur-input-bounds-expected.txt: Added.
10:33 PM Changeset in webkit [265645] by Andres Gonzalez
  • 5 edits in trunk

VoiceOver not able to invoke play button on some web sites.
https://bugs.webkit.org/show_bug.cgi?id=215484
<rdar://problem/62729643>

Reviewed by Chris Fleizach.

Source/WebCore:

Test: accessibility/ios-simulator/has-touch-event-listener.html.

We were checking for the presence of listeners for touchstart and touchend
events only. Now we check for the presence of any touch-related event listener.

  • accessibility/ios/AccessibilityObjectIOS.mm:

(WebCore::AccessibilityObject::hasTouchEventListener const):

LayoutTests:

Expanded this test to check for all touch-related event listeners.

  • accessibility/ios-simulator/has-touch-event-listener-expected.txt:
  • accessibility/ios-simulator/has-touch-event-listener.html:
10:01 PM Changeset in webkit [265644] by beidson@apple.com
  • 9 edits in trunk

(WK2 only) gamepad mapping stops being reported as “standard” in new tabs.
rdar://problem/66946505 and https://bugs.webkit.org/show_bug.cgi?id=215486

Reviewed by Tim Horton.

Source/WebKit:

Covered by new API test.

Get rid of the premature optimization that was "full gamepaddata" vs "condensed gamepaddata"

In practice, the actual button and axis values are larger than the mapping and id, so
not much IPC was being saved.

  • Shared/Gamepad/GamepadData.cpp:
  • Shared/Gamepad/GamepadData.h:
  • UIProcess/Gamepad/UIGamepad.cpp:

(WebKit::UIGamepad::gamepadData const):
(WebKit::UIGamepad::condensedGamepadData const): Deleted.
(WebKit::UIGamepad::fullGamepadData const): Deleted.

  • UIProcess/Gamepad/UIGamepad.h:
  • UIProcess/Gamepad/UIGamepadProvider.cpp:

(WebKit::UIGamepadProvider::snapshotGamepads):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::gamepadConnected):

Tools:

  • TestWebKitAPI/Tests/mac/HIDGamepads.mm:
9:31 PM Changeset in webkit [265643] by Lauro Moura
  • 3 edits in trunk/LayoutTests

[GTK] Gardening

Unreviewed test gardening.

  • platform/glib/TestExpectations: Missing debug guard.
  • platform/gtk/TestExpectations:
9:11 PM Changeset in webkit [265642] by Alexey Shvayka
  • 6 edits
    1 add in trunk

Cache Structure::attributeChangeTransition()
https://bugs.webkit.org/show_bug.cgi?id=214890

Reviewed by Yusuke Suzuki.

JSTests:

  • microbenchmarks/redefine-property-previous-attributes.js: Added.

Source/JavaScriptCore:

With this change, a non-dictionary structure adds attribute-change transitions
to transition table, making redefinition to previous atttributes a fast path.

After too many transitions, the structure becomes a dictionary, firing the
transition watchpoint. Attribute-change transitions pin their property tables,
preventing forEachPropertyConcurrently() traversal.

This patch advances provided microbenchmark by ~90% and progresses
Speedometer2/EmberJS-Debug-TodoMVC by ~12% (~5% over r264573).

No behavior change.

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::getRegExpPrototypeProperty):

  • runtime/JSObjectInlines.h:

(JSC::JSObject::putDirectInternal):

  • runtime/Structure.cpp:

(JSC::Structure::materializePropertyTable):
(JSC::Structure::removeNewPropertyTransition):
(JSC::Structure::attributeChangeTransition):

  • runtime/Structure.h:
7:01 PM Changeset in webkit [265641] by Alan Coon
  • 1 copy in tags/Safari-610.1.25.1.3

Tag Safari-610.1.25.1.3.

6:56 PM Changeset in webkit [265640] by Alexey Shvayka
  • 7 edits in trunk/Source/JavaScriptCore

Rework StructureTransitionTable::Hash::Key encoding
https://bugs.webkit.org/show_bug.cgi?id=215483

Reviewed by Yusuke Suzuki.

This patch implements new encoding of StructureTransitionTable::Hash::Key
to enable storing attribute change transitions in a transition table.

Since PropertyMapEntry attributes are always uint8_t, the remaining 8 bits
are used for TransitionKind, which also accommodates non-property transitions,
removing a bit hacky toAttributes() and utilization of unused pointer bits.

This change also introduces TransitionKind::Unknown we can validate against,
preventing addition transition from being a default, which could be unsafe.

No behavior change.

  • runtime/JSObject.cpp:

(JSC::JSObject::notifyPresenceOfIndexedAccessors):
(JSC::JSObject::createInitialUndecided):
(JSC::JSObject::createInitialInt32):
(JSC::JSObject::createInitialDouble):
(JSC::JSObject::createInitialContiguous):
(JSC::JSObject::convertUndecidedToInt32):
(JSC::JSObject::convertUndecidedToDouble):
(JSC::JSObject::convertUndecidedToContiguous):
(JSC::JSObject::convertUndecidedToArrayStorage):
(JSC::JSObject::convertInt32ToDouble):
(JSC::JSObject::convertInt32ToContiguous):
(JSC::JSObject::convertInt32ToArrayStorage):
(JSC::JSObject::convertDoubleToContiguous):
(JSC::JSObject::convertDoubleToArrayStorage):
(JSC::JSObject::convertContiguousToArrayStorage):
(JSC::JSObject::convertFromCopyOnWrite):
(JSC::JSObject::switchToSlowPutArrayStorage):
(JSC::JSObject::suggestedArrayStorageTransition const):

  • runtime/JSObject.h:
  • runtime/Structure.cpp:

(JSC::StructureTransitionTable::contains const):
(JSC::StructureTransitionTable::get const):
(JSC::StructureTransitionTable::add):
(JSC::Structure::Structure):
(JSC::Structure::addPropertyTransitionToExistingStructureImpl):
(JSC::Structure::addNewPropertyTransition):
(JSC::Structure::removePropertyTransitionFromExistingStructureImpl):
(JSC::Structure::removeNewPropertyTransition):
(JSC::Structure::sealTransition):
(JSC::Structure::freezeTransition):
(JSC::Structure::preventExtensionsTransition):
(JSC::Structure::nonPropertyTransitionSlow):

  • runtime/Structure.h:
  • runtime/StructureInlines.h:

(JSC::Structure::nonPropertyTransition):

  • runtime/StructureTransitionTable.h:

(JSC::changesIndexingType):
(JSC::newIndexingType):
(JSC::preventsExtensions):
(JSC::setsDontDeleteOnAllProperties):
(JSC::setsReadOnlyOnNonAccessorProperties):
(JSC::StructureTransitionTable::Hash::Key::Key):
(JSC::StructureTransitionTable::Hash::Key::attributes const):
(JSC::StructureTransitionTable::Hash::Key::transitionKind const):
(JSC::StructureTransitionTable::Hash::hash):
(JSC::toAttributes): Deleted.
(JSC::StructureTransitionTable::Hash::Key::isAddition const): Deleted.

5:25 PM Changeset in webkit [265639] by Darin Adler
  • 5 edits
    142 adds
    11 deletes in trunk/LayoutTests

Migrate some Apple internal Mac expectations here into WebKit sources
https://bugs.webkit.org/show_bug.cgi?id=215459

Reviewed by Jonathan Bedard.

  • platform/glib/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode-disconnect-audioparam-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest-expected.txt: Removed.
  • platform/ios/fast/text/international/system-language/navigator-language/navigator-language-en-US-expected.txt: Removed.
  • platform/ios/fast/text/international/system-language/navigator-language/navigator-language-en-expected.txt: Removed.
  • platform/ios/fast/text/international/system-language/navigator-language/navigator-language-es-ES-expected.txt: Removed.
  • platform/ios/fast/text/international/system-language/navigator-language/navigator-language-es-MX-expected.txt: Removed.
  • platform/ios/fast/text/international/system-language/navigator-language/navigator-language-es-expected.txt: Removed.
  • platform/ios/fast/text/international/system-language/navigator-language/navigator-language-fr-expected.txt: Removed.
  • platform/ios/fast/text/international/system-language/navigator-language/navigator-language-hi-expected.txt: Removed.
  • platform/ios/fast/text/international/system-language/navigator-language/navigator-language-pt-BR-expected.txt: Removed.
  • platform/ios/fast/text/international/system-language/navigator-language/navigator-language-ru-expected.txt: Removed.

These expected files were identical to the ones that will be used otherwise.

  • platform/ios/TestExpectations: Removed expectations for test that have been removed.
  • platform/mac-bigsur-wk1/editing/pasteboard/drop-text-without-selection-expected.txt: Added.
  • platform/mac-bigsur-wk1/editing/selection/select-across-readonly-input-4-expected.txt: Added.
  • platform/mac-bigsur-wk1/editing/selection/select-across-readonly-input-5-expected.txt: Added.
  • platform/mac-bigsur-wk1/http/tests/cookies/js-get-and-set-http-only-cookie-expected.txt: Added.
  • platform/mac-bigsur/editing/input/reveal-caret-of-multiline-input-expected.txt: Added.
  • platform/mac-bigsur/editing/pasteboard/drop-text-without-selection-expected.txt: Added.
  • platform/mac-bigsur/editing/pasteboard/pasting-tabs-expected.txt: Added.
  • platform/mac-bigsur/editing/selection/3690703-2-expected.txt: Added.
  • platform/mac-bigsur/editing/selection/3690703-expected.txt: Added.
  • platform/mac-bigsur/editing/selection/3690719-expected.txt: Added.
  • platform/mac-bigsur/editing/selection/select-from-textfield-outwards-expected.txt: Added.
  • platform/mac-bigsur/editing/selection/vertical-rl-rtl-extend-line-backward-br-expected.txt: Added.
  • platform/mac-bigsur/editing/selection/vertical-rl-rtl-extend-line-backward-br-mixed-expected.txt: Added.
  • platform/mac-bigsur/editing/selection/vertical-rl-rtl-extend-line-backward-p-expected.txt: Added.
  • platform/mac-bigsur/editing/selection/vertical-rl-rtl-extend-line-backward-p-mixed-expected.txt: Added.
  • platform/mac-bigsur/editing/selection/vertical-rl-rtl-extend-line-forward-br-expected.txt: Added.
  • platform/mac-bigsur/editing/selection/vertical-rl-rtl-extend-line-forward-br-mixed-expected.txt: Added.
  • platform/mac-bigsur/editing/selection/vertical-rl-rtl-extend-line-forward-p-expected.txt: Added.
  • platform/mac-bigsur/editing/selection/vertical-rl-rtl-extend-line-forward-p-mixed-expected.txt: Added.
  • platform/mac-bigsur/fast/block/float/float-avoidance-expected.txt: Added.
  • platform/mac-bigsur/fast/block/margin-collapse/103-expected.txt: Added.
  • platform/mac-bigsur/fast/css/apple-system-control-colors-expected.txt: Added.
  • platform/mac-bigsur/fast/css/rtl-ordering-expected.txt: Added.
  • platform/mac-bigsur/fast/css/text-overflow-input-expected.txt: Added.
  • platform/mac-bigsur/fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset-expected.txt: Added.
  • platform/mac-bigsur/fast/forms/basic-inputs-expected.txt: Added.
  • platform/mac-bigsur/fast/forms/basic-textareas-quirks-expected.txt: Added.
  • platform/mac-bigsur/fast/forms/box-shadow-override-expected.txt: Added.
  • platform/mac-bigsur/fast/forms/button-sizes-expected.txt: Added.
  • platform/mac-bigsur/fast/forms/button-table-styles-expected.txt: Added.
  • platform/mac-bigsur/fast/forms/form-element-geometry-expected.txt: Added.
  • platform/mac-bigsur/fast/forms/input-appearance-preventDefault-expected.txt: Added.
  • platform/mac-bigsur/fast/forms/input-appearance-spinbutton-expected.txt: Added.
  • platform/mac-bigsur/fast/forms/input-appearance-spinbutton-up-expected.txt: Added.
  • platform/mac-bigsur/fast/forms/input-placeholder-visibility-1-expected.txt: Added.
  • platform/mac-bigsur/fast/forms/input-placeholder-visibility-3-expected.txt: Added.
  • platform/mac-bigsur/fast/forms/input-table-expected.txt: Added.
  • platform/mac-bigsur/fast/forms/input-value-expected.txt: Added.
  • platform/mac-bigsur/fast/forms/listbox-bidi-align-expected.txt: Added.
  • platform/mac-bigsur/fast/forms/listbox-width-change-expected.txt: Added.
  • platform/mac-bigsur/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.txt: Added.
  • platform/mac-bigsur/fast/forms/option-text-clip-expected.txt: Added.
  • platform/mac-bigsur/fast/forms/search-rtl-expected.txt: Added.
  • platform/mac-bigsur/fast/forms/search/search-size-with-decorations-expected.txt: Added.
  • platform/mac-bigsur/fast/forms/select-change-listbox-to-popup-expected.txt: Added.
  • platform/mac-bigsur/fast/forms/select-visual-hebrew-expected.txt: Added.
  • platform/mac-bigsur/fast/forms/textAreaLineHeight-expected.txt: Added.
  • platform/mac-bigsur/fast/forms/textarea-placeholder-visibility-1-expected.txt: Added.
  • platform/mac-bigsur/fast/forms/textarea-placeholder-visibility-2-expected.txt: Added.
  • platform/mac-bigsur/fast/forms/textfield-outline-expected.txt: Added.
  • platform/mac-bigsur/fast/forms/visual-hebrew-text-field-expected.txt: Added.
  • platform/mac-bigsur/fast/parser/entity-comment-in-textarea-expected.txt: Added.
  • platform/mac-bigsur/fast/parser/open-comment-in-textarea-expected.txt: Added.
  • platform/mac-bigsur/fast/text/backslash-to-yen-sign-euc-expected.txt: Added.
  • platform/mac-bigsur/fast/text/drawBidiText-expected.txt: Added.
  • platform/mac-bigsur/fast/text/international/danda-space-expected.txt: Added.
  • platform/mac-bigsur/fast/text/international/pop-up-button-text-alignment-and-direction-expected.txt: Added.
  • platform/mac-bigsur/fast/text/international/system-language/system-font-punctuation-expected.txt: Added.
  • platform/mac-bigsur/fast/text/justify-ideograph-leading-expansion-expected.txt: Added.
  • platform/mac-bigsur/fast/text/vertical-rl-rtl-linebreak-expected.txt: Added.
  • platform/mac-bigsur/fast/text/vertical-rl-rtl-linebreak-mixed-expected.txt: Added.
  • platform/mac-bigsur/http/tests/navigation/javascriptlink-frames-expected.txt: Added.
  • platform/mac-bigsur/http/tests/xmlhttprequest/methods-async-expected.txt: Added.
  • platform/mac-bigsur/http/tests/xmlhttprequest/methods-expected.txt: Added.
  • platform/mac-bigsur/http/tests/xmlhttprequest/workers/methods-async-expected.txt: Added.
  • platform/mac-bigsur/http/tests/xmlhttprequest/workers/methods-expected.txt: Added.
  • platform/mac-bigsur/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method.any-expected.txt: Added.
  • platform/mac-bigsur/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method.any.worker-expected.txt: Added.
  • platform/mac-bigsur/imported/w3c/web-platform-tests/fetch/redirect-navigate/preserve-fragment-expected.txt: Added.
  • platform/mac-bigsur/imported/w3c/web-platform-tests/mathml/relations/css-styling/ignored-properties-001-expected.txt: Added.
  • platform/mac-bigsur/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/border-002-expected.txt: Added.
  • platform/mac-bigsur/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/padding-002-expected.txt: Added.
  • platform/mac-bigsur/imported/w3c/web-platform-tests/xhr/send-entity-body-empty-expected.txt: Added.
  • platform/mac-bigsur/imported/w3c/web-platform-tests/xhr/send-entity-body-get-head-async-expected.txt: Added.
  • platform/mac-bigsur/imported/w3c/web-platform-tests/xhr/send-entity-body-get-head-expected.txt: Added.
  • platform/mac-bigsur/imported/w3c/web-platform-tests/xhr/send-entity-body-none-expected.txt: Added.
  • platform/mac-bigsur/media/controls-after-reload-expected.txt: Added.
  • platform/mac-bigsur/media/video-display-toggle-expected.txt: Added.
  • platform/mac-bigsur/media/video-no-audio-expected.txt: Added.
  • platform/mac-bigsur/media/video-volume-slider-expected.txt: Added.
  • platform/mac-bigsur/platform/mac/fast/text/international/bidi-fallback-font-weight-expected.txt: Added.
  • platform/mac-bigsur/svg/custom/svg-fonts-without-missing-glyph-expected.txt: Added.
  • platform/mac-bigsur/tables/mozilla/bugs/bug18359-expected.txt: Added.
  • platform/mac-bigsur/tables/mozilla/bugs/bug2479-3-expected.txt: Added.
  • platform/mac-bigsur/tables/mozilla/bugs/bug30692-expected.txt: Added.
  • platform/mac-bigsur/tables/mozilla/bugs/bug33855-expected.txt: Added.
  • platform/mac-bigsur/tables/mozilla/bugs/bug60749-expected.txt: Added.
  • platform/mac-bigsur/tables/mozilla/bugs/bug7342-expected.txt: Added.
  • platform/mac-bigsur/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt: Added.
  • platform/mac-bigsur/transforms/2d/zoom-menulist-expected.txt: Added.

Copied these expectation files here.

  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-en-US-expected.txt: Removed.
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-en-expected.txt: Removed.
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-es-ES-expected.txt: Removed.
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-es-expected.txt: Removed.
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-fr-expected.txt: Removed.
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-hi-expected.txt: Removed.
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-pt-BR-expected.txt: Removed.
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-ru-expected.txt: Removed.

These expectations files were all the same as the ones that would be used otherwise.

  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:

Copied expectations here.

5:02 PM Changeset in webkit [265638] by Kate Cheney
  • 5 edits in trunk/Source/WebKit

Create SharedMemory::IPCHandle object to validate the size of SharedMemory::Handle objects sent over IPC
https://bugs.webkit.org/show_bug.cgi?id=215288
<rdar://problem/60870795>

Reviewed by David Kilzer.

Part 1 of a multi-patch plan to convert all SharedMemory::Handle
objects being sent over IPC to use SharedMemory::IPCHandle objects instead.

  • Platform/SharedMemory.h:

(WebKit::SharedMemory::IPCHandle::IPCHandle):

  • Platform/cocoa/SharedMemoryCocoa.cpp:

(WebKit::SharedMemory::IPCHandle::encode const):
(WebKit::SharedMemory::IPCHandle::decode):
Validate the size of the data sent in the IPCHandle::decode()
function.

  • Platform/unix/SharedMemoryUnix.cpp:

(WebKit::SharedMemory::IPCHandle::encode const):
(WebKit::SharedMemory::IPCHandle::decode):

  • Platform/win/SharedMemoryWin.cpp:

Implement IPCHandle encode and decode for all platforms for when we remove
SharedMemory::Handle encode/decode functions.

4:29 PM Changeset in webkit [265637] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ iOS wk2 Release ] imported/w3c/eb-platform-tests/css/css-text/overflow-wrap/overflow-wrap-break-word-long-crash.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=215480

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
4:09 PM Changeset in webkit [265636] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ iOS wk2 Release ] imported/w3c/web-platform-tests/css/css-grid/abspos/empty-grid-001.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=215476

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
3:59 PM Changeset in webkit [265635] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

Pocket City game play area is blank (WebGL is broken in Catalyst)
https://bugs.webkit.org/show_bug.cgi?id=215251

Follow-up review comments from Darin Adler.

  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:

(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):

3:50 PM Changeset in webkit [265634] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebKit

Unreviewed non-unified build fix.

No new tests needed.

  • WebProcess/FullScreen/WebFullScreenManager.cpp:

(WebKit::WebFullScreenManager::requestEnterFullScreen): Add missing WebCore:: namespace
prefix to usage of WebCore::FullscreenManager.

3:46 PM Changeset in webkit [265633] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ macOS wk2 Release ] media/modern-media-controls/scrubber-support/scrubber-support-drag.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=215468

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:41 PM Changeset in webkit [265632] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ Win10 wk1 ews ] imported/blink/compositing/squashing/squashing-reflection-disallowed.html is a flaky image failure
https://bugs.webkit.org/show_bug.cgi?id=215467

Unreviewed test gardening.

  • platform/win/TestExpectations:
3:29 PM Changeset in webkit [265631] by Hector Lopez
  • 2 edits in trunk/LayoutTests

WebGL conformance: Failures and Timeouts in suite 2.0.0/conformance2
https://bugs.webkit.org/show_bug.cgi?id=189672

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:28 PM Changeset in webkit [265630] by Alan Bujtas
  • 5 edits
    2 adds in trunk/Source/WebCore

Add RenderTreeMutationDisallowedScope to track intrusive render tree mutations
https://bugs.webkit.org/show_bug.cgi?id=215463
<rdar://problem/67012831>

Reviewed by Simon Fraser.

RenderLayer::enclosingScrollableLayer should not mutate the render tree accidentally.
This is related to <rdar://problem/64739768>.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • rendering/RenderTreeMutationDisallowedScope.cpp: Added.
  • rendering/RenderTreeMutationDisallowedScope.h: Added.

(WebCore::RenderTreeMutationDisallowedScope::RenderTreeMutationDisallowedScope):
(WebCore::RenderTreeMutationDisallowedScope::~RenderTreeMutationDisallowedScope):
(WebCore::RenderTreeMutationDisallowedScope::isMutationAllowed):

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::destroy):

3:20 PM Changeset in webkit [265629] by Russell Epstein
  • 4 edits in branches/safari-610.1-branch/Source/WebCore

Cherry-pick r265280. rdar://problem/66945503

Update AudioSampleDataSource offset computation
https://bugs.webkit.org/show_bug.cgi?id=215127
<rdar://problem/65938265>

Reviewed by Eric Carlson.

As per logs, it sometimes happens that the offset is so big that the timestamp is below the start of the window.
In that case, our logic is not able to catch up and reduce the offset.
To handle this, we special case if the timestamp is below the start frame and do as if we were starting from scratch.
Otherwise, we continue our logic to fine tune the offset by slowly making it bigger to not hit the end of the window but still be close to it.
Updated logging to help further debugging this issue if needed.

  • platform/audio/mac/AudioSampleDataSource.h:
  • platform/audio/mac/AudioSampleDataSource.mm: (WebCore::AudioSampleDataSource::pushSamplesInternal): (WebCore::computeOffsetDelay): (WebCore::AudioSampleDataSource::pullSamplesInternal): (WebCore::AudioSampleDataSource::pullAvalaibleSamplesAsChunks):
  • platform/mediastream/mac/RealtimeIncomingAudioSourceCocoa.cpp: (WebCore::RealtimeIncomingAudioSourceCocoa::OnData):

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

3:20 PM Changeset in webkit [265628] by Russell Epstein
  • 4 edits in branches/safari-610.1-branch/Source/WebCore

Cherry-pick r265244. rdar://problem/66945503

Remove AudioSampleDataSource::setPaused
https://bugs.webkit.org/show_bug.cgi?id=215125

Reviewed by Geoffrey Garen.

m_paused is unused except for setting m_transitioningFromPaused.
setPaused is only used in AudioMediaStreamTrackRenderCocoa at creation of the source.
We can remove the call for setPaused(true) and remove setPaused/m_paused.

  • platform/audio/mac/AudioSampleDataSource.h:
  • platform/audio/mac/AudioSampleDataSource.mm: (WebCore::AudioSampleDataSource::setPaused): Deleted.
  • platform/mediastream/mac/AudioMediaStreamTrackRendererCocoa.cpp: (WebCore::AudioMediaStreamTrackRendererCocoa::pushSamples):

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

3:19 PM Changeset in webkit [265627] by Russell Epstein
  • 4 edits in branches/safari-610.1-branch/Source/WebCore

Revert "Cherry-pick r265280 and Unreviewed build fix. rdar://problem/66945503"

This reverts commit r265617 and r265596.

3:19 PM Changeset in webkit [265626] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKitLegacy/ios

macCatalyst: Granting location permission doesn't allow geolocation access
https://bugs.webkit.org/show_bug.cgi?id=215464
<rdar://problem/64719458>

Reviewed by Wenson Hsieh.

  • Misc/WebGeolocationCoreLocationProvider.mm:

(-[WebGeolocationCoreLocationProvider requestGeolocationAuthorization]):
Un-ifdef this code that was ifdeffed in r229963 during macCatalyst
bring-up and doesn't need to be anymore.

3:09 PM Changeset in webkit [265625] by Aditya Keerthi
  • 2 edits
    1 copy
    1 add
    1 delete in trunk/LayoutTests

Unreviewed test gardening, rebaseline test after r265613.

  • fast/forms/search/search-zoom-computed-style-height-expected.txt:
  • platform/mac-bigsur/fast/forms/search/search-zoom-computed-style-height-expected.txt: Copied from LayoutTests/fast/forms/search/search-zoom-computed-style-height-expected.txt.
  • platform/mac-mojave/fast/forms/search/search-zoom-computed-style-height-expected.txt: Removed.
3:05 PM Changeset in webkit [265624] by Lauro Moura
  • 4 edits
    1 add in trunk/LayoutTests

[GTK][WPE] Gardening and adding baseline

Unreviewed test gardening.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/gtk/fast/forms/search/search-zoom-computed-style-height-expected.txt: Added.
  • platform/wpe/TestExpectations:
2:50 PM Changeset in webkit [265623] by Chris Dumez
  • 14 edits in trunk/Source

REGRESSION (r260684): Messages YouTube inline video: after Multitasking away and Back, Audio is heard but icon indicates "muted"
https://bugs.webkit.org/show_bug.cgi?id=215453
<rdar://problem/66136673>

Reviewed by Tim Horton.

Source/WebCore:

r260684 silenced all JS events during the snapshot sequence that occurs whenever the user homes out of Safari.
This was meant to address compatibility with websites that did not expect various resize/orientationchange
events when homing out. However, the snapshot sequence is fairly long and this was causing us to silence JS
events which have nothing to do with the snapshot sequence, like window.postMessage()'s message events. This is
what caused this regression.

To address the issue, this patch basically reverts r260684 and deals with websites-compatibility issues via
less risky site-specific and event-specific quirks:

  • We silence Window resize events on nytimes.com to address <rdar://problem/59763843>.
  • We silence Window resize events and MediaQueryList change events on twitter.com to address <rdar://problem/58804852> and <rdar://problem/61731801>.
  • css/MediaQueryMatcher.cpp:

(WebCore::MediaQueryMatcher::evaluateAll):

  • dom/EventTarget.cpp:

(WebCore::EventTarget::fireEventListeners):

  • page/FrameView.cpp:

(WebCore::FrameView::sendResizeEventIfNeeded):

  • page/Page.h:

(WebCore::Page::isTakingSnapshotsForApplicationSuspension const):
(WebCore::Page::setIsTakingSnapshotsForApplicationSuspension):
(WebCore::Page::shouldFireEvents const): Deleted.
(WebCore::Page::setShouldFireEvents): Deleted.

  • page/Quirks.cpp:

(WebCore::Quirks::shouldSilenceWindowResizeEvents const):
(WebCore::Quirks::shouldSilenceMediaQueryListChangeEvents const):

  • page/Quirks.h:

Source/WebKit:

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setIsDoingSnapshotSequence):
(WebKit::WebPageProxy::setShouldFireEvents): Deleted.

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

(-[WKApplicationStateTrackingView _willBeginSnapshotSequence]):
(-[WKApplicationStateTrackingView _didCompleteSnapshotSequence]):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setIsDoingSnapshotSequence):
(WebKit::WebPage::setShouldFireEvents): Deleted.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
2:42 PM Changeset in webkit [265622] by Hector Lopez
  • 3 edits in trunk/LayoutTests

[ macOS iOS wk2 Debug ] http/tests/security/no-indexeddb-from-sandbox.html is a constant crash
https://bugs.webkit.org/show_bug.cgi?id=215465

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
2:00 PM Changeset in webkit [265621] by Russell Epstein
  • 19 edits
    2 deletes in branches/safari-610.2.1-branch

Revert r265115. rdar://problem/67015032

1:52 PM Changeset in webkit [265620] by Alan Coon
  • 1 copy in tags/Safari-610.1.25.5.1

Tag Safari-610.1.25.5.1.

1:49 PM Changeset in webkit [265619] by Karl Rackler
  • 3 edits in trunk/LayoutTests

Unreviewed, reverting r265612.

Commit fixed wincairo, but broke ios/mac

Reverted changeset:

"rdar://66995964 (REGRESSION (r265358): [ Win10 wk1 ]
animations/steps-transform-rendering-updates.html is a
constant failure (215454))"
https://trac.webkit.org/changeset/265612

1:33 PM Changeset in webkit [265618] by Chris Dumez
  • 10 edits in trunk/LayoutTests/imported/w3c

Unreviewed, rebaseline WPT tests that are currently marked as flaky.

  • web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/suspend-after-construct-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-getFrequencyResponse-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/no-dezippering-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/no-dezippering-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-gainnode-interface/no-dezippering-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-oscillatornode-interface/detune-limiting-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-oscillatornode-interface/osc-basic-waveform-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-scriptprocessornode-interface/simple-input-output-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-copy-curve-expected.txt:
1:06 PM Changeset in webkit [265617] by Alan Coon
  • 1 edit in branches/safari-610.1-branch/Source/WebCore/platform/audio/mac/AudioSampleDataSource.h

Unreviewed build fix. rdar://problem/66945503

Missing identifier m_paused.

11:45 AM Changeset in webkit [265616] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Regression(r265580): apply-watchlist is broken
https://bugs.webkit.org/show_bug.cgi?id=215457

Unreviewed infrastructure fix.

  • Scripts/webkitpy/common/config/watchlist:
11:38 AM Changeset in webkit [265615] by Russell Epstein
  • 1 edit in branches/safari-610.1-branch/Source/WebCore/platform/graphics/ImageUtilities.h

Unreviewed build fix, rdar://problem/66945359

unknown type name "WorkQueue"

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

[ews] email notifications should include Bugzilla link to the patch
https://bugs.webkit.org/show_bug.cgi?id=215455

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(Bugzilla):
(Bugzilla.patch_url): Method to generate patch url.
(AnalyzeCompileWebKitResults.send_email_for_new_build_failure): Added link to the patch id.
(AnalyzeLayoutTestsResults.send_email_for_new_test_failures): Ditto.
(ConfigureBuild.add_patch_id_url):
(ConfigureBuild.getPatchURL): Deleted.

10:56 AM Changeset in webkit [265613] by Aditya Keerthi
  • 3 edits
    7 adds in trunk

[macOS] Zoomed-in search field is clipped out
https://bugs.webkit.org/show_bug.cgi?id=215428
<rdar://problem/66161781>

Reviewed by Darin Adler.

Source/WebCore:

r257150 added support for painting large form controls using NSControlSizeLarge.
However, RenderThemeMac::searchFieldSizes() still returned a height
corresponding to NSControlSizeRegular rather than NSControlSizeLarge. This
behavior causes the height of the layout rect to be smaller than the height
of the painted cell, resulting in clipping.

Returning the correct height in searchFieldSizes is not enough to solve the
issue. Currently, the height of the layout rect is set before adjusting the font
size of the corresponding RenderStyle. This is problematic as the initial font
size could correspond to NSControlSizeRegular, but when adjusted for zoom, the
font size could correspond to NSControlSizeLarge. To ensure that the font size
and height correspond to the same control size, the font size is now adjusted
prior to adjusting the height.

Test: fast/forms/search/search-zoom-computed-style-height.html

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::searchFieldSizes const): Correct height for NSControlSizeLarge.
(WebCore::RenderThemeMac::adjustSearchFieldStyle const):

LayoutTests:

Added a test to verify the computed style height of a zoomed-in search field.

  • fast/forms/search/search-zoom-computed-style-height-expected.txt: Added.
  • fast/forms/search/search-zoom-computed-style-height.html: Added.
  • platform/ios/fast/forms/search/search-zoom-computed-style-height-expected.txt: Added.
  • platform/mac-mojave/fast/forms/search/search-zoom-computed-style-height-expected.txt: Added.
  • platform/win/fast/forms/search/search-zoom-computed-style-height-expected.txt: Added.
10:27 AM Changeset in webkit [265612] by Karl Rackler
  • 3 edits in trunk/LayoutTests

rdar://66995964 (REGRESSION (r265358): [ Win10 wk1 ] animations/steps-transform-rendering-updates.html is a constant failure (215454))
Rebaseline Test - Remore test expectation.

Unreviewed test gardening.

  • animations/steps-transform-rendering-updates-expected.txt:
9:47 AM Changeset in webkit [265611] by Karl Rackler
  • 2 edits in trunk/LayoutTests

Win10 wk1 ] animations/steps-transform-rendering-updates.html is a constant failure
https://bugs.webkit.org/show_bug.cgi?id=215454

Unreviewed test gardening.

  • platform/wincairo/TestExpectations:
9:01 AM Changeset in webkit [265610] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] test names in ews notification email should be in sorted order
https://bugs.webkit.org/show_bug.cgi?id=215446

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(AnalyzeLayoutTestsResults.send_email_for_new_test_failures):

8:59 AM Changeset in webkit [265609] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] Improve wording for test failure email
https://bugs.webkit.org/show_bug.cgi?id=215449

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(AnalyzeLayoutTestsResults.send_email_for_new_test_failures): Pluralize 'test failure' accordingly.

  • BuildSlaveSupport/ews-build/send_email.py:

(send_email): Drive-by fix.

8:50 AM Changeset in webkit [265608] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ macOS wk1 Debug ] imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-002.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=215452

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
8:42 AM Changeset in webkit [265607] by Jonathan Bedard
  • 6 edits in trunk/Tools

[webkitpy] Use webkitcorepy's auto installer for coverage
https://bugs.webkit.org/show_bug.cgi?id=215419
<rdar://problem/66922400>

Reviewed by Stephanie Lewis.

  • Scripts/webkitpy/init.py: Add coverage and it's dependencies.
  • Scripts/webkitpy/test/main.py:

(Tester._run_tests): Stop relying on webkitpy's autoinstaller.

  • Scripts/webkitpy/thirdparty/init.py:

(AutoinstallImportHook.find_module): Remove _install_coverage, _install_toml.
(AutoinstallImportHook._install_coverage): Deleted.
(AutoinstallImportHook._install_toml): Deleted.

  • Scripts/webkitpy/thirdparty/init_unittest.py:

(ThirdpartyTest.test_imports): Remove coverage.

  • flatpak/flatpakutils.py: Stop relying on webkitpy's autoinstaller.
8:35 AM Changeset in webkit [265606] by clopez@igalia.com
  • 3 edits
    1 add
    1 delete in trunk/Tools

[GTK][WPE] Add a script for generating MiniBrowser bundles
https://bugs.webkit.org/show_bug.cgi?id=215266

Reviewed by Carlos Garcia Campos.

This converts the previous generate-jsc-bundle into a new script
that is now able to do the following:

  • generate a jsc bundle
  • generate a MiniBrowse bundle
  • generate an all bundle (jsc+MiniBrowser)

The bundle can include all the system-libraries from the system,
so that way (in theory) the bundle would run on any other distribution
or it can generate an install-dependencies script so it generates
a lightweight bundle with only the minimum libraries included that
would run only on the distribution where it has been created
(after running the install-dependencies script)

We already have a bot generating the jsc bundle and we plan to also
have bots for generating the MiniBrowser bundles as well.

  • BuildSlaveSupport/build.webkit.org-config/steps.py: Update the step for the new command.

(GenerateJSCBundle):

  • Scripts/generate-bundle: Added.
  • Scripts/generate-jsc-bundle: Removed.
  • jhbuild/jhbuildutils.py:

(enter_jhbuild_environment_if_available): Unicode argument not longer available on python3's gettext.install()

8:23 AM Changeset in webkit [265605] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ macOS ] imported/w3c/web-platform-tests/media-source/mediasource-changetype-play-negative.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=215450

Unreviewed test gardening.

  • platform/mac/TestExpectations:
6:23 AM Changeset in webkit [265604] by pvollan@apple.com
  • 4 edits in trunk/Source/WebKit

Unreviewed, reverting r265520.

Invalid sandbox change

Reverted changeset:

"[macOS] Deny access to directory for compiled WebKit
sandboxes"
https://bugs.webkit.org/show_bug.cgi?id=215384
https://trac.webkit.org/changeset/265520

1:13 AM Changeset in webkit [265603] by mmaxfield@apple.com
  • 6 edits
    3 adds in trunk

Font loads quickly followed by navigations may fail indefinitely
https://bugs.webkit.org/show_bug.cgi?id=215435
<rdar://problem/65560550>

Reviewed by Darin Adler.

Source/WebCore:

Font loads are coalesced using a zero-delay timer. However, that zero-delay timer
can fire while the page is in the middle of a navigation, which will cause the font
loads to fail. Then, the second page can request those same fonts, which are marked
as failed, and as such will never actually load/use the desired web font.

This patch just stops the zero-delay timer during navigations, and resumes it
when resuming the document. This means:

  1. The second page in the above story will not see that the font has failed, or

even started, and will then re-request the font and load it successfully

  1. If the user goes "back" to the previous page, the zero-delay timer is restarted,

the CachedFont realizes it's already succeeded, and the previous page is rendered
as expected.

Test: fast/loader/font-load-timer.html

  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::suspendFontLoadingTimer):
(WebCore::CSSFontSelector::restartFontLoadingTimer):

  • css/CSSFontSelector.h:
  • dom/Document.cpp:

(WebCore::Document::resume):

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::stopLoading):

LayoutTests:

1) The page has some content that has “font-family: WebFont” but there are no @font-face blocks on the page
2) In script, after the page has loaded, add an @font-face rule to the page with “font-family: WebFont” and some valid font URL
3) Synchronously, within the same turn of the run loop, trigger a synchronous layout of the element (using offsetWidth or something). This will add the font to the 0-delay time work list.
4) Synchronously, within the same turn of the run loop, navigate to a second page that doesn’t use the web font.
5) The second page waits some small-but-positive amount of time. This will cause the 0-delay timer to fire, but because the page is in the middle of navigating, the font load should fail.
6) The second page adds the same @font-face rule to itself using script. This should pull the same (failed) CachedResource object out of the memory cache.
7) Use the CSS Font Loading API to wait for the font load to complete
8) Make sure that the font is used on the second page (as a reference test). Today, the second page’s font load will fail because it pulled the failed font out of the memory cache. The test makes sure the second page’s font load succeeds.

  • fast/loader/font-load-timer-expected.html: Added.
  • fast/loader/font-load-timer.html: Added.
  • fast/loader/resources/font-load-timer-navigation-destination.html: Added.

Aug 12, 2020:

11:09 PM Changeset in webkit [265602] by Keith Rollin
  • 22 edits in trunk

Remove the need for defining USE_NEW_BUILD_SYSTEM
https://bugs.webkit.org/show_bug.cgi?id=215439

Reviewed by Darin Adler.

When building WebKit for XCBuild, we currently require that the
external build system (such as the Makefile, build-webkit, etc.)
defines the USE_NEW_BUILD_SYSTEM=YES build setting. This build setting
controls parts of our build instructions that are sensitive to when
XCBuild or the Legacy build system are being used. Notably, we need to
know when to use our custom “copy and modify” scripts with copying
certain header files (used with the Legacy build system) vs. using the
enhanced Copy Headers build phase that’s enabled with
APPLY_RULES_IN_COPY_HEADERS=YES (introduced with and used by XCBuild).
The choice of which method to copy headers is used is controlled by
USE_NEW_BUILD_SYSTEM.

There is no built-in build setting that we can probe to help us
determine which approach to take when copying and modifying headers,
which is why we need to define USE_NEW_BUILD_SYSTEM ourselves. But it
turns out that we can *detect* which build system is being used by
taking advantage of a subtle difference between the two systems. As
noted in:

https://developer.apple.com/documentation/xcode-release-notes/build-system-release-notes-for-xcode-10

“When an .xcconfig file contains multiple assignments of the same

build setting, later assignments using $(inherited) or
$(<setting_name>) will inherit from earlier assignments in the
.xcconfig. The legacy build system caused every use of
$(inherited) or $(<setting_name>) skip any other values defined
within the .xcconfig.”

This difference can be exploited as follows:

WK_WHICH_BUILD_SYSTEM = not_
WK_WHICH_BUILD_SYSTEM = $(inherited)legacy
WK_USE_NEW_BUILD_SYSTEM = $(WK_USE_NEW_BUILD_SYSTEM_$(WK_WHICH_BUILD_SYSTEM))
WK_USE_NEW_BUILD_SYSTEM_legacy = NO
WK_USE_NEW_BUILD_SYSTEM_not_legacy = YES

We can then use WK_USE_NEW_BUILD_SYSTEM where we used to use the
externally-defined USE_NEW_BUILD_SYSTEM.

.:

  • Makefile.shared:

Source/JavaScriptCore:

  • Configurations/Base.xcconfig:
  • Configurations/JavaScriptCore.xcconfig:
  • JavaScriptCore.xcodeproj/project.pbxproj:

Source/ThirdParty/ANGLE:

  • ANGLE.xcodeproj/project.pbxproj:
  • Configurations/ANGLE-dynamic.xcconfig:
  • Configurations/ANGLE-static.xcconfig:
  • Configurations/Base.xcconfig:

Source/WebKit:

No new tests -- no new or changed functionality.

  • Configurations/Base.xcconfig:
  • Configurations/WebKit.xcconfig:
  • WebKit.xcodeproj/project.pbxproj:

Source/WebKitLegacy:

  • WebKitLegacy.xcodeproj/project.pbxproj:

Source/WebKitLegacy/mac:

  • Configurations/Base.xcconfig:
  • Configurations/WebKitLegacy.xcconfig:

Tools:

  • Scripts/build-webkit:
11:06 PM Changeset in webkit [265601] by Devin Rousso
  • 3 edits
    1 add in trunk/Tools

Add settings for Copy WebKit Permalink
https://bugs.webkit.org/show_bug.cgi?id=215440

Reviewed by Daniel Bates.

  • CopyPermalink/Sublime Text/CopyWebKitPermalink/Context.sublime-settings: Added.
  • CopyPermalink/Sublime Text/CopyWebKitPermalink/CopyWebKitPermalink.py:

(plugin_loaded): Added.
(plugin_unloaded): Added.
(Settings): Added.
(Settings.init): Added.
(Settings.unload): Added.
(Settings.include_revision): Added.
(Settings._get): Added.
(Settings._set): Added.
Helper class for caching settings values.

(CopyWebKitPermalinkCommand.run):
(CopyWebKitPermalinkCommand.revision_info_for_path):
(CopyWebKitPermalinkCommand.permalink_for_path):
Only include the current revision in the URL if the include_revision setting is true.
Turning this off is desirable as getting the current revision often takes a few seconds.

  • CopyPermalink/Sublime Text/INSTALL:
9:50 PM Changeset in webkit [265600] by sbarati@apple.com
  • 12 edits
    1 add in trunk

Inline cache Replace and Setters on PureForwardingProxy
https://bugs.webkit.org/show_bug.cgi?id=215250

Reviewed by Yusuke Suzuki.

JSTests:

  • microbenchmarks/property-replace-and-setter-on-js-proxy.js: Added.

(assert):
(foo):

Source/JavaScriptCore:

We didn't used to cache any Puts on PureForwardingProxy. This patch
implements Replace and JS/Custom Setters on PureForwardingProxy. We don't support
Transition puts because in our current implementation different global objects
will never share the same structure.

This patch also aligns how our runtime and the ICs invoke Customs when the
passed in |this| value is a JSProxy. For custom accessors, our runtime passes
in the JSProxy, where our ICs used to pass in the target of the JSProxy, for
the receiver value. For custom values, the IC behavior and the runtime were
already aligned in passing in the property owner, which is the JSProxy's
target. This patch aligns our IC behavior to match our runtime behavior.

This patch also renames some of the registers in the IC code to clear
up what they're used for.

This is a 2.5x speedup on the microbenchmark I've added, and a 15-20% speedup
on JetStream2's 3d-cube-SP.

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateWithGuard):
(JSC::AccessCase::generateImpl):

  • bytecode/GetterSetterAccessCase.cpp:

(JSC::GetterSetterAccessCase::create):

  • bytecode/GetterSetterAccessCase.h:
  • jit/JITOperations.cpp:
  • jit/Repatch.cpp:

(JSC::tryCachePutByID):

  • runtime/CommonSlowPaths.h:

(JSC::CommonSlowPaths::originalStructureBeforePut):
(JSC::CommonSlowPaths::putDirectWithReify):

9:39 PM Changeset in webkit [265599] by Lauro Moura
  • 6 edits
    22 deletes in trunk

Highpass Biquads use old formulas
https://bugs.webkit.org/show_bug.cgi?id=181191

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

*
web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-highpass-expected.txt:
Rebaselined

Source/WebCore:

Like r265517, but for the highpass filter.

Spec: https://www.w3.org/TR/webaudio/#dom-biquadfiltertype-highpass

Covered by existing tests

  • platform/audio/Biquad.cpp:

(WebCore::Biquad::setHighpassParams):

LayoutTests:

Gardening r265517 (lowpass) showed our test failing for GStreamer due
to a different threshold than used by the imported WPT biquad tests.

As they test the same functionality, remove the old webaudio/biquad
tests and keep using the imported WPT ones with the detailed
thresholds.

  • platform/glib/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-highpass-expected.txt: Removed.
  • platform/mac-wk2/TestExpectations: Removed expectation regarding

deleted file.

  • webaudio/biquad-allpass-expected.txt: Removed.
  • webaudio/biquad-allpass.html: Removed.
  • webaudio/biquad-bandpass-expected.txt: Removed.
  • webaudio/biquad-bandpass.html: Removed.
  • webaudio/biquad-getFrequencyResponse-expected.txt: Removed.
  • webaudio/biquad-getFrequencyResponse.html: Removed.
  • webaudio/biquad-highpass-expected.txt: Removed.
  • webaudio/biquad-highpass.html: Removed.
  • webaudio/biquad-highshelf-expected.txt: Removed.
  • webaudio/biquad-highshelf.html: Removed.
  • webaudio/biquad-lowpass-expected.txt: Removed.
  • webaudio/biquad-lowpass.html: Removed.
  • webaudio/biquad-lowshelf-expected.txt: Removed.
  • webaudio/biquad-lowshelf.html: Removed.
  • webaudio/biquad-notch-expected.txt: Removed.
  • webaudio/biquad-notch.html: Removed.
  • webaudio/biquad-peaking-expected.txt: Removed.
  • webaudio/biquad-peaking.html: Removed.
  • webaudio/biquadfilternode-basic-expected.txt: Removed.
  • webaudio/biquadfilternode-basic.html: Removed.
  • webaudio/resources/biquad-testing.js: Removed.
8:21 PM Changeset in webkit [265598] by Lauro Moura
  • 4 edits
    1 delete in trunk/LayoutTests

[GTK][WPE] Gardening some more failures.

Unreviewed test gardening.

  • platform/glib/TestExpectations:
  • platform/glib/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-lowpass-expected.txt: Removed.
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
7:56 PM Changeset in webkit [265597] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r259170): text inputs in box-shadow editor push sliders offscreen
https://bugs.webkit.org/show_bug.cgi?id=215436

Reviewed by Darin Adler.

  • UserInterface/Views/BoxShadowEditor.js:

(WI.BoxShadowEditor.createInputRow):
Make sure the inputs are type="text" so that CSS is able to distinguish them from sliders.

6:46 PM Changeset in webkit [265596] by Alan Coon
  • 4 edits in branches/safari-610.1-branch/Source/WebCore

Cherry-pick r265280. rdar://problem/66945503

Update AudioSampleDataSource offset computation
https://bugs.webkit.org/show_bug.cgi?id=215127
<rdar://problem/65938265>

Reviewed by Eric Carlson.

As per logs, it sometimes happens that the offset is so big that the timestamp is below the start of the window.
In that case, our logic is not able to catch up and reduce the offset.
To handle this, we special case if the timestamp is below the start frame and do as if we were starting from scratch.
Otherwise, we continue our logic to fine tune the offset by slowly making it bigger to not hit the end of the window but still be close to it.
Updated logging to help further debugging this issue if needed.

  • platform/audio/mac/AudioSampleDataSource.h:
  • platform/audio/mac/AudioSampleDataSource.mm: (WebCore::AudioSampleDataSource::pushSamplesInternal): (WebCore::computeOffsetDelay): (WebCore::AudioSampleDataSource::pullSamplesInternal): (WebCore::AudioSampleDataSource::pullAvalaibleSamplesAsChunks):
  • platform/mediastream/mac/RealtimeIncomingAudioSourceCocoa.cpp: (WebCore::RealtimeIncomingAudioSourceCocoa::OnData):

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

6:46 PM Changeset in webkit [265595] by Alan Coon
  • 14 edits
    4 adds in branches/safari-610.1-branch

Cherry-pick r265515. rdar://problem/66943894

iOS: Scrolling and touch events sporadically stop working after navigating
https://bugs.webkit.org/show_bug.cgi?id=215368
<rdar://problem/65801531>

Reviewed by Wenson Hsieh.

Source/WebKit:

Test: fast/events/touch/ios/touch-event-stall-after-navigating-with-pending-asynchronous-touch-start.html

WebPageProxy::handlePreventableTouchEvent keeps a counter of the number
of outstanding "preventable" touch events that it is waiting to hear
from the Web Content process about. This counter is incremented when the
event is dispatched to the Web Content process's EventHandler queue,
and decremented when the reply (whether it was handled or not) comes
back from the Web Content process. While the counter is non-zero, all
deferrable gestures remain deferred (and when it returns to zero, the
WKDeferringGestureRecognizer gate is lifted, and events are allowed to flow).
This means that it is very important that every event eventually reply
about its handling status.

Before this change, when the Web Content process is navigating, and reaches didCommitLoad,
it cleared all queued touch events, without replying to to the UI process.
Thus, there is a small window of time in which an incoming touch event will
end up in the queue, *not* get dispatched/replied, and then get dropped on
the floor in didCommitLoad. Most events do not meet this fate, because they
are handled promptly, and commitLoad/didCommitLoad tend to be very quick.
However, if the Web Content process ends up spending any significant amount
of time under commitLoad (say, in an unload handler, or in media frameworks),
any incoming touch events during that time will get lost, and the UI process'
count of outstanding events will end up getting stuck non-zero.

Fix this by always pretending that the page ate any events that were outstanding
when didCommitLoad occurs, instead of just dropping them on the floor.

  • UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::doneWithTouchEvent):
  • WebProcess/WebPage/EventDispatcher.cpp: (WebKit::EventDispatcher::takeQueuedTouchEventsForPage): (WebKit::EventDispatcher::clearQueuedTouchEventsForPage): Deleted. (WebKit::EventDispatcher::getQueuedTouchEventsForPage): Deleted. Also, rename getQueuedTouchEventsForPage to takeQueuedTouchEventsForPage, since it removes the queue from EventDispatcher's set.
  • WebProcess/WebPage/EventDispatcher.h:
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::touchEventSync): (WebKit::WebPage::didCommitLoad):
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::cancelAsynchronousTouchEvents):

Tools:

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::runUIScriptImmediately):
  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::didReceiveMessageFromInjectedBundle): (WTR::TestInvocation::runUISideScriptImmediately): (WTR::TestInvocation::runUISideScriptAfterUpdateCallback):
  • WebKitTestRunner/TestInvocation.h: Add a variant of runUISideScript that runs the script without waiting for a rendering update.

It makes sense for the default runUISideScript to wait for a rendering
update -- nearly every test is either unaffected or improved by this --
but for the test for this bug, since we have hung the Web Content process
main thread intentionally, we will not see a rendering update, and so
the UI-side script will never run.

LayoutTests:

  • fast/events/touch/ios/resources/finish-test-after-scrolling-with-touch-event-handlers.html: Added.
  • fast/events/touch/ios/touch-event-stall-after-navigating-with-pending-asynchronous-touch-start-expected.txt: Added.
  • fast/events/touch/ios/touch-event-stall-after-navigating-with-pending-asynchronous-touch-start.html: Added. Add a test that ensures that a page that dispatches events in beforeunload, receiving preventable touch events during the next page's commitLoad does not result in scrolling being stuck.

Before this change, this test would time out.

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

6:46 PM Changeset in webkit [265594] by Alan Coon
  • 2 edits in branches/safari-610.1-branch/Source/JavaScriptCore

Cherry-pick r265493. rdar://problem/66944002

ScriptExecutable::newCodeBlockFor() neglected to set the exception pointer result in one case.
https://bugs.webkit.org/show_bug.cgi?id=215357
<rdar://problem/57675112>

Reviewed by Yusuke Suzuki.

At the bottom of ScriptExecutable::newCodeBlockFor(), it calls:

RELEASE_AND_RETURN(throwScope, FunctionCodeBlock::create(vm, executable, unlinkedCodeBlock, scope));

However, ScriptExecutable::newCodeBlockFor() has 2 return values: a CodeBlock*,
and a passed in Exception*& that needs to be set if there's an exception.
FunctionCodeBlock::create() is capable of returning a null CodeBlock* because
CodeBlock::finishCreation() can throw exceptions. As a result, we have a scenario
here where ScriptExecutable::newCodeBlockFor() can return a null CodeBlock* without
setting the Exception*& result.

Consequently, Interpreter::executeCall() is relying on this and can end up
crashing while dereferencing a null CodeBlock* because the exception result was
not set.

This patch fixes ScriptExecutable::newCodeBlockFor() to set the exception result.

  • runtime/ScriptExecutable.cpp: (JSC::ScriptExecutable::newCodeBlockFor):

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

6:46 PM Changeset in webkit [265593] by Alan Coon
  • 18 edits in branches/safari-610.1-branch

Cherry-pick r265480. rdar://problem/66943866

AuxiliaryProcess::didReceiveInvalidMessage() for WebPage::PerformDragControllerAction IPC
https://bugs.webkit.org/show_bug.cgi?id=215341
<rdar://problem/59344091>

Reviewed by Alex Christensen.

Source/WebCore:

Consistently use OptionSet<DragApplicationFlags> instead of DragApplicationFlags.

  • page/gtk/DragControllerGtk.cpp: (WebCore::DragController::isCopyKeyDown):
  • page/mac/DragControllerMac.mm: (WebCore::DragController::isCopyKeyDown): (WebCore::DragController::dragOperation):
  • platform/DragData.cpp: (WebCore::DragData::DragData):
  • platform/DragData.h: (WebCore::DragData::flags const):
  • platform/cocoa/DragDataCocoa.mm: (WebCore::DragData::DragData):
  • platform/win/DragDataWin.cpp: (WebCore::DragData::DragData):

Source/WebKit:

DragApplicationFlags is an enum containing flags. It was being sent over IPC as a DragApplicationFlags
instead of an OptionSet<DragApplicationFlags>, and thus would fail enum value validation when decoding
when more than one flag is set.

  • Scripts/webkit/messages.py:
  • Shared/WebCoreArgumentCoders.cpp: (IPC::ArgumentCoder<DragData>::decode):
  • UIProcess/Cocoa/WebViewImpl.mm: (WebKit::applicationFlagsForDrag):
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::performDragControllerAction):
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/mac/DragAndDropTestsMac.mm: (overrideCurrentEvent): (TEST):

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

6:46 PM Changeset in webkit [265592] by Alan Coon
  • 2 edits in branches/safari-610.1-branch/Source/WebCore

Cherry-pick r265457. rdar://problem/66943926

MobileSafari crashes at WebCore: -[WebAVPlayerController seekToTime:toleranceBefore:toleranceAfter:]
https://bugs.webkit.org/show_bug.cgi?id=215332

Reviewed by Eric Carlson.

Add a NULL pointer check to fix a crash.

  • platform/ios/WebAVPlayerController.mm: (-[WebAVPlayerController seekToTime:toleranceBefore:toleranceAfter:]):

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

6:46 PM Changeset in webkit [265591] by Alan Coon
  • 2 edits in branches/safari-610.1-branch/Source/WebKit

Cherry-pick r265456. rdar://problem/66945442

Use RefPtr for WebKit::WebOpenPanelResultListenerProxy
<https://webkit.org/b/215252>
<rdar://problem/65753821>

Reviewed by Geoffrey Garen.

Unable to create an API test for this.

  • UIProcess/Cocoa/UIDelegate.mm: (WebKit::UIDelegate::UIClient::runOpenPanel):
  • Use RefPtr<WebOpenPanelResultListenerProxy> when passing listener into the block.

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

6:46 PM Changeset in webkit [265590] by Alan Coon
  • 4 edits in branches/safari-610.1-branch/Source/WebCore

Cherry-pick r265437. rdar://problem/66943889

r262456 broke sites that expect webkitDisplayingFullscreen to be true almost immediately
https://bugs.webkit.org/show_bug.cgi?id=215240
<rdar://problem/66284042>

Reviewed by Darin Adler.

Add a quirk for sites that use the Akamai Media Player, which begins polling
webkitDisplayingFullscreen every 100ms immediately after entering video fullscreen
mode and exits fullscreen as soon as it returns false. r262456 changed the HTMLMediaPlayer
state machine so webkitDisplayingFullscreen doesn't return true until the fullscreen
window has been opened in the UI process. This was done to fix bugs triggered by
rapidly entering and exiting fullscreen and PiP and make our own fullscreen/PiP tests
less flakey, so instead of reverting the change universally do it as a quirk for sites
using the Akamai Media Player.

  • html/HTMLVideoElement.cpp: (WebCore::HTMLVideoElement::webkitDisplayingFullscreen):
  • page/Quirks.cpp: (WebCore::Quirks::needsAkamaiMediaPlayerQuirk const):
  • page/Quirks.h:

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

6:46 PM Changeset in webkit [265589] by Alan Coon
  • 4 edits in branches/safari-610.1-branch/Source/WebKit

Cherry-pick r265433. rdar://problem/66943779

Always suspend IDB work when network process is prepared to suspend
https://bugs.webkit.org/show_bug.cgi?id=215239
<rdar://problem/65690450>

Reviewed by Geoffrey Garen.

We do not suspend IDB work in the network process when there is an ongoing transaction because the network
process is going to ask the UI process to hold a background process assertion for it. However, it is possible
that the request from the network process does not reach the UI process in time: RunningBoard may already decide
to suspend the network process after app is backgrounded and UI process drops the foreground assertion for the
network process.

In this case, IDB in the network process would continue its transaction and the network process will be killed
when it becomes suspened for holding database file locks. A network process crash can lead to a worse result
than suspending IDB work, which aborts ongoing transactions, because it will destroy all database connections
and transaction. Therefore, let's just suspend IDB work when the network process receives prepareToSuspend
message.

  • NetworkProcess/IndexedDB/WebIDBServer.cpp: (WebKit::WebIDBServer::suspend):
  • NetworkProcess/IndexedDB/WebIDBServer.h:
  • NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::prepareToSuspend):

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

6:46 PM Changeset in webkit [265588] by Alan Coon
  • 2 edits in branches/safari-610.1-branch/Source/JavaScriptCore

Cherry-pick r265431. rdar://problem/66943961

REGRESSION(r261159) PokerBros only shows black screen
https://bugs.webkit.org/show_bug.cgi?id=215293
<rdar://problem/66073740>

Reviewed by Keith Miller.

The PokerBros app has some logic that was broken by the change in behavior of r261159.
It caused the app do do nothing except show a black screen upon opening.
Revert to the old behavior for this app until they update to iOS14.

  • runtime/JSObject.cpp: (JSC::needsOldStringName): (JSC::JSObject::toStringName):

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

6:46 PM Changeset in webkit [265587] by Alan Coon
  • 15 edits
    2 moves
    4 adds in branches/safari-610.1-branch

Cherry-pick r265422. rdar://problem/66945359

[macOS] Drag/drop an image of a unsupported format to an file input element should convert it to a supported format
https://bugs.webkit.org/show_bug.cgi?id=212482
<rdar://problem/63731672>

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-08-09
Reviewed by Darin Adler.

Source/WebCore:

Although the list of the dropped files are sent from the UI process to
the Web process through the WebPage channel, the file input settings are
only known by the Web process. So we have to do the image transcoding in
WebCore.

Tests: fast/forms/file/entries-api/image-no-transcode-drag-drop.html

fast/forms/file/entries-api/image-transcode-drag-drop.html

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • html/FileInputType.cpp: (WebCore::FileInputType::handleDOMActivateEvent): (WebCore::FileInputType::fileChooserSettings const): Move filling FileChooserSettings to the function: fileChooserSettings().

(WebCore::FileInputType::applyFileChooserSettings):
Call fileChooserSettings() instead of receiving FileChooserSettings as
an argument.

(WebCore::FileInputType::filesChosen):
Add this function which can be called from receiveDroppedFiles() or
receiveDroppedFilesWithImageTranscoding().

(WebCore::FileInputType::receiveDroppedFilesWithImageTranscoding):
Finds out whether image transcoding is needed for the dropped files. If
it is needed, it will be done in a WorkQueue and call filesChosen() when
it is done. Otherwise it will call filesChosen() immediately.

(WebCore::FileInputType::receiveDroppedFiles):

  • html/FileInputType.h:
  • platform/graphics/ImageUtilities.h: Added.
  • platform/graphics/cg/ImageUtilitiesCG.cpp: Added. (WebCore::sharedImageTranscodingQueue): Provide a shared WorkQueue which can be used by WebCore and WebKit.

(WebCore::transcodeImage):
(WebCore::findImagesForTranscoding):
(WebCore::transcodeImages):

Source/WebKit:

Move ImageUtilities.h and ImageUtilitiesCG.cpp from WebKit to WebCore.
Use the image transcoding functions and shared WorkQueue from WebCore.

  • Platform/ImageUtilities.h: Removed.
  • Platform/cg: Removed.
  • SourcesCocoa.txt:
  • UIProcess/WebPageProxy.cpp: (WebKit::m_limitsNavigationsToAppBoundDomains): (WebKit::WebPageProxy::didChooseFilesForOpenPanelWithImageTranscoding): (WebKit::m_transcodingQueue): Deleted.
  • UIProcess/WebPageProxy.h:
  • WebKit.xcodeproj/project.pbxproj:

LayoutTests:

Enable the new tests on macOS WK1. eventSender.beginDragWithFiles is
supported on WK1 only.

  • fast/forms/file/entries-api/image-no-transcode-drag-drop-expected.txt: Added.
  • fast/forms/file/entries-api/image-no-transcode-drag-drop.html: Added.
  • fast/forms/file/entries-api/image-transcode-drag-drop-expected.txt: Added.
  • fast/forms/file/entries-api/image-transcode-drag-drop.html: Added.
  • platform/ios/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wincairo/TestExpectations:
  • platform/wk2/TestExpectations:

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

6:46 PM Changeset in webkit [265586] by Alan Coon
  • 5 edits in branches/safari-610.1-branch/Source/JavaScriptCore

Cherry-pick r265405. rdar://problem/66943811

[JSC] Speculate children first in DFG NewArray
https://bugs.webkit.org/show_bug.cgi?id=215308
<rdar://problem/64749263>

Reviewed by Mark Lam.

SpeculativeJIT::emitAllocateRawObject can create uninitialized butterfly since we later fill them.
However, DFG NewArray node has speculation after that. So if speculation failure happens, we release
half-baked butterfly.

Let's see the example.

8459 emitAllocateRawObject(resultGPR, structure, storageGPR, numElements, vectorLengthHint);
...
8482 case ALL_INT32_INDEXING_TYPES:
8483 case ALL_CONTIGUOUS_INDEXING_TYPES: {
8484 JSValueOperand operand(this, use, ManualOperandSpeculation);
8485 JSValueRegs operandRegs = operand.jsValueRegs();
8486 if (hasInt32(node->indexingType())) {
8487 DFG_TYPE_CHECK(
8488 operandRegs, use, SpecInt32Only,
8489 m_jit.branchIfNotInt32(operandRegs));
8490 }
8491 m_jit.storeValue(operandRegs, MacroAssembler::Address(storageGPR, sizeof(JSValue) * operandIdx));
8492 break;
8493 }

L8487-L8489 is doing speculation check. If it failed, the rest of the butterfly can be filled with garbage. This looks OK since
it is Int32 butterfly so GC never scans it. However, if have-a-bad-time happens and the array is reachable from the conservative root,
this half-baked array is converted from Int32 array to ArrayStorage. At that time, since Int32 butterfly should hold JSInt32,
we store this garbage to ArrayStorage. Later, if conservative root still holds this array, and GC scans this garbage as as JSValue,
this value confuses GC.

In this patch, we first perform speculation before creating uninitialized JSArray so that we can ensure that we never exit after
creating this array until we fill it. This strategy is the same to FTL's NewArray implementation.

And we also found that emitAllocateRawObject is allocating an object from JSFinalObject space while we use it for JSArray too.
We should get per-type allocator to ensure JSArray is allocated in its IsoSubspace.

  • dfg/DFGOperations.cpp:
  • dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::emitAllocateRawObject): (JSC::DFG::SpeculativeJIT::compileNewArray): (JSC::DFG::SpeculativeJIT::compileMaterializeNewObject):
  • ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileNewArray): (JSC::FTL::DFG::LowerDFGToB3::compileMaterializeNewObject):
  • runtime/JSObject.h: (JSC::JSObject::createRawObject): Deleted.

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

6:46 PM Changeset in webkit [265585] by Alan Coon
  • 7 edits
    2 adds in branches/safari-610.1-branch

Cherry-pick r265379. rdar://problem/66945470

REGRESSION (r260276): instructure.com custom PDF viewer stops scrolling / loading after switching to another tab then switching back
https://bugs.webkit.org/show_bug.cgi?id=215215
<rdar://problem/65743028>

Reviewed by Simon Fraser.

Source/WebCore:

Test: scrollingcoordinator/overflow-proxy-reattach.html

  • page/scrolling/ScrollingStateOverflowScrollProxyNode.cpp: (WebCore::ScrollingStateOverflowScrollProxyNode::setPropertyChangedBitsAfterReattach):

We need to reset OverflowScrollingNode after reattach.

  • page/scrolling/ScrollingStateOverflowScrollProxyNode.h:
  • testing/Internals.cpp: (WebCore::Internals::setPageIsInWindow):
  • testing/Internals.h:
  • testing/Internals.idl:

Add direct testing support for background tab state.

LayoutTests:

  • scrollingcoordinator/overflow-proxy-reattach-expected.html: Added.
  • scrollingcoordinator/overflow-proxy-reattach.html: Added.

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

6:46 PM Changeset in webkit [265584] by Alan Coon
  • 2 edits in branches/safari-610.1-branch/Source/WebCore

Cherry-pick r265346. rdar://problem/66945452

[CG] Avoid creating a sub-image when drawing a small scaled sub-rect from a native image
https://bugs.webkit.org/show_bug.cgi?id=215015
<rdar://problem/63845893>

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-08-06
Reviewed by Simon Fraser.

The reason for creating the sub-image in GraphicsContext::drawNativeImage()
is to have a better image interpolation for the scaled sub-rect. For small
destRect, the interpolation on the original image is almost the same as
the interpolation on the sub-image. So we should avoid creating the sub-
image if destRect.area() is less than some minimum value. Creating many
sub-images can affect the rendering performance.

  • platform/graphics/cg/GraphicsContextCG.cpp: (WebCore::GraphicsContext::drawNativeImage):

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

6:46 PM Changeset in webkit [265583] by Alan Coon
  • 2 edits in branches/safari-610.1-branch/Source/WebKit

Cherry-pick r265339. rdar://problem/66945496

[Mac,WK2] REGRESSION(r262322): ScreenTime overlay is hidden in fullscreen mode
https://bugs.webkit.org/show_bug.cgi?id=215222
<rdar://problem/65871844>

Reviewed by Eric Carlson.

During a refactor, a call to -[NSWindow setAutodisplay:YES] was dropped (in addition to a call to
NSEnableScreenUpdates(), but that has a 1s timeout so its effects aren't persistent). This meant
all NSViews added to that window need -display called on them explicitly in order to paint, and
so subviews like the ScreenTime overlay is never drawn.

  • UIProcess/mac/WKFullScreenWindowController.mm: (-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:finalFrame:]):

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

6:45 PM Changeset in webkit [265582] by Alan Coon
  • 2 edits in branches/safari-610.1-branch/Source/WebKit

Cherry-pick r265322. rdar://problem/66943882

Could not find module 'WebKit' for target 'armv7-apple-ios'
<https://bugs.webkit.org/show_bug.cgi?id=215190>
<rdar://problem/65642049>

Reviewed by Brady Eidson.

  • SwiftOverlay/Configurations/WebKitSwiftOverlayTests.xcconfig: Define SWIFT_MODULE_ONLY_ARCHS to emit other architectures.

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

6:08 PM Changeset in webkit [265581] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

First search on Google Maps shows black bar at top of map and blank strips through the middle
https://bugs.webkit.org/show_bug.cgi?id=214945
<rdar://problem/63374422>

Reviewed by Tim Horton.

On iOS with an attached keyboard, Google Maps appears to calculate
the viewport it will use for map display at a time when the Unified
Control Bar (keyboard accessories) is visible. If it then changes the
map location via the user submitting a search form, the resulting map
will be using the incorrect viewport as the control bar has disappeared.
This causes parts of the map display to get the wrong stencil masks, leaving
blank strips. This fixes itself as soon as you force the map to recalculate
its viewport (e.g. by rotating the device).

Rather than have Google Maps update its code to detect these viewport changes,
we're adding a Quirk to not use the control bar in these calculations.

  • page/Quirks.cpp:

(WebCore::Quirks::shouldAvoidResizingWhenInputViewBoundsChange const):
Return true for "*.google.com/maps/".

6:00 PM Changeset in webkit [265580] by Devin Rousso
  • 2 edits in trunk/Tools

Update my watchlist entries and add some additional Web Inspector definitions

  • Scripts/webkitpy/common/config/watchlist:
5:54 PM Changeset in webkit [265579] by Russell Epstein
  • 8 edits in branches/safari-610.1-branch/Source

Versioning.

WebKit-610.1.27

5:31 PM Changeset in webkit [265578] by Russell Epstein
  • 1 copy in tags/Safari-610.1.26

Tag Safari-610.1.26.

5:12 PM Changeset in webkit [265577] by Alan Coon
  • 8 edits in branches/safari-610.1.25.5-branch/Source

Versioning.

WebKit-7610.1.25.5.1

4:55 PM Changeset in webkit [265576] by Alan Coon
  • 1 copy in branches/safari-610.1.25.5-branch

New branch.

4:44 PM Changeset in webkit [265575] by Alan Coon
  • 1 copy in branches/safari-610.1.25.4-branch

New branch.

4:10 PM Changeset in webkit [265574] by Jonathan Bedard
  • 5 edits in trunk/Tools

[webkitpy] Use webkitcorepy's auto installer for requests
https://bugs.webkit.org/show_bug.cgi?id=214951
<rdar://problem/66308049>

Reviewed by Stephanie Lewis.

  • Scripts/webkitpy/common/net/bugzilla/test_expectation_updater.py: Use webkitcorepy's auto installer.
  • Scripts/webkitpy/results/upload.py: Ditto.
  • Scripts/webkitpy/results/upload_unittest.py: Ditto.
  • Scripts/webkitpy/thirdparty/init.py:

(AutoinstallImportHook._ensure_autoinstalled_dir_is_in_sys_path): Make sure webkitcorepy takes precedence
over webkitpy.
(AutoinstallImportHook.find_module): Delete _install_requests.
(AutoinstallImportHook._install_pytest): Ditto.
(AutoinstallImportHook._install_beautifulsoup): Ditto.
(AutoinstallImportHook._install_selenium): Ditto.
(AutoinstallImportHook._install_requests): Deleted.

4:06 PM Changeset in webkit [265573] by commit-queue@webkit.org
  • 4 edits in trunk

Fail preconnect requests to deprecated TLS instead of allowing application to show warning
https://bugs.webkit.org/show_bug.cgi?id=215424
<rdar://problem/66784116>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-08-12
Reviewed by Geoffrey Garen.

Source/WebKit:

Preconnecting is just a suggestion, so if the content really wants to load something from the deprecated TLS server,
we will see the warning when the load actually happens.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/TLSDeprecation.mm:

(TestWebKitAPI::TEST):
(TestWebKitAPI::webViewWithNavigationDelegate):

3:49 PM Changeset in webkit [265572] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[iOS] Allow additional iokit-get-property to support HEIF images
https://bugs.webkit.org/show_bug.cgi?id=215431
<rdar://problem/66760775>

Reviewed by Per Arne Vollan.

Allow the WebContent process to read the HEVCCanDecodeTileToCanvas property.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
3:41 PM Changeset in webkit [265571] by Alan Coon
  • 3 edits in branches/safari-610.1.25.1-branch/Source/WebKit

Cherry-pick r265427. rdar://problem/66932337

Add required entitlement for Catalyst
https://bugs.webkit.org/show_bug.cgi?id=215244

Reviewed by Darin Adler.

The entitlement 'com.apple.private.webkit.use-xpc-endpoint' should be added to the WebContent process on Catalyst as well,
since it is needed on all Apple platforms. This entitlement is needed to support direct XPC communication between WebKit
processes, which is used to send the Launch Services database to the WebContent process from the Networking process. Also,
add some more logging related to this, to detect if it takes a long time for the WebContent process to receive the database.

  • Scripts/process-entitlements.sh:
  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm: (WebKit::WebPage::platformDidReceiveLoadParameters):

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

3:40 PM Changeset in webkit [265570] by Alan Coon
  • 8 edits in branches/safari-610.1.25.1-branch/Source

Versioning.

WebKit-7610.1.25.1.3

3:32 PM Changeset in webkit [265569] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Fix iokit get property sandbox violation
https://bugs.webkit.org/show_bug.cgi?id=215430
<rdar://problem/65290967>

Reviewed by Brent Fulgham.

The WebContent process' sandbox on macOS needs to allow querying the iokit property "acoustic-id".

  • WebProcess/com.apple.WebProcess.sb.in:
3:03 PM Changeset in webkit [265568] by Alan Coon
  • 8 edits in branches/safari-610.2.1-branch/Source

Versioning.

WebKit-610.2.1

2:57 PM Changeset in webkit [265567] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

Add my new Twitter handle to the feature status page
https://bugs.webkit.org/show_bug.cgi?id=215429

Reviewed by Chris Dumez.

rniwa_dev is my new Twitter handle.

  • features.json:
2:51 PM Changeset in webkit [265566] by Alan Coon
  • 1 copy in branches/safari-610.2.1-branch

Tracking WebKit-7610.2.1

2:40 PM Changeset in webkit [265565] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] email notifications should include link to corresponding bug
https://bugs.webkit.org/show_bug.cgi?id=215425

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(AnalyzeCompileWebKitResults.send_email_for_new_build_failure):
(AnalyzeLayoutTestsResults.send_email_for_new_test_failures):

2:31 PM Changeset in webkit [265564] by stephan.szabo@sony.com
  • 2 edits in trunk/Source/WebCore

[PlayStation] Build fix for !ENABLE(ACCESSIBILITY) after r265514
https://bugs.webkit.org/show_bug.cgi?id=215426

AXObjectCache::getOrCreate(AccessibilityRole) changed names
in the above, but the short definition for
!ENABLE(ACCESSIBILITY) didn't update.

Unreviewed build fix.

  • accessibility/AXObjectCache.h: Update name to match new name
2:11 PM Changeset in webkit [265563] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Unreviewed test gardening, rebaseline test after r265514.

  • inspector/dom/getAccessibilityPropertiesForNode-expected.txt:
  • inspector/dom/getAccessibilityPropertiesForNode.html: Remove a FIXME since it is no longer applicable.
1:55 PM Changeset in webkit [265562] by Peng Liu
  • 27 edits in trunk/Source

Add the support to return to element fullscreen from picture-in-picture
https://bugs.webkit.org/show_bug.cgi?id=215305

Reviewed by Jer Noble.

Source/WebCore:

When a container element enters fullscreen (with the fullscreen API), a descendant
video element will enter the video fullscreen standby state so that it can enter
picture-in-picture on application suspend (r226217). But we cannot restore
to that state from the picture-in-picture mode when we click the "restore" button
on the top-right corner of the PiP window. Instead, the video element will return
to the inline mode.

However, when a video element enters video fullscreen first and then enters
picture-in-picture, we can let the video restore to fullscreen by clicking the
"restore" button on the top-right corner of the picture-in-picture window.

The inconsistent behaviors may confuse users who are not aware of the difference
between the fullscreen API (or element fullscreen) and video fullscreen.

This patch enables the support to restore to element fullscreen from picture-in-picture
mode so that users can have a consistent experience on element fullscreen and
video fullscreen.

  • dom/FullscreenManager.h:

Export requestFullscreenForElement() so that we can use it in WebKit code.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::enterFullscreen):
(WebCore::HTMLMediaElement::prepareForVideoFullscreenStandby):

  • html/HTMLMediaElement.h:
  • page/ChromeClient.h:

(WebCore::ChromeClient::prepareForVideoFullscreen):
Add the interface to request a video element to be prepared for the video fullscreen
standby state.

  • platform/cocoa/VideoFullscreenChangeObserver.h:

Add prepareToExitFullscreen() and fullscreenWillReturnToInline().

  • platform/cocoa/VideoFullscreenModel.h:

(WebCore::VideoFullscreenModelClient::hasVideoChanged):
(WebCore::VideoFullscreenModelClient::videoDimensionsChanged):
(WebCore::VideoFullscreenModelClient::prepareToExitPictureInPicture):
Some minor clean-ups and add function prepareToExitPictureInPicture().

  • platform/ios/VideoFullscreenInterfaceAVKit.h:
  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(VideoFullscreenInterfaceAVKit::cleanupFullscreen):
(VideoFullscreenInterfaceAVKit::prepareForPictureInPictureStop):
(VideoFullscreenInterfaceAVKit::didStartPictureInPicture):
(VideoFullscreenInterfaceAVKit::willStopPictureInPicture):
(VideoFullscreenInterfaceAVKit::prepareForPictureInPictureStopWithCompletionHandler):
(VideoFullscreenInterfaceAVKit::setReadyToStopPictureInPicture):
(VideoFullscreenInterfaceAVKit::willEnterStandbyFromPictureInPicture):
(VideoFullscreenInterfaceAVKit::setWillEnterStandbyFromPictureInPicture):
(VideoFullscreenInterfaceAVKit::fullscreenMayReturnToInline): Deleted.
When we enter picture-in-picture, we need to save the state and be prepared to
restore to element fullscreen if needed.

Before we exit picture-in-picture, if the "restore" button is clicked, we need
to notify the client to prepare for the picture-in-picture stop, and call
VideoFullscreenInterfaceAVKit::setReadyToStopPictureInPicture(true) when the client
is ready.

Based on those changes, a client (e.g., WKFullScreenWindowControllerVideoFullscreenModelClient)
can coordinate with WKFullScreenWindowController to implement the "restore to
element fullscreen" feature.

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(VideoFullscreenControllerContext::fullscreenWillReturnToInline):
(VideoFullscreenControllerContext::fullscreenMayReturnToInline): Deleted.

Source/WebKit:

This patch replaces WKFullScreenViewControllerVideoFullscreenModelClient
with WKFullScreenWindowControllerVideoFullscreenModelClient. We need to do
that because the instance of WKFullScreenViewControllerVideoFullscreenModelClient
will be destroyed after the container element exits fullscreen while the video
element enters picture-in-picture.

The instance of WKFullScreenWindowControllerVideoFullscreenModelClient
will always exist when the WKFullScreenWindowController instance is alive,
so that it can receive callbacks from the VideoFullscreenInterfaceAVKit instance
to implement the "return to element fullscreen from picture-in-picture" feature.

This patch supports the following transitions:
element fullscreen -> picture-in-picture (through user gestures)
element fullscreen -> picture-in-picture (through the PiP button)
picture-in-picture -> element fullscreen (when the tab is visible)
picture-in-picture -> element fullscreen (when the tab is invisible)
picture-in-picture -> element fullscreen (when the browser is in background)
picture-in-picture -> inline (when the browser is in foreground)
exit picture-in-picture when the browser is in background

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

(WebKit::VideoFullscreenModelContext::fullscreenWillReturnToInline):
(WebKit::VideoFullscreenModelContext::prepareToExitFullscreen):
Notify clients to prepare for the stop of fullscreen/picture-in-picture.
(WebKit::VideoFullscreenManagerProxy::setupFullscreenWithID):
Fix issues that increase the client count unnecessarily.
(WebKit::VideoFullscreenManagerProxy::preparedToReturnToInline):
Call m_page->fullscreenMayReturnToInline() earlier.
(WebKit::VideoFullscreenManagerProxy::fullscreenMayReturnToInline):
Ditto.
(WebKit::VideoFullscreenManagerProxy::fullscreenWillReturnToInline):
Notify VideoFullscreenManager to prepare for exiting picture-in-picture or video fullscreen
and report the destination rectangle of the exit picture-in-picture or video fullscreen animations.

  • UIProcess/WebFullScreenManagerProxy.cpp:

(WebKit::WebFullScreenManagerProxy::requestEnterFullScreen):

  • UIProcess/WebFullScreenManagerProxy.h:

Add a function requestEnterFullScreen() so that we can request an element to enter fullscreen
from the UI process side.

  • UIProcess/ios/fullscreen/WKFullScreenViewController.h:
  • UIProcess/ios/fullscreen/WKFullScreenViewController.mm:

(-[WKFullScreenViewController initWithWebView:]):
(-[WKFullScreenViewController dealloc]):
(-[WKFullScreenViewController videoControlsManagerDidChange]):
(-[WKFullScreenViewController setAnimatingViewAlpha:]):
(-[WKFullScreenViewController _cancelAction:]):
(WKFullScreenViewControllerVideoFullscreenModelClient::setParent): Deleted.
(WKFullScreenViewControllerVideoFullscreenModelClient::setInterface): Deleted.
(WKFullScreenViewControllerVideoFullscreenModelClient::interface const): Deleted.
(-[WKFullScreenViewController willEnterPictureInPicture]): Deleted.
(-[WKFullScreenViewController didEnterPictureInPicture]): Deleted.
(-[WKFullScreenViewController failedToEnterPictureInPicture]): Deleted.
Minor clean-ups and remove code related to WKFullScreenViewControllerVideoFullscreenModelClient.

  • UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.h:
  • UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:

(WKFullScreenWindowControllerVideoFullscreenModelClient::setParent):
(WKFullScreenWindowControllerVideoFullscreenModelClient::setInterface):
(WKFullScreenWindowControllerVideoFullscreenModelClient::interface const):
(-[WKFullScreenWindowController initWithWebView:]):
(-[WKFullScreenWindowController dealloc]):
(-[WKFullScreenWindowController enterFullScreen]):
(-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:finalFrame:]):
(-[WKFullScreenWindowController requestEnterFullScreen]):
(-[WKFullScreenWindowController requestExitFullScreen]):
(-[WKFullScreenWindowController _completedExitFullScreen]):
(-[WKFullScreenWindowController videoControlsManagerDidChange]):
(-[WKFullScreenWindowController willEnterPictureInPicture]):
(-[WKFullScreenWindowController didEnterPictureInPicture]):
(-[WKFullScreenWindowController failedToEnterPictureInPicture]):
(-[WKFullScreenWindowController prepareToExitPictureInPicture]):
(-[WKFullScreenWindowController didExitPictureInPicture]):
Add WKFullScreenWindowControllerVideoFullscreenModelClient and implement the support
to "restore fullscreen from picture-in-picture".

  • WebProcess/FullScreen/WebFullScreenManager.cpp:

(WebKit::WebFullScreenManager::enterFullScreenForElement):
(WebKit::WebFullScreenManager::requestEnterFullScreen):

  • WebProcess/FullScreen/WebFullScreenManager.h:
  • WebProcess/FullScreen/WebFullScreenManager.messages.in:

Add the interface requestEnterFullScreen() and the corresponding IPC message.

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::prepareForVideoFullscreen):

  • WebProcess/WebCoreSupport/WebChromeClient.h:

Add the interface to prepare for video fullscreen standby. The web process can
use this interface to create a VideoFullscreenManager instance to avoid the
scenario that an IPC message comes from the VideoFullscreenManagerProxy but
the VideoFullscreenManager instance is not constructed yet.

  • WebProcess/cocoa/VideoFullscreenManager.h:
  • WebProcess/cocoa/VideoFullscreenManager.messages.in:
  • WebProcess/cocoa/VideoFullscreenManager.mm:

(WebKit::VideoFullscreenManager::fullscreenWillReturnToInline):
(WebKit::VideoFullscreenManager::fullscreenMayReturnToInline): Deleted.
Rename fullscreenMayReturnToInline() to fullscreenWillReturnToInline().
In the UI process side, fullscreenMayReturnToInline() is used by
VideoFullscreenManagerProxy to notify applications regarding UI
changes (e.g., switch browser tabs).

1:11 PM Changeset in webkit [265561] by wenson_hsieh@apple.com
  • 4 edits in trunk

Broken formatting in price table on yandex.ru after translating to English
https://bugs.webkit.org/show_bug.cgi?id=215416
<rdar://problem/66354018>

Reviewed by Tim Horton.

Source/WebCore:

Extend the behavior added in r265188 so that it applies to all elements that have display: table-cell;, rather
than only table data cell elements.

  • editing/TextManipulationController.cpp:

(WebCore::isEnclosingItemBoundaryElement):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:

(TestWebKitAPI::TEST):

12:53 PM Changeset in webkit [265560] by wenson_hsieh@apple.com
  • 2 edits in trunk/Source/WebKit

WebPageProxy::registerEditCommand should be robust against invalid undo step identifiers
https://bugs.webkit.org/show_bug.cgi?id=215412
<rdar://problem/66296820>

Reviewed by Tim Horton.

Add a MESSAGE_CHECK to avoid ever creating a WebEditCommandProxy with an invalid command identifier.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::registerEditCommand):

12:46 PM Changeset in webkit [265559] by Adrian Perez de Castro
  • 4 edits in trunk/Source/WebCore

Unreviewed non-unified build fix.

No new tests needed.

  • accessibility/AccessibilityMenuListOption.cpp: Add missing inclusion of

HTMLSelectElement.h.

  • page/Quirks.h: Add mising forward declaration of HTMLVideoElement.
  • page/UndoItem.cpp: Add missing inclusion of Document.h.
12:45 PM Changeset in webkit [265558] by Russell Epstein
  • 8 edits in trunk/Source

Versioning.

WebKit-610.2.2

12:21 PM Changeset in webkit [265557] by Devin Rousso
  • 2 edits
    1 add in trunk/Tools

Add Copy WebKit Permalink items to Sublime Text command palette
https://bugs.webkit.org/show_bug.cgi?id=215418

Reviewed by Keith Miller.

  • CopyPermalink/Sublime Text/CopyWebKitPermalink/Context.sublime-commands: Added.
  • CopyPermalink/Sublime Text/INSTALL:
11:07 AM Changeset in webkit [265556] by Jon Davis
  • 1 edit
    1 delete in trunk/Websites/webkit.org

Remove unused selector performance test
https://bugs.webkit.org/show_bug.cgi?id=215414

Reviewed by Darin Adler.

  • perf/slickspeed/config.ini: Removed.
  • perf/slickspeed/footer.html: Removed.
  • perf/slickspeed/frameworks/DomQuery.js: Removed.
  • perf/slickspeed/frameworks/dummy.js: Removed.
  • perf/slickspeed/frameworks/jquery-1.2.3.js: Removed.
  • perf/slickspeed/frameworks/prototype.js: Removed.
  • perf/slickspeed/header.html: Removed.
  • perf/slickspeed/index.php: Removed.
  • perf/slickspeed/instructions.txt: Removed.
  • perf/slickspeed/logo.png: Removed.
  • perf/slickspeed/selectors.list: Removed.
  • perf/slickspeed/style.css: Removed.
  • perf/slickspeed/system/index.php: Removed.
  • perf/slickspeed/system/slickspeed.js: Removed.
  • perf/slickspeed/system/template.php: Removed.
  • perf/slickspeed/template.html: Removed.
10:57 AM Changeset in webkit [265555] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] emails for test failures should include link to test history
https://bugs.webkit.org/show_bug.cgi?id=215337

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(AnalyzeLayoutTestsResults.send_email_for_new_test_failures):

10:56 AM Changeset in webkit [265554] by Ryan Haddad
  • 2 edits in trunk/Tools

[ews-build] Add another Big Sur bot
https://bugs.webkit.org/show_bug.cgi?id=215193

Reviewed by Aakash Jain.

  • BuildSlaveSupport/ews-build/config.json: Move ews169 from tvOS -> Big Sir.
10:55 AM Changeset in webkit [265553] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] send emails as html instead of plain-text
https://bugs.webkit.org/show_bug.cgi?id=215331

Reviewed by Darin Adler.

  • BuildSlaveSupport/ews-build/send_email.py:

(send_email): Send email as html instead of plain-text.

  • BuildSlaveSupport/ews-build/steps.py:

(AnalyzeCompileWebKitResults.send_email_for_new_build_failure): Encode few characters like <,>,& for html. Also format the logs in <code> block.
(AnalyzeCompileWebKitResults.send_email_for_preexisting_build_failure): Ditto.

9:48 AM Changeset in webkit [265552] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, address post-landing review comment from Sam Weinig for r265536.

  • Modules/webaudio/WaveShaperDSPKernel.cpp:

(WebCore::WaveShaperDSPKernel::processCurve):

9:25 AM Changeset in webkit [265551] by Jonathan Bedard
  • 3 edits
    1 move in trunk/Tools

[resultsdbpy] Move to Tools/Scripts/libraries
https://bugs.webkit.org/show_bug.cgi?id=215401
<rdar://problem/66868387>

Reviewed by Aakash Jain.

  • BuildSlaveSupport/ews-build/steps.py:

(CheckPatchRelevance): Changed resultsdbpy location.
(RunResultsdbpyTests): Ditto.

  • BuildSlaveSupport/ews-build/steps_unittest.py:

(TestRunResultsdbpyTests.test_success):
(TestRunResultsdbpyTests.test_failure):

  • Scripts/libraries/resultsdbpy: Copied from Tools/resultsdbpy.
  • resultsdbpy: Removed.
8:25 AM Changeset in webkit [265550] by Lauro Moura
  • 4 edits
    8 adds in trunk/LayoutTests

[GTK][WPE] Rebaseline after new offscreencanvas progress

Unreviewed test gardening.

  • platform/glib/fast/mediacapturefromelement/CanvasCaptureMediaStream-offscreencanvas-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/html/canvas/offscreen/filter/offscreencanvas.filter.w-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/html/canvas/offscreen/manual/filter/offscreencanvas.filter.w-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/html/dom/idlharness.worker-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
6:35 AM Changeset in webkit [265549] by svillar@igalia.com
  • 3 edits in trunk/Source/WebCore

Unreviewed build fix after r265546.

The <Ref.h> include should be now in the header now that we've inlined the create() function.

  • Modules/webxr/WebXRInputSourceArray.cpp: Removed include.
  • Modules/webxr/WebXRInputSourceArray.h: Added include
6:34 AM WebKitFlatpakSDK edited by Philippe Normand
(diff)
6:33 AM WebKitFlatpakSDK/DebugWithRR created by Philippe Normand
5:25 AM Changeset in webkit [265548] by youenn@apple.com
  • 95 edits
    4 adds
    2 deletes in trunk

Refresh WritableStream up to spec
https://bugs.webkit.org/show_bug.cgi?id=215267

Reviewed by Geoff Garen.

LayoutTests/imported/w3c:

  • web-platform-tests/encoding/streams/realms.window-expected.txt:
  • web-platform-tests/fetch/api/response/response-stream-disturbed-by-pipe.any-expected.txt:
  • web-platform-tests/fetch/api/response/response-stream-disturbed-by-pipe.any.worker-expected.txt:
  • web-platform-tests/streams/idlharness.any-expected.txt:
  • web-platform-tests/streams/idlharness.any.worker-expected.txt:
  • web-platform-tests/streams/piping/abort.any-expected.txt:
  • web-platform-tests/streams/piping/abort.any.worker-expected.txt:
  • web-platform-tests/streams/piping/close-propagation-backward.any-expected.txt:
  • web-platform-tests/streams/piping/close-propagation-backward.any.worker-expected.txt:
  • web-platform-tests/streams/piping/close-propagation-forward.any-expected.txt:
  • web-platform-tests/streams/piping/close-propagation-forward.any.worker-expected.txt:
  • web-platform-tests/streams/piping/error-propagation-backward.any-expected.txt:
  • web-platform-tests/streams/piping/error-propagation-backward.any.worker-expected.txt:
  • web-platform-tests/streams/piping/error-propagation-forward.any-expected.txt:
  • web-platform-tests/streams/piping/error-propagation-forward.any.worker-expected.txt:
  • web-platform-tests/streams/piping/flow-control.any-expected.txt:
  • web-platform-tests/streams/piping/flow-control.any.worker-expected.txt:
  • web-platform-tests/streams/piping/general.any-expected.txt:
  • web-platform-tests/streams/piping/general.any.worker-expected.txt:
  • web-platform-tests/streams/piping/multiple-propagation.any-expected.txt:
  • web-platform-tests/streams/piping/multiple-propagation.any.worker-expected.txt:
  • web-platform-tests/streams/piping/pipe-through.any-expected.txt:
  • web-platform-tests/streams/piping/pipe-through.any.worker-expected.txt:
  • web-platform-tests/streams/piping/then-interception.any-expected.txt:
  • web-platform-tests/streams/piping/then-interception.any.worker-expected.txt:
  • web-platform-tests/streams/piping/throwing-options.any-expected.txt:
  • web-platform-tests/streams/transform-streams/patched-global.any.worker-expected.txt:
  • web-platform-tests/streams/readable-streams/patched-global.any-expected.txt:
  • web-platform-tests/streams/readable-streams/patched-global.any.worker-expected.txt:
  • web-platform-tests/streams/readable-streams/reentrant-strategies.any-expected.txt:
  • web-platform-tests/streams/readable-streams/reentrant-strategies.any.worker-expected.txt:
  • web-platform-tests/streams/transform-streams/reentrant-strategies.any.worker-expected.txt:
  • web-platform-tests/streams/writable-streams/aborting.any-expected.txt:
  • web-platform-tests/streams/writable-streams/aborting.any.worker-expected.txt:
  • web-platform-tests/streams/writable-streams/bad-strategies.any-expected.txt:
  • web-platform-tests/streams/writable-streams/bad-strategies.any.worker-expected.txt:
  • web-platform-tests/streams/writable-streams/bad-underlying-sinks.any-expected.txt:
  • web-platform-tests/streams/writable-streams/bad-underlying-sinks.any.worker-expected.txt:
  • web-platform-tests/streams/writable-streams/byte-length-queuing-strategy.any-expected.txt:
  • web-platform-tests/streams/writable-streams/byte-length-queuing-strategy.any.worker-expected.txt:
  • web-platform-tests/streams/writable-streams/close.any-expected.txt:
  • web-platform-tests/streams/writable-streams/close.any.worker-expected.txt:
  • web-platform-tests/streams/writable-streams/constructor.any-expected.txt:
  • web-platform-tests/streams/writable-streams/constructor.any.worker-expected.txt:
  • web-platform-tests/streams/writable-streams/count-queuing-strategy.any-expected.txt:
  • web-platform-tests/streams/writable-streams/count-queuing-strategy.any.worker-expected.txt:
  • web-platform-tests/streams/writable-streams/error.any-expected.txt:
  • web-platform-tests/streams/writable-streams/error.any.worker-expected.txt:
  • web-platform-tests/streams/writable-streams/floating-point-total-queue-size.any-expected.txt:
  • web-platform-tests/streams/writable-streams/floating-point-total-queue-size.any.worker-expected.txt:
  • web-platform-tests/streams/writable-streams/general.any-expected.txt:
  • web-platform-tests/streams/writable-streams/general.any.worker-expected.txt:
  • web-platform-tests/streams/writable-streams/properties.any-expected.txt:
  • web-platform-tests/streams/writable-streams/properties.any.worker-expected.txt:
  • web-platform-tests/streams/writable-streams/reentrant-strategy.any-expected.txt:
  • web-platform-tests/streams/writable-streams/reentrant-strategy.any.worker-expected.txt:
  • web-platform-tests/streams/writable-streams/start.any-expected.txt:
  • web-platform-tests/streams/writable-streams/start.any.js:
  • web-platform-tests/streams/writable-streams/start.any.worker-expected.txt:
  • web-platform-tests/streams/writable-streams/write.any-expected.txt:
  • web-platform-tests/streams/writable-streams/write.any.worker-expected.txt:
  • web-platform-tests/workers/semantics/interface-objects/001.worker-expected.txt:
  • web-platform-tests/workers/semantics/interface-objects/002.worker-expected.txt:

Source/WebCore:

Update according latest spec, including WebIDL, controller and writer.
Covered by rebased tests.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/streams/StreamInternals.js:
  • Modules/streams/WritableStream.idl:
  • Modules/streams/WritableStream.js:
  • Modules/streams/WritableStreamDefaultController.idl: Added.
  • Modules/streams/WritableStreamDefaultController.js: Added.
  • Modules/streams/WritableStreamDefaultWriter.idl: Added.
  • Modules/streams/WritableStreamDefaultWriter.js: Added.
  • Modules/streams/WritableStreamInternals.js:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:

Source/WebKit:

  • Shared/WebPreferences.yaml:

Add a dedicated runtime flag, off by default.

Tools:

Put console log in stderr as this makes some tests flaky otherwise.

  • DumpRenderTree/TestOptions.cpp:

(shouldDumpJSConsoleLogInStdErr):

  • WebKitTestRunner/TestOptions.cpp:

(WTR::shouldDumpJSConsoleLogInStdErr):

LayoutTests:

  • js/dom/builtin-getter-name-expected.txt:
  • js/dom/builtin-getter-name.html:
  • streams/pipe-to-expected.txt:
  • streams/reference-implementation/bad-strategies-expected.txt:
  • streams/reference-implementation/bad-underlying-sinks-expected.txt:
  • streams/reference-implementation/brand-checks-expected.txt:
  • streams/reference-implementation/byte-length-queuing-strategy-expected.txt:
  • streams/reference-implementation/count-queuing-strategy-expected.txt:
  • streams/reference-implementation/pipe-through-expected.txt:
  • streams/reference-implementation/pipe-to-expected.txt:
  • streams/reference-implementation/pipe-to-options-expected.txt:
  • streams/reference-implementation/readable-stream-templated-expected.txt:
  • streams/reference-implementation/writable-stream-abort-expected.txt: Removed.
  • streams/reference-implementation/writable-stream-abort.html: Removed.

Removed as not up to date.
We should probably do so with all the reference implementation tests.

  • streams/reference-implementation/writable-stream-expected.txt:
4:48 AM Changeset in webkit [265547] by youenn@apple.com
  • 4 edits in trunk/Source

Enable H264 low latency code path by default for MacOS
https://bugs.webkit.org/show_bug.cgi?id=215371

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

  • Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:

(-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
Remove the workaround to use VCP encoder if software is detected as regular software code path should work now.

Source/WebKit:

Covered by existing tests, in particular platform/mac/webrtc/captureCanvas-webrtc-software-encoder.html.

  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultWebRTCH264LowLatencyEncoderEnabled):

4:06 AM Changeset in webkit [265546] by svillar@igalia.com
  • 50 edits
    2 copies
    1 move
    17 adds in trunk

[WebXR] Update WebXR WPT directory
https://bugs.webkit.org/show_bug.cgi?id=215224

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • web-platform-tests/webxr/anchors/ar_anchor_freefloating_create_move.https.html: Added.
  • web-platform-tests/webxr/anchors/ar_anchor_freefloating_delay_creation.https.html: Added.
  • web-platform-tests/webxr/anchors/ar_anchor_freefloating_failure.https.html: Added.
  • web-platform-tests/webxr/anchors/ar_anchor_freefloating_pause_resume_stop.https.html: Added.
  • web-platform-tests/webxr/anchors/ar_anchor_states.https.html: Added.
  • web-platform-tests/webxr/anchors/idlharness.https.window.html: Added.
  • web-platform-tests/webxr/anchors/idlharness.https.window.js: Copied from LayoutTests/imported/w3c/web-platform-tests/webxr/ar-module/idlharness.https.window.js.

(async idl_array):

  • web-platform-tests/webxr/anchors/w3c-import.log: Added.
  • web-platform-tests/webxr/ar-module/idlharness.https.window-expected.txt:
  • web-platform-tests/webxr/ar-module/idlharness.https.window.js:

(async idl_array):

  • web-platform-tests/webxr/dom-overlay/ar_dom_overlay.https.html:
  • web-platform-tests/webxr/dom-overlay/ar_dom_overlay_hit_test.https.html: Added.
  • web-platform-tests/webxr/dom-overlay/idlharness.https.window.html: Added.
  • web-platform-tests/webxr/dom-overlay/idlharness.https.window.js: Copied from LayoutTests/imported/w3c/web-platform-tests/webxr/ar-module/idlharness.https.window.js.

(async idl_array):

  • web-platform-tests/webxr/dom-overlay/w3c-import.log:
  • web-platform-tests/webxr/events_input_sources_change.https.html:
  • web-platform-tests/webxr/events_referenceSpace_reset_immersive.https.html:
  • web-platform-tests/webxr/events_session_select.https.html:
  • web-platform-tests/webxr/events_session_select_subframe.https.html:
  • web-platform-tests/webxr/events_session_squeeze.https.html:
  • web-platform-tests/webxr/gamepads-module/xrInputSource_gamepad_disconnect.https.html:
  • web-platform-tests/webxr/gamepads-module/xrInputSource_gamepad_input_registered.https.html:
  • web-platform-tests/webxr/getInputPose_handedness.https.html:
  • web-platform-tests/webxr/getInputPose_pointer.https.html:
  • web-platform-tests/webxr/getViewerPose_emulatedPosition.https.html:
  • web-platform-tests/webxr/hit-test/ar_hittest_subscription_inputSources.https.html: Added.
  • web-platform-tests/webxr/hit-test/ar_hittest_subscription_refSpaces.https.html:
  • web-platform-tests/webxr/hit-test/ar_hittest_subscription_states_regular.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/webxr/hit-test/ar_hittest_subscription_states.https.html.
  • web-platform-tests/webxr/hit-test/ar_hittest_subscription_states_transient.https.html: Added.
  • web-platform-tests/webxr/hit-test/ar_hittest_subscription_transientInputSources.https.html: Added.
  • web-platform-tests/webxr/hit-test/idlharness.https.html: Added.
  • web-platform-tests/webxr/hit-test/w3c-import.log:
  • web-platform-tests/webxr/hit-test/xrRay_constructor.https.html:
  • web-platform-tests/webxr/idlharness.https.window-expected.txt:
  • web-platform-tests/webxr/idlharness.https.window.js:

(async idl_array):

  • web-platform-tests/webxr/render_state_update.https.html: Added.
  • web-platform-tests/webxr/resources/webxr_test_constants.js:
  • web-platform-tests/webxr/resources/webxr_util.js:

(xr_debug):
(async requestSkipAnimationFrame):
(async loadChromiumResources):
(setupWebKitWebXRTestAPI):
(xr_promise_test): Deleted.
(async xr_session_promise_test): Deleted.

  • web-platform-tests/webxr/w3c-import.log:
  • web-platform-tests/webxr/webGLCanvasContext_create_xrcompatible.https.html:
  • web-platform-tests/webxr/webGLCanvasContext_makecompatible_contextlost.https.html:
  • web-platform-tests/webxr/webGLCanvasContext_makecompatible_reentrant.https.html: Added.
  • web-platform-tests/webxr/xrBoundedReferenceSpace_updates.https.html:
  • web-platform-tests/webxr/xrInputSource_add_remove.https.html:
  • web-platform-tests/webxr/xrInputSource_emulatedPosition.https.html:
  • web-platform-tests/webxr/xrInputSource_profiles.https.html:
  • web-platform-tests/webxr/xrInputSource_sameObject.https.html:
  • web-platform-tests/webxr/xrPose_transform_sameObject.https.html:
  • web-platform-tests/webxr/xrReferenceSpace_originOffset.https.html:
  • web-platform-tests/webxr/xrReferenceSpace_originOffsetBounded.https.html:
  • web-platform-tests/webxr/xrReferenceSpace_relationships.https.html: Added.
  • web-platform-tests/webxr/xrSession_input_events_end.https.html:
  • web-platform-tests/webxr/xrSession_requestAnimationFrame_timestamp.https.html:
  • web-platform-tests/webxr/xrSession_sameObject.https.html:
  • web-platform-tests/webxr/xrSession_visibilityState.https.html:
  • web-platform-tests/webxr/xrStationaryReferenceSpace_floorlevel_updates.https.html:
  • web-platform-tests/webxr/xrWebGLLayer_constructor.https.html:

Source/WebCore:

The update of the WebXR WPT directory helped us to unveil a couple of mistakes in the current code.
First of all the Events defined in the WebXR spec had to be iso allocated as the Event base class.
Secondly the WebXRInputSourceArray must have a ::create() method. Finally the m_inputSources attribute
of the WebXRSession must be a Ref instead of a RefPtr because the specs mention that the initial
value is an empty array.

Tests: imported/w3c/web-platform-tests/webxr/anchors/ar_anchor_freefloating_create_move.https.html

imported/w3c/web-platform-tests/webxr/anchors/ar_anchor_freefloating_delay_creation.https.html
imported/w3c/web-platform-tests/webxr/anchors/ar_anchor_freefloating_failure.https.html
imported/w3c/web-platform-tests/webxr/anchors/ar_anchor_freefloating_pause_resume_stop.https.html
imported/w3c/web-platform-tests/webxr/anchors/ar_anchor_states.https.html
imported/w3c/web-platform-tests/webxr/anchors/idlharness.https.window.html
imported/w3c/web-platform-tests/webxr/dom-overlay/ar_dom_overlay_hit_test.https.html
imported/w3c/web-platform-tests/webxr/dom-overlay/idlharness.https.window.html
imported/w3c/web-platform-tests/webxr/hit-test/ar_hittest_subscription_inputSources.https.html
imported/w3c/web-platform-tests/webxr/hit-test/ar_hittest_subscription_states_regular.https.html
imported/w3c/web-platform-tests/webxr/hit-test/ar_hittest_subscription_states_transient.https.html
imported/w3c/web-platform-tests/webxr/hit-test/ar_hittest_subscription_transientInputSources.https.html
imported/w3c/web-platform-tests/webxr/hit-test/idlharness.https.html
imported/w3c/web-platform-tests/webxr/render_state_update.https.html
imported/w3c/web-platform-tests/webxr/webGLCanvasContext_makecompatible_reentrant.https.html
imported/w3c/web-platform-tests/webxr/xrReferenceSpace_relationships.https.html

  • Modules/webxr/WebXRInputSourceArray.cpp:

(WebCore::WebXRInputSourceArray::create): Added.

  • Modules/webxr/WebXRInputSourceArray.h:
  • Modules/webxr/WebXRSession.cpp:

(WebCore::WebXRSession::WebXRSession): Initialize the m_inputSources.
(WebCore::WebXRSession::inputSources const): Return a const reference.

  • Modules/webxr/WebXRSession.h:
  • Modules/webxr/XRInputSourcesChangeEvent.cpp: Make it iso allocated.
  • Modules/webxr/XRInputSourcesChangeEvent.h: Ditto.
  • Modules/webxr/XRSessionEvent.cpp: Ditto.
  • Modules/webxr/XRSessionEvent.h: Ditto.

LayoutTests:

  • platform/wpe/TestExpectations: Skipped one test that started to fail after the import.
3:38 AM Changeset in webkit [265545] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

REGRESSION (r259805): Not able to scroll vertically after scrolling horizontally without leaving message and coming back
https://bugs.webkit.org/show_bug.cgi?id=215374
<rdar://problem/65269837>

Reviewed by Darin Adler.

The content has a horizontally scrolling overflow. While rubberbanding it we mark a wheel event unhandled which causes Mail
to take over event handling and leaves us semi-permanently in stretched state.

  • platform/cocoa/ScrollController.mm:

(WebCore::ScrollController::handleWheelEvent):

Dissallowed vertical stretch would mark the event unhandled even though we are rubberbanding in horizontal direction.

Only mark a wheel event unhandled if it actually concerns the tested direction.

2:23 AM WebKitGTK/2.30.x created by Carlos Garcia Campos
2:08 AM Changeset in webkit [265544] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.30

Branch WebKitGTK for 2.30

2:05 AM Changeset in webkit [265543] by Chris Lord
  • 21 edits
    1 delete in trunk

Implement Canvas.transferControlToOffscreen and OffscreenCanvasRenderingContext2D.commit
https://bugs.webkit.org/show_bug.cgi?id=202797

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/canvas/offscreen/filter/offscreencanvas.filter.w-expected.txt:
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.commit-expected.txt:
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.commit.w-expected.txt:
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.getcontext-expected.txt:
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.getcontext.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.resize-expected.txt:
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transfercontrol.to.offscreen-expected.txt:
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transfercontrol.to.offscreen.w-expected.txt:

Source/WebCore:

Implement HTMLCanvasElement.transferControlToOffscreen and
OffscreenCanvasRenderingContext2D.commit. This allows for
(synchronous) display of asynchronously rendered OffscreenCanvas
content.

No new tests. Covered by existing tests.

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::setHeight):
(WebCore::HTMLCanvasElement::setWidth):
(WebCore::HTMLCanvasElement::reset):
(WebCore::HTMLCanvasElement::transferControlToOffscreen):
(WebCore::HTMLCanvasElement::setImageBufferAndMarkDirty):
(WebCore::HTMLCanvasElement::isControlledByOffscreen const):

  • html/HTMLCanvasElement.h:
  • html/HTMLCanvasElement.idl:
  • html/OffscreenCanvas.cpp:

(WebCore::DetachedOffscreenCanvas::takePlaceholderCanvas):
(WebCore::OffscreenCanvas::create):
(WebCore::OffscreenCanvas::getContext):
(WebCore::OffscreenCanvas::didDraw):
(WebCore::OffscreenCanvas::detach):
(WebCore::OffscreenCanvas::setPlaceholderCanvas):
(WebCore::OffscreenCanvas::pushBufferToPlaceholder):
(WebCore::OffscreenCanvas::commitToPlaceholderCanvas):
(WebCore::OffscreenCanvas::scheduleCommitToPlaceholderCanvas):
(WebCore::OffscreenCanvas::reset):

  • html/OffscreenCanvas.h:
  • html/canvas/OffscreenCanvasRenderingContext2D.cpp:

(WebCore::OffscreenCanvasRenderingContext2D::commit):

  • html/canvas/OffscreenCanvasRenderingContext2D.h:
  • html/canvas/OffscreenCanvasRenderingContext2D.idl:
  • html/canvas/PlaceholderRenderingContext.cpp:

(WebCore::PlaceholderRenderingContext::canvas const):

  • html/canvas/PlaceholderRenderingContext.h:

LayoutTests:

  • platform/glib/imported/w3c/web-platform-tests/html/canvas/offscreen/manual/filter/offscreencanvas.filter.w-expected.txt: Removed.
12:35 AM Changeset in webkit [265542] by Carlos Garcia Campos
  • 7 edits in trunk/Source

REGRESSION(r261570): [GTK] Fails to send drop event to JavaScript
https://bugs.webkit.org/show_bug.cgi?id=215032

Reviewed by Darin Adler.

Source/WebCore:

Add support for custom data in drag and drop operations too.

  • platform/gtk/PasteboardGtk.cpp:

(WebCore::Pasteboard::write): Se custom data on m_selectionData.
(WebCore::Pasteboard::read): Initialize the content origin also for drag and drop pasteboards.
(WebCore::Pasteboard::hasData): For drag and drop pasteboards return true also if m_selectionData has custom data.
(WebCore::Pasteboard::typesSafeForBindings): Implement this for drag and drop pasteboards.
(WebCore::Pasteboard::readOrigin): Ditto.
(WebCore::Pasteboard::readStringInCustomData): Ditto.
(WebCore::Pasteboard::writeCustomData): Ditto.

Source/WebKit:

Handle custom data in drag and drop operations.

  • UIProcess/API/gtk/DragSourceGtk3.cpp:

(WebKit::DragSource::DragSource):
(WebKit::DragSource::begin):

  • UIProcess/API/gtk/DragSourceGtk4.cpp:

(WebKit::DragSource::begin):

  • UIProcess/API/gtk/DropTargetGtk3.cpp:

(WebKit::DropTarget::DropTarget):
(WebKit::DropTarget::accept):
(WebKit::DropTarget::dataReceived):

  • UIProcess/API/gtk/DropTargetGtk4.cpp:

(WebKit::DropTarget::DropTarget):
(WebKit::DropTarget::accept):

Aug 11, 2020:

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

[GTK] Garden accessibility failures after r265514

Unreviewed test gardening.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
5:32 PM Changeset in webkit [265540] by commit-queue@webkit.org
  • 153 edits in trunk

[WebGL2] Depth formats can have mipmaps in WebGL 2
https://bugs.webkit.org/show_bug.cgi?id=215404

Patch by James Darpinian <James Darpinian> on 2020-08-11
Reviewed by Kenneth Russell.

Source/WebCore:

Fixes 150 WebGL 2 conformance tests.

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::validateTexFuncFormatAndType):

LayoutTests:

  • webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texture-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureoffset-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureproj-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureprojoffset-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_always-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_greater-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_greater_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_less-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_less_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_always-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_greater-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_greater_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_less-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_less_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_never-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_not_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_always-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_greater-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_greater_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_less-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_less_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_never-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_not_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_never-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_not_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_always-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_greater-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_greater_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_less-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_less_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_always-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_greater-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_greater_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_less-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_less_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_never-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_not_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_always-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_greater-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_greater_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_less-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_less_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_never-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_not_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_never-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_not_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_always-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_greater-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_greater_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_less-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_less_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_always-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_greater-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_greater_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_less-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_less_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_never-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_not_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_always-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_greater-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_greater_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_less-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_less_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_never-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_not_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_never-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_not_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_always-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_greater-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_greater_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_less-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_less_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_always-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_greater-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_greater_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_less-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_less_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_never-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_not_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_always-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_greater-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_greater_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_less-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_less_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_never-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_not_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_never-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_not_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_always-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_greater-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_greater_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_less-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_less_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_always-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_greater-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_greater_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_less-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_less_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_never-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_not_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_always-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_greater-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_greater_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_less-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_less_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_never-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_not_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_never-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_not_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_always-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_greater-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_greater_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_less-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_less_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_always-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_greater-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_greater_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_less-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_less_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_never-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_not_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_always-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_greater-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_greater_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_less-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_less_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_never-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_not_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_never-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_not_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_depth_stencil-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_depth_stencil-expected.txt:
5:10 PM Changeset in webkit [265539] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Enable HTTP/2 ping API tests
https://bugs.webkit.org/show_bug.cgi?id=215402

Patch by Alex Christensen <achristensen@webkit.org> on 2020-08-11
Reviewed by Darin Adler.

  • TestWebKitAPI/Tests/WebKitCocoa/Preconnect.mm:

(TestWebKitAPI::TEST):

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

Unreviewed, address post-landing review comment from Darin for r265536.

  • Modules/webaudio/WaveShaperDSPKernel.cpp:

(WebCore::WaveShaperDSPKernel::processCurve):

4:57 PM Changeset in webkit [265537] by Brian Burg
  • 2 edits in trunk/Tools

REGRESSION(r?): build-webkit --inspector-frontend always builds ImageDiff
https://bugs.webkit.org/show_bug.cgi?id=215393
<rdar://problem/66862975>

Reviewed by Darin Adler.

  • Scripts/build-webkit: exit after building projects if --inspector-frontend is passed.

This flag is for desk builds only and not used by build infrastructure. We don't need to build ImageDiff
when iterating on the Web Inspector frontend.

4:55 PM Changeset in webkit [265536] by Chris Dumez
  • 9 edits in trunk

Fix WaveShapperNode's waveshaping curve implementation
https://bugs.webkit.org/show_bug.cgi?id=215391

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline WPT tests now that more checks are passing.

  • web-platform-tests/webaudio/the-audio-api/the-waveshapernode-interface/curve-tests-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-limits-expected.txt:

Source/WebCore:

Fix WaveShapperNode's waveshaping curve implementation using the algorithm in the specification:

No new tests, rebaselined existing tests.

  • Modules/webaudio/WaveShaperDSPKernel.cpp:

(WebCore::WaveShaperDSPKernel::processCurve):

LayoutTests:

Fix existing tests to reflect behavior change. I have verified that these tests
were failing in Firefox and Chrome before I updated them.

  • webaudio/resources/waveshaper-testing.js:

(runWaveShaperOversamplingTest):

  • webaudio/waveshaper-oversample-2x.html:
  • webaudio/waveshaper-oversample-4x.html:
4:45 PM Changeset in webkit [265535] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ iOS wk2 ] imported/w3c/web-platform-tests/css/css-grid/layout-algorithm/flex-and-intrinsic-sizes-001.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=215403

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
4:13 PM Changeset in webkit [265534] by commit-queue@webkit.org
  • 5083 edits
    3 copies
    2 adds in trunk/LayoutTests

[WebGL2] Conformance tests throttled by iframe leaving viewport
https://bugs.webkit.org/show_bug.cgi?id=215346

Patch by James Darpinian <James Darpinian> on 2020-08-11
Reviewed by Dean Jackson.

The WebGL conformance tests are wrapped in an iframe that was placed below the text output of the test.
When the test outputs a lot of text, this caused the iframe to be pushed below the bottom of the viewport
and then the test was throttled, usually resulting in timeouts. The fix is to move the iframe above the
text. This requires touching every conformance test and expectation file.

  • webgl/resources/webgl-wrapper-template.html: Move test iframe above text output so it doesn't get pushed below the viewport.
  • webgl/2.0.0/*: Every test file and expectations file updated from new template.
  • webgl/TestExpectations: Unskip a bunch of passing tests
4:07 PM Changeset in webkit [265533] by jer.noble@apple.com
  • 11 edits in trunk/Source/WebKit

[Mac] Add Experimental Feature preference for SW VP9
https://bugs.webkit.org/show_bug.cgi?id=215043
<rdar://problem/66400034>

Reviewed by Beth Dakin.

  • FeatureFlags/WebKit.plist:
  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):

  • Shared/WebPageCreationParameters.h:
  • Shared/WebPreferences.yaml:
  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultVP9SWDecoderEnabledOnBattery):

  • Shared/WebPreferencesDefaultValues.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_limitsNavigationsToAppBoundDomains):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::enableVP9Decoder):
(WebKit::WebProcess::enableVP9SWDecoder):

  • WebProcess/WebProcess.h:
4:05 PM Changeset in webkit [265532] by Alan Coon
  • 1 copy in tags/Safari-610.1.25.1.2

Tag Safari-610.1.25.1.2.

3:56 PM Changeset in webkit [265531] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ iOS wk2 Release ] imported/w3c/web-platform-tests/css/css-images/idlharness.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=215398

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
3:39 PM Changeset in webkit [265530] by Alan Coon
  • 1 copy in tags/Safari-610.1.25.0.2

Tag Safari-610.1.25.0.2.

3:38 PM Changeset in webkit [265529] by Alan Coon
  • 8 edits in trunk/Source

Versioning.

WebKit-7610.2.1

3:36 PM Changeset in webkit [265528] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Have render tree dumps show overflow information
https://bugs.webkit.org/show_bug.cgi?id=215385

Reviewed by Zalan Bujtas.

Add code to RenderObject::outputRenderObject() to show layout/visual overflow, as we do
for render tree dumps.

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::outputRenderObject const):

3:32 PM Changeset in webkit [265527] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ macOS ] imported/w3c/web-platform-tests/webmessaging/Channel_postMessage_Blob.htm is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=208832

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
3:23 PM Changeset in webkit [265526] by Keith Rollin
  • 2 edits in trunk/Tools

Update filter-build-webkit for unknown/unhandled messages
https://bugs.webkit.org/show_bug.cgi?id=215395
<rdar://problem/63819507>

Reviewed by Alexey Proskuryakov.

Teach filter-build-webkit about XCBuild build output that needs to be
reformatted.

At the same time, address other red messages that have crept in over
time, either reformatting or squelching them.

Some red messages are still emitted under both XCBuild and the Legacy
build system, but those either need to be addressed at the source or
be investigated first in order to determine the correct remediation.

  • Scripts/filter-build-webkit:

(shouldShowSubsequentLine):
(shouldIgnoreLine):

3:20 PM Changeset in webkit [265525] by beidson@apple.com
  • 17 edits in trunk

Add a "use stored credentials" setting to WKWebView.
<rdar://problem/63308019> and https://bugs.webkit.org/show_bug.cgi?id=215388

Reviewed by Geoff Garen.

Source/WebCore:

Covered by Preconnect API tests.

This setting is to allow apps to explicitly deny using the credential storage
for network operations. (e.g. to make sure the Keychain UI doesn't pop up
for an offscreen load)

  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::shouldUseCredentialStorage):

  • page/Page.h:

(WebCore::Page::setCanUseCredentialStorage):
(WebCore::Page::canUseCredentialStorage const):

Source/WebKit:

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::preconnectTo):

  • Shared/WebPageCreationParameters.cpp:

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

  • Shared/WebPageCreationParameters.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _canUseCredentialStorage]):
(-[WKWebView _setCanUseCredentialStorage:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::preconnectTo):
(WebKit::WebPageProxy::setCanUseCredentialStorage):
(WebKit::WebPageProxy::creationParameters):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::canUseCredentialStorage):

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_limitsNavigationsToAppBoundDomains):
(WebKit::WebPage::setCanUseCredentialStorage):

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

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/Preconnect.mm:

(TestWebKitAPI::TEST):

3:08 PM Changeset in webkit [265524] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ macOS wk1 ] media/modern-media-controls/media-controller/media-controller-fullscreen-ltr.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=215397

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
3:01 PM Changeset in webkit [265523] by commit-queue@webkit.org
  • 30 edits in trunk

Unreviewed, reverting r265502.
https://bugs.webkit.org/show_bug.cgi?id=215396

Needs locking to avoid flaky GC-related crashes

Reverted changeset:

"[WebGL2] expando-loss and expando-loss-2 conformance tests
are failing"
https://bugs.webkit.org/show_bug.cgi?id=214765
https://trac.webkit.org/changeset/265502

2:55 PM Changeset in webkit [265522] by Alan Coon
  • 8 edits in branches/safari-610.1-branch/Source

Versioning.

WebKit-610.1.26

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

Update contributors.json with reinstated reviewer status
https://bugs.webkit.org/show_bug.cgi?id=215390

Patch by Kenneth Russell <kbr@chromium.org> on 2020-08-11
Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/common/config/contributors.json:
2:37 PM Changeset in webkit [265520] by pvollan@apple.com
  • 4 edits in trunk/Source/WebKit

[macOS] Deny access to directory for compiled WebKit sandboxes
https://bugs.webkit.org/show_bug.cgi?id=215384

Reviewed by Brent Fulgham.

A WebKit process on macOS should not be allowed access to the directory containing compiled sandboxes
after entering the sandbox itself.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
2:32 PM Changeset in webkit [265519] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ macOS wk1 ] imported/w3c/web-platform-tests/css/css-logical/parsing/margin-block-inline-computed.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=215299

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
2:18 PM Changeset in webkit [265518] by Jon Davis
  • 2 edits in trunk/Source/WebCore

Add privacy and security keywords to feature status entries
https://bugs.webkit.org/show_bug.cgi?id=215203

Reviewed by Youenn Fablet.

  • features.json:
2:18 PM Changeset in webkit [265517] by Chris Dumez
  • 8 edits
    2 adds in trunk

Fix BiquadFilterNode's lowpass filter
https://bugs.webkit.org/show_bug.cgi?id=215381

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline WPT test now that more checks are passing.

  • web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-lowpass-expected.txt:

Source/WebCore:

Fix BiquadFilterNode's lowpass filter as it was causing us to fail a WPT test:

No new tests, rebaselined existing test.

  • Modules/webaudio/BiquadProcessor.cpp:

(WebCore::BiquadProcessor::BiquadProcessor):

  • platform/audio/Biquad.cpp:

(WebCore::Biquad::setLowpassParams):

LayoutTests:

  • webaudio/biquad-lowpass.html:

Update test to work in other browsers (which do not support prefixed API).

  • webaudio/resources/biquad-testing.js:

(createLowpassFilter):
Update test to reflect behavior change. Note that this test was failing in both
Chrome and Firefox before I updated the test. Now that I updated the test to
match the new behavior we implemented, it passes in both Chrome and Firefox.

2:11 PM Changeset in webkit [265516] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ macOS wk1 ] webaudio/oscillator-sawtooth.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=215392

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
2:04 PM Changeset in webkit [265515] by timothy_horton@apple.com
  • 14 edits
    4 adds in trunk

iOS: Scrolling and touch events sporadically stop working after navigating
https://bugs.webkit.org/show_bug.cgi?id=215368
<rdar://problem/65801531>

Reviewed by Wenson Hsieh.

Source/WebKit:

Test: fast/events/touch/ios/touch-event-stall-after-navigating-with-pending-asynchronous-touch-start.html

WebPageProxy::handlePreventableTouchEvent keeps a counter of the number
of outstanding "preventable" touch events that it is waiting to hear
from the Web Content process about. This counter is incremented when the
event is dispatched to the Web Content process's EventHandler queue,
and decremented when the reply (whether it was handled or not) comes
back from the Web Content process. While the counter is non-zero, all
deferrable gestures remain deferred (and when it returns to zero, the
WKDeferringGestureRecognizer gate is lifted, and events are allowed to flow).
This means that it is very important that every event eventually reply
about its handling status.

Before this change, when the Web Content process is navigating, and reaches didCommitLoad,
it cleared all queued touch events, without replying to to the UI process.
Thus, there is a small window of time in which an incoming touch event will
end up in the queue, *not* get dispatched/replied, and then get dropped on
the floor in didCommitLoad. Most events do not meet this fate, because they
are handled promptly, and commitLoad/didCommitLoad tend to be very quick.
However, if the Web Content process ends up spending any significant amount
of time under commitLoad (say, in an unload handler, or in media frameworks),
any incoming touch events during that time will get lost, and the UI process'
count of outstanding events will end up getting stuck non-zero.

Fix this by always pretending that the page ate any events that were outstanding
when didCommitLoad occurs, instead of just dropping them on the floor.

  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::doneWithTouchEvent):

  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::EventDispatcher::takeQueuedTouchEventsForPage):
(WebKit::EventDispatcher::clearQueuedTouchEventsForPage): Deleted.
(WebKit::EventDispatcher::getQueuedTouchEventsForPage): Deleted.
Also, rename getQueuedTouchEventsForPage to takeQueuedTouchEventsForPage,
since it removes the queue from EventDispatcher's set.

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

(WebKit::WebPage::touchEventSync):
(WebKit::WebPage::didCommitLoad):

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

(WebKit::WebPage::cancelAsynchronousTouchEvents):

Tools:

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

(WTR::TestRunner::runUIScriptImmediately):

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

(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
(WTR::TestInvocation::runUISideScriptImmediately):
(WTR::TestInvocation::runUISideScriptAfterUpdateCallback):

  • WebKitTestRunner/TestInvocation.h:

Add a variant of runUISideScript that runs the script without
waiting for a rendering update.

It makes sense for the default runUISideScript to wait for a rendering
update -- nearly every test is either unaffected or improved by this --
but for the test for this bug, since we have hung the Web Content process
main thread intentionally, we will not see a rendering update, and so
the UI-side script will never run.

LayoutTests:

  • fast/events/touch/ios/resources/finish-test-after-scrolling-with-touch-event-handlers.html: Added.
  • fast/events/touch/ios/touch-event-stall-after-navigating-with-pending-asynchronous-touch-start-expected.txt: Added.
  • fast/events/touch/ios/touch-event-stall-after-navigating-with-pending-asynchronous-touch-start.html: Added.

Add a test that ensures that a page that dispatches events in beforeunload,
receiving preventable touch events during the next page's commitLoad does not result
in scrolling being stuck.

Before this change, this test would time out.

1:58 PM Changeset in webkit [265514] by Darin Adler
  • 25 edits in trunk

LayoutTest accessibility/mac/select-element-selection-with-optgroups.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=175341

Reviewed by Chris Fleizach.

Source/WebCore:

Failures were due to new AX objects being created for HTMLOptionElement.
Unlike most other AX objects, these were not cached in the AXObjectCache
and multiple objects could be created for the same underlying option. Fixed this
by changing it to track the option element in the cache in the conventional way.

  • WebCore.xcodeproj/project.pbxproj: Remove AccessibilityMediaControls.h/cpp.

The source files were removed back in April.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::getOrCreate): Added code for HTMLOptionElement and
HTMLOptGroupElement so AccessibilityMenuListOption and AccessibilityListBoxOption
can be created in this function.
(WebCore::AXObjectCache::create): Renamed the version of this that takes an
AccessibilityRole to not claim that it ever gets the value from the cache,
because it never does. Also removed the cases for ListBoxOption and MenuListOption.

  • accessibility/AXObjectCache.h: Updated for above.
  • accessibility/AccessibilityARIAGrid.cpp:

(WebCore::AccessibilityARIAGrid::addChildren): Use create.

  • accessibility/AccessibilityListBox.cpp:

(WebCore::AccessibilityListBox::addChildren): Removed super-old comment that mentions
the long-ago-removed WML.
(WebCore::AccessibilityListBox::listBoxOptionAccessibilityObject const): Use the
element to get the list box option rather than creating a new one every time.
No longer any need to special case <hr> elements since the getOrCreate function
will return nil for non-option elements that don't have a renderer.

  • accessibility/AccessibilityListBoxOption.cpp:

(WebCore::AccessibilityListBoxOption::AccessibilityListBoxOption): Take the element
in the constructor instead of using a separate function to associate it.
(WebCore::AccessibilityListBoxOption::create): Ditto.
(WebCore::AccessibilityListBoxOption::isEnabled const): Update for WeakPtr.
(WebCore::AccessibilityListBoxOption::isSelected const): Ditto.
(WebCore::AccessibilityListBoxOption::canSetSelectedAttribute const): Ditto.
(WebCore::AccessibilityListBoxOption::actionElement const): Update for WeakPtr.
(WebCore::AccessibilityListBoxOption::node const): Added. For some reason the
AccessibilityMenuListOption class had this function and this one did not. They
should both have it.

  • accessibility/AccessibilityListBoxOption.h: Updated for above. Made most

functions private and final. Fixed includes and forward declarations.
Removed the setHTMLElement function. Changed m_optionElement from
HTMLElement* to WeakPtr<HTMLElement>.

  • accessibility/AccessibilityMenuList.cpp:

(WebCore::AccessibilityMenuList::addChildren): Use create.

  • accessibility/AccessibilityMenuListOption.cpp:

(WebCore::AccessibilityMenuListOption::AccessibilityMenuListOption): Take the
element in the constructor instead of using a separate function to associate it.
(WebCore::AccessibilityMenuListOption::create): Ditto.
(WebCore::AccessibilityMenuListOption::setElement): Deleted.
(WebCore::AccessibilityMenuListOption::node const): Moved here from the header.
(WebCore::AccessibilityMenuListOption::isEnabled const): Removed unneeded cast
now that m_element has a more specific type, and added a null check.
(WebCore::AccessibilityMenuListOption::isVisible const): Removed dependency
on m_parent pointer, which does not exist now that we don't derive from
AccessibilityMockObject.
(WebCore::AccessibilityMenuListOption::isSelected const): Removed unneeded cast
now that m_element has a more specific type, and added a null check.
(WebCore::AccessibilityMenuListOption::setSelected): Ditto, but no null check
needed because canSetSelectedAttribute takes care of that.
(WebCore::AccessibilityMenuListOption::stringValue const): Ditto.

  • accessibility/AccessibilityMenuListOption.h: Updated for above. Marked

functions final instead of override. Changed m_element from RefPtr<HTMLElement>
to WeakPtr<HTMLOptionElement> to avoid reference cycles that could leak to
memory leaks. Derive from AccessibilityObject instead of
AccessibilityMockObject, since the latter class has nothing to offer us.

  • accessibility/AccessibilityMenuListPopup.cpp:

(WebCore::AccessibilityMenuListPopup::menuListOptionAccessibilityObject const):
Use the element to get the menu list option rather than creating a new one
every time. No longer any need to check that the type is HTMLOptionElement
because that's the responsibility of the code in the cache now.
(WebCore::AccessibilityMenuListPopup::addChildren): Removed unneeded call
to setParent since the menu list option objects no longer hold parent pointers.

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::accessibleNameForNode): Added a special case for HTMLOptionElement
like the one for HTMLInputElement. The code worked for fairly well for option
elements before, almost by accident, and the way it worked was perturbed by
the change to whether we cache those objects. This newer code path works in a
more straightforward way, keeps our existing tests psasing, and likely gets
some edge cases handled more correctly (should add new tests for those).

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::documentLinks): Use create.
(WebCore::AccessibilityRenderObject::addImageMapChildren): Ditto.
(WebCore::AccessibilityRenderObject::addTextFieldChildren): Ditto.

  • accessibility/AccessibilitySlider.cpp:

(WebCore::AccessibilitySlider::addChildren): Ditto.

  • accessibility/AccessibilitySpinButton.cpp:

(WebCore::AccessibilitySpinButton::addChildren): Ditto.

  • accessibility/AccessibilityTable.cpp:

(WebCore::AccessibilityTable::addChildren): Ditto.
(WebCore::AccessibilityTable::headerContainer): Ditto.

  • accessibility/atk/WebKitAccessible.cpp:

(fallbackObject): Deleted.
(webkitAccessibleGetName): Added null check.
(webkitAccessibleGetDescription): Ditto.
(webkitAccessibleGetParent): Ditto.
(webkitAccessibleGetNChildren): Ditto.
(webkitAccessibleRefChild): Ditto.
(webkitAccessibleGetIndexInParent): Ditto.
(webkitAccessibleGetAttributes): Ditto.
(webkitAccessibleGetRole): Ditto.
(webkitAccessibleRefStateSet): Ditto.
(webkitAccessibleRefRelationSet): Ditto.
(webkitAccessibleGetObjectLocale): Ditto.
(webkitAccessibleGetAccessibilityObject): Ditto.
(webkitAccessibleDetach): Use nullptr instead of fallbackObject.
(webkitAccessibleIsDetached): Ditto.

  • html/HTMLOptionElement.cpp:

(WebCore::HTMLOptionElement::selected const): Made this const. An earlier
version of the patch required this; the latest version doesn't, but it's
more logical and better for it to be const.

  • html/HTMLOptionElement.h: Updated for above.

Tools:

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

(SingleTestRunner._compare_output_with_reference): Removed unhelpful log message that tells
about ref tests where the hash optimization for comparing images does not work, but the
test passes. We don't want to get this kind of log message for passing tests.

LayoutTests:

  • platform/mac-wk1/TestExpectations: Fixed expectation for another accessibility test,

accessibility/mac/expanded-notification.html to expect flakiness, not failure, because that's
what the bug that went along with this expectation said, and indeed the test often passes.

  • platform/mac-wk2/TestExpectations: Removed flakiness expectation for

accessibility/mac/select-element-selection-with-optgroups.html, since it's now fixed.
Fixed a "webkkit.org" typo, which caused the expectation for
tiled-drawing/scrolling/fast-scroll-mainframe-zoom.html to not work as expected.

1:40 PM Changeset in webkit [265513] by Lauro Moura
  • 3 edits
    1 move
    1 delete in trunk/LayoutTests

[GTK][WPE] Rebaseline outdated baselines

Unreviewed test gardening.

  • platform/glib/webaudio/audiobuffersource-playbackrate-expected.wav:

Renamed from
LayoutTests/platform/gtk/webaudio/audiobuffersource-playbackrate-expected.wav.
After r265440.

  • platform/gtk/fast/table/empty-cells-expected.txt: After r265499.
  • platform/wpe/fast/table/empty-cells-expected.txt: ditto.
  • platform/wpe/webaudio/audiobuffersource-playbackrate-expected.wav: Removed.
1:28 PM Changeset in webkit [265512] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore/PAL

Fix Apple internal Mojave builds
https://bugs.webkit.org/show_bug.cgi?id=215389

Unreviewed build fix.

  • pal/spi/cocoa/CoreTextSPI.h:
1:27 PM Changeset in webkit [265511] by Russell Epstein
  • 1 move in branches/safari-610.1-branch

Rename branch.

12:52 PM Changeset in webkit [265510] by timothy@apple.com
  • 8 edits in trunk

Deferred WKUserScripts are exponentially injected on preloaded pages with frames.
https://bugs.webkit.org/show_bug.cgi?id=215382
rdar://problem/66837802

Reviewed by Sam Weinig.

Source/WebCore:

When defering a script in a frame it was previously added to a vector per-page.
Later when notified to inject the defered scripts, the page would iterate over all
the frames and evaluate the scripts on each frame. Since this vector had all the
frame's scripts the evaluations would be multiplied by the number of frames.

Now the defered scripts are stored per-frame and the page asks each frame to
inject the defered scripts.

  • page/Frame.cpp:

(WebCore::Frame::injectUserScripts):
(WebCore::Frame::addUserScriptAwaitingNotification):
(WebCore::Frame::injectUserScriptsAwaitingNotification):

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

(WebCore::Page::notifyToInjectUserScripts):
(WebCore::Page::addUserScriptAwaitingNotification): Deleted.

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

(WebCore::Quirks::triggerOptionalStorageAccessQuirk const):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/UserContentController.mm:

(TEST):

12:45 PM Changeset in webkit [265509] by wenson_hsieh@apple.com
  • 10 edits
    5 adds
    2 deletes in trunk

Text input autocorrect="off" attribute ignored on Mac
https://bugs.webkit.org/show_bug.cgi?id=151019
<rdar://problem/65061700>

Reviewed by Simon Fraser.

Source/WebCore:

Add support for the autocorrect attribute on macOS, by not showing the automatic spell checking popup or
automatically correcting misspelled words if the root editable element has autocorrect="off".

Tests: editing/input/cocoa/autocorrect-off.html

editing/input/cocoa/autocorrect-on.html

  • editing/AlternativeTextController.cpp:

(WebCore::AlternativeTextController::isAutomaticSpellingCorrectionEnabled):

Source/WTF:

  • wtf/PlatformEnableCocoa.h: Turn the feature on for macOS.

LayoutTests:

Move the existing test fast/events/ios/contenteditable-autocorrect.html into editing/input/cocoa, and
refactor it so that it:

  • Works on both iOS and macOS.
  • Tests both the contenteditable case and the form control case.
  • Is split into two tests: one of which uses autocorrect="off" by typing "Tset" and expecting it to remain

as-is, and a second test that uses autocorrect="on" and verifies that "Tset" is autocorrected to "Test",
firing an input event with inputType "insertReplacementText" in the process.

  • TestExpectations:
  • editing/input/cocoa/autocorrect-off-expected.txt: Added.
  • editing/input/cocoa/autocorrect-off.html: Added.
  • editing/input/cocoa/autocorrect-on-expected.txt: Added.
  • editing/input/cocoa/autocorrect-on.html: Added.
  • fast/events/ios/contenteditable-autocorrect-expected.txt: Removed.
  • fast/events/ios/contenteditable-autocorrect.html: Removed.
  • js/dom/dom-static-property-for-in-iteration-expected.txt:

Rebaseline a couple of existing layout tests, as well.

  • platform/ios/TestExpectations:
  • platform/mac-wk2/js/dom/dom-static-property-for-in-iteration-expected.txt:
  • platform/mac/TestExpectations:
11:14 AM Changeset in webkit [265508] by sihui_liu@apple.com
  • 4 edits in trunk

Text manipulation crashes when replacing element with img role
https://bugs.webkit.org/show_bug.cgi?id=215344

Reviewed by Wenson Hsieh.

Source/WebCore:

positionInParentAfterNode and positionInParentBeforeNode do not return Position with Nodes that are ignored by
editing. Element with img role is one of such Nodes. However, TextManipulationController can manipulate content
of children of the ignored Nodes (see the newly added test). Therefore, we'd better not use
positionInParentBeforeNode or positionInParentBeforeNode in TextManipulationController::replace, because
insertion position can be inside a ignored Node.

API Test: TextManipulation.CompleteTextManipulationShouldReplaceContentIgnoredByEditing

  • editing/TextManipulationController.cpp:

(WebCore::TextManipulationController::replace):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:

(TestWebKitAPI::TEST):

11:12 AM Changeset in webkit [265507] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Clicking on sortable Table headers should expand vertical borders
https://bugs.webkit.org/show_bug.cgi?id=215140

Reviewed by Devin Rousso.

  • UserInterface/Views/Table.css:

(.table > .header .cell:not(:first-child):active::before,):

10:30 AM Changeset in webkit [265506] by Russell Epstein
  • 2 edits in branches/safari-610.1.25.10-branch/Source/WebCore

Cherry-pick r265432. rdar://problem/66802579

Return values of FontDatabase::collectionForFamily are not thread safe
https://bugs.webkit.org/show_bug.cgi?id=215320
<rdar://problem/66502539>

Reviewed by Anders Carlsson.

Font prewarming can add new entries to m_familyNameToFontDescriptors while lookups are being made.
Access to it is protected by a lock.

However if the hashmap ends up rehashing, the pointer returned from collectionForFamily may end up becoming invalid.
This can result in a crash later under findClosestFont.

  • platform/graphics/cocoa/FontCacheCoreText.cpp: (WebCore::FontDatabase::collectionForFamily):

Heap allocate the hashmap values so they stay valid over hashtable mutations.

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

10:30 AM Changeset in webkit [265505] by Russell Epstein
  • 2 edits in branches/safari-610.1.25.10-branch/Source/WebCore

Cherry-pick r265357. rdar://problem/66801720

Web process crashes at WebCore::FullscreenManager::didExitFullscreen
https://bugs.webkit.org/show_bug.cgi?id=215243

Reviewed by Eric Carlson.

No new tests, no functional change.

  • dom/FullscreenManager.cpp: (WebCore::FullscreenManager::didExitFullscreen): m_fullscreenElement might be nullptr when fullscreenOrPendingElement() is not nullptr.

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

10:30 AM Changeset in webkit [265504] by Russell Epstein
  • 6 edits
    1 add in branches/safari-610.1.25.10-branch

Cherry-pick r265284. rdar://problem/66801993

[iOS] Keyboard shortcuts and arrow key scrolling stop working after navigating via swipe gesture
https://bugs.webkit.org/show_bug.cgi?id=215137
<rdar://problem/65082979>

Reviewed by Tim Horton.

Source/WebKit:

The process of starting a navigation swipe gesture causes the first responder (in this case, WKContentView) to
resign. Subsequently, nothing makes the content view first responder again once the navigation gesture ends,
even if the gesture is cancelled and we don't end up navigating. This results in several symptoms, two of which
are that keyboard shortcuts stop working, and pressing arrow keys does not scroll the web view after ending the
swipe gesture.

To mitigate this, add a mechanism to have the web view remember that our content view was first responder before
calling -startInteractiveTransition:; after ending the interactive transition (i.e. swipe gesture), we then
restore the web view's content view as first responder if it is not already first responder (and it is also
parented, which is not the case when swiping back to close a newly opened tab in Safari).

Test: NavigationSwipeTests.RestoreFirstResponderAfterNavigationSwipe

NavigationSwipeTests.DoNotBecomeFirstResponderAfterNavigationSwipeIfWebViewIsUnparented

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/API/ios/WKWebViewIOS.mm: (-[WKWebView _navigationGestureDidBegin]): (-[WKWebView _navigationGestureDidEnd]):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/ios/NavigationSwipeTests.mm: Added. (-[TestNavigationInteractiveTransition startInteractiveTransition:]):

Add an API test that exercises the bug by resigning first responder underneath -startInteractiveTransition:,
and checking that we have become first responder once again after completing the transition.

  • TestWebKitAPI/ios/UIKitSPI.h:

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

10:30 AM Changeset in webkit [265503] by Russell Epstein
  • 4 edits in branches/safari-610.1.25.10-branch

Cherry-pick r265209. rdar://problem/66802585

should be able to request an editing context for a given region of a given input
https://bugs.webkit.org/show_bug.cgi?id=215042
<rdar://problem/65561491>

Reviewed by Wenson Hsieh.

Source/WebKit:

Right now, it's only possible to request an editing context for either an entire input
element or a particular rect of the page. It should be possible to request an editing
context for a particular rect within a given input element as well (e.g. get one paragraph
or the currently selected text in a <textarea> instead of the entire thing).

  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::requestDocumentEditingContext):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm: (TEST.DocumentEditingContext.SpatialRequest_RectEncompassingInput): Added. (TEST.DocumentEditingContext.SpatialRequest_RectBeforeInput): Added. (TEST.DocumentEditingContext.SpatialRequest_RectInsideInput): Added. (TEST.DocumentEditingContext.SpatialRequest_RectAfterInput): Added. (TEST.DocumentEditingContext.SpatialAndCurrentSelectionRequest_RectEncompassingInputWithSelection): Added. (TEST.DocumentEditingContext.SpatialAndCurrentSelectionRequest_RectBeforeInputWithSelection): Added. (TEST.DocumentEditingContext.SpatialAndCurrentSelectionRequest_RectBeforeSelectionInInput): Added. (TEST.DocumentEditingContext.SpatialAndCurrentSelectionRequest_RectAfterSelectionInInput): Added. (TEST.DocumentEditingContext.SpatialAndCurrentSelectionRequest_RectAfterInputWithSelection): Added.

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

10:29 AM Changeset in webkit [265502] by commit-queue@webkit.org
  • 30 edits in trunk

[WebGL2] expando-loss and expando-loss-2 conformance tests are failing
https://bugs.webkit.org/show_bug.cgi?id=214765

Patch by Kenneth Russell <kbr@chromium.org> on 2020-08-11
Reviewed by Darin Adler.

Source/WebCore:

Use JSWebGLRenderingContext's and JSWebGL2RenderingContext's
existing visitAdditionalChildren hook (via JSCustomMarkFunction in
their IDL) to add opaque roots for all WebGLObjects latched in to
the context state, and all WebGLObjects they refer to. (Extensions
were already previously handled.)

Add "GenerateIsReachable=Impl" to the IDL files for all such
objects (WebGLBuffer, WebGLTexture, etc.) so that they pay
attention to the opaque root state when determining liveness of
their JavaScript wrappers. Thanks to ysuzuki@ for pointing out the
need for this.

  • bindings/js/JSWebGL2RenderingContextCustom.cpp:

(WebCore::JSWebGL2RenderingContext::visitAdditionalChildren):

  • bindings/js/JSWebGLRenderingContextCustom.cpp:

(WebCore::JSWebGLRenderingContext::visitAdditionalChildren):

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::visitReferencedJSWrappers):

  • html/canvas/WebGL2RenderingContext.h:
  • html/canvas/WebGLBuffer.idl:
  • html/canvas/WebGLFramebuffer.cpp:

(WebCore::WebGLFramebuffer::visitReferencedJSWrappers):

  • html/canvas/WebGLFramebuffer.h:
  • html/canvas/WebGLFramebuffer.idl:
  • html/canvas/WebGLProgram.cpp:

(WebCore::WebGLProgram::visitReferencedJSWrappers):

  • html/canvas/WebGLProgram.h:
  • html/canvas/WebGLProgram.idl:
  • html/canvas/WebGLQuery.idl:
  • html/canvas/WebGLRenderbuffer.idl:
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::visitReferencedJSWrappers):

  • html/canvas/WebGLRenderingContextBase.h:
  • html/canvas/WebGLSampler.idl:
  • html/canvas/WebGLShader.idl:
  • html/canvas/WebGLTexture.idl:
  • html/canvas/WebGLTransformFeedback.cpp:

(WebCore::WebGLTransformFeedback::visitReferencedJSWrappers):

  • html/canvas/WebGLTransformFeedback.h:
  • html/canvas/WebGLTransformFeedback.idl:
  • html/canvas/WebGLVertexArrayObject.idl:
  • html/canvas/WebGLVertexArrayObjectBase.cpp:

(WebCore::WebGLVertexArrayObjectBase::visitReferencedJSWrappers):

  • html/canvas/WebGLVertexArrayObjectBase.h:
  • html/canvas/WebGLVertexArrayObjectOES.idl:

LayoutTests:

Rebaseline expando-loss.html and expando-loss-2.html, which are
now fully passing.

Add a hook to js-test-pre.js which allows this test to be run
correctly in the MiniBrowser by setting the following environment
variables:

export JSC_useDollarVM=1
export XPC_JSC_useDollarVM=1

  • webgl/2.0.0/conformance/misc/expando-loss-expected.txt:
  • webgl/2.0.0/conformance2/misc/expando-loss-2-expected.txt:
  • webgl/2.0.0/resources/webgl_test_files/js/js-test-pre.js:
10:07 AM Changeset in webkit [265501] by youenn@apple.com
  • 4 edits in trunk

Add JS console log message in case of capture failure
https://bugs.webkit.org/show_bug.cgi?id=215370

Reviewed by Eric Carlson.

Source/WebCore:

Covered by rebased test.

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::trackEnded):

LayoutTests:

  • fast/mediastream/media-stream-track-source-failure-expected.txt:
10:06 AM Changeset in webkit [265500] by youenn@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Cherry-pick usrsctp 264ce452885bfed73348ba6b6f63693bc2f52a6e commit
https://bugs.webkit.org/show_bug.cgi?id=215378
<rdar://problem/66788144>

Reviewed by Eric Carlson.

  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c:

(sctp_handle_asconf):

9:40 AM Changeset in webkit [265499] by Alan Bujtas
  • 6 edits
    2 adds in trunk

[AutoTableLayout] REGRESSION(r263855) Paypal email is rendered right aligned on Safari
https://bugs.webkit.org/show_bug.cgi?id=215340
<rdar://problem/66540254>

Reviewed by Simon Fraser.

Source/WebCore:

Prior to r263855, these zero-length, non-empty columns had the preferred width value of 1px and the available space got distributed based on this made-up 1px value.
In this patch, we distribute the available horizontal space evenly among these zero-length, 'width: auto' columns.

Test: fast/table/zero-length-non-empty-columns-with-auto-width.html

  • rendering/AutoTableLayout.cpp:

(WebCore::AutoTableLayout::layout):

LayoutTests:

  • fast/table/zero-length-non-empty-columns-with-auto-width-expected.html: Added.
  • fast/table/zero-length-non-empty-columns-with-auto-width.html: Added.
  • platform/mac/fast/table/empty-cells-expected.txt: progression
8:54 AM Changeset in webkit [265498] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Dark Mode: Timelines: wrong background colors of even/odd items
https://bugs.webkit.org/show_bug.cgi?id=214565
<rdar://problem/65841762>

Reviewed by Darin Adler.

  • UserInterface/Views/TimelineOverview.css:

(.timeline-overview.edit-instruments > .tree-outline.timelines .item:nth-child(even),):
(.timeline-overview:not(.frames) > .graphs-container > .timeline-overview-graph:not(:first-child)):

8:22 AM Changeset in webkit [265497] by svillar@igalia.com
  • 4 edits in trunk

LayoutTests/imported/w3c:
[css-flexbox] Only update the intrinsic height if we don't have override height
https://bugs.webkit.org/show_bug.cgi?id=215369

Reviewed by Javier Fernandez.

  • web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-010-expected.txt: Replaced failures

by PASS expectations.

Source/WebCore:
[css-flexbox] Only update the intrinsic height if we don't have an override height
https://bugs.webkit.org/show_bug.cgi?id=215369

Reviewed by Javier Fernandez.

If we do have an override height, children will size themselves relative to the override height
(e.g. flexbox flexing/stretching, percentage heights). Because flex intrinsic height is based on
its children, it would then store an incorrect intrinsic height.

This is specially problematic with min-height:auto is nested column flexboxes where flexboxes are
flex items at the same time.

Based on Blink's https://crrev.com/c/1283482 by <cbiesinger@chromium.org>

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::cacheIntrinsicContentLogicalHeightForFlexItem const): Early return if there
is an override height.

6:35 AM WebKitFlatpakSDK/SpeedUpBuild edited by Philippe Normand
(diff)
6:32 AM WebKitGTK/Debugging edited by Philippe Normand
(diff)
6:27 AM Changeset in webkit [265496] by commit-queue@webkit.org
  • 4 edits in trunk/Tools

[GTK][WPE] Add MiniBrowser wrapper env vars and white-list MESA env vars in flatpak
https://bugs.webkit.org/show_bug.cgi?id=215361

Patch by Philippe Normand <pnormand@igalia.com> on 2020-08-11
Reviewed by Žan Doberšek.

  • Scripts/webkitpy/port/gtk.py:

(GtkPort.run_minibrowser): Add support for the $WEBKIT_MINI_BROWSER_PREFIX env var which can
be useful when debugging MiniBrowser with gdb or rr.

  • Scripts/webkitpy/port/wpe.py:

(WPEPort.run_minibrowser): Ditto.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.run_in_sandbox): White-list MESA environment variables in the sandbox.

5:11 AM Changeset in webkit [265495] by Andres Gonzalez
  • 4 edits
    2 adds in trunk

Update the isolated tree on element language changes.
https://bugs.webkit.org/show_bug.cgi?id=215354
<rdar://problem/65583698>

Reviewed by Chris Fleizach.

Source/WebCore:

Test: accessibility/language-attribute-change.html

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::handleAttributeChange): Added handling of
AXLanguageChanged notifications.
(WebCore::AXObjectCache::updateIsolatedTree): Update the isolated tree
for ASLanguage notifications.

  • accessibility/AXObjectCache.h:

LayoutTests:

  • accessibility/language-attribute-change-expected.txt: Added.
  • accessibility/language-attribute-change.html: Added.
4:41 AM Changeset in webkit [265494] by aboya@igalia.com
  • 2 edits in trunk/Source/WebCore

[MSE][GStreamer] Remove m_sourceBufferPrivateClient checks in SourceBufferPrivateGStreamer
https://bugs.webkit.org/show_bug.cgi?id=215263

Reviewed by Xabier Rodriguez-Calvar.

m_sourceBufferPrivateClient is only reset to NULL from SourceBuffer's
destructor. At this point SourceBufferPrivateGStreamer is about to
receive its last unref by SourceBuffer and therefore be destroyed.

Similarly, there is no need to check for m_mediaSource being null.
m_mediaSource is only reset when the SourceBuffer is removed, and at
that point SourceBufferPrivate shouldn't receive any calls.

This is a clean-up and doesn't introduce new behavior. Asserts have
been added checking the precondition above.

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

(WebCore::SourceBufferPrivateGStreamer::removedFromMediaSource):
(WebCore::SourceBufferPrivateGStreamer::didReceiveInitializationSegment):
(WebCore::SourceBufferPrivateGStreamer::didReceiveSample):
(WebCore::SourceBufferPrivateGStreamer::didReceiveAllPendingSamples):
(WebCore::SourceBufferPrivateGStreamer::appendParsingFailed):

1:23 AM Changeset in webkit [265493] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

ScriptExecutable::newCodeBlockFor() neglected to set the exception pointer result in one case.
https://bugs.webkit.org/show_bug.cgi?id=215357
<rdar://problem/57675112>

Reviewed by Yusuke Suzuki.

At the bottom of ScriptExecutable::newCodeBlockFor(), it calls:

RELEASE_AND_RETURN(throwScope, FunctionCodeBlock::create(vm, executable, unlinkedCodeBlock, scope));

However, ScriptExecutable::newCodeBlockFor() has 2 return values: a CodeBlock*,
and a passed in Exception*& that needs to be set if there's an exception.
FunctionCodeBlock::create() is capable of returning a null CodeBlock* because
CodeBlock::finishCreation() can throw exceptions. As a result, we have a scenario
here where ScriptExecutable::newCodeBlockFor() can return a null CodeBlock* without
setting the Exception*& result.

Consequently, Interpreter::executeCall() is relying on this and can end up
crashing while dereferencing a null CodeBlock* because the exception result was
not set.

This patch fixes ScriptExecutable::newCodeBlockFor() to set the exception result.

  • runtime/ScriptExecutable.cpp:

(JSC::ScriptExecutable::newCodeBlockFor):

1:17 AM Changeset in webkit [265492] by Philippe Normand
  • 21 edits in trunk

[GStreamer] gst-full standalone library support
https://bugs.webkit.org/show_bug.cgi?id=215262

Reviewed by Xabier Rodriguez-Calvar.

.:

  • Source/cmake/FindGStreamer.cmake:
  • Source/cmake/GStreamerChecks.cmake:
  • Source/cmake/GStreamerDefinitions.cmake:

Source/WebCore:

A new CMake option is introduced to enable gst-full support: USE_GSTREAMER_FULL. By default
this option is disabled. WebKit distributors might want to enable this if they distribute
GStreamer through gst-build's gst-full library. In gst-build the following options can be
used to produce a usable libgstreamer-full-1.0.so:

-Dpython=disabled -Dges=disabled -Ddevtools=disabled -Dintrospection=disabled -Ddefault_library=static

Once enabled in our build, the dynamic library libgstreamer-full-1.0.so will be loaded
instead of all the other GStreamer libraries. Plugins are statically registered in this
library as well.

This can be useful when deploying WebKit in controlled embedded platform where disk space is
limited. One of the goals of gst-full is to enable full customization of the plugins to be
included in the library. Static registration can also reduce GStreamer initialization time.

  • platform/GStreamer.cmake:
  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::initializeGStreamer):
(WebCore::initializeGStreamerAndRegisterWebKitElements):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::handleMessage): Disable missing-plugins handling when
gst-full is in use. The plugin installer doesn't make much sense for this scenario.

Source/WebKit:

Disable missing-plugins handling when gst-full is in use. The plugin installer doesn't make
much sense for this scenario.

  • PlatformWPE.cmake:
  • UIProcess/API/glib/WebKitInstallMissingMediaPluginsPermissionRequest.cpp:

(webkitInstallMissingMediaPluginsPermissionRequestAllow):
(webkitInstallMissingMediaPluginsPermissionRequestDeny):
(webkit_install_missing_media_plugins_permission_request_get_description):

  • UIProcess/API/glib/WebKitInstallMissingMediaPluginsPermissionRequestPrivate.h:
  • UIProcess/API/glib/WebKitWebView.cpp:

(webkitWebViewRequestInstallMissingMediaPlugins):

  • UIProcess/gstreamer/InstallMissingMediaPluginsPermissionRequest.cpp:
  • UIProcess/gstreamer/InstallMissingMediaPluginsPermissionRequest.h:
  • UIProcess/gstreamer/WebPageProxyGStreamer.cpp:

(WebKit::WebPageProxy::requestInstallMissingMediaPlugins):

Tools:

Somehow unrelated with the gst-full support, disable GStreamer options command-line support
in MiniBrowsers. This isn't very useful and pulls GStreamer in the MiniBrowser for no much
gain. Use GST_* env variables instead.

  • MiniBrowser/gtk/CMakeLists.txt:
  • MiniBrowser/gtk/main.c:

(main):

  • MiniBrowser/wpe/CMakeLists.txt:
  • MiniBrowser/wpe/main.cpp:

(main):

12:02 AM Changeset in webkit [265491] by mmaxfield@apple.com
  • 10 edits
    9 copies
    2 adds in trunk/LayoutTests

[BigSur] 5 fast/text/international/system-language/navigator-language/navigator-language tests are constant failures
https://bugs.webkit.org/show_bug.cgi?id=214629
<rdar://problem/64047392>

Unreviewed test gardening.

Update iOS test results.

  • platform/ios-13/fast/text/international/system-language/navigator-language/navigator-language-en-US-expected.txt: Copied from LayoutTests/plat
Note: See TracTimeline for information about the timeline view.