Timeline
Feb 24, 2021:
- 11:32 PM Changeset in webkit [273476] by
-
- 2 edits in trunk/Tools
Build fix after r273465.
- TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:
- 11:00 PM Changeset in webkit [273475] by
-
- 1 edit in branches/safari-611-branch/Source/WebCore/Modules/mediarecorder/MediaRecorder.cpp
Unreviewed build fix. rdar://problem/74501076
- 10:50 PM Changeset in webkit [273474] by
-
- 3 edits in trunk/Source/WebCore
Optimize the code to check if an element delegates focus to its shadow root or not
https://bugs.webkit.org/show_bug.cgi?id=222404
Reviewed by Simon Fraser.
Add a fast path for checking whether a given element is a shadow host with a shadow root
with delegatesFocus set to true in with a new node flag: DelegatesFocusToShadowRoot.
The flag is set in Element::attachShadow and never cleared as delegatesFocus can never be unset.
No new tests since there should be no observable behavioral differences.
- dom/Element.cpp:
(WebCore::Element::isKeyboardFocusable const): Optimized this code using the new flag.
(WebCore::shadowRootWithDelegatesFocus): Set the flag.
(WebCore::isProgramaticallyFocusable): Optimized this code using the new flag.
(WebCore::Element::focus): Ditto.
- dom/Node.h:
(WebCore::Node::delegatesFocusToShadowRoot const): Added.
(WebCore::Node::NodeFlag): Added NodeFlag::DelegatesFocusToShadowRoot.
(WebCore::Node::setDelegatesFocusToShadowRoot): Added.
- 10:45 PM Changeset in webkit [273473] by
-
- 33 edits in trunk/Source/WebKit
[GPUP] Use a WeakPtr of GPUConnectionToWebProcess instead of a reference in some media related objects
https://bugs.webkit.org/show_bug.cgi?id=222293
Reviewed by Eric Carlson.
A GPUConnectionToWebProcess object may be destroyed when we close a page, then crash will happen
in callbacks accessing the GPUConnectionToWebProcess object. For example, in
RemoteSourceBufferProxy::sourceBufferPrivateBufferedRangesChanged()
. This patch
replaces the references to a GPUConnectionToWebProcess with WeakPtr(s) in places where the
issue may happen.
No new tests. Fix some test crashes.
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::isAlwaysOnLoggingAllowed const):
(WebKit::GPUConnectionToWebProcess::mediaEngineConfigurationFactoryProxy):
- GPUProcess/GPUConnectionToWebProcess.h:
- GPUProcess/media/RemoteAudioHardwareListenerProxy.cpp:
(WebKit::RemoteAudioHardwareListenerProxy::RemoteAudioHardwareListenerProxy):
(WebKit::RemoteAudioHardwareListenerProxy::audioHardwareDidBecomeActive):
(WebKit::RemoteAudioHardwareListenerProxy::audioHardwareDidBecomeInactive):
(WebKit::RemoteAudioHardwareListenerProxy::audioOutputDeviceChanged):
- GPUProcess/media/RemoteAudioHardwareListenerProxy.h:
- GPUProcess/media/RemoteAudioTrackProxy.cpp:
(WebKit::RemoteAudioTrackProxy::RemoteAudioTrackProxy):
(WebKit::RemoteAudioTrackProxy::configurationChanged):
- GPUProcess/media/RemoteAudioTrackProxy.h:
- GPUProcess/media/RemoteCDMFactoryProxy.cpp:
(WebKit::RemoteCDMFactoryProxy::RemoteCDMFactoryProxy):
- GPUProcess/media/RemoteCDMFactoryProxy.h:
- GPUProcess/media/RemoteCDMInstanceProxy.cpp:
(WebKit::RemoteCDMInstanceProxy::unrequestedInitializationDataReceived):
- GPUProcess/media/RemoteCDMInstanceSessionProxy.cpp:
(WebKit::RemoteCDMInstanceSessionProxy::updateKeyStatuses):
(WebKit::RemoteCDMInstanceSessionProxy::sendMessage):
(WebKit::RemoteCDMInstanceSessionProxy::sessionIdChanged):
- GPUProcess/media/RemoteImageDecoderAVFProxy.cpp:
(WebKit::RemoteImageDecoderAVFProxy::RemoteImageDecoderAVFProxy):
(WebKit::RemoteImageDecoderAVFProxy::encodedDataStatusChanged):
- GPUProcess/media/RemoteImageDecoderAVFProxy.h:
- GPUProcess/media/RemoteLegacyCDMFactoryProxy.cpp:
(WebKit::RemoteLegacyCDMFactoryProxy::RemoteLegacyCDMFactoryProxy):
(WebKit::RemoteLegacyCDMFactoryProxy::~RemoteLegacyCDMFactoryProxy):
(WebKit::RemoteLegacyCDMFactoryProxy::addProxy):
(WebKit::RemoteLegacyCDMFactoryProxy::removeProxy):
(WebKit::RemoteLegacyCDMFactoryProxy::addSession):
(WebKit::RemoteLegacyCDMFactoryProxy::removeSession):
- GPUProcess/media/RemoteLegacyCDMFactoryProxy.h:
- GPUProcess/media/RemoteLegacyCDMProxy.cpp:
(WebKit::RemoteLegacyCDMProxy::cdmMediaPlayer const):
- GPUProcess/media/RemoteLegacyCDMSessionProxy.cpp:
(WebKit::RemoteLegacyCDMSessionProxy::sendMessage):
(WebKit::RemoteLegacyCDMSessionProxy::sendError):
(WebKit::RemoteLegacyCDMSessionProxy::mediaKeysStorageDirectory const):
- GPUProcess/media/RemoteMediaEngineConfigurationFactoryProxy.cpp:
(WebKit::RemoteMediaEngineConfigurationFactoryProxy::RemoteMediaEngineConfigurationFactoryProxy):
- GPUProcess/media/RemoteMediaEngineConfigurationFactoryProxy.h:
- GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:
(WebKit::RemoteMediaPlayerManagerProxy::RemoteMediaPlayerManagerProxy):
(WebKit::RemoteMediaPlayerManagerProxy::createMediaPlayer):
(WebKit::RemoteMediaPlayerManagerProxy::logger):
(WebKit::RemoteMediaPlayerManagerProxy::logger const): Deleted.
(WebKit::RemoteMediaPlayerManagerProxy::logChannel const): Deleted.
- GPUProcess/media/RemoteMediaPlayerManagerProxy.h:
(WebKit::RemoteMediaPlayerManagerProxy::gpuConnectionToWebProcess):
(WebKit::RemoteMediaPlayerManagerProxy::gpuConnectionToWebProcess const): Deleted.
(): Deleted.
- GPUProcess/media/RemoteMediaPlayerProxy.cpp:
(WebKit::RemoteMediaPlayerProxy::RemoteMediaPlayerProxy):
(WebKit::RemoteMediaPlayerProxy::loadMediaSource):
(WebKit::RemoteMediaPlayerProxy::requestResource):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerMediaKeysStorageDirectory const):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerMediaCacheDirectory const):
(WebKit::RemoteMediaPlayerProxy::addRemoteAudioTrackProxy):
(WebKit::RemoteMediaPlayerProxy::addRemoteVideoTrackProxy):
(WebKit::RemoteMediaPlayerProxy::addRemoteTextTrackProxy):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerCachedKeyForKeyId const):
(WebKit::RemoteMediaPlayerProxy::setLegacyCDMSession):
(WebKit::RemoteMediaPlayerProxy::cdmInstanceAttached):
(WebKit::RemoteMediaPlayerProxy::cdmInstanceDetached):
(WebKit::RemoteMediaPlayerProxy::attemptToDecryptWithInstance):
- GPUProcess/media/RemoteMediaPlayerProxy.h:
- GPUProcess/media/RemoteMediaSourceProxy.cpp:
(WebKit::RemoteMediaSourceProxy::RemoteMediaSourceProxy):
(WebKit::RemoteMediaSourceProxy::~RemoteMediaSourceProxy):
(WebKit::RemoteMediaSourceProxy::seekToTime):
(WebKit::RemoteMediaSourceProxy::addSourceBuffer):
- GPUProcess/media/RemoteMediaSourceProxy.h:
- GPUProcess/media/RemoteRemoteCommandListenerProxy.cpp:
(WebKit::RemoteRemoteCommandListenerProxy::RemoteRemoteCommandListenerProxy):
(WebKit::RemoteRemoteCommandListenerProxy::didReceiveRemoteControlCommand):
- GPUProcess/media/RemoteRemoteCommandListenerProxy.h:
- GPUProcess/media/RemoteSourceBufferProxy.cpp:
(WebKit::RemoteSourceBufferProxy::RemoteSourceBufferProxy):
(WebKit::RemoteSourceBufferProxy::~RemoteSourceBufferProxy):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateDidReceiveInitializationSegment):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateStreamEndedWithDecodeError):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateAppendError):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateHighestPresentationTimestampChanged):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateDurationChanged):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateDidParseSample):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateDidDropSample):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateAppendComplete):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateDidReceiveRenderingError):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateReportExtraMemoryCost):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateBufferedDirtyChanged):
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateBufferedRangesChanged):
- GPUProcess/media/RemoteSourceBufferProxy.h:
- GPUProcess/media/RemoteTextTrackProxy.cpp:
(WebKit::RemoteTextTrackProxy::RemoteTextTrackProxy):
(WebKit::RemoteTextTrackProxy::configurationChanged):
(WebKit::RemoteTextTrackProxy::addDataCue):
(WebKit::RemoteTextTrackProxy::updateDataCue):
(WebKit::RemoteTextTrackProxy::removeDataCue):
(WebKit::RemoteTextTrackProxy::addGenericCue):
(WebKit::RemoteTextTrackProxy::updateGenericCue):
(WebKit::RemoteTextTrackProxy::removeGenericCue):
(WebKit::RemoteTextTrackProxy::parseWebVTTFileHeader):
(WebKit::RemoteTextTrackProxy::parseWebVTTCueData):
- GPUProcess/media/RemoteTextTrackProxy.h:
- GPUProcess/media/RemoteVideoTrackProxy.cpp:
(WebKit::RemoteVideoTrackProxy::RemoteVideoTrackProxy):
(WebKit::RemoteVideoTrackProxy::configurationChanged):
- GPUProcess/media/RemoteVideoTrackProxy.h:
- 10:24 PM Changeset in webkit [273472] by
-
- 2 edits in trunk/LayoutTests
[GPUP] Remove duplicated items in LayoutTests/gpu-process/TestExpectations related to media
https://bugs.webkit.org/show_bug.cgi?id=222390
Unreviewed test gardening.
We have enabled "Media in GPU Process" by default in WKTR, so platform-specific TestExpectations
such as platform/wk2/TestExpectations will be used as the baseline for media related tests.
- gpu-process/TestExpectations:
- 10:10 PM Changeset in webkit [273471] by
-
- 6 edits in trunk/Source/WebKit
[Cocoa] Web Inspector: expose the extension host that is used to load _WKInspectorExtension tabs
https://bugs.webkit.org/show_bug.cgi?id=222344
<rdar://problem/74678778>
Reviewed by Devin Rousso.
Clients need access to the WKWebView that hosts extension content in order to implement message passing
and event delivery to the extension panel iframes. (Currently, that WebView is
the same underlying WKWebView for the whole interface, but that is open to change.)
- UIProcess/API/Cocoa/_WKInspectorExtensionHost.h: New property.
- UIProcess/API/Cocoa/_WKInspectorPrivate.h:
- UIProcess/API/Cocoa/_WKInspector.mm:
(-[_WKInspector extensionHostWebView]): Added.
(-[_WKInspector handle]): Deleted.
- UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.mm:
(-[_WKRemoteWebInspectorViewController extensionHostWebView]): Added.
(-[_WKRemoteWebInspectorViewController handle]): Deleted.
- Shared/API/Cocoa/WKBrowsingContextHandle.mm:
(-[WKBrowsingContextHandle description]):
Drive-by, add the standard -description for debugging purposes.
- 9:59 PM Changeset in webkit [273470] by
-
- 5 edits2 adds in trunk
[css-grid] Do not allow negative heights
https://bugs.webkit.org/show_bug.cgi?id=221439
Patch by Rob Buis <rbuis@igalia.com> on 2021-02-24
Reviewed by Darin Adler.
Source/WebCore:
Do not allow negative heights in calculations, instead
use Optional to indicate that the heights are not existing.
Test: fast/css-grid-layout/zero-height-crash.html
- rendering/GridTrackSizingAlgorithm.cpp:
(WebCore::DefiniteSizeStrategy::minLogicalSizeForChild const):
- rendering/RenderBox.cpp:
(WebCore::RenderBox::replacedMinMaxLogicalHeightComputesAsNone const):
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::layoutBlock):
(WebCore::RenderGrid::gridGap const):
(WebCore::RenderGrid::placeItemsOnGrid const):
(WebCore::RenderGrid::applyStretchAlignmentToChildIfNeeded):
LayoutTests:
Add test for this.
- fast/css-grid-layout/zero-height-crash-expected.txt: Added.
- fast/css-grid-layout/zero-height-crash.html: Added.
- 8:57 PM Changeset in webkit [273469] by
-
- 4 edits1 add in trunk/Source
Add stubs to enable SafariForWebKitDevelopment to launch
https://bugs.webkit.org/show_bug.cgi?id=222388
Reviewed by Myles Maxfield.
Source/JavaScriptCore:
- JavaScriptCore.xcodeproj/project.pbxproj:
- runtime/SymbolStubsForSafariCompatibility.mm: Added.
(WTF::String::String):
(WTF::JSONImpl::ObjectBase::getArray const):
(WTF::JSONImpl::ObjectBase::getValue const):
(WTF::JSONImpl::ObjectBase::getObject const):
(Inspector::BackendDispatcher::sendResponse):
Source/WebKit:
I manually verified that before this change, DYLD won't let it launch or it calls a missing selector,
but after this change it launches and loads web pages.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _inspectorDelegate]):
(-[WKWebView _setInspectorDelegate:]):
- 7:34 PM Changeset in webkit [273468] by
-
- 2 edits in trunk/Source/WebCore
Crash in CompositeEditCommand::breakOutOfEmptyMailBlockquotedParagraph()
https://bugs.webkit.org/show_bug.cgi?id=222339
Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2021-02-24
Reviewed by Ryosuke Niwa.
Make a copy of Ref<HTMLBRElement> when inserting before highest blockquote node.
- editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::breakOutOfEmptyMailBlockquotedParagraph):
- 6:43 PM Changeset in webkit [273467] by
-
- 5 edits1 add in trunk
Set xrCompatible in WebGLRenderingContextBase::getContextAttributes
https://bugs.webkit.org/show_bug.cgi?id=222360
Patch by Imanol Fernandez <imanol> on 2021-02-24
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
Update WebXR xrCompatible attribute test expectations.
- web-platform-tests/webxr/webGLCanvasContext_makecompatible_reentrant.https-expected.txt: Added.
Source/WebCore:
Fixes xrCompatibe false value in WebGLRenderingContextBase::getContextAttributes()
after WebGLRenderingContextBase::makeXRCompatible call succeeds.
Test: webGLCanvasContext_create_xrcompatible.https.html
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::getContextAttributes):
LayoutTests:
Update WebXR xrCompatible attribute test expectations.
- platform/wpe/TestExpectations:
- 6:32 PM Changeset in webkit [273466] by
-
- 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 121
Added a tag for Safari Technology Preview release 121.
- 5:45 PM Changeset in webkit [273465] by
-
- 17 edits in trunk
App-bound request parameter should be passed to main resource requests not the main frame
https://bugs.webkit.org/show_bug.cgi?id=222241
<rdar://problem/74560966>
Reviewed by Chris Dumez.
Source/WebKit:
Bug fix to set the isAppBound parameter on the resource request if it
is not on the main frame. Previously this only checked if the
resource was not a main resource before setting the parameter.
Otherwise mostly changes to add better testing.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::appBoundNavigationData):
(WebKit::NetworkProcess::clearAppBoundNavigationData):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- NetworkProcess/NetworkSession.h:
(WebKit::NetworkSession::appBoundNavigationTestingData):
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
- Scripts/webkit/messages.py:
- Shared/NavigatingToAppBoundDomain.h:
(WebKit::AppBoundNavigationTestingData::clearAppBoundNavigationDataTesting):
(WebKit::AppBoundNavigationTestingData::updateAppBoundNavigationTestingData):
(WebKit::AppBoundNavigationTestingData::encode const):
(WebKit::AppBoundNavigationTestingData::decode):
Struct to return data for tests.
- UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
- UIProcess/API/Cocoa/WKWebViewTesting.mm:
(-[WKWebView _appBoundNavigationData:]):
(-[WKWebView _clearAppBoundNavigationData:]):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::appBoundNavigationData):
(WebKit::WebPageProxy::clearAppBoundNavigationData):
- UIProcess/WebPageProxy.h:
- WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::loadResource):
The fix.
Tools:
Adds more robust testing to report when appBound/nonAppBound requests
load in the network process. This tests not only that the main frame’s
document loader is properly set, but also that all loads initiated from
app-bound requests are also app-bound to avoid regressions like this in the future.
- TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:
Utilize some CSP test resources that have the exact setup needed to
test this fix.
- TestWebKitAPI/cocoa/TestWKWebView.h:
- TestWebKitAPI/cocoa/TestWKWebView.mm:
(-[WKWebView appBoundNavigationData:]):
(-[WKWebView clearAppBoundNavigationReports:]):
- 5:18 PM Changeset in webkit [273464] by
-
- 3 edits in trunk/Source/WebKit
[GPUP] Refactor RemoteImageDecoderAVF::createFrameImageAtIndex()
https://bugs.webkit.org/show_bug.cgi?id=222300
Reviewed by Jer Noble.
Use callOnMainThreadAndWait() instead of callOnMainThread() and remove the semaphore.
No new tests, this has no behavior change.
- GPUProcess/media/RemoteImageDecoderAVFProxy.messages.in:
- WebProcess/GPU/media/RemoteImageDecoderAVF.cpp:
(WebKit::RemoteImageDecoderAVF::createFrameImageAtIndex):
- 5:18 PM Changeset in webkit [273463] by
-
- 2 edits in trunk
Fix typo in Introduction.md.
https://bugs.webkit.org/show_bug.cgi?id=222387
Patch by Cameron McCormack <Cameron McCormack> on 2021-02-24
Reviewed by Ryosuke Niwa.
- Introduction.md:
- 5:04 PM Changeset in webkit [273462] by
-
- 7 edits in trunk/Source
[iOS] Reduce use of retain/release in WAKWindow and remove unneeded methods from that class
https://bugs.webkit.org/show_bug.cgi?id=222330
Reviewed by Chris Dumez.
Source/WebCore:
- platform/ios/LegacyTileCache.h: Use pragma once, remove unneeded includes,
tweak coding style a bit to match WebKit standard. Removed hasPendingDraw.
added WEBCORE_EXPORT to setTileBordersVisible and setTilePaintCountersVisible
so they can be used in WebKitLegacy.
- platform/ios/LegacyTileCache.mm:
(WebCore::LegacyTileCache::hasPendingDraw const): Deleted.
- platform/ios/wak/WAKWindow.h: Use pragma once, remove unneeded includes,
tweak coding style a bit to match WebKit standard. Removed hasPendingDraw,
setTileControllerShouldUseLowScaleTiles, setTileBordersVisible,
setTilePaintCountsVisible, setAcceleratedDrawingEnabled, freezeVisibleRect,
and unfreezeVisibleRect.
- platform/ios/wak/WAKWindow.mm: Removed "using namespace WebCore".
Removed unused _WAKKeyWindow global. Converted currentEvent and
gOrientationProvider globals to NeverDestroyed<RetainPtr<>>.
(orientationProvider): Added
(currentEvent): Added.
(-[WAKWindow isKeyWindow]): Remove dead code; this method already always
returns YES.
(-[WAKWindow makeKeyWindow]): Remove dead code. This method wrote to a
global that was never read anywhere.
(-[WAKWindow sendEventSynchronously:]): Use the currentEvent function
and take advantage of the fact that it's a RetainPtr so we don't need a
a local variable named currentEventProtector.
(-[WAKWindow hasPendingDraw]): Deleted. No callers depend on this.
(-[WAKWindow willRotate]): Set _frozenVisibleRect here directly instead
of calling anoether method to do that.
(-[WAKWindow didRotate]): Ditto.
(-[WAKWindow freezeVisibleRect]): Deleted. The method above was the only
caller for this method.
(-[WAKWindow unfreezeVisibleRect]): Ditto.
(+[WAKWindow setOrientationProvider:]): Use the orientationProvider function.
Note, this now retains the passed-in object. This is safe; the only caller
passes in a class, so there's no risk of a retain cycle.
(+[WAKWindow hasLandscapeOrientation]): Use the orientationProvider function.
(-[WAKWindow setTileBordersVisible:]): Deleted. The only caller for this
was in WebKitLegacy, and refactored to use the tile cache directly.
(-[WAKWindow setTilePaintCountsVisible:]): Ditto.
(-[WAKWindow setAcceleratedDrawingEnabled:]): Ditto.
(-[WAKWindow setTileControllerShouldUseLowScaleTiles:]): Deleted. No
callers depend on this.
(+[WAKWindow currentEvent]): Use the currentEvent function.
Source/WebKitLegacy/mac:
- WebView/WebView.mm:
(-[WebView _preferencesChanged:]): Call LegacyTileCache functions directly rather
than indirecting through WAKWindow methods.
(-[WebView viewDidMoveToWindow]): Ditto. Also tweaked conditionals a little for clarity.
- 4:57 PM Changeset in webkit [273461] by
-
- 7 edits2 adds in trunk
[MSE] Media segment is incorrectly dropped when using negative timestampOffset or when source buffer appendWindow is set.
https://bugs.webkit.org/show_bug.cgi?id=222260
Patch by Jean-Yves Avenard <Jean-Yves Avenard> on 2021-02-24
Reviewed by Eric Carlson.
Source/WebCore:
Test: media/media-source/media-source-timestampoffset-trim.html
CoreMedia packs multiple audio frames together into a single CMSampleBuffer,
this allows for faster processing and easier insertion into the track buffer tree.
However, per mediasoure spec [1], a frame is to be dropped according to
its start time and duration. So if only the beginning of the MediaSample
was to be dropped, we would have incorrectly dropped the lot.
We now split the MediaSample if it is going to be dropped to ensure that
all usable content is inserted into the track buffer.
Audio splicing isn't done yet, but this gets us closer to it.
[1] https://w3c.github.io/media-source/#sourcebuffer-coded-frame-processing
- platform/graphics/SourceBufferPrivate.cpp:
(WebCore::SourceBufferPrivate::didReceiveSample):
- platform/graphics/SourceBufferPrivate.h:
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::didParseInitializationData):
(WebCore::SourceBufferPrivateAVFObjC::didProvideMediaDataForTrackId):
- platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:
(WebCore::SourceBufferPrivateGStreamer::didReceiveSample):
- platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.h:
LayoutTests:
- media/media-source/media-source-timestampoffset-trim.html:
- 4:40 PM Changeset in webkit [273460] by
-
- 4 edits in branches/safari-611-branch/Source/WebKit
Cherry-pick r272935. rdar://problem/74500849
REGRESSION(r266890): [Cocoa] Fix InspectorDelegate / API::InspectorClient leak
https://bugs.webkit.org/show_bug.cgi?id=221988
<rdar://73594555>
Reviewed by Devin Rousso.
There was a logic error introduced into the new delegate situation after
moving _WKInspectorDelegate from WKWebView to _WKInspector. When setting
.delegate to nil, we shouldn't allocate dummy API::InspectorClient/
InspectorDelegate instances. As written, these instances form their own retain
cycle and cause a leak if Web Inspector has been opened or if
WKWebView._inspector is accessed (which lazily creates the delegates).
- UIProcess/API/Cocoa/_WKInspector.mm: (-[_WKInspector setDelegate:]): Adopt new constructor and pass in the ObjC delegate.
- UIProcess/Inspector/Cocoa/InspectorDelegate.h:
- UIProcess/Inspector/Cocoa/InspectorDelegate.mm: (WebKit::InspectorDelegate::InspectorDelegate): (WebKit::InspectorDelegate::createInspectorClient): Deleted. (WebKit::InspectorDelegate::setDelegate): Deleted. Clean up this class so that we always receive the ObjC delegate via the constructor. If a nil delegate is passed---for example, when closing the WKWebView---then don't create an API::InspectorClient and set the WebInspectorProxy's client to nullptr.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272935 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:39 PM Changeset in webkit [273459] by
-
- 5 edits2 adds in branches/safari-611-branch
Cherry-pick r272906. rdar://problem/74410175
[LFC][Integration] Pass child inline block scroll overflow to parent
https://bugs.webkit.org/show_bug.cgi?id=221958
rdar://74050874
Reviewed by Zalan Bujtas.
Source/WebCore:
Integrated LFC fails to pass through overflow from nested inline blocks.
Test: fast/overflow/inline-block-scroll-overflow.html
- layout/integration/LayoutIntegrationInlineContentBuilder.cpp: (WebCore::LayoutIntegration::InlineContentBuilder::InlineContentBuilder): (WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLines const):
Find the associated RenderBox and collect overflow from it.
- layout/integration/LayoutIntegrationInlineContentBuilder.h:
- layout/integration/LayoutIntegrationLineLayout.cpp: (WebCore::LayoutIntegration::LineLayout::constructContent):
LayoutTests:
- fast/overflow/inline-block-scroll-overflow-expected.html: Added.
- fast/overflow/inline-block-scroll-overflow.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272906 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:39 PM Changeset in webkit [273458] by
-
- 7 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r272977. rdar://problem/74500812
REGRESSION (r266695): Unable to scroll the menu in 北京114预约挂号 official account - WeChat
https://bugs.webkit.org/show_bug.cgi?id=221948
<rdar://problem/71661277>
Reviewed by Simon Fraser.
r266695 caused this to regress, but it actually is a progression, because all browsers agree
that this content, as it exists in the app, doesn't scroll. So, we don't want to revert the
change itself, because it's a good change, but we also want to make sure that WeChat continues
to work. So, we can temporarily quirk one particular element in the WeChat app, until the
the content can be fixed (<rdar://problem/74377902>).
Because this is a WeChat-specific quirk, it is untestable. I tested manually.
- page/Quirks.cpp: (WebCore::Quirks::needsWeChatScrollingQuirk const):
- page/Quirks.h:
- platform/RuntimeApplicationChecks.h:
- platform/cocoa/RuntimeApplicationChecksCocoa.mm: (WebCore::IOSApplication::isWechat):
- platform/cocoa/VersionChecks.h:
- style/StyleAdjuster.cpp: (WebCore::Style::Adjuster::adjustForSiteSpecificQuirks const):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272977 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:39 PM Changeset in webkit [273457] by
-
- 5 edits in branches/safari-611-branch
Cherry-pick r272911. rdar://problem/74501076
MediaRecorder.stop() does not work correctly when recording has been paused.
https://bugs.webkit.org/show_bug.cgi?id=221916
<rdar://problem/74366154>
Reviewed by Eric Carlson.
LayoutTests/imported/w3c:
- web-platform-tests/mediacapture-record/MediaRecorder-pause-resume-expected.txt:
- web-platform-tests/mediacapture-record/MediaRecorder-pause-resume.html:
Source/WebCore:
Proceed with stop steps in case of paused state, and not only in case of recording state.
Covered by added WPT test.
- Modules/mediarecorder/MediaRecorder.cpp: (WebCore::MediaRecorder::stopRecordingInternal):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272911 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:39 PM Changeset in webkit [273456] by
-
- 18 edits2 adds in branches/safari-611-branch/Source/WebKit
Cherry-pick r272629. rdar://problem/74410251
Make sure we are no longer show the previous page when running a JS prompt
https://bugs.webkit.org/show_bug.cgi?id=215782
<rdar://problem/67698601>
Reviewed by Simon Fraser.
Make sure we are no longer show the previous page when running a JS prompt.
If we have not yet done a layer tree commit since the last load commit, then
we are likely still showing the previous page. If we are asked to run a JS
prompt / alert / confirm at this point, it would be confusing to still show
the previous page. In order to address the issue, we now make the view blank
in such scenario (ideally, we'd have painted the new page but this is
currently not a trivial thing to do).
To make the view blank, the approach chosen was to add a blank overlay view
on top of the content. This overlay view gets taken down as soon as we
paint the view again.
- SourcesCocoa.txt:
- UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _hasBlankOverlay]): (-[WKWebView _setHasBlankOverlay:]):
- UIProcess/API/Cocoa/WKWebViewInternal.h:
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/Cocoa/PageClientImplCocoa.h:
- UIProcess/Cocoa/PageClientImplCocoa.mm: (WebKit::PageClientImplCocoa::setHasBlankOverlay):
- UIProcess/Cocoa/WKBlankOverlayView.h: Added.
- UIProcess/Cocoa/WKBlankOverlayView.mm: Added. (-[WKBlankOverlayView initWithFrame:]):
- UIProcess/PageClient.h: (WebKit::PageClient::setHasBlankOverlay):
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didFirstLayerTreeCommitAfterCommittingLoad): (WebKit::WebPageProxy::makeViewBlankIfUnpaintedSinceLastLoadCommit): (WebKit::WebPageProxy::didCommitLoadForFrame): (WebKit::WebPageProxy::runJavaScriptAlert): (WebKit::WebPageProxy::runJavaScriptConfirm): (WebKit::WebPageProxy::runJavaScriptPrompt):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::didCommitLayerTree):
- UIProcess/mac/WebPageProxyMac.mm: (WebKit::WebPageProxy::didUpdateRenderingAfterCommittingLoad):
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::didCommitLoad):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: (WebKit::TiledCoreAnimationDrawingArea::updateRendering):
- WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::didUpdateRendering):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272629 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:37 PM Changeset in webkit [273455] by
-
- 3 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r272544. rdar://problem/74409562
[Cocoa] Encrypted media segments should generate a parser error if no encrypted media handler is present.
https://bugs.webkit.org/show_bug.cgi?id=221496
Reviewed by Eric Carlson.
The WebM format reader does not support encrypted media parsing, so the parser must generate an error rather
than continuing to parse encrypted media data.
- platform/graphics/cocoa/SourceBufferParserWebM.cpp: (WebCore::SourceBufferParserWebM::OnElementEnd): (WebCore::SourceBufferParserWebM::OnTrackEntry):
- platform/graphics/cocoa/SourceBufferParserWebM.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272544 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:37 PM Changeset in webkit [273454] by
-
- 5 edits in branches/safari-611-branch
Cherry-pick r272359. rdar://problem/74451201
[MSE] Move the call to didParseInitializationDataCallback() from the beginning of a cluster to the end of "tracks" element
https://bugs.webkit.org/show_bug.cgi?id=221120
Reviewed by Daniel Bates.
Source/WebCore:
This patch updates the WebM parser regarding the timing to call didParseInitializationDataCallback()
based on a discussion with Jer.
Based on the spec, https://w3c.github.io/mse-byte-stream-format-webm/#webm-init-segments, "The user
agent MUST accept and ignore any elements other than an EBML Header or a Cluster that occur before,
in between, or after the Segment Information and Tracks elements." So the parser should have collected
all required information of the initialization segment when it finishes parsing the "Tracks" element.
Tests: media/media-source/media-source-webm.html
- platform/graphics/cocoa/SourceBufferParserWebM.cpp: (WebCore::SourceBufferParserWebM::OnElementEnd): (WebCore::SourceBufferParserWebM::OnClusterBegin):
LayoutTests:
- media/media-source/media-source-webm-expected.txt:
- media/media-source/media-source-webm.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272359 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:15 PM Changeset in webkit [273453] by
-
- 4 edits in trunk/Source
Unreviewed, fix build with the latest iOS SDK.
Source/WebCore:
- platform/DragData.h:
(WebCore::DragData::operator=): Deleted.
Source/WebKit:
- Shared/FocusedElementInformation.h:
- 4:08 PM Changeset in webkit [273452] by
-
- 7 edits1 copy in trunk/Source/WebKit
[iOS] Get default value in the UI process for whether synchronous XMLHttpRequest are allowed during unload
https://bugs.webkit.org/show_bug.cgi?id=222377
Reviewed by Brent Fulgham.
Getting this default value in the UI process instead of in every WebContent process should be a small speedup,
since getting this default value is a bit costly on iOS.
- Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):
- Shared/WebPageCreationParameters.h:
- Shared/ios/WebPreferencesDefaultValuesIOS.h: Added.
- Shared/ios/WebPreferencesDefaultValuesIOS.mm:
(WebKit::cachedAllowsRequest):
(WebKit::allowsDeprecatedSynchronousXMLHttpRequestDuringUnload):
(WebKit::setAllowsDeprecatedSynchronousXMLHttpRequestDuringUnload):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::creationParameters):
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::m_lastNavigationWasAppBound):
- 4:07 PM Changeset in webkit [273451] by
-
- 1 copy in tags/Safari-612.1.4.5
Tag Safari-612.1.4.5.
- 4:00 PM Changeset in webkit [273450] by
-
- 2 edits in trunk/Source/WTF
Add platform enable for separated model investigation
https://bugs.webkit.org/show_bug.cgi?id=222383
Reviewed by Dean Jackson.
- wtf/PlatformEnableCocoa.h:
Add define.
- 3:54 PM Changeset in webkit [273449] by
-
- 8 edits in branches/safari-612.1.4-branch/Source
Versioning.
WebKit-7612.1.4.5
- 3:39 PM Changeset in webkit [273448] by
-
- 1 copy in tags/Safari-612.1.4.4
Tag Safari-612.1.4.4.
- 3:35 PM Changeset in webkit [273447] by
-
- 8 edits in branches/safari-612.1.4-branch/Source
Versioning.
WebKit-7612.1.4.4
- 3:29 PM Changeset in webkit [273446] by
-
- 1 copy in tags/Safari-612.1.4.3
Tag Safari-612.1.4.3.
- 3:26 PM Changeset in webkit [273445] by
-
- 8 edits in branches/safari-612.1.4-branch/Source
Versioning.
WebKit-7612.1.4.3
- 3:17 PM Changeset in webkit [273444] by
-
- 28 edits22 adds2 deletes in trunk
Device motion / orientation events not working in third-party iframes despite Feature-Policy allowing it
https://bugs.webkit.org/show_bug.cgi?id=221399
<rdar://problem/74229227>
Reviewed by Youenn Fablet.
Source/WebCore:
Allow third-party iframes to request access to device motion / orientation events if permitted via
Feature-Policy. To match Blink, the following features need to be allowed via Feature-Policy:
- DeviceOrientationEvent: gyroscope, accelerometer and magnetometer
- DeviceMotionEvent: gyroscope and accelerometer
Tests: http/tests/device-orientation/device-motion-allowed-in-first-party-only.html
http/tests/device-orientation/device-motion-third-party-iframe-allowed-by-feature-policy.html
http/tests/device-orientation/device-motion-third-party-iframe-denied-by-insufficient-feature-policy.html
http/tests/device-orientation/device-motion-third-party-iframe-denied.html
http/tests/device-orientation/device-orientation-allowed-in-first-party-only.html
http/tests/device-orientation/device-orientation-third-party-iframe-allowed-by-feature-policy.html
http/tests/device-orientation/device-orientation-third-party-iframe-denied-by-insufficient-feature-policy.html
http/tests/device-orientation/device-orientation-third-party-iframe-denied.html
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
Drop DeviceOrientationOrMotionEvent class as it is no longer needed.
- bindings/js/ScriptController.cpp:
(WebCore::ScriptController::executeScriptInWorld):
Make sure we specify the document when taking a user gesture when asked to run a script.
This is important because some clients want to know that there was a user gesture for
a document within their origin (like device motion & orientation).
- dom/DeviceMotionEvent.cpp:
(WebCore::DeviceMotionEvent::requestPermission):
- dom/DeviceMotionEvent.h:
- dom/DeviceOrientationEvent.cpp:
(WebCore::DeviceOrientationEvent::requestPermission):
- dom/DeviceOrientationEvent.h:
Move requestPermission() from DeviceOrientationOrMotionEvent class to its subclasses now that their
implementations are slightly different.
- dom/DeviceOrientationAndMotionAccessController.cpp:
(WebCore::DeviceOrientationAndMotionAccessController::DeviceOrientationAndMotionAccessController):
(WebCore::DeviceOrientationAndMotionAccessController::accessState const):
(WebCore::DeviceOrientationAndMotionAccessController::shouldAllowAccess):
(WebCore::DeviceOrientationAndMotionAccessController::clearPermissions):
- dom/DeviceOrientationAndMotionAccessController.h:
DeviceOrientationAndMotionAccessController is tied to the top document as used to have a single
cached 'permission state' since we used to only support device orientation & motion events in
first-party content. Now that we support those events in third-party content, I replaced the
single 'permission state' data member into a map of 'permission state' per origin. This allows
us to know synchronously (and without IPC to the UIProcess) the known permission state of each
iframe.
Also, I now pass the document to UserGestureIndicator::processingUserGesture() to make sure that
interacting with the top frame does not allow a third-party iframe to request permission to use
the device motion & orientation API. The user needs to interact with that third-party iframe
to allow the iframe to prompt the user.
- dom/DeviceOrientationOrMotionEvent.cpp: Removed.
- dom/DeviceOrientationOrMotionEvent.h: Removed.
Drop DeviceOrientationOrMotionEvent class now that the 2 subclasses need a slightly different
implementation of requestPermission().
- dom/UserGestureIndicator.cpp:
(WebCore::UserGestureToken::isValidForDocument const):
Make parameter const since it can be.
(WebCore::UserGestureIndicator::processingUserGesture):
Check state first in the condition to avoid doing a null-deref when a UserGestureIndicator
gets constructed with no |state| but with a non-null |document|.
- dom/UserGestureIndicator.h:
- html/FeaturePolicy.cpp:
(WebCore::policyTypeName):
(WebCore::FeaturePolicy::parse):
(WebCore::FeaturePolicy::allows const):
- html/FeaturePolicy.h:
Add the following feature policies: accelerometer, gyroscope & magnetometer.
https://github.com/w3c/webappsec-permissions-policy/blob/main/features.md
- page/DOMWindow.cpp:
(WebCore::DOMWindow::page const):
(WebCore::DOMWindow::isAllowedToUseDeviceMotionOrOrientation const):
(WebCore::DOMWindow::isAllowedToUseDeviceMotion const):
(WebCore::DOMWindow::isAllowedToUseDeviceOrientation const):
(WebCore::DOMWindow::hasPermissionToReceiveDeviceMotionOrOrientationEvents const):
(WebCore::DOMWindow::startListeningForDeviceOrientationIfNecessary):
(WebCore::DOMWindow::startListeningForDeviceMotionIfNecessary):
- page/DOMWindow.h:
Differentiate permission support for device motion and device orientation that
they are different. In particular, the two types of events now require a different
subset of feature policies.
LayoutTests:
Add layout test coverage.
- TestExpectations:
- fast/device-orientation/device-motion-request-permission-denied-expected.txt:
- fast/device-orientation/device-motion-request-permission-granted-expected.txt:
- fast/device-orientation/device-motion-request-permission-user-gesture-expected.txt:
- fast/device-orientation/device-orientation-request-permission-denied-expected.txt:
- fast/device-orientation/device-orientation-request-permission-granted-expected.txt:
- fast/device-orientation/device-orientation-request-permission-user-gesture-expected.txt:
- fast/device-orientation/device-orientation-request-permission-user-gesture.html:
- http/tests/device-orientation/device-motion-allowed-in-first-party-only-expected.txt: Added.
- http/tests/device-orientation/device-motion-allowed-in-first-party-only.html: Added.
- http/tests/device-orientation/device-motion-third-party-iframe-allowed-by-feature-policy-expected.txt: Added.
- http/tests/device-orientation/device-motion-third-party-iframe-allowed-by-feature-policy.html: Added.
- http/tests/device-orientation/device-motion-third-party-iframe-denied-by-insufficient-feature-policy-expected.txt: Added.
- http/tests/device-orientation/device-motion-third-party-iframe-denied-by-insufficient-feature-policy.html: Added.
- http/tests/device-orientation/device-motion-third-party-iframe-denied-expected.txt: Added.
- http/tests/device-orientation/device-motion-third-party-iframe-denied.html: Added.
- http/tests/device-orientation/device-orientation-allowed-in-first-party-only-expected.txt: Added.
- http/tests/device-orientation/device-orientation-allowed-in-first-party-only.html: Added.
- http/tests/device-orientation/device-orientation-third-party-iframe-allowed-by-feature-policy-expected.txt: Added.
- http/tests/device-orientation/device-orientation-third-party-iframe-allowed-by-feature-policy.html: Added.
- http/tests/device-orientation/device-orientation-third-party-iframe-denied-by-insufficient-feature-policy-expected.txt: Added.
- http/tests/device-orientation/device-orientation-third-party-iframe-denied-by-insufficient-feature-policy.html: Added.
- http/tests/device-orientation/device-orientation-third-party-iframe-denied-expected.txt: Added.
- http/tests/device-orientation/device-orientation-third-party-iframe-denied.html: Added.
- http/tests/device-orientation/resources/request-motion-events.html: Added.
- http/tests/device-orientation/resources/request-orientation-events.html: Added.
- platform/ios-wk2/TestExpectations:
- 3:03 PM Changeset in webkit [273443] by
-
- 1 copy in tags/Safari-611.1.18.3.1
Tag Safari-611.1.18.3.1.
- 3:02 PM Changeset in webkit [273442] by
-
- 5 edits in trunk/Source/WebCore
Regression(r269481) Kugou Music: Can not leave "MV" category after selecting it
https://bugs.webkit.org/show_bug.cgi?id=222380
<rdar://74602294>
Reviewed by Geoffrey Garen.
The new behavior in r269481 aligns us with the specification and with Blink so I
am adding a linked-on-after to maintain pre-r269481 behavior until Apps get
rebuilt against the new SDK.
- html/HTMLDocument.cpp:
(WebCore::HTMLDocument::supportedPropertyNames const):
- page/Quirks.cpp:
(WebCore::Quirks::shouldOmitHTMLDocumentSupportedPropertyNames):
- page/Quirks.h:
- platform/cocoa/VersionChecks.h:
- 3:01 PM Changeset in webkit [273441] by
-
- 1 copy in tags/Safari-611.1.18.2.1
Tag Safari-611.1.18.2.1.
- 2:49 PM Changeset in webkit [273440] by
-
- 1 copy in tags/Safari-611.1.18.1.2
Tag Safari-611.1.18.1.2.
- 2:45 PM Changeset in webkit [273439] by
-
- 1 copy in tags/Safari-611.1.18.0.2
Tag Safari-611.1.18.0.2.
- 2:03 PM Changeset in webkit [273438] by
-
- 6 edits3 adds in trunk
Regression(r268700) postMessage changes prototype of basic types
https://bugs.webkit.org/show_bug.cgi?id=222228
<rdar://problem/74612853>
Reviewed by Geoffrey Garen.
Source/WebCore:
r268700 updated ScriptExecutionContext::globalObject() to call:
WebCore::globalObject(mainThreadNormalWorld(), downcast<Document>(*this).page())
instead of
frame ? frame->script().globalObject(mainThreadNormalWorld()) : nullptr
This was not right for subframes because globalObject() gets the globalObject from
the page's main frame instead of the document's frame.
This patch gets rid of the error-prone WebCore::globalObject() taking in a Page*
and replaces it with one taking in a Frame* to avoid such issues in the future.
Test: fast/dom/Window/postMessage-Object-prototype.html
- bindings/js/ScriptState.cpp:
(WebCore::globalObject):
- bindings/js/ScriptState.h:
- dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::globalObject):
- inspector/InspectorFrontendHost.cpp:
(WebCore::InspectorFrontendHost::addSelfToGlobalObjectInWorld):
(WebCore::InspectorFrontendHost::showContextMenu):
LayoutTests:
Add layout test coverage.
- fast/dom/Window/postMessage-Object-prototype-expected.txt: Added.
- fast/dom/Window/postMessage-Object-prototype.html: Added.
- fast/dom/Window/resources/postMessage-Object-prototype-frame.html: Added.
- 2:02 PM Changeset in webkit [273437] by
-
- 11 edits in trunk/Tools
[webkitscmpy] Add flag for caller to opt out of identifier computation
https://bugs.webkit.org/show_bug.cgi?id=222337
<rdar://problem/74667858>
Reviewed by Dewei Zhu.
- Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:
(Git.commit): Allow caller to opt-out of retrieving the identifier.
(Git.find): Ditto.
- Scripts/libraries/webkitscmpy/webkitscmpy/local/svn.py:
(Svn.commit): Allow caller to opt-out of retrieving the identifier.
- Scripts/libraries/webkitscmpy/webkitscmpy/remote/bitbucket.py:
(BitBucket.commit): Allow caller to opt-out of retrieving the identifier.
(BitBucket.find): Ditto.
- Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:
(GitHub.commit): Allow caller to opt-out of retrieving the identifier.
(GitHub.find): Ditto.
- Scripts/libraries/webkitscmpy/webkitscmpy/remote/svn.py:
(Svn.commit): Allow caller to opt-out of retrieving the identifier.
- Scripts/libraries/webkitscmpy/webkitscmpy/scm_base.py:
(ScmBase.commit): Allow caller to opt-out of retrieving the identifier.
(ScmBase.find): Ditto.
- Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py:
(TestGit.test_no_identifier):
(TestGitHub.test_no_identifier):
(TestBitBucket.test_no_identifier):
- Scripts/libraries/webkitscmpy/webkitscmpy/test/svn_unittest.py:
(TestLocalSvn.test_no_identifier):
(TestRemoteSvn.test_no_identifier):
- 1:39 PM Changeset in webkit [273436] by
-
- 2 edits in trunk/LayoutTests
Unreviewed Windows test gardening to speed up EWS.
- platform/win/TestExpectations:
- 1:35 PM Changeset in webkit [273435] by
-
- 6 edits in trunk
[css-grid] Fix min/max widths of grid affected by ancestor
https://bugs.webkit.org/show_bug.cgi?id=222100
Patch by Ziran Sun <Ziran Sun> on 2021-02-24
Reviewed by Javier Fernandez.
LayoutTests/imported/w3c:
Updated test expectation files.
- web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-002-expected.txt:
- web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-lr-002-expected.txt:
- web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-rl-002-expected.txt:
Source/WebCore:
We need to recalculate min/max widths of child that depend on the ancestor.
Before update logical-width, for element that needs preferredWidth recalcution,
it is necessary to make sure that min/max widths are set dirty.
This change is an import of chromium CL at
https://chromium-review.googlesource.com/c/chromium/src/+/527640/
Only the parts that apply to this issue are imported.
Tests were already imported in WPT.
- rendering/RenderBox.cpp:
(WebCore::shouldRecalculateMinMaxWidthsAffectedByAncestor):
(WebCore::RenderBox::updateLogicalWidth):
- 1:24 PM Changeset in webkit [273434] by
-
- 1 edit in branches/safari-611.1.18.3-branch/Source/WebKit/FeatureFlags/WebKit.plist
Cherry-pick r273411. rdar://problem/74709450
Apply patch. rdar://problem/74702051
git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-611-branch@273411 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:17 PM Changeset in webkit [273433] by
-
- 2 edits in trunk/LayoutTests
[ macOS Wk2 ] imported/w3c/web-platform-tests/media-source/mediasource-activesourcebuffers.html is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=222371
Unreviewed test gardening.
Patch by Robert Jenner <Robert Jenner> on 2021-02-24
- platform/mac-wk2/TestExpectations:
- 1:16 PM Changeset in webkit [273432] by
-
- 2 edits1 delete in trunk/Tools/buildstream
[Flatpak SDK] Update to sccache 0.2.15
https://bugs.webkit.org/show_bug.cgi?id=222271
Patch by Philippe Normand <pnormand@igalia.com> on 2021-02-24
Reviewed by Adrian Perez de Castro.
- elements/sdk/sccache.bst: Bump to latest stable release. The previous version broke in the
SDK update, timing out when starting the local server.
- patches/sccache-no-selenium.patch: Removed.
- 1:15 PM Changeset in webkit [273431] by
-
- 1 edit in branches/safari-611.1.18.2-branch/Source/WebKit/FeatureFlags/WebKit.plist
Cherry-pick r273411. rdar://problem/74709368
Apply patch. rdar://problem/74702051
git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-611-branch@273411 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:13 PM Changeset in webkit [273430] by
-
- 2 edits in trunk/Source/ThirdParty
Fix linker warnings building gtest for macCatalyst
https://bugs.webkit.org/show_bug.cgi?id=222346
<rdar://problem/74405116>
Reviewed by Alexey Proskuryakov.
- gtest/xcode/Config/FrameworkTarget.xcconfig:
- gtest/xcode/Config/General.xcconfig:
Work around a linker warning about macCatalyst by not specifying
an INSTALL_NAME that is outside of /System/iOSSupport, where all
macCatalyst-only binaries must live.
- 1:00 PM Changeset in webkit [273429] by
-
- 3 edits in trunk/Source/ThirdParty/libwebrtc
Update fipsmodule cipher.c to handle EVP_CipherUpdate
https://bugs.webkit.org/show_bug.cgi?id=222354
<rdar://problem/74436356>
Reviewed by Eric Carlson.
Cherry-picking of https://boringssl.googlesource.com/boringssl/+/e7c0c9734f5491e62665ea156603209a80fbb235%5E%21/.
- Source/third_party/boringssl/src/crypto/fipsmodule/cipher/cipher.c:
(EVP_EncryptUpdate):
(EVP_DecryptUpdate):
- Source/third_party/boringssl/src/include/openssl/cipher.h:
- 12:45 PM Changeset in webkit [273428] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, silence -Wreturn-type warnings from r273127
https://bugs.webkit.org/show_bug.cgi?id=221880
<rdar://problem/74509452>
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-02-24
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::consumeRelativeRGBComponent):
(WebCore::CSSPropertyParserHelpers::HueColorAdjuster::fixupAnglesForInterpolation):
- 12:32 PM Changeset in webkit [273427] by
-
- 5 edits in branches/safari-612.1.5-branch
Cherry-pick r273424. rdar://problem/74708164
Revert r272735. rdar://problem/74674837
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273424 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:32 PM Changeset in webkit [273426] by
-
- 2 edits in branches/safari-612.1.5-branch/Source/WebKit
Cherry-pick r273423. rdar://problem/74708164
Revert r272810. rdar://problem/74674837
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273423 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:27 PM Changeset in webkit [273425] by
-
- 8 edits in branches/safari-611.1.18.3-branch/Source
Versioning.
WebKit-7611.1.18.3.1
- 12:23 PM Changeset in webkit [273424] by
-
- 5 edits in trunk
Revert r272735. rdar://problem/74674837
- 12:23 PM Changeset in webkit [273423] by
-
- 2 edits in trunk/Source/WebKit
Revert r272810. rdar://problem/74674837
- 12:19 PM Changeset in webkit [273422] by
-
- 8 edits in branches/safari-611.1.18.2-branch/Source
Versioning.
WebKit-7611.1.18.2.1
- 12:11 PM Changeset in webkit [273421] by
-
- 2 edits in trunk/LayoutTests
Fix model test differences between platforms
https://bugs.webkit.org/show_bug.cgi?id=222323
<rdar://problem/74678133>
Reviewed by Zalan Bujtas.
- platform/ios/TestExpectations:
Unskip the tests that were changed to no longer rely on platform differences.
- 12:10 PM Changeset in webkit [273420] by
-
- 1 copy in branches/safari-611.1.18.3-branch
New branch.
- 12:09 PM Changeset in webkit [273419] by
-
- 1 copy in branches/safari-611.1.18.2-branch
New branch.
- 12:03 PM Changeset in webkit [273418] by
-
- 3 edits2 deletes in trunk
Unreviewed, reverting r273373.
The test added with this change is frequently failing
Reverted changeset:
"Null check ArrayBufferView RefPtr"
https://bugs.webkit.org/show_bug.cgi?id=221569
https://commits.webkit.org/r273373
- 11:50 AM Changeset in webkit [273417] by
-
- 1 edit in branches/safari-611.1.18.1-branch/Source/WebKit/FeatureFlags/WebKit.plist
Cherry-pick r273411. rdar://problem/74702064
Apply patch. rdar://problem/74702051
git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-611-branch@273411 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:44 AM Changeset in webkit [273416] by
-
- 8 edits in branches/safari-611.1.18.1-branch/Source
Versioning.
WebKit-7611.1.18.1.2
- 11:43 AM Changeset in webkit [273415] by
-
- 3 edits in trunk/Source/WebCore
Move PostResolutionCallbackDisabler to resolveComputedStyle
https://bugs.webkit.org/show_bug.cgi?id=222350
Reviewed by Ryosuke Niwa.
It can be constructed and deleted repeatedly in styleForElementIgnoringPendingStylesheets when
resolveComputedStyle calls it in a loop.
- dom/Document.cpp:
(WebCore::Document::styleForElementIgnoringPendingStylesheets):
- dom/Element.cpp:
(WebCore::Element::resolveComputedStyle):
(WebCore::Element::resolvePseudoElementStyle):
- 11:41 AM Changeset in webkit [273414] by
-
- 1 edit in branches/safari-611.1.18.0-branch/Source/WebKit/FeatureFlags/WebKit.plist
Cherry-pick r273411. rdar://problem/73631878
Apply patch. rdar://problem/74702051
git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-611-branch@273411 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:39 AM Changeset in webkit [273413] by
-
- 8 edits in branches/safari-611.1.18.0-branch/Source
Versioning.
WebKit-7611.1.18.0.2
- 11:37 AM Changeset in webkit [273412] by
-
- 2 edits in trunk/Tools
Add unit-tests for various step in build.webkit.org (follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=222075
<rdar://problem/74691345>
Unreviewed follow-up fix for unit-tests.
- CISupport/build-webkit-org/steps_unittest.py:
(TestRunWebKitPyTests.test_failure):
(TestRunWebKitPyTests.test_errors):
(TestRunWebKitPyTests.test_lot_of_failures):
(TestRunLLDBWebKitTests.test_failure):
(TestRunLLDBWebKitTests.test_errors):
(TestRunLLDBWebKitTests.test_lot_of_failures):
- 11:20 AM Changeset in webkit [273411] by
-
- 1 edit in branches/safari-611-branch/Source/WebKit/FeatureFlags/WebKit.plist
Apply patch. rdar://problem/74702051
- 11:10 AM Changeset in webkit [273410] by
-
- 2 edits in trunk/Tools
Cloop JSC test driver command shouldn't pass build flags
https://bugs.webkit.org/show_bug.cgi?id=222325
Reviewed by Darin Adler.
- CISupport/build-webkit-org/steps.py:
(RunLLINTCLoopTests):
- 11:03 AM Changeset in webkit [273409] by
-
- 4 edits in trunk/Tools
Disable Buildbot old-style step deprecation warning
https://bugs.webkit.org/show_bug.cgi?id=222363
Reviewed by Jonathan Bedard.
- CISupport/build-webkit-org/master_buildbot2.cfg:
- CISupport/ews-build/master.cfg:
- CISupport/runUnittests.py:
- 10:44 AM Changeset in webkit [273408] by
-
- 2 edits in trunk/LayoutTests
[ macOS Wk2 ] inspector/dom/attributeModified.html is flakey timing out
https://bugs.webkit.org/show_bug.cgi?id=222365
Unreviewed test gardenign.
Patch by Robert Jenner <Robert Jenner> on 2021-02-24
- platform/mac-wk2/TestExpectations:
- 9:58 AM Changeset in webkit [273407] by
-
- 4 edits in trunk
[GPU Process] In process DisplayList display should have a higher precedence than GPUP display
https://bugs.webkit.org/show_bug.cgi?id=222345
Reviewed by Wenson Hsieh.
Source/WebCore:
Give ShouldUseDisplayList a higher precedence since it is a debug option.
- platform/graphics/ImageBuffer.cpp:
(WebCore::ImageBuffer::create):
LayoutTests:
- gpu-process/TestExpectations:
- 9:51 AM Changeset in webkit [273406] by
-
- 6 edits in trunk
[GPU Process] Implement ImageBufferShareableBitmapBackend::bytesPerRow()
https://bugs.webkit.org/show_bug.cgi?id=222348
Reviewed by Simon Fraser.
Source/WebKit:
The default implementation ImageBufferBackend::bytesPerRow() is not correct
for ImageBufferShareableBitmapBackend because ShareableBitmap aligns the
rows using IOSurfaceAlignProperty(kIOSurfaceBytesPerRow, ...).
- Shared/ShareableBitmap.h:
(WebKit::ShareableBitmap::bytesPerRow const):
- WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp:
(WebKit::ImageBufferShareableBitmapBackend::bytesPerRow const):
- WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.h:
LayoutTests:
- gpu-process/TestExpectations:
- 9:26 AM Changeset in webkit [273405] by
-
- 2 edits in trunk/Source/ThirdParty/libwebrtc
Fix null pointer deref in X509_issuer_and_serial_hash
https://bugs.webkit.org/show_bug.cgi?id=222353
<rdar://problem/74446806>
Reviewed by Eric Carlson.
Cherry-picking of https://github.com/openssl/openssl/commit/8130d654d1de922ea224fa18ee3bc7262edc39c0.
- Source/third_party/boringssl/src/crypto/x509/x509_cmp.c:
(X509_issuer_and_serial_hash):
- 9:26 AM Changeset in webkit [273404] by
-
- 3 edits in trunk/Tools
[ews] Add python 3 support - part 3
https://bugs.webkit.org/show_bug.cgi?id=222355
Reviewed by Jonathan Bedard.
- CISupport/ews-build/steps.py:
(ValidateCommiterAndReviewer.load_contributors_from_disk): Ensure that the file is closed.
- CISupport/ews-build/steps_unittest.py:
- 9:25 AM Changeset in webkit [273403] by
-
- 2 edits in trunk/Tools
[ews] Make unit-test compatible with latest buildbot
https://bugs.webkit.org/show_bug.cgi?id=222359
Reviewed by Jonathan Bedard.
- CISupport/ews-build/steps_unittest.py:
(BuildStepMixinAdditions):
(BuildStepMixinAdditions.setUpBuildStep): Invoke setUpTestReactor.
- 9:10 AM Changeset in webkit [273402] by
-
- 2 edits in branches/safari-611-branch/Source/WebKit
Cherry-pick r273304. rdar://problem/74622914
[macOS] Crash under AuxiliaryProcess::initializeSandbox
https://bugs.webkit.org/show_bug.cgi?id=222233
Unreviewed, address additional review feedback.
Add comment and logging when the WebKit client is setting the user directory suffix.
- Shared/mac/AuxiliaryProcessMac.mm: (WebKit::initializeSandboxParameters):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273304 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:10 AM Changeset in webkit [273401] by
-
- 2 edits in branches/safari-611-branch/Source/WebKit
Cherry-pick r273289. rdar://problem/74623623
UserMediaPermissionRequestManagerProxy may be released while computing capture device list
https://bugs.webkit.org/show_bug.cgi?id=222236
<rdar://74480265>
Unreviewed, address post-review comment.
- UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
(WebKit::UserMediaPermissionRequestManagerProxy::computeFilteredDeviceList): Use
captured
this
.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273289 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:10 AM Changeset in webkit [273400] by
-
- 5 edits in branches/safari-611-branch/Source/WebKit
Cherry-pick r273286. rdar://problem/74622950
[Cocoa] Send sandbox extensions for Network Extension services in load parameters
https://bugs.webkit.org/show_bug.cgi?id=222284
<rdar://problem/74402532>
Reviewed by Brent Fulgham.
Currently, sandbox extensions for Network Extension services are sent from the UI process to the WebContent process when the
policy decision is made, but that is not soon enough in all cases. They should also be sent as part of the load parameters.
- Shared/Cocoa/LoadParametersCocoa.mm: (WebKit::LoadParameters::platformEncode const): (WebKit::LoadParameters::platformDecode):
- Shared/LoadParameters.h:
- UIProcess/Cocoa/WebPageProxyCocoa.mm: (WebKit::WebPageProxy::addPlatformLoadParameters):
- WebProcess/WebPage/Cocoa/WebPageCocoa.mm: (WebKit::WebPage::platformDidReceiveLoadParameters):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273286 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:10 AM Changeset in webkit [273399] by
-
- 2 edits in branches/safari-611-branch/Source/WebKit
Cherry-pick r273271. rdar://problem/74622914
[macOS] Crash under AuxiliaryProcess::initializeSandbox
https://bugs.webkit.org/show_bug.cgi?id=222233
<rdar://problem/74261611>
Reviewed by Brent Fulgham.
When a WebKit client provides a user directory suffix in the process initialization parameters, confstr with the new
user suffix applied will fail to create the full directory path if it does not exist, and return an empty result.
This will lead to empty paths in the sandbox parameters, which will cause the sandbox to fail to compile, which will
eventually crash the WebKit process. This patch addresses this by making sure the new user directory suffix does not
represent a path, since confstr is not able to handle user directory suffixes containing paths that do not exist.
Additionally, this patch reverts r271417, which was the first attempt at fixing this crash, but was unsuccessful in
doing so.
- Shared/mac/AuxiliaryProcessMac.mm: (WebKit::initializeSandboxParameters): (WebKit::AuxiliaryProcess::initializeSandbox):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273271 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:10 AM Changeset in webkit [273398] by
-
- 2 edits in branches/safari-611-branch/Source/WebKit
Cherry-pick r273265. rdar://problem/74623623
UserMediaPermissionRequestManagerProxy may be released while computing capture device list
https://bugs.webkit.org/show_bug.cgi?id=222236
<rdar://74480265>
Reviewed by Youenn Fablet.
- UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
(WebKit::UserMediaPermissionRequestManagerProxy::computeFilteredDeviceList): Return early
if
weakThis
is NULL.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273265 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:10 AM Changeset in webkit [273397] by
-
- 5 edits1 add in branches/safari-611-branch
Cherry-pick r273264. rdar://problem/74622873
REGRESSION (r266695): twitch.tv: when in fullscreen, WebKit continually does 350ms layouts. Firefox and Chrome do not
https://bugs.webkit.org/show_bug.cgi?id=222202
<rdar://problem/74537782>
Reviewed by Simon Fraser.
PerformanceTests:
New performance test for nested column flexboxes with percentage heights.
- Layout/nested-column-flexboxes-relative-height.html: Added.
Source/WebCore:
The problem was that we were doing the initial layout for the children of the flex container twice in those cases where
the child inline axis was not the main axis (for example with column flex containers in horizontal writing modes).
Refactored the code (specially the way we clear overriding sizes) so that we only do it once. This saves tons of layouts
in pages with nested column flexboxes with relative heights.
No new tests as there is no change in functionality, we're removing duplicate extra layouts. We're however adding a new
performance test for column flexboxes with percentage heights. With this patch we go from 3.5 layout/s to 145 layout/s
which is ~4000% better.
Inspired by Blink's crrev.com/c/1614058 by <cbiesinger@chromium.org>.
- rendering/RenderFlexibleBox.cpp: (WebCore::RenderFlexibleBox::computeInnerFlexBaseSizeForChild): Do not unconditionally clear overriding sizes. Also removed relayoutChildren which is now unused. Do not layout the item, that should have been done in computeInnerFlexBaseSizeForChild() before. Added ASSERTs to verify that child's intrinsic main size was cached as a consequence of the previous layout. (WebCore::RenderFlexibleBox::constructFlexItem): Do not pass relayoutChildren to computeInnerFlexBaseSizeForChild. Also no need to update it after laying out the child.
- rendering/RenderFlexibleBox.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273264 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:10 AM Changeset in webkit [273396] by
-
- 4 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r273220. rdar://problem/74623537
[Paint Timing] Return early from contentful paint check when no contentful pixels/characters at all
https://bugs.webkit.org/show_bug.cgi?id=222245
Reviewed by Simon Fraser.
Bail from recursive contenful-paint check if there are no pixels/text characters in the entire document.
Covered by existing tests, an optimization only.
- dom/Document.cpp: (WebCore::Document::enqueuePaintTimingEntryIfNeeded):
- page/FrameView.cpp: (WebCore::FrameView::hasContenfulDescendants const):
- page/FrameView.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273220 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:10 AM Changeset in webkit [273395] by
-
- 8 edits in branches/safari-611-branch/Source/WebKit
Cherry-pick r273196. rdar://problem/74623520
Crash under Decoder::Decoder()
https://bugs.webkit.org/show_bug.cgi?id=222192
<rdar://31392681>
Reviewed by Geoffrey Garen.
We are sometimes crashing under Decoder's copyBuffer(), inside the memcpy()
call, with a null address. I have no idea how this is happening and this
code has not changed in a long time so I have made the following hardening:
- Update copyBuffer() to use tryFastMalloc() instead of fastMalloc(). Log and return null if tryFastMalloc() failed instead of calling memcpy().
- Update Decoder::create() to log and return early if the input buffer is null.
- Update Connection's createMessageDecoder() to use CheckedSize when computing the bodySize that is being passed to Decoder::create(). If we overflow, log and return null.
No new tests, no idea how this can happen in practice.
- Platform/IPC/Decoder.cpp: (IPC::copyBuffer): (IPC::Decoder::create): (IPC::Decoder::Decoder):
- Platform/IPC/cocoa/ConnectionCocoa.mm: (IPC::createMessageDecoder):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273196 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:10 AM Changeset in webkit [273394] by
-
- 2 edits in branches/safari-611-branch/Source/WebKit
Cherry-pick r273180. rdar://problem/74623601
CrashTracer: com.apple.WebKit.Networking at WebKit: WTF::Detail::CallableWrapper<WebKit::PrivateClickMeasurementManager::firePendingAttributionRequests()
https://bugs.webkit.org/show_bug.cgi?id=222201
Patch by Alex Christensen <achristensen@webkit.org> on 2021-02-19
Reviewed by Chris Dumez.
- NetworkProcess/PrivateClickMeasurementManager.cpp: (WebKit::PrivateClickMeasurementManager::attribute): (WebKit::PrivateClickMeasurementManager::firePendingAttributionRequests):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273180 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:10 AM Changeset in webkit [273393] by
-
- 9 edits1 add in branches/safari-611-branch
Cherry-pick r273158. rdar://problem/74623451
Allow to use BigInt as key identifier
https://bugs.webkit.org/show_bug.cgi?id=222165
Reviewed by Darin Adler.
Source/WebCore:
Allow to pass a BigInt as key id so as to use all of SFrame key ID 8 bytes.
A RangeError is thrown if BigInt is more than 64 bits.
Update the implementation to use a Vector instead of a map to keep the keys.
This allows to also use 0 and 264-1 values that HashMap reserves for its personal use.
Covered by updated test.
- Modules/mediastream/RTCRtpSFrameTransform.idl:
- Modules/mediastream/RTCRtpSFrameTransformer.cpp: (WebCore::RTCRtpSFrameTransformer::setEncryptionKey): (WebCore::RTCRtpSFrameTransformer::updateEncryptionKey): (WebCore::RTCRtpSFrameTransformer::decryptFrame):
- Modules/mediastream/RTCRtpSFrameTransformer.h:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSRTCRtpSFrameTransformCustom.cpp: Added. (WebCore::JSRTCRtpSFrameTransform::setEncryptionKey):
LayoutTests:
- webrtc/sframe-keys-expected.txt:
- webrtc/sframe-keys.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273158 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:10 AM Changeset in webkit [273392] by
-
- 3 edits1 add in branches/safari-611-branch
Cherry-pick r273129. rdar://problem/74623422
Scrolling on https://www.apple.com/ipad-air/ can jitter on certain sections
https://bugs.webkit.org/show_bug.cgi?id=222136
rdar://71881767
Reviewed by Zalan Bujtas.
Source/WebCore:
On macOS computers with 16MB of memory, https://www.apple.com/ipad-air/ can trigger the
"conservative" compositing mode where RenderLayerCompositor tries to reduce the number of
composited layers.
On this particular page, a "will-change: transform" element with an overflow:hidden ancestor
triggers some bad compositing bounds geometry computation (webkit.org/b/222092,
webkit.org/b/222124) which has the end result of changing the composited bounds of the
"position:sticky" layer on every scroll. This results in layer contents temporarily
appearing stretched or in the wrong place (webkit.org/b/222132).
For now, do a conservative fix to avoid this problem, which is to continue to allow
"will-change: transform" to trigger compositing on macOS in conservative mode. This
actually reduces memory use on this page, because webkit.org/b/222092 was triggering
excessively large backing store.
Tested by compositing/layer-creation/compositing-policy.html
- rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::requiresCompositingForWillChange const):
LayoutTests:
- platform/mac/compositing/layer-creation/compositing-policy-expected.txt: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273129 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:10 AM Changeset in webkit [273391] by
-
- 2 edits in branches/safari-611-branch/Tools
Cherry-pick r273123. rdar://problem/74623473
MotionMark scores are super sensitive to a single long frame
https://bugs.webkit.org/show_bug.cgi?id=220847
<rdar://problem/74152743>
Unreviewed.
Upgrade motionmark1.1.plan to r273122.
- Scripts/webkitpy/benchmark_runner/data/plans/motionmark1.1.plan:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273123 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:10 AM Changeset in webkit [273390] by
-
- 2 edits in branches/safari-611-branch/PerformanceTests
Cherry-pick r273122. rdar://problem/74623473
MotionMark scores are super sensitive to a single long frame
https://bugs.webkit.org/show_bug.cgi?id=220847
<rdar://problem/74152743>
Reviewed by Maciej Stachowiak and Jon Lee.
Currently, "ramp" tests have three phases. The middle phase is where they try to determine a maximum reasonable
complexity, and the third one is where they try various complexities between 0 and the maximum. The calculation
of this maximum reasonable complexity is currently very sensitive to outlier frame times. If there is a single
outlier frame time, the failure mode is to assume that the maximum complexity is ~10. So, the solution is to
ignore outlier frame times during this first phase, and to ensure that there are at least 9 frames measured that
have non-outlier times.
- MotionMark/tests/resources/main.js: (filterOutOutliers): (_measureAndResetInterval): (update): (registerFrameTime): (intervalHasConcluded): (start): (didFinishInterval):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273122 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:10 AM Changeset in webkit [273389] by
-
- 8 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r272358. rdar://problem/74622890
Avoid an ancestor walk in HTMLFormControlElement::computeWillValidate()
https://bugs.webkit.org/show_bug.cgi?id=221357
Reviewed by Ryosuke Niwa.
HTMLFormControlElement::computeWillValidate() does an ancestor DOM walk to look
for enclosing data list elements, but these are fairly uncommon so we can avoid
this work if we know the Document has none.
- dom/Document.h: (WebCore::Document::hasDataListElements const): (WebCore::Document::incrementDataListElementCount): (WebCore::Document::decrementDataListElementCount):
- dom/Element.cpp: (WebCore::Element::removedFromAncestor): Avoid fetching the page twice.
- html/HTMLDataListElement.cpp: (WebCore::HTMLDataListElement::HTMLDataListElement): (WebCore::HTMLDataListElement::~HTMLDataListElement): (WebCore::HTMLDataListElement::didMoveToNewDocument):
- html/HTMLDataListElement.h:
- html/HTMLFormControlElement.cpp: (WebCore::HTMLFormControlElement::computeWillValidate const):
- page/PointerLockController.cpp: (WebCore::PointerLockController::elementWasRemoved): Renamed for consistency. (WebCore::PointerLockController::elementRemoved): Deleted.
- page/PointerLockController.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272358 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:10 AM Changeset in webkit [273388] by
-
- 4 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r272354. rdar://problem/74622963
Avoid frequent calls to HTMLFormControlElement::updateValidity() when constructing form control elements
https://bugs.webkit.org/show_bug.cgi?id=221320
Reviewed by Geoffrey Garen.
HTMLFormControlElement::updateValidity() can get called multiple times inside
HTMLInputElement::parserDidSetAttributes(), so add a simple delaying scope so that
validity is only updated once at the end.
- html/HTMLFormControlElement.cpp: (WebCore::HTMLFormControlElement::endDelayingUpdateValidity): (WebCore::HTMLFormControlElement::computeWillValidate const): (WebCore::HTMLFormControlElement::updateValidity):
- html/HTMLFormControlElement.h: (WebCore::HTMLFormControlElement::startDelayingUpdateValidity): (WebCore::DelayedUpdateValidityScope::DelayedUpdateValidityScope): (WebCore::DelayedUpdateValidityScope::~DelayedUpdateValidityScope):
- html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::parserDidSetAttributes):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272354 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:09 AM Changeset in webkit [273387] by
-
- 48 edits1 delete in branches/safari-611-branch/Source/ThirdParty/libwebrtc
Cherry-pick r272216. rdar://problem/74622861
Update WebRTC usrsctp to M88
https://bugs.webkit.org/show_bug.cgi?id=221205
Reviewed by Eric Carlson.
- Source/third_party/usrsctp/usrsctplib/.github/workflows/build-with-cmake.yml: Removed.
- Source/third_party/usrsctp/usrsctplib/CMakeLists.txt:
- Source/third_party/usrsctp/usrsctplib/usrsctplib/CMakeLists.txt:
- Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp.h:
- Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c: (sctp_process_asconf_set_primary): (sctp_handle_asconf): (sctp_handle_asconf_ack): (sctp_asconf_iterator_ep_end): (sctp_asconf_iterator_stcb):
- Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.h:
- Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_auth.c:
- Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_auth.h:
- Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_bsd_addr.c:
- Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_bsd_addr.h:
- Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_cc_functions.c: (sctp_enforce_cwnd_limit): (sctp_cwnd_update_after_fr): (cc_bw_same): (cc_bw_decrease): (sctp_cwnd_update_after_sack_common): (sctp_cwnd_update_after_ecn_echo_common): (sctp_cwnd_update_after_output): (sctp_cwnd_update_after_sack): (sctp_cwnd_update_after_ecn_echo): (sctp_cwnd_update_rtcc_after_ecn_echo): (sctp_cwnd_update_rtcc_tsn_acknowledged): (sctp_cwnd_prepare_rtcc_net_for_sack): (sctp_cwnd_new_rtcc_transmission_begins): (sctp_set_rtcc_initial_cc_param): (sctp_cwnd_rtcc_socket_option): (sctp_cwnd_update_rtcc_after_sack): (sctp_hs_cwnd_update_after_sack): (htcp_alpha_update): (htcp_cong_avoid): (sctp_htcp_cwnd_update_after_sack):
- Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_constants.h:
- Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_header.h:
- Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_indata.c: (sctp_mark_non_revokable): (sctp_place_control_in_stream): (sctp_queue_data_to_stream): (sctp_inject_old_unordered_data): (sctp_deliver_reasm_check): (sctp_process_a_data_chunk): (sctp_sack_check): (sctp_process_segment_range):
- Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_indata.h:
- Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c: (sctp_process_init): (sctp_handle_heartbeat_ack): (sctp_handle_error): (sctp_process_cookie_existing):
- Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.h:
- Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_os.h:
- Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_os_userspace.h:
- Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c: (sctp_choose_boundspecific_stcb): (sctp_select_nth_preferred_addr_from_ifn_boundall):
- Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.h:
- Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:
- Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.h:
- Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_ss_functions.c: (sctp_ss_prio_clear):
- Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_structs.h:
- Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_sysctl.c: (sctp_init_sysctls):
- Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_sysctl.h:
- Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_timer.c:
- Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_timer.h:
- Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_uio.h:
- Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_userspace.c:
- Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c: (sctp_finish):
- Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_var.h:
- Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c: (sctp_auditing): (sctp_timeout_handler): (sctp_timer_start): (sctp_notify_remote_error):
- Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.h:
- Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c: (in6_sin_2_v4mapsin6):
- Source/third_party/usrsctp/usrsctplib/usrsctplib/user_environment.c: (init_random): (read_random): (finish_random):
- Source/third_party/usrsctp/usrsctplib/usrsctplib/user_environment.h:
- Source/third_party/usrsctp/usrsctplib/usrsctplib/user_inpcb.h:
- Source/third_party/usrsctp/usrsctplib/usrsctplib/user_ip6_var.h:
- Source/third_party/usrsctp/usrsctplib/usrsctplib/user_ip_icmp.h:
- Source/third_party/usrsctp/usrsctplib/usrsctplib/user_malloc.h:
- Source/third_party/usrsctp/usrsctplib/usrsctplib/user_mbuf.c: (mbuf_initialize):
- Source/third_party/usrsctp/usrsctplib/usrsctplib/user_queue.h:
- Source/third_party/usrsctp/usrsctplib/usrsctplib/user_recv_thread.c: (recv_function_raw): (recv_function_raw6): (recv_function_udp): (recv_function_udp6):
- Source/third_party/usrsctp/usrsctplib/usrsctplib/user_route.h:
- Source/third_party/usrsctp/usrsctplib/usrsctplib/user_socket.c: (usrsctp_init_nothreads): (usrsctp_socket):
- Source/third_party/usrsctp/usrsctplib/usrsctplib/user_socketvar.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272216 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:02 AM Changeset in webkit [273386] by
-
- 7 edits in trunk
[LegacyLineLayout] Inline level box should not stick out at the bottom of its containing block
https://bugs.webkit.org/show_bug.cgi?id=222334
Reviewed by Antti Koivisto.
Source/WebCore:
When the inline level box's baseline lands on a subpixel position, because of the way we integral "snap" the ascent and descent values
it can end up sticking out of the containing block.
(containing block's height is based on the max ascent + max descent and with implicitly floored descent values, it may not always be enclosing.)
- rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::computeLogicalBoxHeights):
LayoutTests:
- platform/mac/css1/text_properties/vertical_align-expected.txt:
- platform/mac/fast/table/table-display-types-strict-expected.txt:
- 8:45 AM Changeset in webkit [273385] by
-
- 7 edits4 adds in trunk
Runtime-disabled CSS features still appear enabled via CSS.supports()
https://bugs.webkit.org/show_bug.cgi?id=222280
rdar://74595641
Reviewed by Sam Weinig.
Source/WebCore:
When parsing CSS.supports() for a runtime-disabled property, we'd successfully
parse a CSS-wide keyword like "inherit" and report that the property is supported.
We need to explicitly check for runtime-disabled properties.
Tests: css3/color-filters/color-filter-exposed-if-disabled.html
fast/css/scroll-behavior-exposed-if-disabled.html
- css/parser/CSSParserImpl.cpp:
(WebCore::CSSParserImpl::isPropertyRuntimeDisabled const):
(WebCore::CSSParserImpl::consumeDeclaration):
- css/parser/CSSParserImpl.h:
LayoutTests:
- css3/color-filters/color-filter-exposed-if-disabled-expected.txt: Added. Fails tracked in webkit.org/b/217626
- css3/color-filters/color-filter-exposed-if-disabled.html: Added.
- fast/css/overscroll-behavior-invalidate-if-disabled-expected.txt:
- fast/css/overscroll-behavior-invalidate-if-disabled.html:
- fast/css/scroll-behavior-exposed-if-disabled-expected.txt: Added.
- fast/css/scroll-behavior-exposed-if-disabled.html: Added.
- 6:01 AM Changeset in webkit [273384] by
-
- 8 edits in trunk/Tools
Only import Python flatpak module on Linux
https://bugs.webkit.org/show_bug.cgi?id=222327
Reviewed by Philippe Normand.
Importing flatpak is only relavent for GTK/WPE ports. Also Windows can fail when importing
it due to platform differences.
- Scripts/run-bindings-tests:
- Scripts/run-builtins-generator-tests:
- Scripts/run-minibrowser:
- Scripts/run-perf-tests:
- Scripts/run-webkit-httpd:
- Scripts/run-webkit-tests:
- Scripts/test-webkitpy:
- 5:21 AM Changeset in webkit [273383] by
-
- 2 edits in trunk/Tools
Add unit-tests for various step in build.webkit.org
https://bugs.webkit.org/show_bug.cgi?id=222075
Reviewed by Jonathan Bedard.
- CISupport/build-webkit-org/steps_unittest.py:
(TestRunWebKitPerlTests):
(TestRunWebKitPerlTests.test_success):
(TestRunWebKitPerlTests.test_failure):
(TestRunWebKitPyTests):
(TestRunWebKitPyTests.test_success):
(TestRunWebKitPyTests.test_unexpected_failure):
(TestRunWebKitPyTests.test_failure):
(TestRunWebKitPyTests.test_errors):
(TestRunWebKitPyTests.test_lot_of_failures):
(TestRunLLDBWebKitTests):
(TestRunLLDBWebKitTests.test_success):
(TestRunLLDBWebKitTests.test_unexpected_failure):
(TestRunLLDBWebKitTests.test_failure):
(TestRunLLDBWebKitTests.test_errors):
(TestRunLLDBWebKitTests.test_lot_of_failures):
(TestRunWebKitTests):
(TestRunWebKitTests.configureStep):
(TestRunWebKitTests.test_success):
(TestRunWebKitTests.test_warnings):
(TestRunWebKitTests.test_failure):
(TestRunWebKitTests.test_unexpected_error):
(TestRunWebKitTests.test_exception):
- 5:13 AM Changeset in webkit [273382] by
-
- 5 edits4 adds in trunk/Source/WebCore
Refactor OpenXR platform code into different classes and files.
https://bugs.webkit.org/show_bug.cgi?id=222263
Patch by Imanol Fernandez <imanol> on 2021-02-24
Reviewed by Sergio Villar Senin.
OpenXR platform code is going to grow with graphics, extensions, swapchains, controllers and more.
This patch splits the code into different files to make it more readable and maintanable.
- Sources.txt:
- platform/xr/openxr/OpenXRExtensions.cpp: Added.
(PlatformXR::OpenXRExtensions::create):
(PlatformXR::OpenXRExtensions::OpenXRExtensions):
(PlatformXR::OpenXRExtensions::isExtensionSupported const):
- platform/xr/openxr/OpenXRExtensions.h: Added.
- platform/xr/openxr/OpenXRInstance.cpp: Added.
(PlatformXR::Instance::Impl::xrInstance const):
(PlatformXR::Instance::Impl::queue const):
(PlatformXR::Instance::Impl::extensions):
(PlatformXR::Instance::Impl::Impl):
(PlatformXR::Instance::Impl::~Impl):
(PlatformXR::Instance::singleton):
(PlatformXR::Instance::Instance):
(PlatformXR::Instance::enumerateImmersiveXRDevices):
- platform/xr/openxr/OpenXRUtils.h: Added.
(PlatformXR::createStructure):
(PlatformXR::resultToString):
(PlatformXR::XrPosefToPose):
(PlatformXR::xrViewToPose):
(PlatformXR::toXrViewConfigurationType):
- platform/xr/openxr/PlatformXROpenXR.cpp:
(PlatformXR::isSessionActive):
(PlatformXR::isSessionReady):
(PlatformXR::OpenXRDevice::OpenXRDevice):
(PlatformXR::OpenXRDevice::recommendedResolution):
(PlatformXR::OpenXRDevice::initializeTrackingAndRendering):
(PlatformXR::OpenXRDevice::shutDownTrackingAndRendering):
(PlatformXR::OpenXRDevice::initializeReferenceSpace):
(PlatformXR::OpenXRDevice::requestFrame):
(PlatformXR::OpenXRDevice::views const):
(PlatformXR::OpenXRDevice::enumerateReferenceSpaces const):
(PlatformXR::OpenXRDevice::createReferenceSpace):
(PlatformXR::OpenXRDevice::resetSession):
(PlatformXR::OpenXRDevice::handleSessionStateChange):
(PlatformXR::OpenXRDevice::waitUntilStopping):
- platform/xr/openxr/PlatformXROpenXR.h:
- 5:09 AM Changeset in webkit [273381] by
-
- 19 edits2 adds in trunk
Implement WebXR getViewport
https://bugs.webkit.org/show_bug.cgi?id=222270
Patch by Imanol Fernandez <imanol> on 2021-02-24
Reviewed by Sergio Villar Senin.
LayoutTests/imported/w3c:
Update WebXR Viewport test expectations.
- web-platform-tests/webxr/xrViewport_valid.https-expected.txt: Added.
- web-platform-tests/webxr/xrWebGLLayer_viewports.https-expected.txt: Added.
Source/WebCore:
- Modules/webxr/WebXRFrame.cpp:
(WebCore::WebXRFrame::getViewerPose): set WebXRView viewport modifiable value.
- Modules/webxr/WebXRFrame.h:
(WebCore::WebXRFrame::isAnimationFrame const): add method.
- Modules/webxr/WebXRSession.cpp: Implement supportsViewportScaling().
(WebCore::WebXRSession::supportsViewportScaling const):
- Modules/webxr/WebXRSession.h:
- Modules/webxr/WebXRView.cpp: Add viewport scale data.
(WebCore::WebXRView::create):
(WebCore::WebXRView::WebXRView):
(WebCore::WebXRView::recommendedViewportScale const):
(WebCore::WebXRView::requestViewportScale):
- Modules/webxr/WebXRView.h:
(WebCore::WebXRView::frame const):
(WebCore::WebXRView::currentViewportScale const):
(WebCore::WebXRView::setCurrentViewportScale):
(WebCore::WebXRView::requestedViewportScale const):
(WebCore::WebXRView::isViewportModifiable const):
(WebCore::WebXRView::setViewportModifiable):
- Modules/webxr/WebXRView.idl: add requestViewportScale() and recommendedViewportScale.
- Modules/webxr/WebXRViewport.cpp: Implement viewport rect values.
(WebCore::WebXRViewport::create):
(WebCore::WebXRViewport::WebXRViewport):
- Modules/webxr/WebXRViewport.h:
(WebCore::WebXRViewport::x const):
(WebCore::WebXRViewport::y const):
(WebCore::WebXRViewport::width const):
(WebCore::WebXRViewport::height const):
(WebCore::WebXRViewport::updateViewport):
- Modules/webxr/WebXRWebGLLayer.cpp: Implement getViewport()
(WebCore::WebXRWebGLLayer::WebXRWebGLLayer):
(WebCore::m_rightViewport):
(WebCore::WebXRWebGLLayer::getViewport):
- Modules/webxr/WebXRWebGLLayer.h:
- Modules/webxr/WebXRWebGLLayer.idl: Add MayThrowException
- platform/xr/PlatformXR.h: Add supportsViewportScaling method
(PlatformXR::Device::supportsViewportScaling const):
LayoutTests:
Update WebXR Viewport test expectations.
- platform/wpe/TestExpectations:
- 4:53 AM Changeset in webkit [273380] by
-
- 3 edits2 adds in trunk
Nullptr crash in ApplyStyleCommand::applyRelativeFontStyleChange
https://bugs.webkit.org/show_bug.cgi?id=221393
Reviewed by Ryosuke Niwa.
Source/WebCore:
Applying a font style change over a range of nodes might change the node tree because in some cases
a span element needs to be created to wrap nodes so they could be styled. Apart from that consecutive
identical span nodes could be merged together. This means that the loop that iterates over a range
of nodes might actually surpass the end node if that end node was merged into some other.
Test: editing/execCommand/font-size-delta-crash.html
- editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::applyRelativeFontStyleChange): Exit the loop if the iterator becomes a
child of the beyondEnd node because the latter was merged into the node that wraps the iterator.
LayoutTests:
- editing/execCommand/font-size-delta-crash-expected.txt: Added.
- editing/execCommand/font-size-delta-crash.html: Added.
- 3:43 AM Changeset in webkit [273379] by
-
- 4 edits in trunk
[SOUP3] Use soup_auth_get_authority() to set the ProtectionSpace host and port
https://bugs.webkit.org/show_bug.cgi?id=222309
Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-02-24
Reviewed by Adrian Perez de Castro.
Source/WebCore:
That returns the right values in case of proxy authentication.
- platform/network/soup/AuthenticationChallengeSoup.cpp:
(WebCore::protectionSpaceFromSoupAuthAndURL):
Tools:
It fixes two tests when using libsoup3.
- TestWebKitAPI/Tests/WebKitGLib/TestAuthentication.cpp:
(testWebViewAuthenticationProxy):
(testWebViewAuthenticationProxyHTTPS):
- 2:57 AM Changeset in webkit [273378] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION(r267763): [GTK][WPE] user preferred languages are sent to the wrong network process
https://bugs.webkit.org/show_bug.cgi?id=222347
Reviewed by Adrian Perez de Castro.
WebProcessPool::languageChanged() is creating the default website data store, so languages are sent to the newly
created network process. We should send them to the existing network processes instead.
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::languageChanged):
- 2:23 AM Changeset in webkit [273377] by
-
- 3 edits in trunk/Tools
[Flatpak SDK] PATH for rustc no longer set correctly
https://bugs.webkit.org/show_bug.cgi?id=222311
Patch by Philippe Normand <pnormand@igalia.com> on 2021-02-24
Reviewed by Žan Doberšek.
Pass PATH as flatpak --env option, setting is through bwrap no longer works.
- flatpak/flatpakutils.py:
(WebkitFlatpak.run_in_sandbox):
- flatpak/webkit-bwrap:
- 1:26 AM Changeset in webkit [273376] by
-
- 3 edits in trunk/Source/WebKit
Unreviewed. Fix GTK build with neewer wpe and wpe-fdo
We need to explicitly include wpe.h now.
- UIProcess/API/glib/WebKitProtocolHandler.cpp:
- UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:
- 1:20 AM Changeset in webkit [273375] by
-
- 3 edits2 adds in trunk
Nullptr crash in CompositeEditCommand::splitTreeToNode via InsertParagraphSeparatorCommand::doApply
https://bugs.webkit.org/show_bug.cgi?id=221387
Patch by Frederic Wang <fwang@igalia.com> on 2021-02-24
Reviewed by Ryosuke Niwa.
Source/WebCore:
WebCore::Position::upstream behaves specially for table renderer, which may confuse the
execution of WebCore::InsertParagraphSeparatorCommand::doApply() when the visible position
is within a table, leading to a debug assertion failure and a nullptr dereference in release
build. This patch fixes that by forcing createFragmentFromText to convert <table> to new
a default paragraph element.
Test: fast/editing/paste-and-match-style-with-table-crash.html
- editing/markup.cpp:
(WebCore::createFragmentFromText): Don't clone enclosing block that are <table>.
LayoutTests:
- fast/editing/paste-and-match-style-with-table-crash-expected.txt: Added.
- fast/editing/paste-and-match-style-with-table-crash.html: Added.
- 12:42 AM Changeset in webkit [273374] by
-
- 5 edits2 adds in trunk
Nullptr crash in Document::contextDocument() inside FontFaceSet::FontFaceSet
https://bugs.webkit.org/show_bug.cgi?id=221385
Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-02-24
Reviewed by Ryosuke Niwa.
Source/WebCore:
When the document last reference is removed but still has node references, we need to keep the document valid
for CSSFontSelector to be able to create a FontFaceSet if document.fonts is requested. In that case the font
selector is marked as cleared, ongoing font load stopped and clients unegistered, but keeping the document until
it's actually destroyed.
Test: fast/css/fontloader-on-detached-document-crash.html
- css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::~CSSFontSelector):
(WebCore::CSSFontSelector::clear):
(WebCore::CSSFontSelector::fontRequested):
(WebCore::CSSFontSelector::fallbackFontCount):
(WebCore::CSSFontSelector::fallbackFontAt):
- css/CSSFontSelector.h:
- dom/Document.cpp:
(WebCore::Document::~Document):
(WebCore::Document::removedLastRef):
LayoutTests:
- fast/css/fontloader-on-detached-document-crash-expected.txt: Added.
- fast/css/fontloader-on-detached-document-crash.html: Added.
- 12:05 AM Changeset in webkit [273373] by
-
- 3 edits2 adds in trunk
Null check ArrayBufferView RefPtr
https://bugs.webkit.org/show_bug.cgi?id=221569
Patch by Rob Buis <rbuis@igalia.com> on 2021-02-24
Reviewed by Yusuke Suzuki.
Source/JavaScriptCore:
Null check ArrayBufferView RefPtr before using it.
- runtime/JSArrayBufferViewInlines.h:
(JSC::JSArrayBufferView::unsharedImpl):
LayoutTests:
Add test to verify oom situation does not result in a crash.
- crypto/crypto-random-values-oom-expected.txt: Added.
- crypto/crypto-random-values-oom.html: Added.
Feb 23, 2021:
- 9:34 PM Changeset in webkit [273372] by
-
- 5 edits in trunk/LayoutTests
Fix model test differences between platforms
https://bugs.webkit.org/show_bug.cgi?id=222323
Reviewed by Ryosuke Niwa.
- model-element/model-element-renderer-no-source.html:
- model-element/model-element-renderer.html:
Try to fix these on iOS by removing the doctype.
- 9:00 PM Changeset in webkit [273371] by
-
- 3 edits1 add in trunk
[YARR JIT] Crash on overflow when compiling /(a{1000000000}b{1000000000}|c{1000000000}|)d{1000000000}e{1000000000}/.test();
https://bugs.webkit.org/show_bug.cgi?id=220130
Reviewed by Yusuke Suzuki.
JSTests:
Modified the original fuzzer test to go 232-1.
- stress/regexp-backtrack-offset-overflow.js: Added.
Source/JavaScriptCore:
Changed code to subtract out the offset of a current op before adding the offset
of the prior op when backtracking to avoid overflowing checked arithmetic.
It looks like the code had this wrong for some time.
- yarr/YarrJIT.cpp:
- 8:03 PM Changeset in webkit [273370] by
-
- 2 edits in trunk/LayoutTests
Fix model test differences between platforms
https://bugs.webkit.org/show_bug.cgi?id=222323
Unreviewed test gardening.
- platform/ios/TestExpectations: Mark tests as failing until fix is reviewed & landed.
- 7:24 PM Changeset in webkit [273369] by
-
- 2 edits in branches/safari-612.1.5-branch/Source/WTF
Revert r273165. rdar://problem/74610383
- 6:41 PM Changeset in webkit [273368] by
-
- 3 edits in trunk/LayoutTests
[ macOS ] media/modern-media-controls/tracks-support/mac/tracks-support-show-panel-fullscreen.html is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=222134
<rdar://problem/74494853>
Unreviewed, this is an identical change to r273357.
- media/modern-media-controls/tracks-support/mac/tracks-support-show-panel-fullscreen.html:
Add a rAF+0s delay before attempting to hover the mute button to give it a chance to
"settle" after it becomes visible (based off of.getBoundingClientRect().width
).
- platform/mac/TestExpectations:
- 6:18 PM Changeset in webkit [273367] by
-
- 2 edits in trunk/Source/WebKit
[iOS] Add null checks for Node before accessing treeScope() in rangeForPointInRootViewCoordinates
https://bugs.webkit.org/show_bug.cgi?id=222338
<rdar://problem/72292289>
Reviewed by Tim Horton.
Add a null check for the hit test result's
targetNode
insiderangeForPointInRootViewCoordinates()
to avoid
crashing in the case where the target node is null and eitherresult <= selectionStart
isfalse
or
selectionEnd <= result
isfalse
.
Additionally, avoid a potential null deref on
selectionStart.deepEquivalent().anchorNode()
and
selectionEnd.deepEquivalent().anchorNode()
by usingPosition::treeScope()
(which null checks the anchor
node) instead of directly asking the anchor node.
Note that the call sites of
rangeForPointInRootViewCoordinates()
already handle aWTF::nullopt
return value
gracefully, by skipping the selection update.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::rangeForPointInRootViewCoordinates):
- 5:41 PM Changeset in webkit [273366] by
-
- 3 edits in trunk/LayoutTests
REGRESSION (r273004): [ macOS ] media/modern-media-controls/volume-support/volume-support-drag.html is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=222117
<rdar://problem/74484639>
Unreviewed, this is an identical change to r273357.
- media/modern-media-controls/volume-support/volume-support-drag.html:
Add a rAF+0s delay before attempting to hover the mute button to give it a chance to
"settle" after it becomes visible (based off of.getBoundingClientRect().width
).
- platform/mac/TestExpectations:
- 5:11 PM Changeset in webkit [273365] by
-
- 13 edits in trunk/Source
[Cocoa] Web Inspector: Add support for reloading the inspected page via _WKInspectorExtension
https://bugs.webkit.org/show_bug.cgi?id=222296
Reviewed by BJ Burg.
Source/WebInspectorUI:
Added support for reloading the inspected page, including ignoring the cache if desired, via
_WKInspectorExtension.
- UserInterface/Controllers/WebInspectorExtensionController.js:
(WI.WebInspectorExtensionController.prototype.evaluateScriptForExtension):
(WI.WebInspectorExtensionController.prototype.reloadForExtension):
(WI.WebInspectorExtensionController):
- UserInterface/Protocol/InspectorFrontendAPI.js:
(InspectorFrontendAPI.evaluateScriptForExtension):
(InspectorFrontendAPI.reloadForExtension):
Source/WebKit:
Added a new method to _WKInspectorExtension which is used to implement
browser.devtools.inspectedWindow.reload
in the Web Extensions API.
- UIProcess/API/APIInspectorExtension.cpp:
(API::InspectorExtension::reloadIgnoringCache):
- UIProcess/API/APIInspectorExtension.h:
- UIProcess/API/Cocoa/_WKInspectorExtension.h:
- UIProcess/API/Cocoa/_WKInspectorExtension.mm:
(-[_WKInspectorExtension reloadIgnoringCache:userAgent:injectedScript:completionHandler:]):
- UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.cpp:
(WebKit::WebInspectorUIExtensionControllerProxy::reloadForExtension):
- UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.h:
- WebProcess/Inspector/WebInspectorUIExtensionController.cpp:
(WebKit::WebInspectorUIExtensionController::reloadForExtension):
- WebProcess/Inspector/WebInspectorUIExtensionController.h:
- WebProcess/Inspector/WebInspectorUIExtensionController.messages.in:
- 5:05 PM Changeset in webkit [273364] by
-
- 2 edits in branches/safari-611-branch/Tools
Cherry-pick r272167. rdar://problem/74668621
autoinstall.py: Don't use an XML parser to parse HTML
https://bugs.webkit.org/show_bug.cgi?id=221162
Reviewed by Jonathan Bedard.
Very recently autoinstall.py started failing becagse the page returned
by https://pypi.org/simple/fasteners/ now contains a <meta> tag, which
is not parseable as XML without the trailing slash.
Despite what an initial fix in r272041 stated, this is not caused by
invalid HTML: <meta> tags are not required to have an ending slash to
be standards compliant in any version of HTML.
This patch replaces that code to use an HTML parser instead of an XML
parser, making it more robust.
- Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py: (SimplyPypiIndexPageParser): (SimplyPypiIndexPageParser.init): (SimplyPypiIndexPageParser.handle_starttag): (SimplyPypiIndexPageParser.handle_data): (SimplyPypiIndexPageParser.handle_endtag): (SimplyPypiIndexPageParser.parse): (Package.archives):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272167 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:05 PM Changeset in webkit [273363] by
-
- 4 edits in branches/safari-611-branch/Tools
Cherry-pick r272041. rdar://problem/74668621
[webkitcrepy] Handle case where pypi serves invalid html
https://bugs.webkit.org/show_bug.cgi?id=221111
<rdar://problem/73728580>
Reviewed by David Kilzer.
- Scripts/libraries/webkitcorepy/setup.py: Bump version number.
- Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
- Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py: (Package.archives): Remove possibly invalid <meta> tag from html.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272041 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:05 PM Changeset in webkit [273362] by
-
- 3 edits2 adds in branches/safari-611-branch/Tools
Cherry-pick r271683. rdar://problem/74668621
[webkitcorepy] Add TaskPool
https://bugs.webkit.org/show_bug.cgi?id=220547
<rdar://problem/73043887>
Reviewed by Dewei Zhu.
The TaskPool object is a Python 3.8 compatible multiprocessing tool. Notable features are forwarding stdout,
stderr and logging to the parent process, exception propagation between processes, and graceful clean-up when
exceptions in the parent process are encountered
- Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Bump version, add tblib.
- Scripts/libraries/webkitcorepy/webkitcorepy/task_pool.py: Added. (Message): Base class for message passed between processes. (Task): Message including function and arguments to that function. (Result): Return value of a task passed to the parent process. (Log): Pass log message from child process to parent process. (Print): Pass stdout or stderr line from child process to parent process. (State): Notify parent process that the child process has changed state. (ChildException): Pass exception and stack trace from (BiDirectionalQueue): Pair for multiprocess queues allowing for messages to be passed between processes. (Process): Scoping class managing child-process logic. (Process.LogHandler): Logging handler that passes log lines from the child process to it's parent. (Process.Stream): Writable stream which passes content from the child process to the standard out or error of that process's parent. (Process.handler): SIGTERM should prevent future processing but allow currently in-flight tasks to complete. (Process.main): Entry-point to child process. (TaskPool): Managing allocation of tasks to child processes and clean up those child processes. (TaskPool.Exception): Exception owned by TaskPool object. (TaskPool.init): (TaskPool.enter): (TaskPool.do): Pass task to child processes. (TaskPool.wait): Wait until all processes are completed. (TaskPool.exit): Teardown all child processes.
- Scripts/libraries/webkitcorepy/webkitcorepy/tests/task_pool_unittest.py: Added. (setup): (teardown): (action): (log): (wait): (exception): (TaskPoolUnittest): (TaskPoolUnittest.test_single): (TaskPoolUnittest.test_multiple): (TaskPoolUnittest.test_callback): (TaskPoolUnittest.test_exception): (TaskPoolUnittest.test_setup): (TaskPoolUnittest.test_teardown): (TaskPoolUnittest.test_invalid_shutdown):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271683 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:05 PM Changeset in webkit [273361] by
-
- 2 edits in branches/safari-611-branch/Tools
Cherry-pick r271649. rdar://problem/74668621
[webkitcorepy] Support alternative default pypi url on macOS (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=220744
<rdar://problem/73369338>
Unreviewed follow-up fix.
- Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py: (_default_pypi_index): Ensure that "simple" is excluded from the pypi url.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271649 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:05 PM Changeset in webkit [273360] by
-
- 4 edits in branches/safari-611-branch/Tools
Cherry-pick r271630. rdar://problem/74668621
[webkitcorepy] Support alternative default pypi url on macOS
https://bugs.webkit.org/show_bug.cgi?id=220744
<rdar://problem/73369338>
Reviewed by Aakash Jain.
- Scripts/libraries/webkitcorepy/setup.py: Bump version.
- Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
- Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py: (_default_pypi_index): Pull default pypi index from pip.conf, if available. (AutoInstall): Set index based on result of _default_pypi_index.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271630 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:02 PM Changeset in webkit [273359] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Allow additional syscall support in the sandbox
https://bugs.webkit.org/show_bug.cgi?id=222335
<rdar://74473824>
Reviewed by Per Arne Vollan.
Expand the WebContent process sandbox to allow SYS_open_dprotected_np
- WebProcess/com.apple.WebProcess.sb.in:
- 4:26 PM Changeset in webkit [273358] by
-
- 3 edits in trunk/Tools
[check-webkit-style] Fix Contributor sorting in Python 3
https://bugs.webkit.org/show_bug.cgi?id=222329
<rdar://problem/74656667>
Reviewed by Dewei Zhu.
- Scripts/webkitpy/common/config/committers.py:
(Contributor.cmp): Return an integer to indicate ordering.
(Contributor.eq): Add rich comparison operators for sorting.
(Contributor.ne): Ditto.
(Contributor.lt): Ditto.
(Contributor.le): Ditto.
(Contributor.gt): Ditto.
(Contributor.ge): Ditto.
- Scripts/webkitpy/common/config/contributors.json:
- 4:26 PM Changeset in webkit [273357] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: media/modern-media-controls/volume-support/volume-support-click.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=222181
<rdar://problem/74527698>
Reviewed by Eric Carlson.
- media/modern-media-controls/volume-support/volume-support-click.html:
Add a rAF+0s delay before attempting to hover the mute button to give it a chance to
"settle" after it becomes visible (based off of.getBoundingClientRect().width
).
- 3:59 PM CommitQueue edited by
- (diff)
- 3:13 PM Changeset in webkit [273356] by
-
- 2 edits in trunk/LayoutTests
[ Big Sur Wk1 ] http/tests/security/http-0.9/default-port-script-blocked.html is flakey timing out
https://bugs.webkit.org/show_bug.cgi?id=221717
Unreviewed test gardening.
Patch by Robert Jenner <Robert Jenner> on 2021-02-23
- platform/mac-wk1/TestExpectations:
- 2:56 PM Changeset in webkit [273355] by
-
- 3 edits in trunk/LayoutTests
[ macOS BigSur Wk2 ] compositing/video/video-border-radius-clipping.html is a flakey image failure
https://bugs.webkit.org/show_bug.cgi?id=222332
Unreviewed test gardening.
Patch by Robert Jenner <Robert Jenner> on 2021-02-23
- platform/mac-wk2/TestExpectations: Added new test expectation to resolve issues with old expectation.
- platform/mac/TestExpectations: Removed incorrect test expectation set as Pass Fail Timeout.
- 2:51 PM Changeset in webkit [273354] by
-
- 2 edits in branches/safari-611-branch/Source/WebKit
Cherry-pick r272355. rdar://problem/74032694
ASSERTION FAILED: !size.isEmpty() under platformInitializeWebProcess
- WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess): Follow-up to r272335; don't call IOSurface::setMaximumSize if the UI process did not send us a size. Caused all Web Content processes to assert in debug on launch.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272355 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:51 PM Changeset in webkit [273353] by
-
- 2 edits in branches/safari-611-branch/Source/JavaScriptCore
Cherry-pick r271767. rdar://problem/74409412
Obj-C API should do correct type checks when using a 32-bit address space
https://bugs.webkit.org/show_bug.cgi?id=220880
<rdar://72370334>
Reviewed by Tadeu Zagallo.
- API/JSValue.mm: (-[JSValue isNull]): (-[JSValue isBoolean]): (-[JSValue isNumber]): (-[JSValue isString]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271767 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:51 PM Changeset in webkit [273352] by
-
- 2 edits in branches/safari-611-branch/Source/JavaScriptCore
Cherry-pick r270719. rdar://problem/74409412
REGRESSION (r270665): testapi failing on JSC bots
https://bugs.webkit.org/show_bug.cgi?id=219787
Reviewed by Saam Barati.
- API/JSValueRef.cpp: (JSValueIsString): (JSValueIsObject): (JSValueIsSymbol):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@270719 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:51 PM Changeset in webkit [273351] by
-
- 2 edits in branches/safari-611-branch/Source/JavaScriptCore
Cherry-pick r270700. rdar://problem/74409412
REGRESSION (r270665): testapi failing on CLoop bot
https://bugs.webkit.org/show_bug.cgi?id=219787
Reviewed by Mark Lam.
The API has to special case the empty JSValue as null.
- API/JSValueRef.cpp: (JSValueGetType): (JSValueIsNull):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@270700 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:51 PM Changeset in webkit [273350] by
-
- 6 edits in branches/safari-611-branch
Cherry-pick r270665. rdar://problem/74409412
Removing unnecessary locking from JSValue API functions
https://bugs.webkit.org/show_bug.cgi?id=219723
Reviewed by Filip Pizlo.
PerformanceTests:
Print an error message when benchmarks fail to run and add option to change
the configuration used to build the benchmarks.
- APIBench/api-bench:
Source/JavaScriptCore:
Remove the unnecessary locking from the JSValueIs* and JSValueMake* API functions
that only work on primitives. Also remove the unnecessary method dispatching and
call from the -[JSValue is*] methods.
This improves the APIBench score by another ~8% since these are such common operations.
Here are the results: (Baseline includes https://bugs.webkit.org/show_bug.cgi?id=219663)
CURRENT_API: Baseline Change
----------------------------------------
RichardsMostlyC: 74ms 60ms
RichardsMostlyObjC: 304ms 300ms
RichardsMostlySwift: 305ms 293ms
RichardsSomeC: 97ms 77ms
RichardsSomeObjC: 158ms 159ms
RichardsSomeSwift: 202ms 198ms
UPCOMING_API: Baseline Change
----------------------------------------
RichardsMostlyC: 23ms 19ms
RichardsMostlyObjC: 282ms 282ms
RichardsMostlySwift: 280ms 282ms
RichardsSomeC: 95ms 76ms
RichardsSomeObjC: 157ms 156ms
RichardsSomeSwift: 202ms 197ms
----------------------------------------
Score: 33.6404 36.4006
- API/APICast.h: (toRef):
- API/JSValue.mm: (-[JSValue isUndefined]): (-[JSValue isNull]): (-[JSValue isBoolean]): (-[JSValue isNumber]): (-[JSValue isString]): (-[JSValue isObject]): (-[JSValue isSymbol]):
- API/JSValueRef.cpp: (JSValueGetType): (JSValueIsUndefined): (JSValueIsNull): (JSValueIsBoolean): (JSValueIsNumber): (JSValueIsString): (JSValueIsObject): (JSValueIsSymbol): (JSValueMakeUndefined): (JSValueMakeNull): (JSValueMakeBoolean): (JSValueMakeNumber):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@270665 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:51 PM Changeset in webkit [273349] by
-
- 7 edits in branches/safari-611-branch
Cherry-pick r272626. rdar://problem/74410222
Descendants of row and column headers should expose the aria-sort attribute.
https://bugs.webkit.org/show_bug.cgi?id=221590
Reviewed by Chris Fleizach.
Source/WebCore:
Tests:
accessibility/aria-sort.html
accessibility/ios-simulator/aria-sort-ios.html
Walk up the accessibility hierarchy to check for an inherited aria-sort
attribute present in a row or column header ancestor.
- accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::sortDirection const):
LayoutTests:
Expanded this test to include the case where the header contains a child
element that must also expose the aria-sort attribute inherited from its
parent.
- accessibility/aria-sort-expected.txt:
- accessibility/aria-sort.html:
- accessibility/ios-simulator/aria-sort-ios-expected.txt:
- accessibility/ios-simulator/aria-sort-ios.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272626 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:51 PM Changeset in webkit [273348] by
-
- 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 116
Added a tag for Safari Technology Preview release 116.
- 2:51 PM Changeset in webkit [273347] by
-
- 28 edits in branches/safari-611-branch
Cherry-pick r272165. rdar://problem/74032536
Use user media permission prompt for speech recognition
https://bugs.webkit.org/show_bug.cgi?id=221082
rdar://problem/73372499
Patch by Sihui Liu <sihui_liu@appe.com> on 2021-02-01
Reviewed by Youenn Fablet.
Source/WebCore:
Add frame identifier to SpeechRecognitionRequest as it is needed for checking user media permission.
Updated existing tests for changed behavior.
- Modules/speech/SpeechRecognition.cpp: (WebCore::SpeechRecognition::startRecognition):
- Modules/speech/SpeechRecognitionConnection.h:
- Modules/speech/SpeechRecognitionRequest.h: (WebCore::SpeechRecognitionRequest::frameIdentifier const):
- Modules/speech/SpeechRecognitionRequestInfo.h: (WebCore::SpeechRecognitionRequestInfo::encode const): (WebCore::SpeechRecognitionRequestInfo::decode):
- page/DummySpeechRecognitionProvider.h:
Source/WebKit:
Make SpeechRecognitionPermissionManager ask UserMediaPermissionRequestManagerProxy for user permission on
microphone.
- UIProcess/SpeechRecognitionPermissionManager.cpp: (WebKit::SpeechRecognitionPermissionManager::request): (WebKit::SpeechRecognitionPermissionManager::startProcessingRequest): (WebKit::SpeechRecognitionPermissionManager::requestUserPermission):
- UIProcess/SpeechRecognitionPermissionManager.h:
- UIProcess/SpeechRecognitionPermissionRequest.h: (WebKit::SpeechRecognitionPermissionRequest::create): (WebKit::SpeechRecognitionPermissionRequest::frameIdentifier const): (WebKit::SpeechRecognitionPermissionRequest::SpeechRecognitionPermissionRequest):
- UIProcess/SpeechRecognitionServer.cpp: (WebKit::SpeechRecognitionServer::start): (WebKit::SpeechRecognitionServer::requestPermissionForRequest):
- UIProcess/SpeechRecognitionServer.h:
- UIProcess/SpeechRecognitionServer.messages.in:
- UIProcess/UserMediaPermissionRequestManagerProxy.cpp: (WebKit::UserMediaPermissionRequestManagerProxy::denyRequest): (WebKit::UserMediaPermissionRequestManagerProxy::grantRequest): (WebKit::UserMediaPermissionRequestManagerProxy::checkUserMediaPermissionForSpeechRecognition):
- UIProcess/UserMediaPermissionRequestManagerProxy.h:
- UIProcess/UserMediaPermissionRequestProxy.cpp: (WebKit::UserMediaPermissionRequestProxy::UserMediaPermissionRequestProxy):
- UIProcess/UserMediaPermissionRequestProxy.h: (WebKit::UserMediaPermissionRequestProxy::create): (WebKit::UserMediaPermissionRequestProxy::decisionCompletionHandler):
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::requestSpeechRecognitionPermission): (WebKit::WebPageProxy::requestUserMediaPermissionForSpeechRecognition):
- UIProcess/WebPageProxy.h:
- UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::createSpeechRecognitionServer):
- WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.cpp: (WebKit::WebSpeechRecognitionConnection::start):
- WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.h:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/SpeechRecognition.mm: (-[SpeechRecognitionUIDelegate _webView:requestMediaCaptureAuthorization:decisionHandler:]):
LayoutTests:
- fast/speechrecognition/permission-error.html:
- fast/speechrecognition/start-recognition-in-removed-iframe-expected.txt:
- fast/speechrecognition/start-recognition-in-removed-iframe.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272165 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:51 PM Changeset in webkit [273346] by
-
- 12 edits in branches/safari-611-branch
Cherry-pick r271636. rdar://problem/74452635
Update media state for active speech recognition as it uses audio capture
https://bugs.webkit.org/show_bug.cgi?id=220667
Patch by Sihui Liu <sihui_liu@appe.com> on 2021-01-19
Reviewed by Youenn Fablet.
Source/WebCore:
To make sure the media capture state is correctly sent to client.
API test: WebKit2.SpeechRecognitionMediaCaptureStateChange
- Modules/speech/SpeechRecognition.cpp: (WebCore::SpeechRecognition::startRecognition): (WebCore::SpeechRecognition::stop): (WebCore::SpeechRecognition::didStartCapturingAudio): (WebCore::SpeechRecognition::didStopCapturingAudio):
- Modules/speech/SpeechRecognition.h:
- Modules/speech/SpeechRecognitionConnection.h:
- dom/Document.cpp: (WebCore::Document::setActiveSpeechRecognition): (WebCore::Document::updateIsPlayingMedia):
- dom/Document.h:
- page/DummySpeechRecognitionProvider.h:
Source/WebKit:
- WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.cpp: (WebKit::WebSpeechRecognitionConnection::unregisterClient):
- WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.h:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/SpeechRecognition.mm: (-[SpeechRecognitionUIDelegate _webView:mediaCaptureStateDidChange:]): (TestWebKitAPI::TEST): (-[SpeechRecognitionPermissionUIDelegate _webView:requestSpeechRecognitionPermissionForOrigin:decisionHandler:]): Deleted. (-[SpeechRecognitionPermissionUIDelegate _webView:requestMediaCaptureAuthorization:decisionHandler:]): Deleted. (-[SpeechRecognitionPermissionUIDelegate _webView:checkUserMediaPermissionForURL:mainFrameURL:frameIdentifier:decisionHandler:]): Deleted. (-[SpeechRecognitionPermissionUIDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]): Deleted.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271636 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:51 PM Changeset in webkit [273345] by
-
- 23 edits2 adds in branches/safari-611-branch
Cherry-pick r272490. rdar://problem/74409784
Add support for aria-sort change notifications.
https://bugs.webkit.org/show_bug.cgi?id=221495
Reviewed by Chris Fleizach.
Source/WebCore:
Test: accessibility/aria-sort-changed-notification.html
This patch adds support for aria-sort changes. Some code cleanup by
using the notificationPlatformName helper function.
- accessibility/AXLogger.cpp: (WebCore::operator<<): Logging of the new notification.
- accessibility/AXObjectCache.cpp: Handles the aria-sort change notification. Updates the isolated tree. (WebCore::AXObjectCache::handleAttributeChange): (WebCore::AXObjectCache::updateIsolatedTree):
- accessibility/AXObjectCache.h:
- accessibility/ios/AXObjectCacheIOS.mm: (WebCore::AXObjectCache::notificationPlatformName): Helper to map AXCore notifications to platform notifications. (WebCore::AXObjectCache::postPlatformNotification): Handles the AXSortDirectionChanged notification. Some code cleanup using the notificationPlatformName helper.
- accessibility/ios/WebAccessibilityObjectWrapperIOS.h:
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: (-[WebAccessibilityObjectWrapper postNotification:]): To be overridden by system AX bundles. (-[WebAccessibilityObjectWrapper accessibilitySortDirection]): Only ascending and descending sort directions are relevant for clients.
- accessibility/isolatedtree/AXIsolatedTree.cpp: (WebCore::AXIsolatedTree::updateNodeProperty): Updates the SortDirection property.
- accessibility/mac/AXObjectCacheMac.mm: (WebCore::AXObjectCache::postPlatformNotification): Handles the AXSortDirectionChanged notification.
Tools:
- WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp: (WTR::AccessibilityUIElement::sortDirection const):
- WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
- WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
- WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm: (WTR::AccessibilityUIElement::sortDirection const):
- WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm: (WTR::AccessibilityUIElement::currentStateValue const): (WTR::AccessibilityUIElement::sortDirection const):
LayoutTests:
- accessibility/aria-sort-changed-notification-expected.txt: Added.
- accessibility/aria-sort-changed-notification.html: Added.
- accessibility/aria-sort-expected.txt:
- accessibility/aria-sort.html: Calls sortDirection property on the JS accessible element instead of retrieving the aria-sort attribute. This matches more accurately what an actual client would do. Changed the expected file accordingly.
- accessibility/ios-simulator/aria-sort-ios-expected.txt:
- accessibility/ios-simulator/aria-sort-ios.html: Same as in the Mac test above.
- platform/ios/TestExpectations: Added the new test to be run on the ios-simulator.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272490 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:50 PM Changeset in webkit [273344] by
-
- 14 edits in branches/safari-611-branch
Cherry-pick r271381. rdar://problem/74451875
Make SpeechRecognition permission error more informative
https://bugs.webkit.org/show_bug.cgi?id=220436
Patch by Sihui Liu <sihui_liu@appe.com> on 2021-01-11
Reviewed by Youenn Fablet.
Source/WebKit:
Make SpeechRecognitionPermissionManager complete requests with an optional SpeechRecognitionError instead of a
boolean value.
- UIProcess/SpeechRecognitionPermissionManager.cpp: (WebKit::SpeechRecognitionPermissionManager::~SpeechRecognitionPermissionManager): (WebKit::SpeechRecognitionPermissionManager::request): (WebKit::SpeechRecognitionPermissionManager::startProcessingRequest): (WebKit::SpeechRecognitionPermissionManager::continueProcessingRequest): (WebKit::SpeechRecognitionPermissionManager::completeCurrentRequest): (WebKit::SpeechRecognitionPermissionManager::requestSpeechRecognitionServiceAccess): (WebKit::SpeechRecognitionPermissionManager::requestMicrophoneAccess): (WebKit::SpeechRecognitionPermissionManager::requestUserPermission):
- UIProcess/SpeechRecognitionPermissionManager.h:
- UIProcess/SpeechRecognitionPermissionRequest.h: (WebKit::SpeechRecognitionPermissionRequest::create): (WebKit::SpeechRecognitionPermissionRequest::complete): (WebKit::SpeechRecognitionPermissionRequest::SpeechRecognitionPermissionRequest):
- UIProcess/SpeechRecognitionServer.cpp: (WebKit::SpeechRecognitionServer::requestPermissionForRequest):
- UIProcess/SpeechRecognitionServer.h:
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::requestSpeechRecognitionPermission):
- UIProcess/WebPageProxy.h:
- UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::createSpeechRecognitionServer):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/SpeechRecognition.mm: (TestWebKitAPI::TEST):
LayoutTests:
- fast/speechrecognition/permission-error-expected.txt:
- fast/speechrecognition/permission-error.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271381 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:50 PM Changeset in webkit [273343] by
-
- 22 edits2 adds in branches/safari-611-branch
Cherry-pick r272067. rdar://problem/74444347
Support for aria-current state changed notifications.
https://bugs.webkit.org/show_bug.cgi?id=221074
Reviewed by Chris Fleizach.
Source/WebCore:
Test: accessibility/aria-current-state-changed-notification.html
Added handling of the AXCurrentStateChanged notification for Mac and iOS
ports. This notification is fired when the aria-current attribute
changes.
Handling of this notification is required to properly update the
accessibility properties of the target object and convey them to
assistive technology clients.
- accessibility/AXLogger.cpp: (WebCore::operator<<): Renamed notification anumerand.
- accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::handleAttributeChange):
- accessibility/AXObjectCache.h:
- accessibility/atk/AXObjectCacheAtk.cpp: (WebCore::AXObjectCache::postPlatformNotification):
- accessibility/ios/AXObjectCacheIOS.mm: (WebCore::AXObjectCache::postPlatformNotification):
- accessibility/ios/WebAccessibilityObjectWrapperIOS.h:
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: (-[WebAccessibilityObjectWrapper accessibilityDOMIdentifier]): (-[WebAccessibilityObjectWrapper postCurrentStateChangedNotification]): (-[WebAccessibilityObjectWrapper accessibilityCurrentState]): (-[WebAccessibilityObjectWrapper accessibilityARIACurrentStatus]): Renamed to accessibilityCurrentState.
- accessibility/mac/AXObjectCacheMac.mm: (WebCore::AXObjectCache::postPlatformNotification):
Tools:
Added AccessibilityUIElement::domIdentifier and currentStateValue used
in LayoutTests/accessibility/aria-current-state-changed-notification.html.
- WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp: (WTR::AccessibilityUIElement::domIdentifier const): Non-Cocoa implementation. (WTR::AccessibilityUIElement::currentStateValue const): Non-Cocoa implementation.
- WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
- WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
- WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm: (WTR::AccessibilityUIElement::domIdentifier const): (WTR::AccessibilityUIElement::stringAttributeValue): (WTR::AccessibilityUIElement::currentStateValue const):
- WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm: (WTR::AccessibilityUIElement::domIdentifier const): (WTR::AccessibilityUIElement::currentStateValue const):
LayoutTests:
- accessibility/aria-current-state-changed-notification-expected.txt: Added.
- accessibility/aria-current-state-changed-notification.html: Added.
- accessibility/aria-current.html: Use AccessibilityUIElement::currentStateValue for consistency and to match closely how actual clients will invoke this functionality.
- platform/gtk/TestExpectations:
- platform/ios-wk1/TestExpectations:
- platform/ios/TestExpectations:
- platform/mac-wk1/TestExpectations:
- platform/win/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272067 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:50 PM Changeset in webkit [273342] by
-
- 10 edits in branches/safari-611-branch
Cherry-pick r272755. rdar://problem/74409916
Unreviewed, reverting r270578.
https://bugs.webkit.org/show_bug.cgi?id=221110
Caused incorrect image layout inside a flexbox container.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-013-expected.txt:
- web-platform-tests/css/css-flexbox/image-as-flexitem-size-003-expected.txt:
- web-platform-tests/css/css-flexbox/image-as-flexitem-size-003v-expected.txt:
- web-platform-tests/css/css-flexbox/image-as-flexitem-size-004-expected.txt:
- web-platform-tests/css/css-flexbox/image-as-flexitem-size-004v-expected.txt:
Source/WebCore:
- rendering/RenderFlexibleBox.cpp: (WebCore::RenderFlexibleBox::computeMainSizeFromAspectRatioUsing const): (WebCore::RenderFlexibleBox::childCrossSizeIsDefinite const):
LayoutTests:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272755 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:49 PM Changeset in webkit [273341] by
-
- 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 119
Added a tag for Safari Technology Preview release 119.
- 2:48 PM Changeset in webkit [273340] by
-
- 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 118
Added a tag for Safari Technology Preview release 118.
- 2:47 PM Changeset in webkit [273339] by
-
- 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 117
Added a tag for Safari Technology Preview release 117.
- 2:45 PM Changeset in webkit [273338] by
-
- 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 115
Added a tag for Safari Technology Preview release 115.
- 2:44 PM Changeset in webkit [273337] by
-
- 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 114
Added a tag for Safari Technology Preview release 114.
- 2:38 PM Changeset in webkit [273336] by
-
- 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 113
Added a tag for Safari Technology Preview release 113.
- 2:38 PM Changeset in webkit [273335] by
-
- 2 edits in trunk/LayoutTests
[BigSur Wk2] imported/w3c/web-platform-tests/media-source/mediasource-seek-during-pending-seek.html is a flakey failure.
https://bugs.webkit.org/show_bug.cgi?id=222183
Unreviewed test gardening.
Patch by Amir Mark Jr <Amir Mark Jr.> on 2021-02-23
- platform/mac-wk2/TestExpectations:
- 2:29 PM Changeset in webkit [273334] by
-
- 2 edits in trunk/LayoutTests
Unreviewed Windows test gardening to speed up EWS.
- platform/win/TestExpectations:
- 2:22 PM Changeset in webkit [273333] by
-
- 6 edits2 adds in trunk/Tools
[webkitscmpy] Add remote BitBucket
https://bugs.webkit.org/show_bug.cgi?id=222213
<rdar://problem/74542626>
Rubber-stamped by Aakash Jain.
- Scripts/libraries/webkitscmpy/setup.py: Increment version.
- Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/init.py: Export mock BitBucket.
- Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/bitbucket.py: Added.
(BitBucket): Mock limited set of BitBucket REST APIs.
- Scripts/libraries/webkitscmpy/webkitscmpy/remote/init.py: Export BitBucket class.
- Scripts/libraries/webkitscmpy/webkitscmpy/remote/bitbucket.py: Added.
(BitBucket): Repository object interacting with BitBucket via REST API.
(BitBucket.is_webserver): Check if the provided URL is a bitbucket URL.
(BitBucket.init):
(BitBucket.is_git):
(BitBucket.request): Combine paginated requests into a single API call.
(BitBucket._distance): Preform binary search
(BitBucket._branches_for): Return branches for reference.
(BitBucket.default_branch): Return the default branch.
(BitBucket.branches): Return all branches for repository.
(BitBucket.tags): Return all tags for repository.
(BitBucket.commit): Convert hash, identifier or git ref to Commit object.
(BitBucket.find): Use git to match branches and tags to a hash instead of trying to do it ourselves.
- Scripts/libraries/webkitscmpy/webkitscmpy/remote/scm.py:
(Scm.from_url): Add BitBucket.
- Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py:
(TestGitHub.test_detection): Add bitbucket url.
(TestBitBucket): Added.
- Scripts/libraries/webkitscmpy/webkitscmpy/test/svn_unittest.py:
(TestRemoteSvn.test_detection): Add bitbucket url.
- 2:05 PM Changeset in webkit [273332] by
-
- 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 120
"Added a tag for Safari Technology Preview release 120."
- 1:36 PM Changeset in webkit [273331] by
-
- 2 edits in trunk/Tools
Pass full environment when auto installing a Python module on Windows
https://bugs.webkit.org/show_bug.cgi?id=221109
<rdar://problem/74002781>
Reviewed by Jonathan Bedard.
On Python 3 when the AutoInstall routine attempted to setup markupsafe-2.0.0 it would fail
when compiling native code. When compiling outside of Visual Studio there is a batch file
that sets up the environment. This adds a large number of environment variables which could
potentially change over time so to be safe the complete environment is passed to the
setup.py installation routine for Windows only.
- Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py:
(Package.install):
- 12:19 PM Changeset in webkit [273330] by
-
- 5 edits4 adds in trunk
Nullptr crash in ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline
https://bugs.webkit.org/show_bug.cgi?id=221651
Patch by Frederic Wang <fwang@igalia.com> on 2021-02-23
Reviewed by Ryosuke Niwa.
Source/WebCore:
There are assumptions in the editing code that new containers have an associated renderer,
which is not the case if their style is "display: contents". This patch replaces the
strict debug ASSERT in CompositeEditCommand::appendBlockPlaceholder with a failure
specified by a nullptr return value, similar to other BlockPlaceholder APIs. That way
InsertParagraphSeparatorCommand::doApply can exit early when the block placeholder cannot
be inserted. This patch also fixes one nullptr dereference in release build happening when
executing Editor::replaceSelectionWithFragment.
Test: fast/editing/mutation-with-display-contents-container-crash.html
- editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::appendBlockPlaceholder): Return null is the container
has no associated renderer.
- editing/CompositeEditCommand.h: Return a RefPtr, so it is null in case of failure.
- editing/InsertParagraphSeparatorCommand.cpp:
(WebCore::InsertParagraphSeparatorCommand::doApply): Abort command if the block placeholder
cannot be inserted in the container.
LayoutTests:
- fast/editing/mutation-with-display-contents-container-crash-expected.txt: Added.
- fast/editing/mutation-with-display-contents-container-crash.html: Added.
- platform/ios/fast/editing/mutation-with-display-contents-container-crash-expected.txt: Added.
- 12:09 PM Changeset in webkit [273329] by
-
- 3 edits in trunk/Source/WebCore
Make system console logging synchronous
https://bugs.webkit.org/show_bug.cgi?id=222279
Reviewed by Alex Christensen.
Previously, the logging of messages to the system console was done in
PageConsoleClient::addMessage(), which was called by
Document::addConsoleMessage(). The latter was called in a TaskQueue
callback.
This had the unfortunate side effect of adding a delay from the time a
macro such as ALWAYS_LOG() is called and the text being printed to the
console. This is particularly a problem when logging 3rd party
libraries that don't use the WebKit logging API to log to stderr, such
as GStreamer, since it causes messages logged by WebKit to not be
synchronized with messages logged by 3rd party libraries or logging
systems. As a consequence the usefulness of WebKit logs is noticeably
reduced.
This patch fixes the issue by moving the code logging to the system
console to the synchronous part of Document::didLogMessage(), while
still handling the rest in the m_logMessageTaskQueue callback.
- dom/Document.cpp:
(WebCore::Document::didLogMessage):
- page/PageConsoleClient.cpp:
(WebCore::PageConsoleClient::addMessage):
- 12:04 PM Changeset in webkit [273328] by
-
- 3 edits2 adds in trunk
AX: VoiceOver incorrectly announces groups in ARIA tree instances as empty
https://bugs.webkit.org/show_bug.cgi?id=221716
<rdar://problem/74205567>
Reviewed by Zalan Bujtas.
Source/WebCore:
ARIA treeitems are allowed to have a child group that can represent the disclosed rows, which are disclosed through aria-owns.
Test: accessibility/mac/treeitem-row-delegation.html
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::ariaTreeRows):
LayoutTests:
- accessibility/mac/treeitem-row-delegation-expected.txt: Added.
- accessibility/mac/treeitem-row-delegation.html: Added.
- 11:55 AM Changeset in webkit [273327] by
-
- 3 edits in trunk/Source/WebKit
[CoordinatedGraphics] The whole content is unnecessarily repainted by animations in non-AC mode pages
https://bugs.webkit.org/show_bug.cgi?id=221391
Reviewed by Carlos Garcia Campos.
When triggerRenderingUpdate was called back, it added the whole
view area into the dirty region to repaint in non-AC mode pages.
This caused a problem that the whole content was unnecessarily
repainted by animations in non-AC mode pages.
Call scheduleDisplay instead of setNeedsDisplay in
triggerRenderingUpdate.
However, if the dirty region is empty, display() exited early. If
triggerRenderingUpdate is called back,
DrawingAreaCoordinatedGraphics::display should be called to ensure
WebPage::updateRendering() called even if m_dirtyRegion is empty.
Added a new flag m_scheduledWhileWaitingForDidUpdate.
- WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:
(WebKit::DrawingAreaCoordinatedGraphics::triggerRenderingUpdate):
Call scheduleDisplay() instead of setNeedsDisplay().
(WebKit::DrawingAreaCoordinatedGraphics::didUpdate):
(WebKit::DrawingAreaCoordinatedGraphics::scheduleDisplay): Don't
return early even if m_dirtyRegion is empty.
(WebKit::DrawingAreaCoordinatedGraphics::display()): Ditto.
(WebKit::DrawingAreaCoordinatedGraphics::display(UpdateInfo&)):
Return early if m_dirtyRegion is empty.
- WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.h:
Added m_scheduledWhileWaitingForDidUpdate.
- 11:46 AM Changeset in webkit [273326] by
-
- 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 112
Added a tag for Safari Technology Preview release 112.
- 11:45 AM Changeset in webkit [273325] by
-
- 1 delete in releases/Apple/Safari Technology Preview 112
Delete release tag.
- 11:44 AM Changeset in webkit [273324] by
-
- 1 copy in releases/Apple/Safari Technology Preview 112
Added a tag for Safari Technology Preview release 112.
- 11:41 AM Changeset in webkit [273323] by
-
- 2 edits in branches/safari-612.1.5-branch/Source/WebKit
Cherry-pick r273297. rdar://problem/74650857
[Payment Request] REGRESSION(r273143): crash shortly after showing the Apple Pay sheet
https://bugs.webkit.org/show_bug.cgi?id=222298
<rdar://problem/74557943>
Reviewed by Wenson Hsieh.
- Platform/cocoa/PaymentAuthorizationPresenter.mm:
(WebKit::toNSErrors):
Don't use
adoptNS
with+[NSMutableArray array]
since that returns an autoreleased object. Use the helpercreateNSArray
instead (as was previously done before r273143).
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273297 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:10 AM Changeset in webkit [273322] by
-
- 6 edits2 adds in branches/safari-611-branch/Source/WebCore
Cherry-pick r272678. rdar://problem/74410058
Integrator's note: includes an unrelated buildfix in HIDGamepadElement.cpp which
was breaking the build at this revision for some reason.
WebCore::createBusFromInMemoryAudioFile() may crash under ExtAudioFileRead()
https://bugs.webkit.org/show_bug.cgi?id=221642
<rdar://72789841>
Reviewed by Geoffrey Garen.
The crash seems to indicate we are passing an AudioBufferList to ExtAudioFileRead()
that contains a null buffer. It is not obvious how this is happening but I have made
the following changes:
- createAudioBufferList() / destroyAudioListBuffer() implementation is now shared on both macOS and iOS. The implementation now uses fastCalloc and returns null in case of failure to allocate.
- createAudioBufferList() was renamed to tryCreateAudioBufferList() to make it clear it can return null. All call sites now properly deal with tryCreateAudioBufferList() potentially return null
- Add a new validateAudioBufferList() function which makes sure that the AudioBufferList we are about to pass to ExtAudioFileRead() does not contain any null buffer. In case of validation failure, we log an error, generate a simulated crash log and early return gracefully instead of crashing later on.
- Added more assertions to help catch bugs.
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/audio/cocoa/AudioFileReaderCocoa.cpp: Added. (WebCore::tryCreateAudioBufferList): (WebCore::destroyAudioBufferList): (WebCore::validateAudioBufferList):
- platform/audio/cocoa/AudioFileReaderCocoa.h: Added.
- platform/audio/ios/AudioFileReaderIOS.cpp: (WebCore::AudioFileReader::createBus): (WebCore::createAudioBufferList): Deleted. (WebCore::destroyAudioBufferList): Deleted.
- platform/audio/mac/AudioFileReaderMac.cpp: (WebCore::AudioFileReader::createBus): (WebCore::createAudioBufferList): Deleted. (WebCore::destroyAudioBufferList): Deleted.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272678 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:58 AM Changeset in webkit [273321] by
-
- 8 edits in trunk/Source
Versioning.
WebKit-7612.1.6
- 10:55 AM Changeset in webkit [273320] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, reverting r273304.
https://bugs.webkit.org/show_bug.cgi?id=222324
Introduced test failure
Reverted changeset:
"[macOS] Crash under AuxiliaryProcess::initializeSandbox"
https://bugs.webkit.org/show_bug.cgi?id=222233
https://trac.webkit.org/changeset/273304
- 10:51 AM Changeset in webkit [273319] by
-
- 1 copy in branches/safari-612.1.5-branch
New branch.
- 10:46 AM Changeset in webkit [273318] by
-
- 2 edits in trunk/LayoutTests
[BigSur] imported/w3c/web-platform-tests/css/css-counter-styles/tibetan/css3-counter-styles-156.html is consistently failing
https://bugs.webkit.org/show_bug.cgi?id=222118
Unreviewed test gardening.
- platform/mac/TestExpectations: This test is an ImageOnlyFailure.
- 10:23 AM Changeset in webkit [273317] by
-
- 76 edits6 deletes in branches/safari-611-branch
Revert content after (and including) cherry-pick of r272678.
- 10:10 AM Changeset in webkit [273316] by
-
- 2 edits in trunk/Tools
Unreviewed, reverting r273307.
https://bugs.webkit.org/show_bug.cgi?id=222320
Need to update CI code for CLoop bot before landing this
Reverted changeset:
"Detect unrecognized options in run-javascriptcore-tests"
https://bugs.webkit.org/show_bug.cgi?id=221186
https://trac.webkit.org/changeset/273307
- 9:54 AM Changeset in webkit [273315] by
-
- 5 edits in trunk/Tools
show-identifier fails with error: ascii codec can't decode byte 0xc3 in position
https://bugs.webkit.org/show_bug.cgi?id=222313
<rdar://problem/74645910>
Reviewed by Aakash Jain.
- Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Scripts/libraries/webkitscmpy/webkitscmpy/contributor.py:
(Contributor.repr): Always return unicode for Python 2.
- Scripts/libraries/webkitscmpy/webkitscmpy/test/contributor_unittest.py:
(TestContributor.test_unicode):
- 9:50 AM Changeset in webkit [273314] by
-
- 6 edits2 adds in trunk
aspect-ratio shows in computed style when disabled
https://bugs.webkit.org/show_bug.cgi?id=222286
Patch by Rob Buis <rbuis@igalia.com> on 2021-02-23
Reviewed by Simon Fraser.
Source/WebCore:
Make aspect-ratio invisible from style when disabled.
Test: fast/css/aspect-ratio-invalidate-if-disabled.html
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
- css/CSSProperties.json:
Tools:
Add support for disabling aspect-ratio in wk1.
- DumpRenderTree/TestOptions.cpp:
(WTR::TestOptions::defaults):
LayoutTests:
Add test.
- fast/css/aspect-ratio-invalidate-if-disabled-expected.txt: Added.
- fast/css/aspect-ratio-invalidate-if-disabled.html: Added.
- 9:37 AM Changeset in webkit [273313] by
-
- 6 edits in trunk/Source/WebKit
REGRESSION(r273204): webkitpy tests fail
https://bugs.webkit.org/show_bug.cgi?id=222275
<rdar://problem/74614397>
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-02-23
Reviewed by Jonathan Bedard.
Regenerate the IPC generation test expectations that were
not part of r273204.
Tested by
./Tools/Scripts/test-webkitpy-python2 -j1 -p Source/WebKit/Scripts/webkit/messages_unittest.py
- Scripts/webkit/tests/MessageArgumentDescriptions.cpp:
(IPC::jsValueForArguments):
(IPC::messageArgumentDescriptions):
- Scripts/webkit/tests/MessageNames.cpp:
(IPC::description):
(IPC::receiverName):
(IPC::isValidMessageName):
- Scripts/webkit/tests/MessageNames.h:
- Scripts/webkit/tests/TestWithSemaphoreMessages.h:
- Scripts/webkit/tests/TestWithStreamMessages.h:
- 9:23 AM Changeset in webkit [273312] by
-
- 4 edits in trunk
[CMake] Fix JSCOnly build on Windows
https://bugs.webkit.org/show_bug.cgi?id=222316
Reviewed by Michael Catanzaro.
.:
Turn off ENABLE_WEBASSEMBLY for Windows on JSCOnly now that its possible to build it
without FTL.
- Source/cmake/OptionsJSCOnly.cmake:
Source/WTF:
Update sources for the JSCOnly Windows build.
- wtf/PlatformJSCOnly.cmake:
- 9:09 AM Changeset in webkit [273311] by
-
- 4 edits in trunk/Source/WebCore
[GStreamer][EME][Thunder] Initialize decryptor lazily
https://bugs.webkit.org/show_bug.cgi?id=222314
Reviewed by Philippe Normand.
In some cases, WebKit can be run before Thunder nano services are
up and without PSON, the result can be that you end up with WebKit
thinking there is no DRM system available.
First thing this patch does it removing the once flag so we keep
asking if there are DRM systems available if we are asked about
them from JS.
Second thing is that if we are queried from JS about the
availability of DRM systems and there are some available, we
initialize the decryptor.
- platform/graphics/gstreamer/GStreamerCommon.cpp:
(WebCore::registerWebKitGStreamerElements):
- platform/graphics/gstreamer/eme/CDMThunder.cpp:
(WebCore::CDMFactoryThunder::supportedKeySystems const):
- platform/graphics/gstreamer/eme/WebKitThunderDecryptorGStreamer.cpp:
- 9:08 AM Changeset in webkit [273310] by
-
- 5 edits in trunk/Source/WebCore
Only files in WebCore/testing should be in WebCoreTestSupport
https://bugs.webkit.org/show_bug.cgi?id=222297
Reviewed by Eric Carlson.
After r272721 the non-unified WinCairo build reported error C2859, filename is not the
type file that was used when this precompiled header was created. This was because a
handful of files were in the WebCore library as well as the WebCoreTestSupport library.
Investigating the XCode project it turned out that the files listed in the CMake for
WebCoreTestSupport didn't match. The XCode project had all of the mock files within
platform in WebCore and WebCoreTestSupport just had files in the testing directory.
All mock related files were added to the Sources.txt and the erroneous listing of them
in WebCoreTestSupport_SOURCES were removed.
During the investigation it turned out some mocks were being compiled in both WebCore
and WebCoreTestSupport within the XCode build. This was rectified and an additional
WEBCORE_EXPORT in PlatformSpeechSynthesizerMock was added to support this.
- CMakeLists.txt:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/mock/PlatformSpeechSynthesizerMock.h:
- 8:58 AM Changeset in webkit [273309] by
-
- 4 edits in trunk
[GStreamer] fast/mediastream/captureStream/canvas2d.html is flaky timing out since GStreamer 1.18 update
https://bugs.webkit.org/show_bug.cgi?id=218580
Patch by Philippe Normand <pnormand@igalia.com> on 2021-02-23
Reviewed by Xabier Rodriguez-Calvar.
Source/WebCore:
Live streams start without pre-rolling, that means they can reach PAUSED while sinks still
haven't received a sample to render. So we need to notify the media element in such cases
only after pre-rolling has completed. Otherwise the media element might emit a play event
too early, before pre-rolling has been completed.
No new tests, this patch fixes a few layout tests though, most notably removing flakiness
from fast/mediastream/captureStream/canvas2d.html.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::updateStates):
(WebCore::MediaPlayerPrivateGStreamer::triggerRepaint):
LayoutTests:
- platform/glib/TestExpectations: Unflag no-longer-flaky and now-passing media tests.
- 8:21 AM Changeset in webkit [273308] by
-
- 52 edits in trunk/Tools
Use adoptNS() as soon as we [[ObjcClass alloc] init] to avoid leaks in Tools/
https://bugs.webkit.org/show_bug.cgi?id=222288
Reviewed by Darin Adler.
- DumpRenderTree/ios/PixelDumpSupportIOS.mm:
- DumpRenderTree/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptControllerIOS::zoomScale const):
(WTR::UIScriptControllerIOS::scrollToOffset):
(WTR::UIScriptControllerIOS::immediateScrollToOffset):
(WTR::UIScriptControllerIOS::minimumZoomScale const):
(WTR::UIScriptControllerIOS::maximumZoomScale const):
- DumpRenderTree/mac/DumpRenderTree.mm:
(fontAllowList):
(adjustWebDocumentForFlexibleViewport):
(createWebViewAndOffscreenWindow):
(allocateGlobalControllers):
(releaseGlobalControllers):
(resetWebViewToConsistentState):
(runTest):
- DumpRenderTree/mac/DumpRenderTreeMac.h:
- DumpRenderTree/mac/DumpRenderTreePasteboard.mm:
(+[DumpRenderTreePasteboard _pasteboardWithName:]):
(+[DumpRenderTreePasteboard releaseLocalPasteboards]):
- DumpRenderTree/mac/EventSendingController.mm:
(drt_WebHTMLView_beginDraggingSessionWithItemsEventSource):
(+[EventSendingController initialize]):
(-[EventSendingController beginDragWithFiles:]):
(-[EventSendingController beginDragWithFilePromises:]):
(-[EventSendingController mouseUp:withModifiers:]):
(-[EventSendingController mouseMoveToX:Y:]):
- DumpRenderTree/mac/FrameLoadDelegate.mm:
(-[FrameLoadDelegate didClearWindowObjectInStandardWorldForFrame:]):
- DumpRenderTree/mac/TestRunnerMac.mm:
(TestRunner::setCustomPolicyDelegate):
(TestRunner::waitForPolicyDelegate):
(TestRunner::apiTestNewWindowDataLoadBaseURL):
- DumpRenderTree/mac/UIDelegate.mm:
(-[UIDelegate webView:dragImage:at:offset:event:pasteboard:source:slideBack:forView:]):
(-[UIDelegate dealloc]):
- TestRunnerShared/cocoa/LayoutTestSpellChecker.mm:
(ensureGlobalLayoutTestSpellChecker):
- TestWebKitAPI/Tests/WebKit/GetUserMedia.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKit/GetUserMediaNavigation.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKit/GetUserMediaReprompt.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKit/mac/CustomBundleParameter.mm:
(TestWebKitAPI::didReceiveMessageFromInjectedBundle):
- TestWebKitAPI/Tests/WebKitCocoa/CommandBackForward.mm:
(WebKit2_CommandBackForwardTestWKView::SetUp):
- TestWebKitAPI/Tests/WebKitCocoa/Download.mm:
(TEST):
- TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:
- TestWebKitAPI/Tests/WebKitCocoa/NowPlayingControlsTests.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/PasteMixedContent.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/ReparentWebViewTimeout.mm:
(TEST):
- TestWebKitAPI/Tests/WebKitCocoa/SchemeRegistry.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/SystemPreview.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/TestSOAuthorization.mm:
(-[TestSOAuthorizationDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):
- TestWebKitAPI/Tests/WebKitCocoa/UserInitiatedActionInNavigationAction.mm:
(UserInitiatedActionTest::URLWithFragment):
- TestWebKitAPI/Tests/WebKitCocoa/UserMediaDisabled.mm:
(TEST_F):
- TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:
(TEST):
- TestWebKitAPI/Tests/WebKitCocoa/WKInspectorDelegate.mm:
(-[UIDelegate _webView:configurationForLocalInspector:]):
- TestWebKitAPI/Tests/WebKitCocoa/WKPDFView.mm:
(TEST):
- TestWebKitAPI/Tests/WebKitCocoa/WKWebViewCandidateTests.mm:
(+[CandidateTestWebView setUpWithFrame:testPage:]):
(TEST):
- TestWebKitAPI/Tests/WebKitCocoa/WKWebViewDoesNotLogDuringInitialization.mm:
(TEST):
- TestWebKitAPI/Tests/WebKitCocoa/WKWebViewEvaluateJavaScript.mm:
- TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:
(runWebsiteDataStoreCustomPaths):
- TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:
(-[WebsitePoliciesWebsiteDataStoreDelegate webView:startURLSchemeTask:]):
- TestWebKitAPI/Tests/WebKitLegacy/mac/ClosingWebView.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitObjC/CustomProtocolsInvalidScheme.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitObjC/PreventImageLoadWithAutoResizing.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitObjC/UserContentTest.mm:
(TEST_F):
- TestWebKitAPI/Tests/ios/DragAndDropTestsIOS.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:
(+[InputAssistantItemTestingWebView leadingItemsForWebView:]):
(+[InputAssistantItemTestingWebView trailingItemsForWebView:]):
- TestWebKitAPI/Tests/ios/WKScrollViewDelegate.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/mac/CandidateTests.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/mac/MemoryCachePruneWithinResourceLoadDelegate.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/ios/mainIOS.mm:
(main):
- TestWebKitAPI/mac/TestFontOptions.mm:
(+[TestFontOptions sharedInstance]):
- TestWebKitAPI/mac/mainMac.mm:
(main):
- WebKitTestRunner/InjectedBundle/ios/AccessibilityControllerIOS.mm:
(WTR::AccessibilityController::addNotificationListener):
- WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::globalWebViewConfiguration):
(WTR::globalWebsiteDataStoreDelegateClient):
(WTR::initializeWebViewConfiguration):
(WTR::TestController::platformContext):
(WTR::TestController::platformPreferences):
(WTR::TestController::platformInitializeDataStore):
(WTR::TestController::platformCreateWebView):
(WTR::TestController::platformCreateOtherPage):
(WTR::TestController::platformAdjustContext):
(WTR::TestController::cocoaResetStateToConsistentValues):
(WTR::TestController::removeAllSessionCredentials):
(WTR::TestController::getAllStorageAccessEntries):
(WTR::TestController::loadedSubresourceDomains):
(WTR::TestController::clearLoadedSubresourceDomains):
(WTR::TestController::injectUserScript):
(WTR::TestController::setAllowStorageQuotaIncrease):
(WTR::TestController::setAllowsAnySSLCertificate):
- WebKitTestRunner/ios/GeneratedTouchesDebugWindow.mm:
(+[GeneratedTouchesDebugWindow sharedGeneratedTouchesDebugWindow]):
- WebKitTestRunner/ios/HIDEventGenerator.mm:
(+[HIDEventGenerator sharedHIDEventGenerator]):
- WebKitTestRunner/mac/TestControllerMac.mm:
(WTR::TestController::configureContentExtensionForTest):
- WebKitTestRunner/mac/WebKitTestRunnerPasteboard.mm:
(+[WebKitTestRunnerPasteboard _pasteboardWithName:]):
(+[WebKitTestRunnerPasteboard releaseLocalPasteboards]):
- 8:18 AM Changeset in webkit [273307] by
-
- 2 edits in trunk/Tools
Detect unrecognized options in run-javascriptcore-tests
https://bugs.webkit.org/show_bug.cgi?id=221186
Patch by Angelos Oikonomopoulos <Angelos Oikonomopoulos> on 2021-02-23
Reviewed by Keith Miller.
run-javascriptcore-tests saves unrecognized arguments to pass
through to build-jsc even when --no-build is used. However, when
we're not building, nothing will ever use or look at the extra
arguments. This means that those arguments are silently eaten
up and, consequently, typos in option names can go undetected.
Change the script to fail when --no-build has been passed and
there are unrecognized options.
- Scripts/run-javascriptcore-tests:
- 7:05 AM Changeset in webkit [273306] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, GTK Ubuntu LTS build fix after r273241
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::invalidateLineLayoutPath): Function
modernLineLayout is only defined if ENABLE(LAYOUT_FORMATING_CONTEXT)
- 6:34 AM Changeset in webkit [273305] by
-
- 8 edits1 copy1 add in trunk/Source/WebKit
[iOS] Add a watchdog timer to forcibly reset deferring gesture recognizers
https://bugs.webkit.org/show_bug.cgi?id=222216
Reviewed by Simon Fraser.
Add a mechanism to detect and resolve situations where at least one deferring gesture recognizer
(WKDeferringGestureRecognizer
) is stuck in Possible state after ending touches, but the touch event gesture
recognizer is unable to be reset (i.e. neither possible or recognizing). This state is indicative of a general
class of bugs regarding native gesture deferral, wherein our "gesture gates" never end up being lifted after
ending all touches in the view. One such example of this type of bug was fixed in r272584, where all interaction
(touch events, scrolling, tapping) due to the touch end deferrers never exiting Possible state after long
pressing to present a context menu.
To make these kinds of bugs both easier to diagnose and less fatal in the future, we introduce a watchdog timer
that dispatches after ending all touches on the content view, and checks the consistency of deferring gesture
recognizers in the view; if we detect stuck deferring gestures, we handle this by forcibly resetting the stuck
deferring gestures and logging a fault message.
I manually verified this change by reverting my fix for the aforementioned bug (r272584), and observing both (1)
a system log fault message, and (2) that interactions continued to work even without the fix in r272584, after
the watchdog timer fired. See below for more details.
- SourcesCocoa.txt:
- UIProcess/ios/GestureRecognizerConsistencyEnforcer.h: Copied from Source/WebKit/UIProcess/ios/WKDeferringGestureRecognizer.h.
- UIProcess/ios/GestureRecognizerConsistencyEnforcer.mm: Added.
(WebKit::GestureRecognizerConsistencyEnforcer::GestureRecognizerConsistencyEnforcer):
(WebKit::GestureRecognizerConsistencyEnforcer::beginTracking):
(WebKit::GestureRecognizerConsistencyEnforcer::endTracking):
(WebKit::GestureRecognizerConsistencyEnforcer::reset):
(WebKit::GestureRecognizerConsistencyEnforcer::timerFired):
Add a helper class that wraps a
RunLoop::Timer
for the main runloop, and schedules a 1 second timer after all
deferring gestures have ended; assuming no new touches begin after this timer is scheduled, we'll perform a
consistency check over the content view's gestures and perform a log fault and force deferring gestures to end
if needed.
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView setUpInteraction]):
(-[WKContentView cleanUpInteraction]):
Make sure that we reset any extant
GestureRecognizerConsistencyEnforcer
if the web process crashes.
(-[WKContentView _removeDefaultGestureRecognizers]):
(-[WKContentView _addDefaultGestureRecognizers]):
(-[WKContentView _webTouchEventsRecognized:]):
Adjust a few compile-time guards so that deferring gesture recognizers exist on the view, even if
ENABLE_IOS_TOUCH_EVENTS
is off. This makes some of the gesture deferral code throughout this file easier to
reason about in non-internal iOS builds, since we don't need to sprinkle as manyENABLE(IOS_TOUCH_EVENTS)
checks throughout this class.
(-[WKContentView touchEventGestureRecognizer]):
(-[WKContentView gestureRecognizerConsistencyEnforcer]):
(-[WKContentView deferringGestures]):
(-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]):
(-[WKContentView deferringGestureRecognizer:willBeginTouchesWithEvent:]):
Refactor
-deferringGestureRecognizer:shouldDeferGesturesAfterBeginningTouchesWithEvent:
so that it returns an
enum flag indicating whether the given gesture should be allowed to begin deferring native gestures; by making
this-deferringGestureRecognizer:willBeginTouchesWithEvent:
, we can now put state management logic here that's
responsible for updating theGestureRecognizerConsistencyEnforcer
.
(-[WKContentView deferringGestureRecognizer:didTransitionToState:]):
(-[WKContentView deferringGestureRecognizer:didEndTouchesWithEvent:]):
(-[WKContentView _deferringGestures]): Deleted.
Rename this to
-deferringGestures
and expose it as a readonly property, for use by the
GestureRecognizerConsistencyEnforcer
.
(-[WKContentView deferringGestureRecognizer:shouldDeferGesturesAfterBeginningTouchesWithEvent:]): Deleted.
- UIProcess/ios/WKDeferringGestureRecognizer.h:
- UIProcess/ios/WKDeferringGestureRecognizer.mm:
(-[WKDeferringGestureRecognizer touchesBegan:withEvent:]):
(-[WKDeferringGestureRecognizer setState:]):
Add a delegate hook to inform
WKContentView
when the gesture recognizer state changes.
(-[WKDeferringGestureRecognizer deferringGestureDelegate]): Deleted.
- UIProcess/mac/WKPrintingView.h:
Fix a missing include that results in a build failure due to changed unified sources.
- WebKit.xcodeproj/project.pbxproj:
- 5:58 AM Changeset in webkit [273304] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Crash under AuxiliaryProcess::initializeSandbox
https://bugs.webkit.org/show_bug.cgi?id=222233
Unreviewed, address additional review feedback.
Add comment and logging when the WebKit client is setting the user directory suffix.
- Shared/mac/AuxiliaryProcessMac.mm:
(WebKit::initializeSandboxParameters):
- 5:01 AM Changeset in webkit [273303] by
-
- 4 edits in trunk/Tools
[GTK] Use std::bitset to specify WebKitTestServer's options
https://bugs.webkit.org/show_bug.cgi?id=222273
Patch by Frederic Wang <fwang@igalia.com> on 2021-02-23
Reviewed by Carlos Garcia Campos.
- TestWebKitAPI/Tests/WebKitGLib/TestSSL.cpp:
(beforeAll):
- TestWebKitAPI/glib/WebKitGLib/WebKitTestServer.cpp:
(WebKitTestServer::WebKitTestServer):
- TestWebKitAPI/glib/WebKitGLib/WebKitTestServer.h:
- 4:28 AM Changeset in webkit [273302] by
-
- 3 edits2 adds in trunk
Nullptr crash in ModifySelectionListLevelCommand::appendSiblingNodeRange
https://bugs.webkit.org/show_bug.cgi?id=221650
Patch by Frederic Wang <fwang@igalia.com> on 2021-02-23
Reviewed by Ryosuke Niwa.
Source/WebCore:
getStartEndListChildren relies on the render tree to move the "end" node to the next sibling,
but this does not necessarily correspond to a sibling of the "start" node in the DOM tree.
This breaks the assumption of ModifySelectionListLevelCommand::appendSiblingNodeRange that
the "start" and "end" nodes are siblings (in that order), causing a null-pointer dereference.
This patch fixes the issue by ensuring that getStartEndListChildren does not try to change
the "end" node if it is not a sibling of the "start" one.
Test: fast/editing/modify-selection-list-level-crash.html
- editing/ModifySelectionListLevel.cpp:
(WebCore::getStartEndListChildren): Don't change the end node if r->node() is a sibling of
startChildList.
LayoutTests:
- fast/editing/modify-selection-list-level-crash-expected.txt: Added.
- fast/editing/modify-selection-list-level-crash.html: Added.
- 12:58 AM Changeset in webkit [273301] by
-
- 10 edits in trunk
HTMLCanvasElement::copiedImage() contains old image with GPU Process on
https://bugs.webkit.org/show_bug.cgi?id=222101
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-02-23
Reviewed by Simon Fraser.
Source/WebKit:
Implement RemoteImageBufferProxy::copyImage and
RemoteImageBufferProxy::copyNativeImage.
Implement by asking the data from the GPU process.
Previously, with AcceleratedImageBufferShareableMappedBackend
the HTMLCanvasElement::copiedImage() would construct the copy
by copying the CGContext backed by the IOSurface that is accessible
by both processes. This would succeed. After a draw to the image,
the second copy would not reflect the draw but contain the same
image as the first copy.
Fix by not using the fact that the IOSurface is accessible by both
processes. In the end, IOSurfaces will not be available in
Web process.
Converts NativeImage to ShareableBitmap with WebCore::CompositeOperator::Copy
since the ImageBuffers might have unpremultiplied contents. Also, ShareableBitmap
does not have contents, so blending is overhead.
No new tests, enables ~150 tests.
- GPUProcess/graphics/RemoteGraphicsContextGL.cpp:
(WebKit::RemoteGraphicsContextGL::copyTextureFromMedia):
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::getShareableBitmapForImageBuffer):
- GPUProcess/graphics/RemoteRenderingBackend.h:
- GPUProcess/graphics/RemoteRenderingBackend.messages.in:
- WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::getShareableBitmap):
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
LayoutTests:
- gpu-process/TestExpectations:
- 12:20 AM Changeset in webkit [273300] by
-
- 2 edits in trunk/Source/WebCore
Handle Page::didFinishLoadingImageForElement asynchronously
https://bugs.webkit.org/show_bug.cgi?id=221390
Reviewed by Antti Koivisto.
Use EventLoop instead of RunLoop::main() to be thread safe in iOS WebKit1.
- page/Page.cpp:
(WebCore::Page::didFinishLoadingImageForElement):
Feb 22, 2021:
- 11:43 PM Changeset in webkit [273299] by
-
- 21 edits in trunk/Source
Non-unified build fixes late February 2021 edition
https://bugs.webkit.org/show_bug.cgi?id=222303
Unreviewed non-unified build fixes.
Source/JavaScriptCore:
- API/JSAPIValueWrapper.cpp:
- bytecode/SetPrivateBrandVariant.h:
- heap/HeapAnalyzer.h:
- heap/HeapProfiler.cpp:
- parser/ParserTokens.h:
- runtime/DOMAttributeGetterSetter.cpp:
- runtime/GlobalExecutable.cpp:
- runtime/JSScriptFetchParameters.cpp:
Source/WebCore:
- bindings/js/ScriptModuleLoader.cpp:
- layout/integration/LayoutIntegrationInlineContentBuilder.cpp:
- layout/integration/LayoutIntegrationInlineContentBuilder.h:
- workers/WorkerGlobalScopeProxy.h:
- workers/WorkerMessagingProxy.cpp:
- workers/WorkerOrWorkletScriptController.cpp:
- workers/WorkerOrWorkletScriptController.h:
- workers/service/ServiceWorkerJob.cpp:
Source/WebKit:
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
- 7:50 PM Changeset in webkit [273298] by
-
- 4 edits in trunk/Source/WebCore
REGRESSION (r272928): ASSERT NOT REACHED in WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance
https://bugs.webkit.org/show_bug.cgi?id=222219
<rdar://problem/74548257>
Reviewed by Wenson Hsieh.
The assertion failure was caused by confirmCompositionAndNotifyClient called in commitProvisionalLoad
committing the composition even though the composition node had been removed from the document.
Fixed the bug by canceling the composition if the composition node had been removed or the selection
had been moved away from it in confirmCompositionAndNotifyClient.
Test: editing/input/select-all-clear-input-method.html
- editing/Editor.cpp:
(WebCore::Editor::confirmOrCancelCompositionAndNotifyClient): Renamed from confirmCompositionAndNotifyClient.
- editing/Editor.h:
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::commitProvisionalLoad):
- 7:34 PM Changeset in webkit [273297] by
-
- 2 edits in trunk/Source/WebKit
[Payment Request] REGRESSION(r273143): crash shortly after showing the Apple Pay sheet
https://bugs.webkit.org/show_bug.cgi?id=222298
<rdar://problem/74557943>
Reviewed by Wenson Hsieh.
- Platform/cocoa/PaymentAuthorizationPresenter.mm:
(WebKit::toNSErrors):
Don't useadoptNS
with+[NSMutableArray array]
since that returns an autoreleased object.
Use the helpercreateNSArray
instead (as was previously done before r273143).
- 7:16 PM Changeset in webkit [273296] by
-
- 14 edits2 adds in trunk/Source
WebMouseEvent.h should avoid pulling in WebCore headers that know about DOM nodes
https://bugs.webkit.org/show_bug.cgi?id=222291
Reviewed by Darin Adler.
Source/WebCore:
Refactor
PointerEvent.h
so that the static class helper methods for getting the names of mouse, pen and touch
pointer event types are instead separate functions inPointerEventTypeNames.h
. This allows us to just import
PointerEventTypeNames.h
instead ofPointerEvent.h
in WebKit -- and, in particular, within WebKit headers
that are exclusive to the UI process.
No change in behavior.
- Headers.cmake:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- dom/PointerEvent.cpp:
(WebCore::PointerEvent::mousePointerType): Deleted.
(WebCore::PointerEvent::penPointerType): Deleted.
(WebCore::PointerEvent::touchPointerType): Deleted.
- dom/PointerEvent.h:
Drive-by fix: also forward declare
Node
instead of includingNode.h
;WebCore::Node
is only used in this
header in the context ofRefPtr<Node>
, so the forward declaration is sufficient.
- dom/PointerEventTypeNames.cpp: Added.
(WebCore::mousePointerEventType):
(WebCore::penPointerEventType):
(WebCore::touchPointerEventType):
- dom/PointerEventTypeNames.h: Added.
- dom/ios/PointerEventIOS.cpp:
- page/PointerCaptureController.cpp:
(WebCore::PointerCaptureController::reset):
(WebCore::PointerCaptureController::pointerEventForMouseEvent):
(WebCore::PointerCaptureController::dispatchEvent):
(WebCore::PointerCaptureController::pointerEventWillBeDispatched):
(WebCore::PointerCaptureController::pointerEventWasDispatched):
(WebCore::PointerCaptureController::processPendingPointerCapture):
Source/WebKit:
Import
PointerEventTypeNames.h
instead ofPointerEvent.h
in several UI process and shared headers.
- Shared/WebMouseEvent.h:
- UIProcess/API/gtk/WebKitWebViewBase.cpp:
(primaryPointerForType):
(webkitWebViewBaseSynthesizeMouseEvent):
- UIProcess/Automation/SimulatedInputDispatcher.cpp:
(WebKit::SimulatedInputDispatcher::transitionInputSourceToState):
- UIProcess/Automation/WebAutomationSession.cpp:
(WebKit::WebAutomationSession::performMouseInteraction):
- UIProcess/gtk/PointerLockManager.cpp:
(WebKit::PointerLockManager::handleMotion):
- 6:32 PM Changeset in webkit [273295] by
-
- 1 copy in tags/Safari-611.1.18.1.1
Tag Safari-611.1.18.1.1.
- 6:29 PM Changeset in webkit [273294] by
-
- 1 copy in tags/Safari-611.1.18.0.1
Tag Safari-611.1.18.0.1.
- 6:08 PM Changeset in webkit [273293] by
-
- 3 edits in trunk/Source/WebKit
Add assertions to help identify to source of <rdar://68340471>
https://bugs.webkit.org/show_bug.cgi?id=222290
Reviewed by Alex Christensen.
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::pageBeginUsingWebsiteDataStore):
(WebKit::WebProcessPool::pageEndUsingWebsiteDataStore):
(WebKit::WebProcessPool::hasPagesUsingWebsiteDataStore const):
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::addExistingWebPage):
- 6:02 PM Changeset in webkit [273292] by
-
- 3 edits in trunk/Source/JavaScriptCore
Move asyncModuleEvaluation into its own function and use intrinsic constants
https://bugs.webkit.org/show_bug.cgi?id=222281
Reviewed by Yusuke Suzuki.
Also delete an unused field on the module entry.
- builtins/ModuleLoader.js:
(globalPrivate.newRegistryEntry):
(moduleEvaluation):
(async asyncModuleEvaluation):
- runtime/JSModuleLoader.cpp:
- 6:00 PM Changeset in webkit [273291] by
-
- 15 edits in trunk
[GPU Process] Implement the ClipToDrawingCommands item by using begin and end markers
https://bugs.webkit.org/show_bug.cgi?id=222230
Reviewed by Simon Fraser.
Source/WebCore:
Instead of encoding and decoding the clipping commands as a separate
DisplayList, the recorder will insert a "begin" and "end" markers before
and after the clipping commands.
When replaying the "begin" mark, the replayer will create a mask ImageBuffer
and force using its context for the following items.
When replaying the "end" mark, it will clip the original context to the
mask ImageBuffer.
- platform/graphics/displaylists/DisplayList.cpp:
(WebCore::DisplayList::DisplayList::append):
- platform/graphics/displaylists/DisplayListItemBuffer.cpp:
(WebCore::DisplayList::ItemHandle::apply):
(WebCore::DisplayList::ItemHandle::destroy):
(WebCore::DisplayList::ItemHandle::safeCopy const):
- platform/graphics/displaylists/DisplayListItemType.cpp:
(WebCore::DisplayList::sizeOfItemInBytes):
(WebCore::DisplayList::isDrawingItem):
(WebCore::DisplayList::isInlineItem):
- platform/graphics/displaylists/DisplayListItemType.h:
- platform/graphics/displaylists/DisplayListItems.cpp:
(WebCore::DisplayList::operator<<):
(WebCore::DisplayList::ClipToDrawingCommands::apply const): Deleted.
- platform/graphics/displaylists/DisplayListItems.h:
(WebCore::DisplayList::BeginClipToDrawingCommands::BeginClipToDrawingCommands):
(WebCore::DisplayList::BeginClipToDrawingCommands::colorSpace const):
(WebCore::DisplayList::EndClipToDrawingCommands::EndClipToDrawingCommands):
(WebCore::DisplayList::EndClipToDrawingCommands::destination const):
(WebCore::DisplayList::ClipToDrawingCommands::ClipToDrawingCommands): Deleted.
(WebCore::DisplayList::ClipToDrawingCommands::operator=): Deleted.
(WebCore::DisplayList::ClipToDrawingCommands::destination const): Deleted.
(WebCore::DisplayList::ClipToDrawingCommands::colorSpace const): Deleted.
(WebCore::DisplayList::ClipToDrawingCommands::drawingCommands const): Deleted.
(WebCore::DisplayList::ClipToDrawingCommands::encode const): Deleted.
(WebCore::DisplayList::ClipToDrawingCommands::decode): Deleted.
- platform/graphics/displaylists/DisplayListRecorder.cpp:
(WebCore::DisplayList::Recorder::clipToDrawingCommands):
- platform/graphics/displaylists/DisplayListReplayer.cpp:
(WebCore::DisplayList::Replayer::context const):
(WebCore::DisplayList::Replayer::applyItem):
- platform/graphics/displaylists/DisplayListReplayer.h:
Source/WebKit:
Replace the DisplayList item ClipToDrawingCommands by the pair items
BeginClipToDrawingCommands and EndClipToDrawingCommands.
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::decodeItem):
- WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
LayoutTests:
The text with gradient tests will be fixed by this change.
- gpu-process/TestExpectations:
- 5:43 PM Changeset in webkit [273290] by
-
- 11 edits14 adds in trunk
HTMLModelElement needs a renderer
https://bugs.webkit.org/show_bug.cgi?id=222114
Reviewed by Simon Fraser.
Source/WebCore:
Tests: model-element/model-element-ready-load-aborted.html
model-element/model-element-ready-load-failed.html
model-element/model-element-ready.html
model-element/model-element-renderer-no-source.html
model-element/model-element-renderer.html
- Headers.cmake:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
Add RenderModel.h/cpp
- Modules/model-element/HTMLModelElement.cpp:
(WebCore::HTMLModelElement::HTMLModelElement):
(WebCore::HTMLModelElement::~HTMLModelElement):
(WebCore::HTMLModelElement::modelData const):
(WebCore::HTMLModelElement::sourcesChanged):
(WebCore::HTMLModelElement::setSourceURL):
(WebCore::HTMLModelElement::readyPromiseResolve):
(WebCore::HTMLModelElement::createElementRenderer):
(WebCore::HTMLModelElement::responseReceived):
(WebCore::HTMLModelElement::dataReceived):
(WebCore::HTMLModelElement::redirectReceived):
(WebCore::HTMLModelElement::notifyFinished):
- Modules/model-element/HTMLModelElement.h:
- Modules/model-element/HTMLModelElement.idl:
Add basic loading of model data as a CachedRawResource. In the future,
we may want a more specialized loader, but for now this gets the data
into a data buffer and that's a good start.
Also adds a "ready" promise that resolves when the load completes. This
may mutate to an event in the future as the spec moves forward.
- rendering/RenderModel.cpp: Added.
(WebCore::RenderModel::RenderModel):
(WebCore::RenderModel::modelElement const):
(WebCore::RenderModel::updateFromElement):
- rendering/RenderModel.h: Added.
- rendering/RenderObject.h:
(WebCore::RenderObject::isRenderModel const):
Add a simple RenderReplaced subclass as the starting point of a renderer
for <model>. It's enough that it shows up in a render tree dump, but not
really anything else.
LayoutTests:
Add basic tests for loading HTMLModelElement elements and rendering
RenderModel elements.
- model-element/model-element-ready-expected.txt: Added.
- model-element/model-element-ready-load-aborted-expected.txt: Added.
- model-element/model-element-ready-load-aborted.html: Added.
- model-element/model-element-ready-load-failed-expected.txt: Added.
- model-element/model-element-ready-load-failed.html: Added.
- model-element/model-element-ready.html: Added.
- model-element/model-element-renderer-expected.txt: Added.
- model-element/model-element-renderer-no-source-expected.txt: Added.
- model-element/model-element-renderer-no-source.html: Added.
- model-element/model-element-renderer.html: Added.
- model-element/resources: Added.
- model-element/resources/heart.usdz: Added.
- 5:10 PM Changeset in webkit [273289] by
-
- 2 edits in trunk/Source/WebKit
UserMediaPermissionRequestManagerProxy may be released while computing capture device list
https://bugs.webkit.org/show_bug.cgi?id=222236
<rdar://74480265>
Unreviewed, address post-review comment.
- UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
(WebKit::UserMediaPermissionRequestManagerProxy::computeFilteredDeviceList): Use
capturedthis
.
- 4:31 PM Changeset in webkit [273288] by
-
- 22 edits1 copy in trunk/Source
Prepare for memory ownership transfer in the GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=222122
Reviewed by Simon Fraser.
Source/WebKit:
Prepare for memory ownership transfer in the GPUProcess:
- Have the WebProcess create a task identity token and pass it to the GPUProcess when connecting to it. The WebProcess' task identity token is then stored on the GPUConnectionToWebProcess object.
- Add the entitlement to the GPUProcess that is needed to transfer memory ownership to another process.
This is a first step towards having the GPUProcess transfer memory ownership of its
IOSurfaces and Metal textures to the WebProcesses it is serving.
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::create):
(WebKit::GPUConnectionToWebProcess::GPUConnectionToWebProcess):
- GPUProcess/GPUConnectionToWebProcess.h:
(WebKit::GPUConnectionToWebProcess::webProcessIdentityToken const):
- GPUProcess/GPUProcess.cpp:
(WebKit::GPUProcess::createGPUConnectionToWebProcess):
- GPUProcess/GPUProcess.h:
- GPUProcess/GPUProcess.messages.in:
- Scripts/process-entitlements.sh:
- Shared/GPUProcessConnectionParameters.h: Copied from Source/WTF/wtf/MachSendRight.h.
(WebKit::GPUProcessConnectionParameters::encode const):
(WebKit::GPUProcessConnectionParameters::decode):
- UIProcess/GPU/GPUProcessProxy.cpp:
(WebKit::GPUProcessProxy::getGPUProcessConnection):
- UIProcess/GPU/GPUProcessProxy.h:
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::getGPUProcessConnection):
- UIProcess/WebProcessPool.h:
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::getGPUProcessConnection):
- UIProcess/WebProcessProxy.h:
- UIProcess/WebProcessProxy.messages.in:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::platformInitializeGPUProcessConnectionParameters):
(WebKit::WebProcess::getGPUProcessConnection):
- WebProcess/WebProcess.h:
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeGPUProcessConnectionParameters):
Source/WTF:
- wtf/PlatformHave.h:
Add feature flag for TASK_IDENTITY_TOKEN as this API was only
introduced very recently.
- wtf/MachSendRight.h:
- wtf/cocoa/MachSendRight.cpp:
(WTF::MachSendRight::MachSendRight):
(WTF::MachSendRight::operator=):
Add a copy constructor to MachSendRight for convenience.
- 4:19 PM Changeset in webkit [273287] by
-
- 4 edits in trunk
Re-enable RangeResponseGenerator.
https://bugs.webkit.org/show_bug.cgi?id=221072
<rdar://problem/74551753>
Source/WebCore:
- platform/network/cocoa/RangeResponseGenerator.mm:
(WebCore::RangeResponseGenerator::willSynthesizeRangeResponses):
Tools:
r273263 was a false alarm. Reverting that revision.
- TestWebKitAPI/Tests/WebKitCocoa/MediaLoading.mm:
(TestWebKitAPI::TEST):
- 4:03 PM Changeset in webkit [273286] by
-
- 5 edits in trunk/Source/WebKit
[Cocoa] Send sandbox extensions for Network Extension services in load parameters
https://bugs.webkit.org/show_bug.cgi?id=222284
<rdar://problem/74402532>
Reviewed by Brent Fulgham.
Currently, sandbox extensions for Network Extension services are sent from the UI process to the WebContent process when the
policy decision is made, but that is not soon enough in all cases. They should also be sent as part of the load parameters.
- Shared/Cocoa/LoadParametersCocoa.mm:
(WebKit::LoadParameters::platformEncode const):
(WebKit::LoadParameters::platformDecode):
- Shared/LoadParameters.h:
- UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::addPlatformLoadParameters):
- WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::WebPage::platformDidReceiveLoadParameters):
- 3:49 PM Changeset in webkit [273285] by
-
- 1 copy in tags/Safari-612.1.4.2
Tag Safari-612.1.4.2.
- 3:37 PM Changeset in webkit [273284] by
-
- 8 edits in branches/safari-612.1.4-branch/Source
Versioning.
WebKit-7612.1.4.2
- 3:19 PM Changeset in webkit [273283] by
-
- 5 edits in trunk
[Cocoa] Add WKWebView session restoration API
https://bugs.webkit.org/show_bug.cgi?id=220958
<rdar://70956146>
Reviewed by Geoffrey Garen.
Source/WebKit:
Add WKWebView session restoration API so that applications can easily retrieve
view state (such as back-forward list, scroll position, form data...) and
restore it on a WKWebView later on.
- UIProcess/API/Cocoa/WKWebView.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView interactionState]):
(-[WKWebView setInteractionState:]):
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKit/WKBackForwardList.mm:
(TEST):
- 3:07 PM Changeset in webkit [273282] by
-
- 2 edits in trunk/Source/WebCore
Add a PlatformXR::Device subclass for Cocoa
https://bugs.webkit.org/show_bug.cgi?id=222215
Patch by Ada Chan <ada.chan@apple.com> on 2021-02-22
Reviewed by Dean Jackson.
- platform/xr/cocoa/PlatformXRCocoa.h:
- 2:27 PM Changeset in webkit [273281] by
-
- 5 edits2 adds in branches/safari-611.1.18.0-branch
Cherry-pick r273003. rdar://problem/74608107
Animated keyframe style needs to go through full style adjuster
https://bugs.webkit.org/show_bug.cgi?id=222036
rdar://72421747
Reviewed by Zalan Bujtas.
Source/WebCore:
We can create unadjusted styles via keyframe animations and those may cause problems in rendering.
Test: fast/animation/animation-position-crash.html
- style/StyleAdjuster.cpp: (WebCore::Style::Adjuster::adjustAnimatedStyle):
Make this a member function and invoke Adjuster::adjust.
Simplify the z-index adjustment since it is mostly handled by adjust.
- style/StyleAdjuster.h:
- style/StyleTreeResolver.cpp:
Always use style adjuster for keyframe animation.
(WebCore::Style::TreeResolver::createAnimatedElementUpdate):
LayoutTests:
- fast/animation/animation-position-crash-expected.html: Added.
- fast/animation/animation-position-crash.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273003 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:24 PM Changeset in webkit [273280] by
-
- 2 edits in branches/safari-611.1.18.1-branch/Source/WebKit
Cherry-pick r273271. rdar://problem/74611278
[macOS] Crash under AuxiliaryProcess::initializeSandbox
https://bugs.webkit.org/show_bug.cgi?id=222233
<rdar://problem/74261611>
Reviewed by Brent Fulgham.
When a WebKit client provides a user directory suffix in the process initialization parameters, confstr with the new
user suffix applied will fail to create the full directory path if it does not exist, and return an empty result.
This will lead to empty paths in the sandbox parameters, which will cause the sandbox to fail to compile, which will
eventually crash the WebKit process. This patch addresses this by making sure the new user directory suffix does not
represent a path, since confstr is not able to handle user directory suffixes containing paths that do not exist.
Additionally, this patch reverts r271417, which was the first attempt at fixing this crash, but was unsuccessful in
doing so.
- Shared/mac/AuxiliaryProcessMac.mm: (WebKit::initializeSandboxParameters): (WebKit::AuxiliaryProcess::initializeSandbox):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273271 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:24 PM Changeset in webkit [273279] by
-
- 5 edits2 adds in branches/safari-611.1.18.1-branch
Cherry-pick r273003. rdar://problem/74608118
Animated keyframe style needs to go through full style adjuster
https://bugs.webkit.org/show_bug.cgi?id=222036
rdar://72421747
Reviewed by Zalan Bujtas.
Source/WebCore:
We can create unadjusted styles via keyframe animations and those may cause problems in rendering.
Test: fast/animation/animation-position-crash.html
- style/StyleAdjuster.cpp: (WebCore::Style::Adjuster::adjustAnimatedStyle):
Make this a member function and invoke Adjuster::adjust.
Simplify the z-index adjustment since it is mostly handled by adjust.
- style/StyleAdjuster.h:
- style/StyleTreeResolver.cpp:
Always use style adjuster for keyframe animation.
(WebCore::Style::TreeResolver::createAnimatedElementUpdate):
LayoutTests:
- fast/animation/animation-position-crash-expected.html: Added.
- fast/animation/animation-position-crash.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273003 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:19 PM Changeset in webkit [273278] by
-
- 8 edits in branches/safari-611.1.18.1-branch/Source
Versioning.
WebKit-7611.1.18.1.1
- 2:08 PM Changeset in webkit [273277] by
-
- 8 edits in branches/safari-611.1.18.0-branch/Source
Versioning.
WebKit-7611.1.18.0.1
- 1:59 PM Changeset in webkit [273276] by
-
- 63 edits in trunk
Use adoptNS() as soon as we [[ObjcClass alloc] init] to avoid leaks
https://bugs.webkit.org/show_bug.cgi?id=222237
Reviewed by Darin Adler.
Source/WebCore:
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper ALLOW_DEPRECATED_IMPLEMENTATIONS_END]):
- bridge/testbindings.mm:
(main):
- platform/cocoa/VideoFullscreenModel.h:
(WebCore::VideoFullscreenModel::createVideoFullscreenViewController):
- platform/graphics/cocoa/WebActionDisablingCALayerDelegate.mm:
(+[WebActionDisablingCALayerDelegate shared]):
- platform/ios/WebBackgroundTaskController.mm:
(+[WebBackgroundTaskController sharedController]):
- platform/ios/WebItemProviderPasteboard.mm:
(+[WebItemProviderPasteboard sharedInstance]):
- platform/ios/wak/WebCoreThread.mm:
(sAsyncDelegates):
(WebThreadCallDelegateAsync):
(WebRunLoopUnlockInternal):
(StartWebThread):
- platform/mac/ThemeMac.mm:
(WebCore::buttonCell):
(WebCore::button):
- platform/mac/WebNSAttributedStringExtras.mm:
(WebCore::attributedStringByStrippingAttachmentCharacters):
- platform/network/mac/ResourceHandleMac.mm:
(WebCore::operationQueueForAsyncClients):
Source/WebKit:
- UIProcess/API/Cocoa/NSAttributedString.mm:
(globalConfiguration):
(+[_WKAttributedStringWebViewCache configuration]):
(+[_WKAttributedStringWebViewCache clearConfiguration]):
- UIProcess/API/Cocoa/WKNSURLAuthenticationChallenge.mm:
(-[WKNSURLAuthenticationChallenge _web_createTarget]):
- UIProcess/API/Cocoa/WKProcessPool.mm:
(sharedProcessPool):
(-[WKProcessPool encodeWithCoder:]):
(+[WKProcessPool _sharedProcessPool]):
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView loadSimulatedRequest:withResponseHTMLString:]):
- UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(+[WKWebsiteDataStore allWebsiteDataTypes]):
- UIProcess/Cocoa/PreferenceObserver.mm:
(+[WKPreferenceObserver sharedInstance]):
- UIProcess/Cocoa/VideoFullscreenManagerProxy.h:
- UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:
(WebKit::VideoFullscreenModelContext::createVideoFullscreenViewController):
- UIProcess/Cocoa/WebInspectorPreferenceObserver.mm:
(+[WKWebInspectorPreferenceObserver sharedInstance]):
- UIProcess/WebAuthentication/Cocoa/AuthenticatorPresenterCoordinator.mm:
(WebKit::AuthenticatorPresenterCoordinator::AuthenticatorPresenterCoordinator):
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView supportedPasteboardTypesForCurrentSelection]):
(-[WKContentView assignLegacyDataForContextMenuInteraction]):
- UIProcess/ios/WKMouseDeviceObserver.mm:
(+[WKMouseDeviceObserver sharedInstance]):
- UIProcess/ios/WKStylusDeviceObserver.mm:
(+[WKStylusDeviceObserver sharedInstance]):
- UIProcess/mac/WKTextInputWindowController.mm:
(+[WKTextInputWindowController sharedTextInputWindowController]):
- UIProcess/mac/WebColorPickerMac.mm:
(+[WKPopoverColorWell _colorPopoverCreateIfNecessary:]):
- UIProcess/mac/WebDataListSuggestionsDropdownMac.mm:
(-[WKDataListSuggestionWindow initWithContentRect:styleMask:backing:defer:]):
- WebProcess/InjectedBundle/API/mac/WKDOMInternals.mm:
(WebKit::initWithImpl):
(WebKit::toWKDOMType):
- WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:
(WebKit::InjectedBundle::initialize):
Source/WebKitLegacy/ios:
- Misc/WebGeolocationProviderIOS.mm:
(+[WebGeolocationProviderIOS sharedGeolocationProvider]):
Source/WebKitLegacy/mac:
- DefaultDelegates/WebDefaultUIDelegate.mm:
(+[WebDefaultUIDelegate sharedUIDelegate]):
- History/WebHistoryItem.mm:
(-[WebHistoryItem copyWithZone:]):
- Misc/WebIconDatabase.mm:
(+[WebIconDatabase sharedIconDatabase]):
- Misc/WebNSPasteboardExtras.mm:
(_writableTypesForImageWithoutArchive):
- Plugins/WebBaseNetscapePluginView.mm:
(-[WebBaseNetscapePluginView cacheSnapshot]):
- Plugins/WebNetscapePluginStream.mm:
(WebNetscapePluginStream::deliverData):
- Plugins/WebPluginController.mm:
(pluginViews):
(-[WebPluginController plugInViewWithArguments:fromPluginPackage:]):
(+[WebPluginController addPlugInView:]):
(+[WebPluginController isPlugInView:]):
(-[WebPluginController destroyPlugin:]):
(-[WebPluginController destroyAllPlugins]):
- Plugins/WebPluginDatabase.mm:
(sharedDatabase):
(+[WebPluginDatabase sharedDatabase]):
(+[WebPluginDatabase sharedDatabaseIfExists]):
(+[WebPluginDatabase closeSharedDatabase]):
(-[WebPluginDatabase refresh]):
(-[WebPluginDatabase _plugInPaths]):
(-[WebPluginDatabase _removePlugin:]):
- Scripts/PreferencesTemplates/WebPreferencesExperimentalFeatures.mm.erb:
- Scripts/PreferencesTemplates/WebPreferencesInternalFeatures.mm.erb:
- WebView/WebDataSource.mm:
(+[WebDataSource _repTypesAllowImageTypeOmission:]):
- WebView/WebFrameView.mm:
(+[WebFrameView _viewTypesAllowImageTypeOmission:]):
- WebView/WebFullScreenController.mm:
(createBackgroundFullscreenWindow):
- WebView/WebHTMLRepresentation.mm:
(regExpForLabels):
- WebView/WebHTMLView.mm:
(+[WebHTMLView _insertablePasteboardTypes]):
- WebView/WebPreferences.mm:
(standardPreferences):
(webPreferencesInstances):
(+[WebPreferences standardPreferences]):
(+[WebPreferences _getInstanceForIdentifier:]):
(+[WebPreferences _setInstance:forIdentifier:]):
(+[WebPreferences _checkLastReferenceForIdentifier:]):
- WebView/WebView.mm:
(schemesWithRepresentationsSet):
(outlookQuirksUserScriptContents):
(-[WebView _injectOutlookQuirksScript]):
(laBanquePostaleQuirksScript):
(-[WebView _injectLaBanquePostaleQuirks]):
(+[WebView _registerViewClass:representationClass:forURLScheme:]):
(+[WebView _representationExistsForURLScheme:]):
(+[WebView automaticallyNotifiesObserversForKey:]):
(-[WebView _declaredKeys]):
(-[WebView addPluginInstanceView:]):
(-[WebView _enterFullScreenForElement:]):
- WebView/WebViewData.h:
Tools:
- TestRunnerShared/mac/NSPasteboardAdditions.mm:
(+[NSPasteboard _modernPasteboardType:]):
- TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:
- TestWebKitAPI/Tests/WebKitLegacy/mac/DeallocWebViewInEventListener.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/mac/CancelLoadFromResourceLoadDelegate.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/mac/CloseNewWindowInNavigationPolicyDelegate.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/mac/MemoryCacheDisableWithinResourceLoadDelegate.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/mac/MemoryCachePruneWithinResourceLoadDelegate.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/mac/StopLoadingFromDidReceiveResponse.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/mac/WindowlessWebViewWithMedia.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/ios/mainIOS.mm:
(main):
- TestWebKitAPI/mac/mainMac.mm:
(main):
- 1:39 PM Changeset in webkit [273275] by
-
- 13 edits in trunk/Source/WebCore
Clean up ScrollableArea and ScrollAnimator API and convert less between offsets and positions
https://bugs.webkit.org/show_bug.cgi?id=222111
Reviewed by Simon Fraser.
Clean up the APIs exposed by ScrollableArea and ScrollAnimator to make them more
consistent. With this change it should be a bit easier to tell if a particular
method will trigger an animation or not. In addition, we accept positions (as
opposed to offsets) everywhere, which allows us to reduce the number of
offset <-> position conversions.
Finally, this change is also interesting for scroll snap, because it will
make it easier to use a native animation on MacOS to use for snapping after
scrollbar thumb dragging.
No new tests. This should not change behavior.
- page/FrameView.cpp:
(WebCore::FrameView::setScrollPosition): Use new ScrollableArea APIs that
accept positions.
(WebCore::FrameView::scrollToPositionWithAnimation): Added this version
of the method that uses positions.
(WebCore::FrameView::scrollToOffsetWithAnimation): Deleted.
- page/FrameView.h: Update method declaration.
- platform/ScrollAnimator.cpp:
(WebCore::ScrollAnimator::scroll): Simplified a little bit the code that handles
scroll snapping here. Unified scroll snap and non-scroll snap compilation paths.
(WebCore::ScrollAnimator::scrollToOffsetWithoutAnimation): This method
now converts to a position and then calls scrollToPositionWithoutAnimation.
(WebCore::ScrollAnimator::scrollToPositionWithoutAnimation): Split this out
from scrollToOffsetWithoutAnimation.
(WebCore::ScrollAnimator::scrollToOffsetWithAnimation): This method now
converts to a position and calls scrollToPositionWithAnimation.
(WebCore::ScrollAnimator::scrollToPositionWithAnimation): Split this
out from scrollToOffsetWithAnimation.
(WebCore::ScrollAnimator::handleWheelEvent): Call scrollToPositionWithAnimation
instead of using the scroll(...) method.
(WebCore::ScrollAnimator::notifyPositionChanged): Eliminate a conversion here.
(WebCore::ScrollAnimator::scrollWithoutAnimation): Deleted.
(WebCore::ScrollAnimator::scrollToOffset): Deleted.
- platform/ScrollAnimator.h: Update method list.
- platform/ScrollView.cpp:
(WebCore::ScrollView::updateScrollbars): Eliminate a conversion here.
- platform/ScrollableArea.cpp:
Removed scrollToOffsetWithAnimation and added two new methods scrollToPositionWithAnimation
and scrollToPositionWithoutAnimation. scrollToOffsetWithoutAnimation is still used
in quite a few places, so we maintain this.
(WebCore::ScrollableArea::setScrollOffsetFromInternals): Use setScrollPositionFromAnimation now.
(WebCore::ScrollableArea::setScrollPositionFromAnimation): Renamed from setScrollOffsetFromAnimation
and eliminated a mandatory cnoversion.
(WebCore::ScrollableArea::scrollToOffsetWithAnimation): Deleted.
(WebCore::ScrollableArea::setScrollOffsetFromAnimation): Deleted.
- platform/ScrollableArea.h: Update method declarations.
- platform/mac/ScrollAnimatorMac.h: Ditto.
- platform/mac/ScrollAnimatorMac.mm:
(WebCore::ScrollAnimatorMac::scroll): Handle calling into scrollToPositionWithoutAnimation
and scrollToPositionWithAnimation ourselves now that we have this API. This simplifies
program flow a bit.
(WebCore::ScrollAnimatorMac::scrollToPositionWithAnimation):
(WebCore::ScrollAnimatorMac::scrollToPositionWithoutAnimation): Expose these two new
methods which are part of the base class API now.
(WebCore::ScrollAnimatorMac::immediateScrollToPositionForScrollAnimation): Use
ScrollAnimator::scrollToPositionWithoutAnimation because it was the same as
immediateScrollToPosition.
(WebCore::ScrollAnimatorMac::scrollToOffsetWithoutAnimation): Deleted.
(WebCore::ScrollAnimatorMac::immediateScrollToPosition): Deleted. No longer used.
- rendering/RenderLayerScrollableArea.cpp:
(WebCore::RenderLayerScrollableArea::scrollToOffset): Unconditionally convert to a position
here.
(WebCore::RenderLayerScrollableArea::updateScrollInfoAfterLayout): Use ScrollableArea::scrollToPositionWithoutAnimation
because it eliminates one conversion between units.
- 1:38 PM Changeset in webkit [273274] by
-
- 1 copy in branches/safari-611.1.18.1-branch
New branch.
- 1:38 PM Changeset in webkit [273273] by
-
- 1 copy in branches/safari-611.1.18.0-branch
New branch.
- 1:09 PM Changeset in webkit [273272] by
-
- 2 edits in trunk/Source/WebCore
Video elements do not work as sources for TexImage2D calls in GPU Process
https://bugs.webkit.org/show_bug.cgi?id=218184
Reviewed by Eric Carlson.
A follow-up patch of r273213 to fix build failures on the windows port.
- platform/graphics/MediaPlayer.h:
- 1:08 PM Changeset in webkit [273271] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Crash under AuxiliaryProcess::initializeSandbox
https://bugs.webkit.org/show_bug.cgi?id=222233
<rdar://problem/74261611>
Reviewed by Brent Fulgham.
When a WebKit client provides a user directory suffix in the process initialization parameters, confstr with the new
user suffix applied will fail to create the full directory path if it does not exist, and return an empty result.
This will lead to empty paths in the sandbox parameters, which will cause the sandbox to fail to compile, which will
eventually crash the WebKit process. This patch addresses this by making sure the new user directory suffix does not
represent a path, since confstr is not able to handle user directory suffixes containing paths that do not exist.
Additionally, this patch reverts r271417, which was the first attempt at fixing this crash, but was unsuccessful in
doing so.
- Shared/mac/AuxiliaryProcessMac.mm:
(WebKit::initializeSandboxParameters):
(WebKit::AuxiliaryProcess::initializeSandbox):
- 12:58 PM Changeset in webkit [273270] by
-
- 4 edits in trunk/Source
[macOS] Disabling relaunch on login for the WebContent process is racy
https://bugs.webkit.org/show_bug.cgi?id=222074
<rdar://problem/74230216>
Reviewed by Geoffrey Garen.
Source/WebCore/PAL:
Declare Launch Services key to disable relaunch on login.
- pal/spi/cocoa/LaunchServicesSPI.h:
Source/WebKit:
When NSApplication is being intialized, the method -[NSApplication disableRelaunchOnLogin] is dispatched on a non-main thread, which is in a race
with the revocation of the Launch Services sandbox extension. This patch addresses this by setting this information synchronously with Launch
Services while the sandbox extension is being held. Additionally, accessibility related code under WebPage::platformInitialize may reach out to
the Launch Services daemon once during the lifetime of the WebContent process. Make sure that call succeeds by making a synchronous call while
a sandbox extension to the Launch Services daemon is being held.
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
- 12:15 PM Changeset in webkit [273269] by
-
- 2 edits in trunk/Source/JavaScriptCore
Remove unused internal fields from AbstractModuleLoader
https://bugs.webkit.org/show_bug.cgi?id=222256
Reviewed by Saam Barati.
- runtime/AbstractModuleRecord.h:
(JSC::AbstractModuleRecord::initialValues):
- 12:12 PM Changeset in webkit [273268] by
-
- 2 edits in trunk/Tools
Run Python tests for Source/WebKit/Scripts changes in EWS
https://bugs.webkit.org/show_bug.cgi?id=222276
Patch by Sam Sneddon <Sam Sneddon> on 2021-02-22
Reviewed by Jonathan Bedard.
- CISupport/ews-build/steps.py:
- 11:58 AM Changeset in webkit [273267] by
-
- 4 edits in trunk/Tools
[git-webkit] Failure to retrieve commit in EWS
https://bugs.webkit.org/show_bug.cgi?id=222050
<rdar://problem/74439957>
Reviewed by Aakash Jain.
- CISupport/ews-build/loadConfig.py:
(loadBuilderConfig): Load GitHub credentials.
- CISupport/ews-build/steps.py:
(ShowIdentifier.start): Pass GitHub credentials to worker.
- CISupport/ews-build/steps_unittest.py:
- 11:55 AM Changeset in webkit [273266] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION(r273204): webkitpy tests don't run on Py3
https://bugs.webkit.org/show_bug.cgi?id=222274
Patch by Sam Sneddon <Sam Sneddon> on 2021-02-22
Reviewed by Jonathan Bedard.
This doesn't make them pass, but it does get them back to running to completion.
- Scripts/webkit/messages.py: avoid using a relative import
- 11:44 AM Changeset in webkit [273265] by
-
- 2 edits in trunk/Source/WebKit
UserMediaPermissionRequestManagerProxy may be released while computing capture device list
https://bugs.webkit.org/show_bug.cgi?id=222236
<rdar://74480265>
Reviewed by Youenn Fablet.
- UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
(WebKit::UserMediaPermissionRequestManagerProxy::computeFilteredDeviceList): Return early
ifweakThis
is NULL.
- 11:12 AM Changeset in webkit [273264] by
-
- 5 edits1 add in trunk
REGRESSION (r266695): twitch.tv: when in fullscreen, WebKit continually does 350ms layouts. Firefox and Chrome do not
https://bugs.webkit.org/show_bug.cgi?id=222202
<rdar://problem/74537782>
Reviewed by Simon Fraser.
PerformanceTests:
New performance test for nested column flexboxes with percentage heights.
- Layout/nested-column-flexboxes-relative-height.html: Added.
Source/WebCore:
The problem was that we were doing the initial layout for the children of the flex container twice in those cases where
the child inline axis was not the main axis (for example with column flex containers in horizontal writing modes).
Refactored the code (specially the way we clear overriding sizes) so that we only do it once. This saves tons of layouts
in pages with nested column flexboxes with relative heights.
No new tests as there is no change in functionality, we're removing duplicate extra layouts. We're however adding a new
performance test for column flexboxes with percentage heights. With this patch we go from 3.5 layout/s to 145 layout/s
which is ~4000% better.
Inspired by Blink's crrev.com/c/1614058 by <cbiesinger@chromium.org>.
- rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::computeInnerFlexBaseSizeForChild): Do not unconditionally clear overriding sizes. Also removed
relayoutChildren which is now unused. Do not layout the item, that should have been done in
computeInnerFlexBaseSizeForChild() before. Added ASSERTs to verify that child's intrinsic main size was cached as
a consequence of the previous layout.
(WebCore::RenderFlexibleBox::constructFlexItem): Do not pass relayoutChildren to computeInnerFlexBaseSizeForChild. Also no
need to update it after laying out the child.
- rendering/RenderFlexibleBox.h:
- 10:56 AM Changeset in webkit [273263] by
-
- 4 edits in trunk
Disable RangeResponseGenerator.
https://bugs.webkit.org/show_bug.cgi?id=221072
<rdar://problem/74551753>
Source/WebCore:
- platform/network/cocoa/RangeResponseGenerator.mm:
(WebCore::RangeResponseGenerator::willSynthesizeRangeResponses):
Tools:
It might be causing issues. Disabling to speculatively fix the radar.
- TestWebKitAPI/Tests/WebKitCocoa/MediaLoading.mm:
(TestWebKitAPI::TEST):
- 10:46 AM Changeset in webkit [273262] by
-
- 2 edits in trunk/Source/WebCore
[LFC][Integration] Respect hasLineIfEmpty
https://bugs.webkit.org/show_bug.cgi?id=222269
Reviewed by Zalan Bujtas.
In certain editing cases a block is computed to have height of a line even if it has no content.
This fixes editing/execCommand/extracted_style_assert.html
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::layoutModernLines):
- 10:40 AM Changeset in webkit [273261] by
-
- 6 edits in trunk/LayoutTests/imported/w3c
Implement the Top-level await proposal
https://bugs.webkit.org/show_bug.cgi?id=202484
Unreviewed test gardening.
- web-platform-tests/html/semantics/scripting-1/the-script-element/module/evaluation-order-4-tla-expected.txt:
- web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/module-tla-delayed-expected.txt:
- web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/module-tla-immediate-promise-expected.txt:
- web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/module-tla-import-expected.txt:
- web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/module-tla-promise-expected.txt:
- 9:55 AM Changeset in webkit [273260] by
-
- 2 edits in branches/safari-611-branch/Source/WebKit
Cherry-pick r272355. rdar://problem/74032694
ASSERTION FAILED: !size.isEmpty() under platformInitializeWebProcess
- WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess): Follow-up to r272335; don't call IOSurface::setMaximumSize if the UI process did not send us a size. Caused all Web Content processes to assert in debug on launch.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272355 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:55 AM Changeset in webkit [273259] by
-
- 2 edits in branches/safari-611-branch/Source/JavaScriptCore
Cherry-pick r271767. rdar://problem/74409412
Obj-C API should do correct type checks when using a 32-bit address space
https://bugs.webkit.org/show_bug.cgi?id=220880
<rdar://72370334>
Reviewed by Tadeu Zagallo.
- API/JSValue.mm: (-[JSValue isNull]): (-[JSValue isBoolean]): (-[JSValue isNumber]): (-[JSValue isString]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271767 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:55 AM Changeset in webkit [273258] by
-
- 2 edits in branches/safari-611-branch/Source/JavaScriptCore
Cherry-pick r270719. rdar://problem/74409412
REGRESSION (r270665): testapi failing on JSC bots
https://bugs.webkit.org/show_bug.cgi?id=219787
Reviewed by Saam Barati.
- API/JSValueRef.cpp: (JSValueIsString): (JSValueIsObject): (JSValueIsSymbol):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@270719 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:55 AM Changeset in webkit [273257] by
-
- 2 edits in branches/safari-611-branch/Source/JavaScriptCore
Cherry-pick r270700. rdar://problem/74409412
REGRESSION (r270665): testapi failing on CLoop bot
https://bugs.webkit.org/show_bug.cgi?id=219787
Reviewed by Mark Lam.
The API has to special case the empty JSValue as null.
- API/JSValueRef.cpp: (JSValueGetType): (JSValueIsNull):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@270700 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:55 AM Changeset in webkit [273256] by
-
- 6 edits in branches/safari-611-branch
Cherry-pick r270665. rdar://problem/74409412
Removing unnecessary locking from JSValue API functions
https://bugs.webkit.org/show_bug.cgi?id=219723
Reviewed by Filip Pizlo.
PerformanceTests:
Print an error message when benchmarks fail to run and add option to change
the configuration used to build the benchmarks.
- APIBench/api-bench:
Source/JavaScriptCore:
Remove the unnecessary locking from the JSValueIs* and JSValueMake* API functions
that only work on primitives. Also remove the unnecessary method dispatching and
call from the -[JSValue is*] methods.
This improves the APIBench score by another ~8% since these are such common operations.
Here are the results: (Baseline includes https://bugs.webkit.org/show_bug.cgi?id=219663)
CURRENT_API: Baseline Change
----------------------------------------
RichardsMostlyC: 74ms 60ms
RichardsMostlyObjC: 304ms 300ms
RichardsMostlySwift: 305ms 293ms
RichardsSomeC: 97ms 77ms
RichardsSomeObjC: 158ms 159ms
RichardsSomeSwift: 202ms 198ms
UPCOMING_API: Baseline Change
----------------------------------------
RichardsMostlyC: 23ms 19ms
RichardsMostlyObjC: 282ms 282ms
RichardsMostlySwift: 280ms 282ms
RichardsSomeC: 95ms 76ms
RichardsSomeObjC: 157ms 156ms
RichardsSomeSwift: 202ms 197ms
----------------------------------------
Score: 33.6404 36.4006
- API/APICast.h: (toRef):
- API/JSValue.mm: (-[JSValue isUndefined]): (-[JSValue isNull]): (-[JSValue isBoolean]): (-[JSValue isNumber]): (-[JSValue isString]): (-[JSValue isObject]): (-[JSValue isSymbol]):
- API/JSValueRef.cpp: (JSValueGetType): (JSValueIsUndefined): (JSValueIsNull): (JSValueIsBoolean): (JSValueIsNumber): (JSValueIsString): (JSValueIsObject): (JSValueIsSymbol): (JSValueMakeUndefined): (JSValueMakeNull): (JSValueMakeBoolean): (JSValueMakeNumber):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@270665 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:55 AM Changeset in webkit [273255] by
-
- 7 edits in branches/safari-611-branch
Cherry-pick r272626. rdar://problem/74410222
Descendants of row and column headers should expose the aria-sort attribute.
https://bugs.webkit.org/show_bug.cgi?id=221590
Reviewed by Chris Fleizach.
Source/WebCore:
Tests:
accessibility/aria-sort.html
accessibility/ios-simulator/aria-sort-ios.html
Walk up the accessibility hierarchy to check for an inherited aria-sort
attribute present in a row or column header ancestor.
- accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::sortDirection const):
LayoutTests:
Expanded this test to include the case where the header contains a child
element that must also expose the aria-sort attribute inherited from its
parent.
- accessibility/aria-sort-expected.txt:
- accessibility/aria-sort.html:
- accessibility/ios-simulator/aria-sort-ios-expected.txt:
- accessibility/ios-simulator/aria-sort-ios.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272626 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:55 AM Changeset in webkit [273254] by
-
- 28 edits in branches/safari-611-branch
Cherry-pick r272165. rdar://problem/74032536
Use user media permission prompt for speech recognition
https://bugs.webkit.org/show_bug.cgi?id=221082
rdar://problem/73372499
Patch by Sihui Liu <sihui_liu@appe.com> on 2021-02-01
Reviewed by Youenn Fablet.
Source/WebCore:
Add frame identifier to SpeechRecognitionRequest as it is needed for checking user media permission.
Updated existing tests for changed behavior.
- Modules/speech/SpeechRecognition.cpp: (WebCore::SpeechRecognition::startRecognition):
- Modules/speech/SpeechRecognitionConnection.h:
- Modules/speech/SpeechRecognitionRequest.h: (WebCore::SpeechRecognitionRequest::frameIdentifier const):
- Modules/speech/SpeechRecognitionRequestInfo.h: (WebCore::SpeechRecognitionRequestInfo::encode const): (WebCore::SpeechRecognitionRequestInfo::decode):
- page/DummySpeechRecognitionProvider.h:
Source/WebKit:
Make SpeechRecognitionPermissionManager ask UserMediaPermissionRequestManagerProxy for user permission on
microphone.
- UIProcess/SpeechRecognitionPermissionManager.cpp: (WebKit::SpeechRecognitionPermissionManager::request): (WebKit::SpeechRecognitionPermissionManager::startProcessingRequest): (WebKit::SpeechRecognitionPermissionManager::requestUserPermission):
- UIProcess/SpeechRecognitionPermissionManager.h:
- UIProcess/SpeechRecognitionPermissionRequest.h: (WebKit::SpeechRecognitionPermissionRequest::create): (WebKit::SpeechRecognitionPermissionRequest::frameIdentifier const): (WebKit::SpeechRecognitionPermissionRequest::SpeechRecognitionPermissionRequest):
- UIProcess/SpeechRecognitionServer.cpp: (WebKit::SpeechRecognitionServer::start): (WebKit::SpeechRecognitionServer::requestPermissionForRequest):
- UIProcess/SpeechRecognitionServer.h:
- UIProcess/SpeechRecognitionServer.messages.in:
- UIProcess/UserMediaPermissionRequestManagerProxy.cpp: (WebKit::UserMediaPermissionRequestManagerProxy::denyRequest): (WebKit::UserMediaPermissionRequestManagerProxy::grantRequest): (WebKit::UserMediaPermissionRequestManagerProxy::checkUserMediaPermissionForSpeechRecognition):
- UIProcess/UserMediaPermissionRequestManagerProxy.h:
- UIProcess/UserMediaPermissionRequestProxy.cpp: (WebKit::UserMediaPermissionRequestProxy::UserMediaPermissionRequestProxy):
- UIProcess/UserMediaPermissionRequestProxy.h: (WebKit::UserMediaPermissionRequestProxy::create): (WebKit::UserMediaPermissionRequestProxy::decisionCompletionHandler):
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::requestSpeechRecognitionPermission): (WebKit::WebPageProxy::requestUserMediaPermissionForSpeechRecognition):
- UIProcess/WebPageProxy.h:
- UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::createSpeechRecognitionServer):
- WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.cpp: (WebKit::WebSpeechRecognitionConnection::start):
- WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.h:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/SpeechRecognition.mm: (-[SpeechRecognitionUIDelegate _webView:requestMediaCaptureAuthorization:decisionHandler:]):
LayoutTests:
- fast/speechrecognition/permission-error.html:
- fast/speechrecognition/start-recognition-in-removed-iframe-expected.txt:
- fast/speechrecognition/start-recognition-in-removed-iframe.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272165 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:54 AM Changeset in webkit [273253] by
-
- 12 edits in branches/safari-611-branch
Cherry-pick r271636. rdar://problem/74452635
Update media state for active speech recognition as it uses audio capture
https://bugs.webkit.org/show_bug.cgi?id=220667
Patch by Sihui Liu <sihui_liu@appe.com> on 2021-01-19
Reviewed by Youenn Fablet.
Source/WebCore:
To make sure the media capture state is correctly sent to client.
API test: WebKit2.SpeechRecognitionMediaCaptureStateChange
- Modules/speech/SpeechRecognition.cpp: (WebCore::SpeechRecognition::startRecognition): (WebCore::SpeechRecognition::stop): (WebCore::SpeechRecognition::didStartCapturingAudio): (WebCore::SpeechRecognition::didStopCapturingAudio):
- Modules/speech/SpeechRecognition.h:
- Modules/speech/SpeechRecognitionConnection.h:
- dom/Document.cpp: (WebCore::Document::setActiveSpeechRecognition): (WebCore::Document::updateIsPlayingMedia):
- dom/Document.h:
- page/DummySpeechRecognitionProvider.h:
Source/WebKit:
- WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.cpp: (WebKit::WebSpeechRecognitionConnection::unregisterClient):
- WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.h:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/SpeechRecognition.mm: (-[SpeechRecognitionUIDelegate _webView:mediaCaptureStateDidChange:]): (TestWebKitAPI::TEST): (-[SpeechRecognitionPermissionUIDelegate _webView:requestSpeechRecognitionPermissionForOrigin:decisionHandler:]): Deleted. (-[SpeechRecognitionPermissionUIDelegate _webView:requestMediaCaptureAuthorization:decisionHandler:]): Deleted. (-[SpeechRecognitionPermissionUIDelegate _webView:checkUserMediaPermissionForURL:mainFrameURL:frameIdentifier:decisionHandler:]): Deleted. (-[SpeechRecognitionPermissionUIDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]): Deleted.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271636 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:54 AM Changeset in webkit [273252] by
-
- 23 edits2 adds in branches/safari-611-branch
Cherry-pick r272490. rdar://problem/74409784
Add support for aria-sort change notifications.
https://bugs.webkit.org/show_bug.cgi?id=221495
Reviewed by Chris Fleizach.
Source/WebCore:
Test: accessibility/aria-sort-changed-notification.html
This patch adds support for aria-sort changes. Some code cleanup by
using the notificationPlatformName helper function.
- accessibility/AXLogger.cpp: (WebCore::operator<<): Logging of the new notification.
- accessibility/AXObjectCache.cpp: Handles the aria-sort change notification. Updates the isolated tree. (WebCore::AXObjectCache::handleAttributeChange): (WebCore::AXObjectCache::updateIsolatedTree):
- accessibility/AXObjectCache.h:
- accessibility/ios/AXObjectCacheIOS.mm: (WebCore::AXObjectCache::notificationPlatformName): Helper to map AXCore notifications to platform notifications. (WebCore::AXObjectCache::postPlatformNotification): Handles the AXSortDirectionChanged notification. Some code cleanup using the notificationPlatformName helper.
- accessibility/ios/WebAccessibilityObjectWrapperIOS.h:
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: (-[WebAccessibilityObjectWrapper postNotification:]): To be overridden by system AX bundles. (-[WebAccessibilityObjectWrapper accessibilitySortDirection]): Only ascending and descending sort directions are relevant for clients.
- accessibility/isolatedtree/AXIsolatedTree.cpp: (WebCore::AXIsolatedTree::updateNodeProperty): Updates the SortDirection property.
- accessibility/mac/AXObjectCacheMac.mm: (WebCore::AXObjectCache::postPlatformNotification): Handles the AXSortDirectionChanged notification.
Tools:
- WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp: (WTR::AccessibilityUIElement::sortDirection const):
- WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
- WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
- WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm: (WTR::AccessibilityUIElement::sortDirection const):
- WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm: (WTR::AccessibilityUIElement::currentStateValue const): (WTR::AccessibilityUIElement::sortDirection const):
LayoutTests:
- accessibility/aria-sort-changed-notification-expected.txt: Added.
- accessibility/aria-sort-changed-notification.html: Added.
- accessibility/aria-sort-expected.txt:
- accessibility/aria-sort.html: Calls sortDirection property on the JS accessible element instead of retrieving the aria-sort attribute. This matches more accurately what an actual client would do. Changed the expected file accordingly.
- accessibility/ios-simulator/aria-sort-ios-expected.txt:
- accessibility/ios-simulator/aria-sort-ios.html: Same as in the Mac test above.
- platform/ios/TestExpectations: Added the new test to be run on the ios-simulator.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272490 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:54 AM Changeset in webkit [273251] by
-
- 14 edits in branches/safari-611-branch
Cherry-pick r271381. rdar://problem/74451875
Make SpeechRecognition permission error more informative
https://bugs.webkit.org/show_bug.cgi?id=220436
Patch by Sihui Liu <sihui_liu@appe.com> on 2021-01-11
Reviewed by Youenn Fablet.
Source/WebKit:
Make SpeechRecognitionPermissionManager complete requests with an optional SpeechRecognitionError instead of a
boolean value.
- UIProcess/SpeechRecognitionPermissionManager.cpp: (WebKit::SpeechRecognitionPermissionManager::~SpeechRecognitionPermissionManager): (WebKit::SpeechRecognitionPermissionManager::request): (WebKit::SpeechRecognitionPermissionManager::startProcessingRequest): (WebKit::SpeechRecognitionPermissionManager::continueProcessingRequest): (WebKit::SpeechRecognitionPermissionManager::completeCurrentRequest): (WebKit::SpeechRecognitionPermissionManager::requestSpeechRecognitionServiceAccess): (WebKit::SpeechRecognitionPermissionManager::requestMicrophoneAccess): (WebKit::SpeechRecognitionPermissionManager::requestUserPermission):
- UIProcess/SpeechRecognitionPermissionManager.h:
- UIProcess/SpeechRecognitionPermissionRequest.h: (WebKit::SpeechRecognitionPermissionRequest::create): (WebKit::SpeechRecognitionPermissionRequest::complete): (WebKit::SpeechRecognitionPermissionRequest::SpeechRecognitionPermissionRequest):
- UIProcess/SpeechRecognitionServer.cpp: (WebKit::SpeechRecognitionServer::requestPermissionForRequest):
- UIProcess/SpeechRecognitionServer.h:
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::requestSpeechRecognitionPermission):
- UIProcess/WebPageProxy.h:
- UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::createSpeechRecognitionServer):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/SpeechRecognition.mm: (TestWebKitAPI::TEST):
LayoutTests:
- fast/speechrecognition/permission-error-expected.txt:
- fast/speechrecognition/permission-error.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271381 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:54 AM Changeset in webkit [273250] by
-
- 22 edits2 adds in branches/safari-611-branch
Cherry-pick r272067. rdar://problem/74444347
Support for aria-current state changed notifications.
https://bugs.webkit.org/show_bug.cgi?id=221074
Reviewed by Chris Fleizach.
Source/WebCore:
Test: accessibility/aria-current-state-changed-notification.html
Added handling of the AXCurrentStateChanged notification for Mac and iOS
ports. This notification is fired when the aria-current attribute
changes.
Handling of this notification is required to properly update the
accessibility properties of the target object and convey them to
assistive technology clients.
- accessibility/AXLogger.cpp: (WebCore::operator<<): Renamed notification anumerand.
- accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::handleAttributeChange):
- accessibility/AXObjectCache.h:
- accessibility/atk/AXObjectCacheAtk.cpp: (WebCore::AXObjectCache::postPlatformNotification):
- accessibility/ios/AXObjectCacheIOS.mm: (WebCore::AXObjectCache::postPlatformNotification):
- accessibility/ios/WebAccessibilityObjectWrapperIOS.h:
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: (-[WebAccessibilityObjectWrapper accessibilityDOMIdentifier]): (-[WebAccessibilityObjectWrapper postCurrentStateChangedNotification]): (-[WebAccessibilityObjectWrapper accessibilityCurrentState]): (-[WebAccessibilityObjectWrapper accessibilityARIACurrentStatus]): Renamed to accessibilityCurrentState.
- accessibility/mac/AXObjectCacheMac.mm: (WebCore::AXObjectCache::postPlatformNotification):
Tools:
Added AccessibilityUIElement::domIdentifier and currentStateValue used
in LayoutTests/accessibility/aria-current-state-changed-notification.html.
- WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp: (WTR::AccessibilityUIElement::domIdentifier const): Non-Cocoa implementation. (WTR::AccessibilityUIElement::currentStateValue const): Non-Cocoa implementation.
- WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
- WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
- WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm: (WTR::AccessibilityUIElement::domIdentifier const): (WTR::AccessibilityUIElement::stringAttributeValue): (WTR::AccessibilityUIElement::currentStateValue const):
- WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm: (WTR::AccessibilityUIElement::domIdentifier const): (WTR::AccessibilityUIElement::currentStateValue const):
LayoutTests:
- accessibility/aria-current-state-changed-notification-expected.txt: Added.
- accessibility/aria-current-state-changed-notification.html: Added.
- accessibility/aria-current.html: Use AccessibilityUIElement::currentStateValue for consistency and to match closely how actual clients will invoke this functionality.
- platform/gtk/TestExpectations:
- platform/ios-wk1/TestExpectations:
- platform/ios/TestExpectations:
- platform/mac-wk1/TestExpectations:
- platform/win/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272067 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:54 AM Changeset in webkit [273249] by
-
- 10 edits in branches/safari-611-branch
Cherry-pick r272755. rdar://problem/74409916
Unreviewed, reverting r270578.
https://bugs.webkit.org/show_bug.cgi?id=221110
Caused incorrect image layout inside a flexbox container.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-013-expected.txt:
- web-platform-tests/css/css-flexbox/image-as-flexitem-size-003-expected.txt:
- web-platform-tests/css/css-flexbox/image-as-flexitem-size-003v-expected.txt:
- web-platform-tests/css/css-flexbox/image-as-flexitem-size-004-expected.txt:
- web-platform-tests/css/css-flexbox/image-as-flexitem-size-004v-expected.txt:
Source/WebCore:
- rendering/RenderFlexibleBox.cpp: (WebCore::RenderFlexibleBox::computeMainSizeFromAspectRatioUsing const): (WebCore::RenderFlexibleBox::childCrossSizeIsDefinite const):
LayoutTests:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272755 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:54 AM Changeset in webkit [273248] by
-
- 5 edits2 adds in branches/safari-611-branch/Source/WebCore
Cherry-pick r272678. rdar://problem/74410058
WebCore::createBusFromInMemoryAudioFile() may crash under ExtAudioFileRead()
https://bugs.webkit.org/show_bug.cgi?id=221642
<rdar://72789841>
Reviewed by Geoffrey Garen.
The crash seems to indicate we are passing an AudioBufferList to ExtAudioFileRead()
that contains a null buffer. It is not obvious how this is happening but I have made
the following changes:
- createAudioBufferList() / destroyAudioListBuffer() implementation is now shared on both macOS and iOS. The implementation now uses fastCalloc and returns null in case of failure to allocate.
- createAudioBufferList() was renamed to tryCreateAudioBufferList() to make it clear it can return null. All call sites now properly deal with tryCreateAudioBufferList() potentially return null
- Add a new validateAudioBufferList() function which makes sure that the AudioBufferList we are about to pass to ExtAudioFileRead() does not contain any null buffer. In case of validation failure, we log an error, generate a simulated crash log and early return gracefully instead of crashing later on.
- Added more assertions to help catch bugs.
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/audio/cocoa/AudioFileReaderCocoa.cpp: Added. (WebCore::tryCreateAudioBufferList): (WebCore::destroyAudioBufferList): (WebCore::validateAudioBufferList):
- platform/audio/cocoa/AudioFileReaderCocoa.h: Added.
- platform/audio/ios/AudioFileReaderIOS.cpp: (WebCore::AudioFileReader::createBus): (WebCore::createAudioBufferList): Deleted. (WebCore::destroyAudioBufferList): Deleted.
- platform/audio/mac/AudioFileReaderMac.cpp: (WebCore::AudioFileReader::createBus): (WebCore::createAudioBufferList): Deleted. (WebCore::destroyAudioBufferList): Deleted.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272678 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:54 AM Changeset in webkit [273247] by
-
- 2 edits in branches/safari-611-branch/Source/WTF
Cherry-pick r272621. rdar://problem/74410131
REGRESSION(r269017): Speedometer2 1% regression
https://bugs.webkit.org/show_bug.cgi?id=221640
Reviewed by Mark Lam.
Reverting r269017, r269478, and r272095 because of Speedometer2 ~1% regression.
- wtf/HashTable.h: (WTF::KeyTraits>::inlineLookup): (WTF::KeyTraits>::lookupForWriting): (WTF::KeyTraits>::fullLookupForWriting): (WTF::KeyTraits>::addUniqueForInitialization): (WTF::KeyTraits>::add):
- wtf/HashTraits.h:
- wtf/MetaAllocator.cpp: (WTF::MetaAllocator::addFreeSpace):
- wtf/MetaAllocator.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272621 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:54 AM Changeset in webkit [273246] by
-
- 8 edits3 adds in branches/safari-611-branch
Cherry-pick r272504. rdar://problem/74409474
NetworkRTCSocketCocoa extractDataMessages should not read too much data
https://bugs.webkit.org/show_bug.cgi?id=221544
Reviewed by Eric Carlson.
Source/WebCore:
Move STUN/TURN message parsing to its own file routine so that we can add API test.
Code is taken from Source/WebKit/NetworkProcess/webrtc/NetworkRTCSocketCocoa.mm.
Fix the test verifying we can actually read a message given its expected length.
Covered by API test.
- Headers.cmake:
- Modules/mediastream/STUNMessageParsing.cpp: Added. (WebCore::isStunMessage): (WebCore::getSTUNOrTURNMessageLengths): (WebCore::extractSTUNOrTURNMessages): (WebCore::extractDataMessages): (WebCore::extractMessages):
- Modules/mediastream/STUNMessageParsing.h: Added.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
Source/WebKit:
- NetworkProcess/webrtc/NetworkRTCSocketCocoa.mm: Make use of WebCore method.
Tools:
- TestWebKitAPI/Tests/WebCore/STUNMessageParsingTest.cpp: Added. (TestWebKitAPI::TEST):
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272504 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:53 AM Changeset in webkit [273245] by
-
- 5 edits18 adds in trunk/LayoutTests
Resync web-platform-tests/css/css-sizing/aspect-ratio from upstream
https://bugs.webkit.org/show_bug.cgi?id=222266
Patch by Rob Buis <rbuis@igalia.com> on 2021-02-22
Reviewed by Manuel Rego Casasnovas.
LayoutTests/imported/w3c:
Resync web-platform-tests/css/css-sizing/aspect-ratio from upstream 9b505f9fc3.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-015-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-015.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-016-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-016.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-017-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-017.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-012-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-012.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-013-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-013.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-014-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-014.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-015-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-015.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-016-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-016.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/parsing/w3c-import.log:
- web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-033-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-033.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/w3c-import.log:
LayoutTests:
Adapt platform test expectations.
- 9:52 AM Changeset in webkit [273244] by
-
- 9 edits2 adds in trunk
Add experimental support for CSS Color 5 color-mix()
https://bugs.webkit.org/show_bug.cgi?id=222258
Reviewed by Antti Koivisto.
Source/WebCore:
Adds initial support for CSS Color 5 color-mix() - https://drafts.csswg.org/css-color-5/#color-mix
This feature is off by default and can be enabled via the CSSColorMixEnabled
experimental preference flag.
This implementation has the same restriction on it that the recently landed
Relative Color Syntax does in that it does support system colors or currentColor
as input, since those can't be resolved at parse time. Ultimately, we will need
to add a late binding version of this for those cases.
Test: fast/css/parsing-color-mix.html
- css/CSSValueKeywords.in:
Add new keywords needed for color-mix().
- css/parser/CSSParserContext.cpp:
(WebCore::operator==):
- css/parser/CSSParserContext.h:
(WebCore::CSSParserContextHash::hash):
Add new setting for color-mix().
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::HueColorAdjuster::fixupAnglesForInterpolation):
(WebCore::CSSPropertyParserHelpers::HueColorAdjuster::HueColorAdjuster):
(WebCore::CSSPropertyParserHelpers::ColorAdjuster::ColorAdjuster):
(WebCore::CSSPropertyParserHelpers::consumeAdjuster):
(WebCore::CSSPropertyParserHelpers::consumeAndUpdateAdjusterAtIndex):
(WebCore::CSSPropertyParserHelpers::consumeAndUpdateAdjuster):
(WebCore::CSSPropertyParserHelpers::consumeAdjusters):
(WebCore::CSSPropertyParserHelpers::consumeMixComponents):
(WebCore::CSSPropertyParserHelpers::normalizeAdjusterValues):
(WebCore::CSSPropertyParserHelpers::remainingAdjustment):
(WebCore::CSSPropertyParserHelpers::mixComponent):
(WebCore::CSSPropertyParserHelpers::mixComponentAtIndex):
(WebCore::CSSPropertyParserHelpers::makeColorTypeByNormalizingComponentsAfterMix):
(WebCore::CSSPropertyParserHelpers::makeColorTypeByNormalizingComponentsAfterMix<HWBA<float>>):
(WebCore::CSSPropertyParserHelpers::mix):
(WebCore::CSSPropertyParserHelpers::parseColorMixFunctionParametersUsingAdjusters):
(WebCore::CSSPropertyParserHelpers::parseColorMixFunctionParameters):
(WebCore::CSSPropertyParserHelpers::parseColorFunction):
The implementation uses a templatized ColorAdjuster struct to declartively map the
various mixing color spaces to their allowed adjusters and what type those adjusters
operate on (either double or the hue specific HueColorAdjuster). For example, for
LCHA we have:
using LCHColorAdjuster = ColorAdjuster<LCHA<float>, CSSValueLightness, double, CSSValueChroma, HueColorAdjuster, CSSValueHue, double, CSSValueAlpha, double>;
which indicates:
- it creates a LCHA<float> and will operate on LCHA<float> values
- its first channel is called "lightness" and is a double
- its second channel is called "chroma" and is a double
- its third channel is called "hue" and is a HueColorAdjuster
- its fourth channel is called "alpha" and is a double
This data is then used by the parsing and mixing functions to implement mixing without
having to write specific implementations for each mixing color space and can be expanded
to more spaces if needed.
- platform/graphics/Color.h:
(WebCore::Color::Color):
Add new overloaded constructor for a generic Optional<ColorType<float>> which parallels the existing
Optional<SRGBA<uint8_t>> allowing callers to convert WTF::nullopt to an invalid Color without checking
for nullopt themselves.
Source/WTF:
- Scripts/Preferences/WebPreferencesExperimental.yaml:
Add new experimental preference for CSS Color 5 color-mix()
which is off by default.
LayoutTests:
- fast/css/parsing-color-mix-expected.txt: Added.
- fast/css/parsing-color-mix.html: Added.
Add parsing and computed style computation tests for color-mix().
- 9:33 AM Changeset in webkit [273243] by
-
- 10 edits2 copies2 moves14 adds4 deletes in trunk/LayoutTests
Update web-platform-tests/css/css-color
https://bugs.webkit.org/show_bug.cgi?id=222235
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Update to latest version.
- resources/import-expectations.json:
- web-platform-tests/css/css-color/background-color-hsl-001-expected.html: Added.
- web-platform-tests/css/css-color/background-color-hsl-001.html: Added.
- web-platform-tests/css/css-color/background-color-hsl-002-expected.html: Added.
- web-platform-tests/css/css-color/background-color-hsl-002.html: Added.
- web-platform-tests/css/css-color/background-color-hsl-003-expected.html: Added.
- web-platform-tests/css/css-color/background-color-hsl-003.html: Added.
- web-platform-tests/css/css-color/background-color-hsl-004-expected.html: Added.
- web-platform-tests/css/css-color/background-color-hsl-004.html: Added.
- web-platform-tests/css/css-color/background-color-rgb-001-expected.html: Added.
- web-platform-tests/css/css-color/background-color-rgb-001.html: Added.
- web-platform-tests/css/css-color/background-color-rgb-002-expected.html: Added.
- web-platform-tests/css/css-color/background-color-rgb-002.html: Added.
- web-platform-tests/css/css-color/background-color-rgb-003-expected.html: Added.
- web-platform-tests/css/css-color/background-color-rgb-003.html: Added.
- web-platform-tests/css/css-color/lab-008-expected.html:
- web-platform-tests/css/css-color/lab-008.html:
- web-platform-tests/css/css-color/lch-008-expected.html:
- web-platform-tests/css/css-color/lch-008.html:
- web-platform-tests/css/css-color/predefined-003-expected.html: Removed.
- web-platform-tests/css/css-color/predefined-003.html: Removed.
- web-platform-tests/css/css-color/predefined-004-expected.html: Removed.
- web-platform-tests/css/css-color/predefined-004.html: Removed.
- web-platform-tests/css/css-color/predefined-017-expected.html: Removed.
- web-platform-tests/css/css-color/predefined-017.html: Removed.
- web-platform-tests/css/css-color/prophoto-rgb-005-expected.html: Added.
- web-platform-tests/css/css-color/prophoto-rgb-005.html: Added.
- web-platform-tests/css/css-color/rec2020-001.html:
- web-platform-tests/css/css-color/rec2020-005-expected.html: Added.
- web-platform-tests/css/css-color/rec2020-005.html: Added.
- web-platform-tests/css/css-color/w3c-import.log:
LayoutTests:
Remove some tests that were removed on updating.
- 9:13 AM Changeset in webkit [273242] by
-
- 3 edits in trunk/Source/WebCore
[css-flex] Refactoring of code retrieving main/cross size lengths from children
https://bugs.webkit.org/show_bug.cgi?id=222175
Reviewed by Darin Adler.
Added a couple of new private methods which retrieve the main and cross size lengths of children
as it's used everywhere.
No new tests as there is no change in functionality, just a code refactoring.
- rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::shouldApplyMinSizeAutoForChild const):
(WebCore::RenderFlexibleBox::flexBasisForChild const):
(WebCore::RenderFlexibleBox::crossSizeLengthForChild const): New method.
(WebCore::RenderFlexibleBox::mainSizeLengthForChild const): Ditto.
(WebCore::RenderFlexibleBox::useChildAspectRatio const):
(WebCore::RenderFlexibleBox::computeInnerFlexBaseSizeForChild):
(WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax):
(WebCore::RenderFlexibleBox::adjustChildSizeForAspectRatioCrossAxisMinAndMax):
(WebCore::RenderFlexibleBox::childHasIntrinsicMainAxisSize const):
- rendering/RenderFlexibleBox.h:
- 7:30 AM Changeset in webkit [273241] by
-
- 5 edits in trunk/Source/WebCore
[LFC][Integration] Switch out if large trees are being invalidated
https://bugs.webkit.org/show_bug.cgi?id=222264
Reviewed by Zalan Bujtas.
We don't support partial invalidation yet. To avoid hitting bad O(n2) cases limit the maximum tree size on invalidation.
Prevents editing/selection/move-by-character-brute-force.html, fast/innerHTML/identical-mutations.html and fast/text/emoji-num-glyphs.html
from timing out in debug.
- layout/integration/LayoutIntegrationBoxTree.h:
(WebCore::LayoutIntegration::BoxTree::boxCount const):
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::shouldSwitchToLegacyOnInvalidation const):
- layout/integration/LayoutIntegrationLineLayout.h:
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::invalidateLineLayoutPath):
- 4:27 AM Changeset in webkit [273240] by
-
- 5 edits2 adds in trunk/Tools
[Flatpak SDK] gdb unusable in sandbox
https://bugs.webkit.org/show_bug.cgi?id=222247
Reviewed by Žan Doberšek.
This patch adds support for unix signals disabling in developer builds, for the Flatpak SDK
runtime. Currently SIGINT, SIGHUP and SIGTERM will be ignored by the flatpak and bwrap
processes when they're running gdb in the sandbox runtime. This allows for nicer interactive
debugging sessions where Ctrl-C is actually handled by gdb.
- PlatformGTK.cmake:
- PlatformWPE.cmake:
- flatpak/CMakeLists.txt: Added.
- flatpak/flatpakutils.py:
(nullcontext):
(disable_signals):
(WebkitFlatpak.execute_command):
(WebkitFlatpak.run_in_sandbox):
- flatpak/sigaction-disabler.c: Added.
(real_sigaction):
(sigaction):
- flatpak/webkit-bwrap:
- 4:24 AM Changeset in webkit [273239] by
-
- 4 edits2 adds in trunk/Tools
[Flatpak SDK] Add Monado for XR runtime support
https://bugs.webkit.org/show_bug.cgi?id=220738
Patch by Philippe Normand <pnormand@igalia.com> on 2021-02-22
Reviewed by Žan Doberšek.
Tools:
- flatpak/flatpakutils.py:
(WebkitFlatpak.run_in_sandbox): Allow runtime XR environment setup in the sandbox through
the XR_RUNTIME_JSON variable.
Tools/buildstream:
- elements/sdk-platform.bst:
- elements/sdk/eigen.bst: Added.
- elements/sdk/monado.bst: Added.
- 4:20 AM Changeset in webkit [273238] by
-
- 3 edits in trunk/Tools
[Flatpak SDK] X11 SSH forwarding fails
https://bugs.webkit.org/show_bug.cgi?id=222246
Reviewed by Žan Doberšek.
- flatpak/flatpakutils.py:
(WebkitFlatpak.run_in_sandbox): Forward the DISPLAY env var to the sandbox.
- flatpak/webkit-bwrap: Set the DISPLAY env var if it was set in the parent process.
- 3:39 AM Changeset in webkit [273237] by
-
- 7 edits in trunk/Source/WebCore
Move FontCascadeCache onto FontCache
https://bugs.webkit.org/show_bug.cgi?id=220858
Reviewed by Myles C. Maxfield.
Make FontCascadeCache and associated functions a child of FontCache,
accessible via FontCache::singleton.
No new tests, no behavior change.
- page/MemoryRelease.cpp:
(WebCore::releaseNoncriticalMemory):
- page/SettingsBase.cpp:
(WebCore::invalidateAfterGenericFamilyChange):
- platform/graphics/FontCache.cpp:
(WebCore::keysMatch):
(WebCore::FontCache::invalidateFontCascadeCache):
(WebCore::FontCache::clearWidthCaches):
(WebCore::makeFontCascadeCacheKey):
(WebCore::computeFontCascadeCacheHash):
(WebCore::FontCache::pruneUnreferencedEntriesFromFontCascadeCache):
(WebCore::FontCache::pruneSystemFallbackFonts):
(WebCore::FontCache::retrieveOrAddCachedFonts):
(WebCore::FontCache::updateFontCascade):
- platform/graphics/FontCache.h:
(WebCore::FontCascadeCacheEntry::FontCascadeCacheEntry):
- platform/graphics/FontCascade.cpp:
(WebCore::FontCascade::updateFonts const):
(WebCore::FontCascade::update const):
- platform/graphics/FontCascade.h:
- 3:07 AM Changeset in webkit [273236] by
-
- 50 edits1 add in trunk
[SOUP] Add support for libsoup3
https://bugs.webkit.org/show_bug.cgi?id=222093
Reviewed by Adrian Perez de Castro.
.:
- Source/cmake/FindLibSoup.cmake:
- Source/cmake/OptionsGTK.cmake:
- Source/cmake/OptionsWPE.cmake:
Source/WebCore:
- platform/Soup.cmake:
- platform/network/soup/AuthenticationChallenge.h:
- platform/network/soup/AuthenticationChallengeSoup.cpp:
(WebCore::AuthenticationChallenge::AuthenticationChallenge):
(WebCore::AuthenticationChallenge::platformCompare):
- platform/network/soup/CookieSoup.cpp:
(WebCore::Cookie::Cookie):
(WebCore::Cookie::toSoupCookie const):
- platform/network/soup/GUniquePtrSoup.h:
- platform/network/soup/NetworkStorageSessionSoup.cpp:
(WebCore::schemeFromProtectionSpaceServerType):
(WebCore::authTypeFromProtectionSpaceAuthenticationScheme):
(WebCore::NetworkStorageSession::setCookiesFromDOM const):
(WebCore::NetworkStorageSession::setCookies):
(WebCore::NetworkStorageSession::deleteCookie const):
(WebCore::NetworkStorageSession::getHostnamesWithCookies):
(WebCore::NetworkStorageSession::getCookies):
(WebCore::NetworkStorageSession::hasCookies const):
(WebCore::NetworkStorageSession::getRawCookies const):
(WebCore::cookiesForSession):
- platform/network/soup/ResourceErrorSoup.cpp:
(WebCore::ResourceError::transportError):
(WebCore::ResourceError::httpError):
(WebCore::ResourceError::authenticationError):
(WebCore::ResourceError::tlsError):
- platform/network/soup/ResourceRequest.h:
- platform/network/soup/ResourceRequestSoup.cpp:
(WebCore::ResourceRequest::createSoupMessage const):
(WebCore::ResourceRequest::updateSoupMessageBody const):
(WebCore::ResourceRequest::createSoupURI const):
- platform/network/soup/ResourceResponseSoup.cpp:
(WebCore::ResourceResponse::ResourceResponse):
- platform/network/soup/SoupNetworkSession.cpp:
(WebCore::SoupNetworkSession::SoupNetworkSession):
(WebCore::SoupNetworkSession::setupLogger):
(WebCore::SoupNetworkSession::clearHSTSCache):
(WebCore::SoupNetworkSession::setProxySettings):
- platform/network/soup/SoupVersioning.h: Added.
(soup_message_get_method):
(soup_server_message_get_method):
(soup_message_get_status):
(soup_server_message_set_status):
(soup_message_get_reason_phrase):
(soup_message_get_request_headers):
(soup_server_message_get_request_headers):
(soup_message_get_response_headers):
(soup_server_message_get_response_headers):
(soup_server_message_get_response_body):
(soup_server_message_set_response):
(soup_server_message_get_uri):
(soup_message_get_tls_certificate):
(soup_message_get_tls_certificate_errors):
(soup_session_send_async):
(soup_session_websocket_connect_async):
(soup_auth_cancel):
- platform/network/soup/URLSoup.cpp:
(WebCore::soupURIToURL):
(WebCore::urlToSoupURI):
- platform/network/soup/URLSoup.h:
Source/WebDriver:
- soup/HTTPServerSoup.cpp:
(WebDriver::HTTPServer::listen):
Source/WebKit:
- NetworkProcess/soup/NetworkDataTaskSoup.cpp:
(WebKit::NetworkDataTaskSoup::createRequest):
(WebKit::NetworkDataTaskSoup::clearRequest):
(WebKit::NetworkDataTaskSoup::resume):
(WebKit::NetworkDataTaskSoup::cancel):
(WebKit::NetworkDataTaskSoup::tlsConnectionAcceptCertificateCallback):
(WebKit::NetworkDataTaskSoup::acceptCertificateCallback):
(WebKit::NetworkDataTaskSoup::acceptCertificate):
(WebKit::NetworkDataTaskSoup::authenticateCallback):
(WebKit::NetworkDataTaskSoup::authenticate):
(WebKit::NetworkDataTaskSoup::continueAuthenticate):
(WebKit::shouldRedirectAsGET):
(WebKit::NetworkDataTaskSoup::continueHTTPRedirection):
(WebKit::NetworkDataTaskSoup::didGetHeaders):
(WebKit::NetworkDataTaskSoup::wroteBodyDataCallback):
(WebKit::NetworkDataTaskSoup::didWriteBodyData):
(WebKit::NetworkDataTaskSoup::networkEvent):
(WebKit::NetworkDataTaskSoup::hstsEnforced):
(WebKit::NetworkDataTaskSoup::didRestart):
- NetworkProcess/soup/NetworkDataTaskSoup.h:
- NetworkProcess/soup/NetworkSessionSoup.cpp:
(WebKit::NetworkSessionSoup::createWebSocketTask):
- NetworkProcess/soup/WebSocketTaskSoup.cpp:
(WebKit::isConnectionError):
(WebKit::WebSocketTask::WebSocketTask):
Source/WTF:
- wtf/Platform.h:
- wtf/URL.h:
- wtf/glib/GRefPtr.cpp:
(WTF::refGPtr):
(WTF::derefGPtr):
- wtf/glib/GRefPtr.h:
- wtf/glib/URLGLib.cpp:
(WTF::URL::URL):
(WTF::URL::createGUri const):
Tools:
- MiniBrowser/gtk/BrowserTab.c:
(tlsErrorsDialogResponse):
- TestWebKitAPI/PlatformGTK.cmake:
- TestWebKitAPI/Tests/WebKitGLib/TestAuthentication.cpp:
(Tunnel::Tunnel):
(Tunnel::connect):
(serverCallback):
- TestWebKitAPI/Tests/WebKitGLib/TestBackForwardList.cpp:
(serverCallback):
- TestWebKitAPI/Tests/WebKitGLib/TestCookieManager.cpp:
(testCookieManagerAddCookie):
(testCookieManagerGetCookies):
(testCookieManagerDeleteCookie):
(serverCallback):
- TestWebKitAPI/Tests/WebKitGLib/TestDownloads.cpp:
(addContentDispositionHTTPHeaderToResponse):
(writeNextChunk):
(serverCallback):
- TestWebKitAPI/Tests/WebKitGLib/TestLoaderClient.cpp:
(testLoadingError):
(testWebViewIsLoading):
(serverCallback):
- TestWebKitAPI/Tests/WebKitGLib/TestResources.cpp:
(addCacheHTTPHeadersToResponse):
(serverCallback):
- TestWebKitAPI/Tests/WebKitGLib/TestSSL.cpp:
(WebSocketTest::serverWebSocketCallback):
(httpsServerCallback):
(httpServerCallback):
- TestWebKitAPI/Tests/WebKitGLib/TestWebKitFaviconDatabase.cpp:
(serverCallback):
- TestWebKitAPI/Tests/WebKitGLib/TestWebKitPolicyClient.cpp:
(serverCallback):
- TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp:
(serverCallback):
- TestWebKitAPI/Tests/WebKitGLib/TestWebKitUserContentManager.cpp:
(serverCallback):
- TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp:
(serverCallback):
(ProxyTest::webSocketProxyServerCallback):
(webSocketServerCallback):
- TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:
(serverCallback):
- TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp:
(serverCallback):
- TestWebKitAPI/Tests/WebKitGtk/TestContextMenu.cpp:
(writeNextChunk):
(serverCallback):
- TestWebKitAPI/glib/WebKitGLib/WebKitTestServer.cpp:
(WebKitTestServer::run):
(WebKitTestServer::addWebSocketHandler):
- 2:39 AM Changeset in webkit [273235] by
-
- 7 edits1 add in trunk/Tools/buildstream
[Flatpak SDK] Update to GStreamer 1.18.3 and backport one patch from upcoming 1.18.4
https://bugs.webkit.org/show_bug.cgi?id=222033
Patch by Philippe Normand <pnormand@igalia.com> on 2021-02-22
Reviewed by Žan Doberšek.
The backported patch fixes a racy crash in media/media-source/media-source-webm.html, where
the player would be destroyed quickly after being created.
- elements/freedesktop-sdk.bst: Update junction.
- elements/sdk/gst-libav.bst: Bump to 1.18.3
- elements/sdk/gst-plugins-bad.bst: Ditto.
- elements/sdk/gst-plugins-base.bst: Ditto and backport patch from 1.18.4.
- elements/sdk/gst-plugins-good.bst: Bump to 1.18.3
- elements/sdk/gstreamer.bst: Ditto.
- patches/gst-plugins-base-0001-videodecoder-Fix-racy-critical-when-pool-negotiation.patch: Added.
- 2:21 AM Changeset in webkit [273234] by
-
- 2 edits in trunk/Tools
[Flatpak SDK] Cog build fails when gst-build is enabled
https://bugs.webkit.org/show_bug.cgi?id=222102
Patch by Philippe Normand <pnormand@igalia.com> on 2021-02-22
Reviewed by Žan Doberšek.
Merge gst-build env vars in the sandbox environment, without overriding previously set PATH
values such as PKG_CONFIG_PATH.
- flatpak/flatpakutils.py:
(WebkitFlatpak.setup_gstbuild):
(WebkitFlatpak.run_in_sandbox):
- 2:19 AM Changeset in webkit [273233] by
-
- 2 edits in trunk/Tools
[Flatpak SDK] Bootstrap the run-httpd script in the SDK runtime
https://bugs.webkit.org/show_bug.cgi?id=221464
Patch by Philippe Normand <pnormand@igalia.com> on 2021-02-22
Reviewed by Žan Doberšek.
- Scripts/run-webkit-httpd: On Linux platforms, run the script within the SDK runtime, if it
is available on the host system.
- 1:33 AM Changeset in webkit [273232] by
-
- 2 edits in trunk/Source/WebCore/platform/gtk/po
[GTK] [l10n] Updated Ukrainian translation of WebKitGTK+
https://bugs.webkit.org/show_bug.cgi?id=220992
Patch by Yuri Chornoivan <yurchor@ukr.net> on 2021-02-22
Rubber-stamped by Carlos Garcia Campos.
- uk.po:
- 1:13 AM Changeset in webkit [273231] by
-
- 2 edits in trunk/Source/WebCore
Handle Page::didFinishLoadingImageForElement asynchronously
https://bugs.webkit.org/show_bug.cgi?id=221390
Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-02-22
Reviewed by Alex Christensen.
When called synchronously from RenderImage::notifyFinished() it's not possible to update the layout because
scripts are not allowed at that point.
- page/Page.cpp:
(WebCore::Page::didFinishLoadingImageForElement):
- 12:27 AM Changeset in webkit [273230] by
-
- 2 edits in trunk/Source/WTF
RunLoop::threadWillExit is doing m_nextIteration.clear() without locking m_nextIterationLock
https://bugs.webkit.org/show_bug.cgi?id=221115
Reviewed by Yusuke Suzuki.
GKT and WPE ports were observing a random assertion failure in
Deque::append in RunLoop::dispatch.
- wtf/RunLoop.cpp:
(WTF::RunLoop::threadWillExit): Lock m_nextIterationLock before doing m_nextIteration.clear().
Feb 21, 2021:
- 9:20 PM Changeset in webkit [273229] by
-
- 2 edits in trunk/Source/JavaScriptCore
Fix warning after r273225
https://bugs.webkit.org/show_bug.cgi?id=222257
Reviewed by Keith Miller.
The UNLIKELY condition raises a warn with "suggest parentheses around
‘&&’ within ‘ ’" for the last pair. - parser/Parser.cpp:
(JSC::Parser<LexerType>::parseUnaryExpression):
- 7:13 PM Changeset in webkit [273228] by
-
- 8 edits1 delete in trunk/LayoutTests
[GLIB] Gardening and updating baselines
Unreviewed test gardening.
- platform/glib/TestExpectations:
- platform/glib/webaudio/audioworklet-addModule-failure-expected.txt: Removed.
- platform/gtk/TestExpectations:
- platform/wpe/TestExpectations:
- platform/wpe/fast/text/international/bidi-LDB-2-CSS-expected.txt:
- platform/wpe/fast/text/international/bidi-LDB-2-HTML-expected.txt:
- platform/wpe/fast/text/international/bidi-LDB-2-formatting-characters-expected.txt:
- platform/wpe/fast/text/international/bidi-ignored-for-first-child-inline-expected.txt:
- 6:13 PM Changeset in webkit [273227] by
-
- 15 edits2 adds in trunk
Add [WebAccessibilityObjectWrapper textMarkerRangeForNSRange] to allow clients to efficiently get a TextMarkerRange from an NSRange.
https://bugs.webkit.org/show_bug.cgi?id=222154
Reviewed by Chris Fleizach and Darin Adler.
Source/WebCore:
Test: accessibility/mac/textmarker-range-for-range.html
Clients like VoiceOver often need the ability to convert a text range
into an accessibility TextMarkerRange.
This patch adds [WebAccessibilityObjectWrapper textMarkerRangeForNSRange]
to allow clients to efficiently perform this conversion.
This is the Mac implementation, iOS implementation is pending.
- accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::allowsTextRanges const):
- accessibility/AccessibilityObjectInterface.h:
- accessibility/isolatedtree/AXIsolatedObject.h:
- accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm:
(WebCore::AXIsolatedObject::textMarkerRangeForNSRange const):
- accessibility/mac/AccessibilityObjectMac.mm:
(WebCore::AccessibilityObject::textMarkerRangeForNSRange const):
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper textMarkerRangeForNSRange:]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
- editing/Editing.cpp:
(WebCore::visiblePositionForIndexUsingCharacterIterator):
Only advance the CharacterIterator if not atEnd yet.
Tools:
- WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:
(WTR::AccessibilityUIElement::textMarkerRangeForRange):
- WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
- WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
- WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:
(WTR::AccessibilityUIElement::textMarkerRangeForRange):
LayoutTests:
- accessibility/mac/textmarker-range-for-range-expected.txt: Added.
- accessibility/mac/textmarker-range-for-range.html: Added.
- 5:04 PM Changeset in webkit [273226] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, fix CMake build.
- CMakeLists.txt:
- 4:41 PM Changeset in webkit [273225] by
-
- 48 edits in trunk
Implement the Top-level await proposal
https://bugs.webkit.org/show_bug.cgi?id=202484
Reviewed by Yusuke Suzuki.
JSTests:
- test262/config.yaml:
Source/JavaScriptCore:
This patch adds support for the TLA proposal. The bulk of this patch is adding a couple of main parts.
1) converting the AbstractModuleRecord to contain many of same internal fields as JSGenerator so much of the async codegen can be shared.
2) having the link phase of the module loader record whether a module subgraph is async.
3) teaching the module loader that evaluating a module may require more than one vm entry and forwarding the awaited value as well as the resume mode to the VM.
One thing particularly interesting about this patch is that moduleEvaluation now *sometimes* (when a strongly connected subgraph is async) will return a promise. This happened to already be awaited when called from loadAndEvaluateModule (unnecessarily before) but now also needs to be handled by requestImportModule.
No new tests because every test I came up with was subsumed by tests already in test262.
- API/JSAPIGlobalObject.h:
- API/JSAPIGlobalObject.mm:
(JSC::JSAPIGlobalObject::moduleLoaderEvaluate):
- JavaScriptCore.xcodeproj/project.pbxproj:
- builtins/ModuleLoader.js:
(globalPrivate.newRegistryEntry):
(link):
(async requestImportModule):
(moduleEvaluation): Deleted.
(requestImportModule): Deleted.
- bytecode/BytecodeGeneratorification.cpp:
(JSC::BytecodeGeneratorification::run):
(JSC::performGeneratorification):
- bytecode/BytecodeIntrinsicRegistry.cpp:
(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):
- bytecode/BytecodeIntrinsicRegistry.h:
- bytecode/BytecodeList.rb:
- bytecode/BytecodeUseDef.cpp:
(JSC::computeUsesForBytecodeIndexImpl):
- bytecode/UnlinkedModuleProgramCodeBlock.h:
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitWillLeaveCallFrameDebugHook):
(JSC::BytecodeGenerator::emitGenericEnumeration):
(JSC::BytecodeGenerator::emitYieldPoint):
(JSC::BytecodeGenerator::emitYield):
(JSC::BytecodeGenerator::emitDelegateYield):
(JSC::BytecodeGenerator::emitGeneratorStateChange):
- bytecompiler/BytecodeGenerator.h:
(JSC::BytecodeGenerator::generatorStateRegister):
(JSC::BytecodeGenerator::generatorValueRegister):
(JSC::BytecodeGenerator::generatorResumeModeRegister):
(JSC::BytecodeGenerator::generatorFrameRegister):
- bytecompiler/NodesCodegen.cpp:
(JSC::abstractModuleRecordInternalFieldIndex):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_getAbstractModuleRecordInternalField):
(JSC::FunctionNode::emitBytecode):
- interpreter/Interpreter.cpp:
(JSC::Interpreter::executeModuleProgram):
- interpreter/Interpreter.h:
- parser/ASTBuilder.h:
(JSC::ASTBuilder::createAwait):
(JSC::ASTBuilder::usesAwait):
- parser/Nodes.cpp:
(JSC::ModuleProgramNode::ModuleProgramNode):
- parser/Nodes.h:
- parser/Parser.cpp:
(JSC::JSToken::dump const):
(JSC::Parser<LexerType>::parseForStatement):
(JSC::Parser<LexerType>::parseAwaitExpression):
(JSC::Parser<LexerType>::parsePrimaryExpression):
(JSC::Parser<LexerType>::parseUnaryExpression):
- parser/ParserModes.h:
- parser/ParserTokens.h:
- runtime/AbstractModuleRecord.cpp:
(JSC::AbstractModuleRecord::finishCreation):
(JSC::AbstractModuleRecord::link):
(JSC::AbstractModuleRecord::evaluate):
- runtime/AbstractModuleRecord.h:
(JSC::AbstractModuleRecord::initialValues):
(JSC::AbstractModuleRecord::internalField):
(JSC::AbstractModuleRecord::internalField const):
- runtime/JSAsyncGenerator.h:
- runtime/JSGenerator.h:
- runtime/JSGlobalObject.h:
- runtime/JSModuleLoader.cpp:
(JSC::JSModuleLoader::evaluate):
(JSC::JSModuleLoader::evaluateNonVirtual):
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/JSModuleLoader.h:
- runtime/JSModuleRecord.cpp:
(JSC::JSModuleRecord::link):
(JSC::JSModuleRecord::evaluate):
- runtime/JSModuleRecord.h:
- runtime/ModuleProgramExecutable.h:
- runtime/OptionsList.h:
- runtime/SymbolTable.cpp:
(JSC::SymbolTable::dump const):
- runtime/SymbolTable.h:
- wasm/js/WebAssemblyModuleRecord.cpp:
(JSC::WebAssemblyModuleRecord::link):
(JSC::WebAssemblyModuleRecord::linkImpl):
- wasm/js/WebAssemblyModuleRecord.h:
Source/WebCore:
- bindings/js/JSDOMGlobalObject.cpp:
(WebCore::JSDOMGlobalObject::moduleLoaderEvaluate):
- bindings/js/JSDOMGlobalObject.h:
- bindings/js/ScriptController.cpp:
(WebCore::ScriptController::evaluateModule):
- bindings/js/ScriptController.h:
- bindings/js/ScriptModuleLoader.cpp:
(WebCore::ScriptModuleLoader::evaluate):
- bindings/js/ScriptModuleLoader.h:
- workers/WorkerOrWorkletScriptController.cpp:
(WebCore::WorkerOrWorkletScriptController::evaluateModule):
- workers/WorkerOrWorkletScriptController.h:
- 1:54 PM Changeset in webkit [273224] by
-
- 17 edits in trunk
Support modules in service workers
https://bugs.webkit.org/show_bug.cgi?id=222155
Reviewed by Saam Barati.
LayoutTests/imported/w3c:
- web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/json-module-service-worker-test.https.tentative-expected.txt:
- web-platform-tests/service-workers/service-worker/clients-matchall-client-types.https-expected.txt:
- web-platform-tests/service-workers/service-worker/import-module-scripts.https-expected.txt:
- web-platform-tests/service-workers/service-worker/performance-timeline.https-expected.txt:
- web-platform-tests/service-workers/service-worker/update-registration-with-type.https-expected.txt:
- web-platform-tests/service-workers/service-worker/update.https-expected.txt:
- web-platform-tests/service-workers/service-worker/worker-client-id.https-expected.txt:
Source/WebCore:
This patch adds module support to service-workers. Basically this just plumbs the type: "module" information to
service worker's job as described in the spec[1]: Each SW job should have workerType, and this is passed.
And we sometimes compare newestWorker->type() with this job.workerType (as defined in the spec). And we spawn
the SW with this job.workerType. Since Worker already supports "module" evaluation, this is automatically evaluated
as modules if we spawn SW thread with "module" type.
When using, we can pass "module" type to the register method as follows.
navigator.serviceWorker.register('script.mjs', {
type: "module"
});
[1]: https://w3c.github.io/ServiceWorker/
- workers/service/ServiceWorker.h:
- workers/service/ServiceWorkerContainer.cpp:
(WebCore::ServiceWorkerContainer::addRegistration):
(WebCore::ServiceWorkerContainer::updateRegistration):
- workers/service/ServiceWorkerJobData.cpp:
(WebCore::ServiceWorkerJobData::isolatedCopy const):
(WebCore::ServiceWorkerJobData::isEquivalent const):
- workers/service/ServiceWorkerJobData.h:
(WebCore::ServiceWorkerJobData::encode const):
(WebCore::ServiceWorkerJobData::decode):
- workers/service/ServiceWorkerRegistration.cpp:
(WebCore::ServiceWorkerRegistration::update):
- workers/service/context/ServiceWorkerThread.cpp:
(WebCore::ServiceWorkerThread::ServiceWorkerThread):
- workers/service/server/SWServer.cpp:
(WebCore::SWServer::softUpdate):
- workers/service/server/SWServerJobQueue.cpp:
(WebCore::SWServerJobQueue::scriptFetchFinished):
(WebCore::SWServerJobQueue::runRegisterJob):
(WebCore::SWServerJobQueue::runUpdateJob):
- 1:38 PM Changeset in webkit [273223] by
-
- 7 edits in trunk/Source/WebCore
[LFC][IFC] Hittest should be using the border box (and not the margin box)
https://bugs.webkit.org/show_bug.cgi?id=222249
Reviewed by Antti Koivisto.
This patch fixes the cases when the inline box (e.g. <span>) has horizontal
margins and we find those inline boxes instead of their containing blocks.
e.g.
<div><span style="margin-left: 100px;">border box starts at 100px</span></div>
document.elementFromPoint(50, 10) should not find the <span>.
Let's simplify LineBox interface so that it returns the border box. Clients
are mainly interested in the border box.
(LineBox is mostly there to support vertical alignment and the vertical
alignment uses the margin box height. The inline level boxes on the line now have
this seemingly odd combination of border box width and margin box height, but
that's required to keep the alignment logic clean and simple.)
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):
- layout/inlineformatting/InlineFormattingContextGeometry.cpp:
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):
- layout/inlineformatting/InlineLineBox.cpp:
(WebCore::Layout::LineBox::logicalBorderBoxForAtomicInlineLevelBox const):
(WebCore::Layout::LineBox::logicalBorderBoxForInlineBox const):
(WebCore::Layout::LineBox::logicalMarginRectForAtomicInlineLevelBox const): Deleted.
(WebCore::Layout::LineBox::logicalRectForInlineBox const): Deleted.
- layout/inlineformatting/InlineLineBox.h:
- layout/integration/LayoutIntegrationInlineContentBuilder.cpp:
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLineRuns const):
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayNonRootInlineBoxes const):
- layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::showInlineTreeAndRuns):
- 1:08 PM Changeset in webkit [273222] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] JSInternalPromise::then can fail if execution is terminated
https://bugs.webkit.org/show_bug.cgi?id=222244
Reviewed by Mark Lam.
JSInternalPromise::then assumed that call's result is always JSInternalPromise.
But this is wrong if termination exception is thrown. In that case, this call fails.
This patch makes it robust against this behavior.
- runtime/JSInternalPromise.cpp:
(JSC::JSInternalPromise::then):
- 12:49 PM Changeset in webkit [273221] by
-
- 2 edits in trunk/Source/WTF
Re-enable Paint Timing
https://bugs.webkit.org/show_bug.cgi?id=211736
Reviewed by Noam Rosenthal.
Now that bug 222245 is fixed in r273220, re-enable Paint Timing
(aka First Contentful Paint.)
- Scripts/Preferences/WebPreferencesEfxperimental.yaml:
- 11:07 AM Changeset in webkit [273220] by
-
- 4 edits in trunk/Source/WebCore
[Paint Timing] Return early from contentful paint check when no contentful pixels/characters at all
https://bugs.webkit.org/show_bug.cgi?id=222245
Reviewed by Simon Fraser.
Bail from recursive contenful-paint check if there are no pixels/text characters in the entire document.
Covered by existing tests, an optimization only.
- dom/Document.cpp:
(WebCore::Document::enqueuePaintTimingEntryIfNeeded):
- page/FrameView.cpp:
(WebCore::FrameView::hasContenfulDescendants const):
- page/FrameView.h:
- 9:20 AM Changeset in webkit [273219] by
-
- 2 edits in trunk/Source/WebCore
Small improvements to r273073
https://bugs.webkit.org/show_bug.cgi?id=222179
Patch by Martin Robinson <mrobinson@igalia.com> on 2021-02-21
Reviewed by Darin Adler.
No new tests, because this should not change behavior.
- rendering/RenderObject.cpp:
(WebCore::RenderObject::enclosingScrollableContainerForSnapping const): Replace
a while loop with a for loop and prefer downcast<> to static_cast<>.
- 4:51 AM Changeset in webkit [273218] by
-
- 7 edits16 adds in trunk/JSTests
[JSC] Upgrade test262
https://bugs.webkit.org/show_bug.cgi?id=222243
Reviewed by Alexey Shvayka.
- test262/config.yaml:
- test262/expectations.yaml:
- test262/latest-changes-summary.txt:
- test262/test/built-ins/Object/assign/target-is-frozen-accessor-property-set-succeeds.js: Added.
(target1.set foo):
(target2.Object.freeze.set sym):
- test262/test/built-ins/Object/assign/target-is-frozen-data-property-set-throws.js: Added.
- test262/test/built-ins/Object/assign/target-is-non-extensible-existing-accessor-property.js: Added.
(target1.Object.preventExtensions.set foo):
(target2.set sym):
- test262/test/built-ins/Object/assign/target-is-non-extensible-existing-data-property.js: Added.
- test262/test/built-ins/Object/assign/target-is-non-extensible-property-creation-throws.js: Added.
(get bar):
- test262/test/built-ins/Object/assign/target-is-sealed-existing-accessor-property.js: Added.
(target1.Object.seal.set foo):
(target2.set sym):
- test262/test/built-ins/Object/assign/target-is-sealed-existing-data-property.js: Added.
- test262/test/built-ins/Object/assign/target-is-sealed-property-creation-throws.js: Added.
(get bar):
- test262/test/built-ins/Object/freeze/proxy-with-defineProperty-handler.js: Added.
(proxy.new.Proxy.get foo):
(proxy.new.Proxy.set foo):
(set foo.defineProperty):
(set foo):
- test262/test/built-ins/Object/seal/proxy-with-defineProperty-handler.js: Added.
(proxy.new.Proxy.get foo):
(proxy.new.Proxy.set foo):
(set foo.defineProperty):
(set foo):
- test262/test/built-ins/TypedArray/prototype/filter/BigInt/callbackfn-detachbuffer.js:
(testWithBigIntTypedArrayConstructors):
- test262/test/built-ins/TypedArray/prototype/findIndex/BigInt/predicate-may-detach-buffer.js:
(testWithBigIntTypedArrayConstructors):
- test262/test/intl402/DateTimeFormat/constructor-no-instanceof.js: Added.
- test262/test/intl402/DateTimeFormat/prototype/format/no-instanceof.js: Added.
- test262/test/intl402/DateTimeFormat/prototype/resolvedOptions/no-instanceof.js: Added.
- test262/test/intl402/NumberFormat/constructor-no-instanceof.js: Added.
- test262/test/intl402/NumberFormat/prototype/format/no-instanceof.js: Added.
- test262/test/intl402/NumberFormat/prototype/resolvedOptions/no-instanceof.js: Added.
- test262/test262-Revision.txt:
- 4:35 AM Changeset in webkit [273217] by
-
- 3 edits in trunk/Source/JavaScriptCore
[JSC] Remove vm.topCallFrame storing in Baseline JIT
https://bugs.webkit.org/show_bug.cgi?id=222162
Reviewed by Mark Lam.
This patch removes vm.topCallFrame storing in the Baseline JIT for ports that can USE(BUILTIN_FRAME_ADDRESS).
Also refactored some CommonSlowPath functions so that they can start using builtin_frame_address later
instead of requiring that CallFrame be passed in.
- jit/JITInlines.h:
(JSC::JIT::updateTopCallFrame):
- runtime/CommonSlowPaths.cpp:
(JSC::iteratorOpenTryFastImpl):
(JSC::JSC_DEFINE_COMMON_SLOW_PATH):
(JSC::iteratorNextTryFastImpl):
Feb 20, 2021:
- 11:27 PM Changeset in webkit [273216] by
-
- 2 edits in trunk/Source/WebKit
[Cocoa] Update WebCoreArgumentCodersMac with some new additions
https://bugs.webkit.org/show_bug.cgi?id=222242
<rdar://problem/74562457>
Reviewed by Tim Horton.
Will be tested by new API Tests in a subsequent patch.
- Shared/mac/WebCoreArgumentCodersMac.mm:
(IPC::ArgumentCoder<WebCore::ResourceRequest>::encodePlatformData):
(IPC::ArgumentCoder<WebCore::ResourceRequest>::decodePlatformData):
- 8:24 PM Changeset in webkit [273215] by
-
- 4 edits in trunk/Source/WebKit
[Cocoa] Web Inspector: expose the WKBrowsingContextHandle associated with Web Inspector's page
https://bugs.webkit.org/show_bug.cgi?id=222226
Reviewed by Timothy Hatcher.
In order to implement browser.devtools.inspectedWindow.tabId for Web Extensions,
we need a way to do a reverse lookup of the tabId using the current browsing context
controller (WKWebProcessPlugInBrowserContextController) in the injected bundle.
This patch exposes the browsing context handle for the underlying WKWebView that
hosts the inspector page. Clients can use this to precompute a tabId for each
inspector browsing context that may be encountered by injected bundle code.
- UIProcess/API/Cocoa/_WKInspectorPrivate.h:
- UIProcess/API/Cocoa/_WKInspector.mm:
(-[_WKInspector handle]): Added.
- WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:
(WebKit::InjectedBundle::classesForCoder):
Drive-by, make it possible to use WKBrowsingContextHandle in injected bundle parameters.
This is easy because it conforms to NSSecureCoding and is simply a pageId + frameId.
- 8:15 PM Changeset in webkit [273214] by
-
- 40 edits4 adds in trunk
AX: Image should report the embedded accessibility description if available
https://bugs.webkit.org/show_bug.cgi?id=221875
<rdar://problem/74320584>
Reviewed by Jer Noble.
Source/WebCore:
Check if images have accessibility description metadata and expose that to the AX API.
Test: accessibility/embedded-image-description.html
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::embeddedImageDescription const):
- accessibility/AccessibilityObject.h:
- accessibility/AccessibilityObjectInterface.h:
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper _accessibilityPhotoDescription]):
- accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::initializeAttributeData):
- accessibility/isolatedtree/AXIsolatedObject.h:
- accessibility/isolatedtree/AXIsolatedTree.h:
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper ALLOW_DEPRECATED_IMPLEMENTATIONS_END]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
- platform/cf/MediaAccessibilitySoftLink.cpp:
- platform/cf/MediaAccessibilitySoftLink.h:
- platform/graphics/BitmapImage.h:
- platform/graphics/Image.h:
(WebCore::Image::accessibilityDescription const):
- platform/graphics/ImageDecoder.h:
- platform/graphics/ImageSource.cpp:
(WebCore::ImageSource::accessibilityDescription):
- platform/graphics/ImageSource.h:
- platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.h:
- platform/graphics/cg/ImageDecoderCG.cpp:
(WebCore::ImageDecoderCG::accessibilityDescription const):
- platform/graphics/cg/ImageDecoderCG.h:
- rendering/RenderImage.h:
(WebCore::RenderImage::accessibilityDescription const):
Source/WebCore/PAL:
- PAL.xcodeproj/project.pbxproj:
- pal/spi/cocoa/MediaAccessibilitySPI.h: Added.
Source/WebKit:
- WebProcess/GPU/media/RemoteImageDecoderAVF.h:
Tools:
- DumpRenderTree/AccessibilityUIElement.cpp:
(getEmbeddedImageDescription):
(AccessibilityUIElement::getJSClass):
- DumpRenderTree/AccessibilityUIElement.h:
- DumpRenderTree/ios/AccessibilityUIElementIOS.mm:
(AccessibilityUIElement::embeddedImageDescription const):
- DumpRenderTree/mac/AccessibilityUIElementMac.mm:
(AccessibilityUIElement::embeddedImageDescription const):
- WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
- WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
- WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
(WTR::AccessibilityUIElement::embeddedImageDescription const):
- WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:
(WTR::AccessibilityUIElement::embeddedImageDescription const):
LayoutTests:
- accessibility/embedded-image-description-expected.txt: Added.
- accessibility/embedded-image-description.html: Added.
- accessibility/resources/embedded-image-description-example.jpg: Added.
- platform/ios-simulator/TestExpectations:
- platform/win/TestExpectations:
- 6:05 PM Changeset in webkit [273213] by
-
- 24 edits in trunk
Video elements do not work as sources for TexImage2D calls in GPU Process
https://bugs.webkit.org/show_bug.cgi?id=218184
Reviewed by Jer Noble.
Source/WebCore:
Add a function
GraphicsContextGL::copyTextureFromMedia()
which can be used by the graphics
context to copy video texture from a video element (player).
This patch also replaces
MediaPlayer::copyVideoTextureToPlatformTexture()
with
MediaPlayer::pixelBufferForCurrentTime()
on Cocoa ports. The motivation is that
RemoteGraphicsContextGL::copyTextureFromMedia()
will run in a background thread
("RemoteGraphicsContextGL work queue") and it is difficult to make
MediaPlayer::copyVideoTextureToPlatformTexture()
thread-safe. In addition, we cannot
simply run it on the main thread because it uses graphic context internally. Adding a
functionMediaPlayer::pixelBufferForCurrentTime()
solves the problem.
Manually tested.
We need to enable both "GPU Process: Media" and "GPU Process: WebGL" to test the feature.
- html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::copyVideoTextureToPlatformTexture): Deleted.
- html/HTMLVideoElement.h:
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::texImageSourceHelper):
- platform/graphics/GraphicsContextGL.h:
- platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::pixelBufferForCurrentTime):
- platform/graphics/MediaPlayer.h:
- platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::pixelBufferForCurrentTime):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::pixelBufferForCurrentTime):
(WebCore::MediaPlayerPrivateAVFoundationObjC::copyVideoTextureToPlatformTexture): Deleted.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::pixelBufferForCurrentTime):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::copyVideoTextureToPlatformTexture): Deleted.
- platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:
(WebCore::GraphicsContextGLOpenGL::copyTextureFromMedia):
- platform/graphics/opengl/GraphicsContextGLOpenGL.h:
Source/WebKit:
Add an IPC message
RemoteGraphicsContextGL::CopyTextureFromMedia
to implement
RemoteGraphicsContextGLProxy::copyTextureFromMedia()
in the Web process.
- GPUProcess/graphics/RemoteGraphicsContextGL.cpp:
(WebKit::RemoteGraphicsContextGL::copyTextureFromMedia):
- GPUProcess/graphics/RemoteGraphicsContextGL.h:
We should use
m_gpuConnectionToWebProcess
in the main thread only.
- GPUProcess/graphics/RemoteGraphicsContextGL.messages.in:
- WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:
(WebKit::RemoteGraphicsContextGLProxy::copyTextureFromMedia):
- WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:
- WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
- WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
Tools:
- Scripts/generate-gpup-webgl:
- 5:06 PM Changeset in webkit [273212] by
-
- 9 edits in trunk
Add support for adding/removing/clearing mock devices in GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=222174
Reviewed by Eric Carlson.
Source/WebKit:
Make sure to forward mock device orders to GPU process so that it is kept in sync with UIProcess.
Covered by updated test.
- GPUProcess/GPUProcess.cpp:
(WebKit::GPUProcess::addMockMediaDevice):
(WebKit::GPUProcess::clearMockMediaDevices):
(WebKit::GPUProcess::removeMockMediaDevice):
(WebKit::GPUProcess::resetMockMediaDevices):
- GPUProcess/GPUProcess.h:
- GPUProcess/GPUProcess.messages.in:
- UIProcess/GPU/GPUProcessProxy.cpp:
(WebKit::GPUProcessProxy::addMockMediaDevice):
(WebKit::GPUProcessProxy::clearMockMediaDevices):
(WebKit::GPUProcessProxy::removeMockMediaDevice):
(WebKit::GPUProcessProxy::resetMockMediaDevices):
- UIProcess/GPU/GPUProcessProxy.h:
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::addMockMediaDevice):
(WebKit::WebProcessPool::clearMockMediaDevices):
(WebKit::WebProcessPool::removeMockMediaDevice):
(WebKit::WebProcessPool::resetMockMediaDevices):
LayoutTests:
- fast/mediastream/device-change-event-2.html:
- 4:47 PM Changeset in webkit [273211] by
-
- 14 edits in trunk
color(lab ...) should serialize as color(lab ...) not lab() according to latest CSS Color 4 spec
https://bugs.webkit.org/show_bug.cgi?id=222110
Reviewed by Dean Jackson.
Source/WebCore:
To make this work it was necessary to make it so that extended colors, like Lab,
could store an extra bit of data on Color to indicate that it should use the
color() function for serialization when parsed using the color() form.
To do that, Color was reworked to allow extra metadata flags for both inline and
extended colors. Previously, only inline colors could make use of the extra bits.
Now, we take advantage of the fact that we have the high 16 bits available to us
for pointers to also store that metadata for extended colors. Rather than using a
union, we encode the pointer / inline color into a uint64_t, and use the extra bits
for the flags we need. Currently we only use 6, so there is quite a bit more that
could be used here.
Finally, the color serialization code has been updated to check for the new bit,
called UseColorFunctionSerialization, and to serialize using color() notation
if it is set.
We are currently only taking advantage of this for differentiating between lab(...)
and color(lab ...), but in the future we should be able to also optimize color(srgb ...)
values that can be represented fully by SRGBA<uint8_t>.
Since we can now add flags for extended colors, the semantic bit is also now usable
for extended colors, though none currently exist.
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::parseColorFunctionForRGBTypes):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionForLabParameters):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionForXYZParameters):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionParameters):
- platform/graphics/Color.cpp:
(WebCore::Color::Color):
(WebCore::Color::operator=):
(WebCore::Color::colorWithAlpha const):
(WebCore::Color::semanticColor const):
- platform/graphics/Color.h:
(WebCore::Color::isHashTableDeletedValue const):
(WebCore::Color::Color):
(WebCore::Color::toAllFlags):
(WebCore::Color::setColor):
(WebCore::Color::setExtendedColor):
(WebCore::operator==):
(WebCore::extendedColorsEqual):
(WebCore::extendedColorsEqualIgnoringSemanticColor):
(WebCore::equalIgnoringSemanticColor):
(WebCore::Color::~Color):
(WebCore::Color::hash const):
(WebCore::Color::isValid const):
(WebCore::Color::isSemantic const):
(WebCore::Color::usesColorFunctionSerialization const):
(WebCore::Color::flags const):
(WebCore::Color::isExtended const):
(WebCore::Color::isInline const):
(WebCore::Color::asExtended const):
(WebCore::Color::asExtendedRef const):
(WebCore::Color::asInline const):
(WebCore::Color::asPackedInline const):
(WebCore::Color::encodedFlags):
(WebCore::Color::encodedInlineColor):
(WebCore::Color::encodedPackedInlineColor):
(WebCore::Color::encodedExtendedColor):
(WebCore::Color::decodedFlags):
(WebCore::Color::decodedInlineColor):
(WebCore::Color::decodedPackedInlineColor):
(WebCore::Color::decodedExtendedColor):
(WebCore::Color::setInvalid):
(WebCore::Color::encode const):
(WebCore::Color::decode):
(WebCore::Color::tagAsSemantic): Deleted.
(WebCore::Color::tagAsValid): Deleted.
- platform/graphics/ColorBlending.cpp:
(WebCore::blendWithWhite):
- platform/graphics/ColorSerialization.cpp:
(WebCore::serializationForCSS):
(WebCore::serializationForHTML):
(WebCore::serializationForRenderTreeAsText):
(WebCore::serializationUsingColorFunction):
- platform/graphics/cg/ColorCG.cpp:
(WebCore::Color::Color):
- platform/graphics/mac/ColorMac.mm:
(WebCore::semanticColorFromNSColor):
- rendering/RenderThemeIOS.mm:
(WebCore::systemColorFromCSSValueIDSelector):
(WebCore::systemColorFromCSSValueID):
- rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::systemColor const):
LayoutTests:
- fast/css/parsing-lab-colors-expected.txt:
- fast/css/parsing-lab-colors.html:
Update test and results for new serialization of color(lab ...).
- 4:38 PM Changeset in webkit [273210] by
-
- 3 edits in trunk/Source/WebCore
Fix the build when TREE_DEBUGGING is enabled in release builds
https://bugs.webkit.org/show_bug.cgi?id=222238
Reviewed by Zalan Bujtas.
FloatingObjects logging needs to use ENABLE(TREE_DEBUGGING) not #ifndef NDEBUG.
- rendering/FloatingObjects.cpp:
- rendering/FloatingObjects.h:
- 3:17 PM Changeset in webkit [273209] by
-
- 32 edits in trunk
PCM: Store and report source unlinkable tokens
https://bugs.webkit.org/show_bug.cgi?id=222208
<rdar://problem/73582032>
Reviewed by John Wilander.
Source/WebCore:
This patch hooks up the network process with the PCM fraud prevention feature to
enable the generation, storing and reporting the source unlinkable token.
Existing tests updated.
- loader/PrivateClickMeasurement.h:
(WebCore::PrivateClickMeasurement::setSourceSecretTokenValue):
Adds infrastructure to mock the crypto operations such that layout tests can be
conducted without the server side crypto support.
- loader/PrivateClickMeasurement.cpp:
(WebCore::PrivateClickMeasurement::attributionReportJSON const):
(WebCore::PrivateClickMeasurement::tokenSignatureJSON const):
(WebCore::PrivateClickMeasurement::setSourceUnlinkableToken):
(WebCore::PrivateClickMeasurement::tokenSignatureJSON): Deleted.
- loader/PrivateClickMeasurement.h:
(WebCore::PrivateClickMeasurement::sourceUnlinkableToken const):
- loader/cocoa/PrivateClickMeasurementCocoa.mm:
(WebCore::PrivateClickMeasurement::calculateAndUpdateSourceSecretToken):
(WebCore::PrivateClickMeasurement::calculateAndUpdateSourceUnlinkableToken):
(WebCore::PrivateClickMeasurement::sourceSecretToken): Deleted.
(WebCore::PrivateClickMeasurement::calculateSourceUnlinkableToken): Deleted.
Update interfaces to service the use cases in the Networking process better.
Source/WebKit:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::setFraudPreventionValuesForTesting):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::setFraudPreventionValuesForTesting):
- NetworkProcess/NetworkSession.h:
- NetworkProcess/PrivateClickMeasurementManager.cpp:
(WebKit::PrivateClickMeasurementManager::storeUnattributed):
(WebKit::PrivateClickMeasurementManager::getSignedSecretToken):
(WebKit::PrivateClickMeasurementManager::setFraudPreventionValuesForTesting):
- NetworkProcess/PrivateClickMeasurementManager.h:
- UIProcess/API/C/WKPage.cpp:
(WKPageSetFraudPreventionValuesForTesting):
- UIProcess/API/C/WKPagePrivate.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::markPrivateClickMeasurementsAsExpiredForTesting):
(WebKit::WebPageProxy::setFraudPreventionValuesForTesting):
- UIProcess/WebPageProxy.h:
Adds infrastructure to mock the crypto operations such that layout tests can be
conducted without the server side crypto support.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::ResourceLoadStatisticsDatabaseStore::buildPrivateClickMeasurementFromDatabase):
(WebKit::ResourceLoadStatisticsDatabaseStore::insertPrivateClickMeasurement):
- NetworkProcess/PrivateClickMeasurementManager.cpp:
(WebKit::PrivateClickMeasurementManager::storeUnattributed):
(WebKit::PrivateClickMeasurementManager::getTokenPublicKey):
(WebKit::PrivateClickMeasurementManager::getSignedSecretToken):
(WebKit::PrivateClickMeasurementManager::fireConversionRequest):
(WebKit::PrivateClickMeasurementManager::fireConversionRequestImpl):
- NetworkProcess/PrivateClickMeasurementManager.h:
Connects the fraud prevention feature in PCM to generate, store, and report the unlinkable token.
Tools:
- TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp:
(TestWebKitAPI::TEST):
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setFraudPreventionValuesForTesting):
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::setFraudPreventionValuesForTesting):
- WebKitTestRunner/TestController.h:
- WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
Rebases some test cases.
LayoutTests:
- http/tests/privateClickMeasurement/expired-attribution-report-gets-sent-on-session-start-expected.txt:
- http/tests/privateClickMeasurement/resources/signToken.php:
- http/tests/privateClickMeasurement/send-attribution-conversion-request-expected.txt:
- http/tests/privateClickMeasurement/store-private-click-measurement-with-source-nonce-expected.txt:
- http/tests/privateClickMeasurement/store-private-click-measurement-with-source-nonce.html:
Modifies the test to mock the whole round trip.
- 3:01 PM Changeset in webkit [273208] by
-
- 2 edits in trunk/Source/WTF
PCM: Turn the fraud prevention on by default
https://bugs.webkit.org/show_bug.cgi?id=222224
<rdar://problem/73588234>
Reviewed by John Wilander.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- 2:43 PM Changeset in webkit [273207] by
-
- 2 edits in trunk/Source/WTF
Make PaintTimingEnabled default to false
https://bugs.webkit.org/show_bug.cgi?id=222186
Reviewed by Simon Fraser.
PaintTiming causes about 4% regression in the MotionMark sub-tests:
Multiply and Focus. Do disable it for now.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- 2:40 PM Changeset in webkit [273206] by
-
- 6 edits in trunk
"min-content" & "max-content" keywords should behave as initial value in block axis (but WebKit improperly treats them as the content-size)
https://bugs.webkit.org/show_bug.cgi?id=191390
Patch by Rob Buis <rbuis@igalia.com> on 2021-02-20
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Update improved test expectation.
- web-platform-tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/min-inline-size-expected.txt:
Source/WebCore:
"min-content" & "max-content" should use automatic size in block direction [1].
This behavior matches Gecko and Blink.
[1] https://drafts.csswg.org/css-sizing-3/#valdef-width-min-content
- rendering/RenderBox.cpp:
(WebCore::RenderBox::constrainLogicalHeightByMinMax const):
LayoutTests:
Adapt test to new behavior.
- fast/css-intrinsic-dimensions/height-expected.html: Removed.
- fast/css-intrinsic-dimensions/height.html: Removed.
- 2:22 PM Changeset in webkit [273205] by
-
- 3 edits in trunk/Source/WebCore
Unreviewed. GLib buildfix after r273203
- bindings/js/WorkerModuleScriptLoader.h:
- bindings/js/WorkerScriptFetcher.h:
- 12:33 PM Changeset in webkit [273204] by
-
- 42 edits4 copies14 adds in trunk
WebGL GPU process IPC should use shared memory for asynchronous messages
https://bugs.webkit.org/show_bug.cgi?id=219641
<rdar://problem/72340651>
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-02-20
Reviewed by Geoff Garen.
Source/WebKit:
Implement a concept of a message buffer. This is a similar concept as
"command buffer" or "display list" in some graphics APIs. Messages
can be added to the buffer by a client and then played back by a
server.
Current implementation adds a specific pseudo-infinite,
semi-duplex message buffer type IPC::StreamConnectionBuffer. This
is a buffer that can be attached to stream connection, an object
that can deliver IPC messages either through the message buffer
or through normal IPC::Connection. The stream connection is
implemented as IPC::StreamClientConnection and IPC::StreamServerConnection.
The connection has server and client distinction, similar to
IPC::Connection. Unlike IPC::Connection, a stream connection is asymmetric
in features: the client can send messages and receive replies, where
as the server can receive messages and send replies.
Messages received through IPC::StreamServerConnection can be
processed by StreamConnectionWorkQueue.
Currently asynchronous messages are added to the stream. Synchronous messages
and their replies are dispatched through normal IPC.
WebGL is implemented by having one StreamConnectionWorkQueue for all WebGL
in the browser. Currently each web process WebGL context in has one
StreamClientConnection attached to one 2mb StreamConnectionBuffer.
Later on, there will be only one WebGL stream connection and connection
buffer shared between all contexts in particular thread in Web process.
The implementation is "optimized" for the later on case. Due to single-
process nature of each page, it does not make much sense to have buffer
per context. However, it is anticipated that many of the successive calls
are to same context. The SHM message format implements an optimization
where the destination id is maintained as part of the stream connection
state.
In GPU process side, all WebGL is processed in one task queue,
"RemoteGraphicsContextGL task queue". It will process up to 1000 commands
per connection per iteration.
Implemented as follows:
Sender shares the shared memory area with the destination when creating
the destination.
If the message fits to the stream shared memory area, write it there.
Otherwise send it via normal IPC as out of line message.
Messages to the destination arrive as before, in order. For each out of line
message, an entry is pushed to the stream. Receiver will stop processing the
stream and processing will continue once the out-of-line
message has been processed.
Sender can write messages to the stream simultaneous to the receiver reading
the messages. This is implemented as a ring buffer with atomic sender and receiver
pointers.
Stream connection processing is implemented as a shared semaphore. This semaphore
is notified if the receiver is waiting on it.
Performance impact (iMac Pro):
- MotionMark triangles: 300 points -> 4000 points (~7000 points no-GPUP)
- WebGL samples Aquarium: 1000 fish ~60fps -> 5000 fish ~60fps (~5000 fish with no-GPUP)
No new tests, tested by existing tests.
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::createGraphicsContextGL):
- GPUProcess/GPUConnectionToWebProcess.h:
- GPUProcess/GPUConnectionToWebProcess.messages.in:
- GPUProcess/graphics/RemoteGraphicsContextGL.cpp:
(WebKit::remoteGraphicsContextGLStreamWorkQueue):
(WebKit::RemoteGraphicsContextGL::create):
(WebKit::RemoteGraphicsContextGL::RemoteGraphicsContextGL):
(WebKit::RemoteGraphicsContextGL::~RemoteGraphicsContextGL):
(WebKit::RemoteGraphicsContextGL::initialize):
(WebKit::RemoteGraphicsContextGL::connectWebProcessConnection):
(WebKit::RemoteGraphicsContextGL::disconnectWebProcessConnection):
(WebKit::RemoteGraphicsContextGL::workQueueInitialize):
(WebKit::RemoteGraphicsContextGL::workQueueUninitialize):
Initialize the OpenGL context in the work queue, since OpenGL
has various limitations wrt thread mobility.
(WebKit::RemoteGraphicsContextGL::forceContextLost):
(WebKit::RemoteGraphicsContextGL::dispatchContextChangedNotification):
- GPUProcess/graphics/RemoteGraphicsContextGL.h:
(WebKit::RemoteGraphicsContextGL::platformWorkQueueInitialize):
(WebKit::RemoteGraphicsContextGL::send const):
- GPUProcess/graphics/RemoteGraphicsContextGL.messages.in:
- GPUProcess/graphics/RemoteGraphicsContextGLCocoa.cpp:
(WebKit::RemoteGraphicsContextGL::create):
(WebKit::RemoteGraphicsContextGLCocoa::RemoteGraphicsContextGLCocoa):
(WebKit::RemoteGraphicsContextGLCocoa::platformWorkQueueInitialize):
- NetworkProcess/webrtc/NetworkRTCProvider.h:
- Platform/IPC/ArgumentCoder.h:
- Platform/IPC/ArgumentCoders.cpp:
- Platform/IPC/ArgumentCoders.h:
Make it possible to use multiple different Encoder classes to encode
the IPC data.
- Platform/IPC/Connection.cpp:
(IPC::Connection::processIncomingMessage):
(IPC::Connection::dispatchDidReceiveInvalidMessage):
- Platform/IPC/Connection.h:
Add possibility for the stream decoding logic to send the didReceiveInvalidMessage
notification to the connection client.
- Platform/IPC/Decoder.cpp:
(IPC::Decoder::Decoder):
(IPC::m_bufferDeallocator):
(IPC::m_destinationID):
- Platform/IPC/Decoder.h:
Add a constructor for Decoder for constructing a decoder in place in
the stream buffer.
- Platform/IPC/HandleMessage.h:
(IPC::handleMessageSynchronous):
Adds a stream-specific handleMessageSynchronous.
The old ones are unneccessarily complex, as they need redundant calls through redundant
generated send functions.
The old ones need the reply encoder passed in, which is redundant and problematic
for the upcoming case where the stream messaging will mainly reply through the stream itself,
constructing the IPC::StreamConnectionEncoder instead of normal IPC::Encoder.
- Platform/IPC/StreamClientConnection.cpp: Copied from Source/WebKit/Platform/IPC/cocoa/MachPort.h.
(IPC::StreamClientConnection::StreamClientConnection):
(IPC::StreamClientConnection::setWakeUpSemaphore):
Add function to set the connection receive side wakeup semaphore.
Currently the semaphore is the semaphore that StreamConnectionWorkQueue
waits on. All streams processed by the same work queue will receive the same
semaphore and will notify it when they have written new data.
(IPC::StreamClientConnection::wakeUpReceiver):
- Platform/IPC/StreamClientConnection.h: Added.
(IPC::StreamClientConnection::send):
(IPC::StreamClientConnection::sendSync):
(IPC::StreamClientConnection::trySendDestinationIDIfNeeded):
(IPC::StreamClientConnection::sendProcessOutOfStreamMessage):
(IPC::StreamClientConnection::tryAcquire):
(IPC::StreamClientConnection::release):
(IPC::StreamClientConnection::alignedSpan):
(IPC::StreamClientConnection::size):
(IPC::StreamClientConnection::clampedLimit const):
Add the implementation for sending data through the shared memory.
- Platform/IPC/StreamConnectionBuffer.cpp: Added.
(IPC::createMemory):
(IPC::StreamConnectionBuffer::StreamConnectionBuffer):
(IPC::StreamConnectionBuffer::operator=):
(IPC::StreamConnectionBuffer::encode const):
(IPC::StreamConnectionBuffer::decode):
- Platform/IPC/StreamConnectionBuffer.h: Added.
(IPC::StreamConnectionBuffer::wrapOffset const):
(IPC::StreamConnectionBuffer::alignOffset const):
(IPC::StreamConnectionBuffer::senderOffset):
(IPC::StreamConnectionBuffer::receiverOffset):
(IPC::StreamConnectionBuffer::data const):
(IPC::StreamConnectionBuffer::dataSize const):
(IPC::StreamConnectionBuffer::senderWaitSemaphore):
(IPC::StreamConnectionBuffer::header const):
(IPC::StreamConnectionBuffer::headerSize):
Add the common implementation for the shared memory ring buffer.
This is the common implementation used by both the sender side
as well as the receiver side.
Due to the selection of how the size is marked up, the
common implementation does not contain all the non-trivial code.
The "algorithm" uses a "hole indicator" to differentiate between
cases of "buffer is empty" and "buffer is full". The other
alternative could be better and maybe explored later.
- Platform/IPC/StreamConnectionEncoder.h: Added.
- Platform/IPC/StreamConnectionWorkQueue.cpp: Added.
(IPC::StreamConnectionWorkQueue::StreamConnectionWorkQueue):
(IPC::StreamConnectionWorkQueue::dispatch):
(IPC::StreamConnectionWorkQueue::addStreamConnection):
(IPC::StreamConnectionWorkQueue::removeStreamConnection):
(IPC::StreamConnectionWorkQueue::stop):
(IPC::StreamConnectionWorkQueue::wakeUp):
(IPC::StreamConnectionWorkQueue::wakeUpSemaphore):
(IPC::StreamConnectionWorkQueue::wakeUpProcessingThread):
(IPC::StreamConnectionWorkQueue::processStreams):
Work queue contains multiple StreamServerConnection instances.
For each iteration of the work queue thread, it will process
1000 items from each connection. If none of the connections contain
work, the queue will sleep on the work queue semaphore.
The senders will send through StreamClientConnection which
will wake up the work queue by signaling the semaphore.
- Platform/IPC/StreamConnectionWorkQueue.h: Copied from Source/WebKit/Platform/IPC/cocoa/MachPort.h.
- Platform/IPC/StreamServerConnection.cpp: Added.
(IPC::StreamServerConnectionBase::StreamServerConnectionBase):
(IPC::StreamServerConnectionBase::startReceivingMessagesImpl):
(IPC::StreamServerConnectionBase::stopReceivingMessagesImpl):
(IPC::StreamServerConnectionBase::enqueueMessage):
(IPC::StreamServerConnectionBase::tryAquire):
(IPC::StreamServerConnectionBase::release):
(IPC::StreamServerConnectionBase::alignedSpan):
(IPC::StreamServerConnectionBase::size):
(IPC::StreamServerConnectionBase::clampedLimit const):
- Platform/IPC/StreamServerConnection.h: Added.
(IPC::StreamServerConnectionBase::connection):
(IPC::StreamServerConnectionBase::wrapOffset const):
(IPC::StreamServerConnectionBase::alignOffset const):
(IPC::StreamServerConnectionBase::sharedSenderOffset):
(IPC::StreamServerConnectionBase::sharedReceiverOffset):
(IPC::StreamServerConnectionBase::data const):
(IPC::StreamServerConnectionBase::dataSize const):
(IPC::StreamServerConnectionBase::sendSyncReply):
(IPC::StreamServerConnection<Receiver>::startReceivingMessages):
(IPC::StreamServerConnection<Receiver>::stopReceivingMessages):
(IPC::StreamServerConnection<Receiver>::dispatchStreamMessages):
(IPC::StreamServerConnection<Receiver>::processSetStreamDestinationID):
(IPC::StreamServerConnection<Receiver>::dispatchStreamMessage):
(IPC::StreamServerConnection<Receiver>::dispatchOutOfStreamMessage):
StreamServerConnection will process the message buffer and dispatch
messages based on the buffer contents. The class is a template so
that the message data decode switch (generated by the normal IPC
generator) is perhaps inlined to the message unpack loop.
- Platform/IPC/cocoa/MachPort.h:
- Scripts/webkit/messages.py:
- Scripts/webkit/messages_unittest.py:
Implements a 'Stream' attribute for the message receiver. When marked as
'Stream', the receiver message handler is didReceiveStreamMessage and it
will be called for all messages, stream or normal IPC, sync or async.
- Scripts/webkit/model.py:
Adds IPC control message ProcessOutOfStreamMessage that is acted on if
it is part of the stream messages. It means that the stream processing
should stop until one normal IPC message, sync or non-synch, should be
processed.
Adds IPC control message SetStreamDestinationID that is acted on if it
is part of the stream messages. It will set the destination ID for all
the subsequent stream messages, until another SetStreamDestinationID
message is seen.
- Scripts/webkit/tests/Makefile:
- Scripts/webkit/tests/MessageNames.cpp:
(IPC::description):
(IPC::receiverName):
(IPC::isValidMessageName):
- Scripts/webkit/tests/MessageNames.h:
- Scripts/webkit/tests/TestWithStream.messages.in: Copied from Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.messages.in.
- Scripts/webkit/tests/TestWithStreamBuffer.messages.in: Copied from Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.messages.in.
- Scripts/webkit/tests/TestWithStreamBufferMessageReceiver.cpp: Added.
(WebKit::TestWithStreamBuffer::didReceiveMessage):
- Scripts/webkit/tests/TestWithStreamBufferMessages.h: Added.
(Messages::TestWithStreamBuffer::messageReceiverName):
(Messages::TestWithStreamBuffer::SendStreamBuffer::name):
(Messages::TestWithStreamBuffer::SendStreamBuffer::SendStreamBuffer):
(Messages::TestWithStreamBuffer::SendStreamBuffer::arguments const):
- Scripts/webkit/tests/TestWithStreamBufferMessagesReplies.h: Added.
- Scripts/webkit/tests/TestWithStreamMessageReceiver.cpp: Added.
(WebKit::TestWithStream::didReceiveStreamMessage):
- Scripts/webkit/tests/TestWithStreamMessages.h: Added.
(Messages::TestWithStream::messageReceiverName):
(Messages::TestWithStream::SendString::name):
(Messages::TestWithStream::SendString::SendString):
(Messages::TestWithStream::SendString::arguments const):
(Messages::TestWithStream::SendStringSynchronized::name):
(Messages::TestWithStream::SendStringSynchronized::SendStringSynchronized):
(Messages::TestWithStream::SendStringSynchronized::arguments const):
- Scripts/webkit/tests/TestWithStreamMessagesReplies.h: Added.
- Sources.txt:
- UIProcess/Downloads/DownloadProxy.h:
- UIProcess/ProvisionalPageProxy.cpp:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:
(WebKit::RemoteGraphicsContextGLProxy::RemoteGraphicsContextGLProxy):
(WebKit::RemoteGraphicsContextGLProxy::wasCreated):
Send the work queue wakeup semaphore as a result of the context creation.
- Platform/IPC/ScopedActiveMessageReceiveQueue.h: Added.
(IPC::ScopedActiveMessageReceiveQueue::ScopedActiveMessageReceiveQueue):
(IPC::ScopedActiveMessageReceiveQueue::operator=):
(IPC::ScopedActiveMessageReceiveQueue::~ScopedActiveMessageReceiveQueue):
(IPC::ScopedActiveMessageReceiveQueue::reset):
(IPC::ScopedActiveMessageReceiveQueue::get const):
(IPC::ScopedActiveMessageReceiveQueue::stopListeningForIPCAndRelease):
Add a holder to replace previous RemoteRenderingBackendWrapper.
Now other classes can be held similarly.
- WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:
- WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.messages.in:
- WebProcess/Network/webrtc/LibWebRTCNetwork.h:
Tools:
Mark RemoteGraphicsContextGL message receiver as "Stream",
a new variant of receiver.
- Scripts/generate-gpup-webgl:
LayoutTests:
Mark few tests as not timing out now that the implementation is not so slow.
- gpu-process/TestExpectations:
- 12:28 PM Changeset in webkit [273203] by
-
- 108 edits2 copies1 move2 adds in trunk
JS Modules in Workers
https://bugs.webkit.org/show_bug.cgi?id=164860
Reviewed by Saam Barati.
LayoutTests/imported/w3c:
Some of worklet failures in WPT is because,
- Previously, worklet does not support module. These tests are passing incorrectly when modules are not supported. Now, modules are supported, and some edge features are missing, so start failing
- WPT is using www1.localhost in some tests (CSP tests), and this is not supported in WebKit's WPT testing. So failing incorrectly.
- web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/non-object.tentative.any.worker-expected.txt:
- web-platform-tests/html/semantics/scripting-1/the-script-element/microtasks/checkpoint-after-workerglobalscope-onerror-module-expected.txt:
- web-platform-tests/html/semantics/scripting-1/the-script-element/module/dynamic-import/alpha/base-url-worker-importScripts-expected.txt:
- web-platform-tests/html/semantics/scripting-1/the-script-element/module/dynamic-import/alpha/base-url-worker.sub-expected.txt:
- web-platform-tests/html/semantics/scripting-1/the-script-element/module/evaluation-order-1-nothrow-worker-expected.txt:
- web-platform-tests/html/semantics/scripting-1/the-script-element/module/evaluation-order-1-worker-expected.txt:
- web-platform-tests/html/semantics/scripting-1/the-script-element/module/evaluation-order-2-import-worker-expected.txt:
- web-platform-tests/html/semantics/scripting-1/the-script-element/module/evaluation-order-3-dynamic-worker-expected.txt:
- web-platform-tests/service-workers/service-worker/import-module-scripts.https-expected.txt:
- web-platform-tests/workers/baseurl/alpha/import-in-moduleworker-expected.txt:
- web-platform-tests/workers/baseurl/alpha/importScripts-in-worker-expected.txt:
- web-platform-tests/workers/baseurl/alpha/xhr-in-moduleworker-expected.txt:
- web-platform-tests/workers/baseurl/alpha/xhr-in-worker-expected.txt:
- web-platform-tests/workers/constructors/Worker/same-origin-expected.txt:
- web-platform-tests/workers/interfaces/WorkerGlobalScope/location/redirect-expected.txt:
- web-platform-tests/workers/interfaces/WorkerGlobalScope/location/redirect-module-expected.txt:
- web-platform-tests/workers/modules/dedicated-worker-import-blob-url.any-expected.txt:
- web-platform-tests/workers/modules/dedicated-worker-import-csp-expected.txt:
- web-platform-tests/workers/modules/dedicated-worker-import-failure-expected.txt:
- web-platform-tests/workers/modules/dedicated-worker-import-meta-expected.txt:
- web-platform-tests/workers/modules/dedicated-worker-import-meta.html:
- web-platform-tests/workers/modules/dedicated-worker-import-referrer-expected.txt:
- web-platform-tests/workers/modules/dedicated-worker-import.any-expected.txt:
- web-platform-tests/workers/modules/dedicated-worker-options-type-expected.txt:
- web-platform-tests/workers/modules/dedicated-worker-parse-error-failure-expected.txt:
- web-platform-tests/workers/name-property-expected.txt:
- web-platform-tests/worklets/audio-worklet-credentials.https-expected.txt:
- web-platform-tests/worklets/audio-worklet-csp.https-expected.txt:
- web-platform-tests/worklets/audio-worklet-import.https-expected.txt:
- web-platform-tests/worklets/audio-worklet-referrer.https-expected.txt:
- web-platform-tests/xhr/open-url-redirected-worker-origin-expected.txt:
Source/JavaScriptCore:
Add error information to extract this in WebCore's module loader.
Currently, we are using Promise pipeline, and this makes it a bit difficult to extract error information.
This error information attached in this patch allows us to extract SyntaxError in WebCore, and throwing
JS SyntaxError instead of AbortError.
We are planning to update our module pipieline not using Promises in the future. The current design derived
from the original module loader pipeline where using Promises is critical. But now, that proposal was abandoned,
so we can just simplify the module loader.
- runtime/AggregateError.cpp:
(JSC::AggregateError::AggregateError):
- runtime/Error.cpp:
(JSC::createError):
(JSC::createEvalError):
(JSC::createRangeError):
(JSC::createReferenceError):
(JSC::createSyntaxError):
(JSC::createTypeError):
(JSC::createURIError):
(JSC::createGetterTypeError):
(JSC::throwSyntaxError):
- runtime/Error.h:
- runtime/ErrorConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/ErrorInstance.cpp:
(JSC::ErrorInstance::ErrorInstance):
(JSC::ErrorInstance::create):
(JSC::ErrorInstance::sanitizedMessageString):
(JSC::ErrorInstance::sanitizedNameString):
(JSC::ErrorInstance::sanitizedToString):
- runtime/ErrorInstance.h:
(JSC::ErrorInstance::create):
(JSC::ErrorInstance::errorType const):
- runtime/JSGlobalObjectFunctions.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/NativeErrorConstructor.cpp:
(JSC::NativeErrorConstructor<errorType>::constructImpl):
(JSC::NativeErrorConstructor<errorType>::callImpl):
- runtime/NullSetterFunction.cpp:
(JSC::NullSetterFunctionInternal::JSC_DEFINE_HOST_FUNCTION):
- wasm/js/JSWebAssemblyCompileError.cpp:
(JSC::JSWebAssemblyCompileError::JSWebAssemblyCompileError):
- wasm/js/JSWebAssemblyLinkError.cpp:
(JSC::JSWebAssemblyLinkError::JSWebAssemblyLinkError):
- wasm/js/JSWebAssemblyRuntimeError.cpp:
(JSC::JSWebAssemblyRuntimeError::JSWebAssemblyRuntimeError):
- wasm/js/WebAssemblyCompileErrorConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- wasm/js/WebAssemblyLinkErrorConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- wasm/js/WebAssemblyRuntimeErrorConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
Source/WebCore:
This patch implements JS modules in Workers and Worklets. We are not supporting modules in ServiceWorkers' initialization yet.
But service-worker can import modules via JSimport()
.
The worker can be executed as a module if we pass,
type: "module"
to worker options. Worklet is executed as modules by default.
- In Worker, we first fetch the initial code. And then, analyze the dependencies and load subsequent modules. We iterate run-loop to load all the dependent modules in the module loader. At that time, we annotate run-loop tasks with special taskMode to iterate tasks with this taskMode. This prevents us from discarding different tasks in this run-loop driving phase. (e.g. postMessage can be called from the main thread while loading module graph, in that case, we should not discard this task.)
- In Worklet, we just request module loading to ScriptModuleLoader, and run it after loading module graph. This is OK since worklet thread is already running. So we can just request modules and worklet thread automatically drives module loading via run-loop.
- Headers.cmake:
- Modules/webaudio/AudioWorkletGlobalScope.h:
(WebCore::AudioWorkletGlobalScope::currentFrame const): Deleted.
(WebCore::AudioWorkletGlobalScope::sampleRate const): Deleted.
(WebCore::AudioWorkletGlobalScope::currentTime const): Deleted.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/CachedModuleScriptLoader.cpp:
(WebCore::CachedModuleScriptLoader::create):
(WebCore::CachedModuleScriptLoader::CachedModuleScriptLoader):
(WebCore::CachedModuleScriptLoader::load):
(WebCore::CachedModuleScriptLoader::notifyFinished):
- bindings/js/CachedModuleScriptLoader.h:
- bindings/js/CachedScriptFetcher.cpp:
- bindings/js/JSDOMExceptionHandling.cpp:
(WebCore::retrieveErrorMessageWithoutName):
(WebCore::createDOMException):
- bindings/js/JSDOMExceptionHandling.h:
- bindings/js/JSDOMGlobalObject.cpp:
(WebCore::scriptModuleLoader):
(WebCore::JSDOMGlobalObject::moduleLoaderResolve):
(WebCore::JSDOMGlobalObject::moduleLoaderFetch):
(WebCore::JSDOMGlobalObject::moduleLoaderEvaluate):
(WebCore::JSDOMGlobalObject::moduleLoaderImportModule):
(WebCore::JSDOMGlobalObject::moduleLoaderCreateImportMetaProperties):
- bindings/js/JSDOMGlobalObject.h:
- bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::moduleLoaderResolve): Deleted.
(WebCore::JSDOMWindowBase::moduleLoaderFetch): Deleted.
(WebCore::JSDOMWindowBase::moduleLoaderEvaluate): Deleted.
(WebCore::JSDOMWindowBase::moduleLoaderImportModule): Deleted.
(WebCore::JSDOMWindowBase::moduleLoaderCreateImportMetaProperties): Deleted.
- bindings/js/JSDOMWindowBase.h:
- bindings/js/JSWorkerGlobalScopeBase.cpp:
- bindings/js/JSWorkletGlobalScopeBase.cpp:
- bindings/js/ModuleScriptLoader.h: Copied from Source/WebCore/dom/ModuleFetchParameters.h.
(WebCore::ModuleScriptLoader::clearClient):
(WebCore::ModuleScriptLoader::scriptFetcher):
(WebCore::ModuleScriptLoader::parameters):
(WebCore::ModuleScriptLoader::ModuleScriptLoader):
- bindings/js/ModuleScriptLoaderClient.h: Renamed from Source/WebCore/bindings/js/CachedModuleScriptLoaderClient.h.
- bindings/js/ScriptModuleLoader.cpp:
(WebCore::ScriptModuleLoader::ScriptModuleLoader):
(WebCore::resolveModuleSpecifier):
(WebCore::ScriptModuleLoader::resolve):
(WebCore::ScriptModuleLoader::fetch):
(WebCore::ScriptModuleLoader::moduleURL):
(WebCore::ScriptModuleLoader::responseURLFromRequestURL):
(WebCore::ScriptModuleLoader::evaluate):
(WebCore::ScriptModuleLoader::importModule):
(WebCore::ScriptModuleLoader::notifyFinished):
- bindings/js/ScriptModuleLoader.h:
- bindings/js/ScriptSourceCode.h:
(WebCore::ScriptSourceCode::ScriptSourceCode):
- bindings/js/WorkerModuleScriptLoader.cpp: Added.
(WebCore::WorkerModuleScriptLoader::create):
(WebCore::WorkerModuleScriptLoader::WorkerModuleScriptLoader):
(WebCore::WorkerModuleScriptLoader::~WorkerModuleScriptLoader):
(WebCore::WorkerModuleScriptLoader::load):
(WebCore::WorkerModuleScriptLoader::referrerPolicy):
(WebCore::WorkerModuleScriptLoader::notifyFinished):
(WebCore::WorkerModuleScriptLoader::taskMode):
- bindings/js/WorkerModuleScriptLoader.h: Copied from Source/WebCore/dom/ModuleFetchParameters.h.
- bindings/js/WorkerScriptFetcher.h: Added.
- dom/Document.cpp:
- dom/ExceptionCode.h:
- dom/LoadableModuleScript.cpp:
(WebCore::LoadableModuleScript::LoadableModuleScript):
(WebCore::LoadableModuleScript::load): Deleted.
- dom/LoadableModuleScript.h:
- dom/ModuleFetchParameters.h:
(WebCore::ModuleFetchParameters::create):
(WebCore::ModuleFetchParameters::isTopLevelModule const):
(WebCore::ModuleFetchParameters::ModuleFetchParameters):
- dom/ScriptElement.cpp:
(WebCore::ScriptElement::requestModuleScript):
- loader/ThreadableLoader.cpp:
(WebCore::ThreadableLoader::create):
- loader/ThreadableLoader.h:
(WebCore::ThreadableLoader::create):
- workers/DedicatedWorkerGlobalScope.h:
- workers/Worker.cpp:
(WebCore::Worker::Worker):
(WebCore::Worker::create):
(WebCore::Worker::notifyFinished):
- workers/Worker.h:
- workers/Worker.idl:
- workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::WorkerGlobalScope):
(WebCore::WorkerGlobalScope::importScripts):
- workers/WorkerGlobalScope.h:
(WebCore::WorkerGlobalScope::credentials const):
- workers/WorkerGlobalScopeProxy.h:
- workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::startWorkerGlobalScope):
- workers/WorkerMessagingProxy.h:
- workers/WorkerOrWorkletGlobalScope.cpp:
(WebCore::WorkerOrWorkletGlobalScope::WorkerOrWorkletGlobalScope):
- workers/WorkerOrWorkletGlobalScope.h:
(WebCore::WorkerOrWorkletGlobalScope::moduleLoader):
- workers/WorkerOrWorkletScriptController.cpp:
(WebCore::jsValueToModuleKey):
(WebCore::WorkerOrWorkletScriptController::evaluateModule):
(WebCore::WorkerOrWorkletScriptController::loadModuleSynchronously):
(WebCore::WorkerOrWorkletScriptController::linkAndEvaluateModule):
(WebCore::WorkerOrWorkletScriptController::loadAndEvaluateModule):
- workers/WorkerOrWorkletScriptController.h:
- workers/WorkerScriptLoader.cpp:
(WebCore::WorkerScriptLoader::loadAsynchronously):
(WebCore::WorkerScriptLoader::didReceiveResponse):
- workers/WorkerScriptLoader.h:
(WebCore::WorkerScriptLoader::responseSource const):
(WebCore::WorkerScriptLoader::isRedirected const):
- workers/WorkerThread.cpp:
(WebCore::WorkerParameters::isolatedCopy const):
(WebCore::WorkerThread::evaluateScriptIfNecessary):
- workers/WorkerThread.h:
- workers/WorkerType.h:
- workers/service/ServiceWorkerContainer.h:
- workers/service/ServiceWorkerGlobalScope.h:
- workers/service/ServiceWorkerJob.cpp:
(WebCore::ServiceWorkerJob::fetchScriptWithContext):
- workers/service/ServiceWorkerRegistrationOptions.h:
- workers/service/context/ServiceWorkerThread.cpp:
(WebCore::ServiceWorkerThread::ServiceWorkerThread):
- workers/service/server/SWServerWorker.h:
- worklets/PaintWorkletGlobalScope.h:
(WebCore::PaintWorkletGlobalScope::paintDefinitionMap): Deleted.
(WebCore::PaintWorkletGlobalScope::paintDefinitionLock): Deleted.
(WebCore::PaintWorkletGlobalScope::~PaintWorkletGlobalScope): Deleted.
- worklets/WorkletGlobalScope.cpp:
(WebCore::WorkletGlobalScope::fetchAndInvokeScript):
(WebCore::WorkletGlobalScope::processNextScriptFetchJobIfNeeded): Deleted.
(WebCore::WorkletGlobalScope::didReceiveResponse): Deleted.
(WebCore::WorkletGlobalScope::notifyFinished): Deleted.
(WebCore::WorkletGlobalScope::didCompleteScriptFetchJob): Deleted.
- worklets/WorkletGlobalScope.h:
LayoutTests:
- TestExpectations:
- http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-redirect-expected.txt:
- http/tests/subresource-integrity/sri-module-expected.txt:
- webaudio/audioworklet-addModule-failure-expected.txt:
- webaudio/worklet-crash-expected.txt:
- 10:17 AM Changeset in webkit [273202] by
-
- 5 edits in trunk
Unreviewed, reverting r273115.
Breaks autocorrect without the accompanying change in
rdar://problem/74211293
Reverted changeset:
"Unconditionally return information in _autofillContext SPI
when a field is focused"
https://bugs.webkit.org/show_bug.cgi?id=221828
https://commits.webkit.org/r273115
- 10:13 AM Changeset in webkit [273201] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, fix regression from r273194 that was spotted by Darin Adler after landing.
- Platform/cocoa/WKPaymentAuthorizationDelegate.mm:
(-[WKPaymentAuthorizationDelegate completePaymentMethodSelection:]):
(-[WKPaymentAuthorizationDelegate completeShippingContactSelection:]):
(-[WKPaymentAuthorizationDelegate completeShippingMethodSelection:]):
- 10:11 AM Changeset in webkit [273200] by
-
- 19 edits4 adds in trunk/Source/ThirdParty/ANGLE
Fix a number of functional regressions caused by enabling the Metal ANGLE backend by default.
https://bugs.webkit.org/show_bug.cgi?id=220895
<rdar://problem/73539537>
Patch by Kyle Piddington <Kyle Piddington> on 2021-02-19
Reviewed by Kenneth Russell.
Take two of this patch - this time with the new files FixTypeConstructors and NameEmbeddedUniformStructsMetal
Fixed webgl/1.0.3/conformance/context/context-hidden-alpha.html
MTL Translator direct fixes for webgl/1.0.3/conformance/glsl/constructors/glsl-construct-*vec2 tests, Plus fix for GL_VertexIndex
Fix EmitMetal crash for missing function textureRect.
Additional fixes for 73675990, shaders-with-invariance.html, shaders-with-uniform-structs.html, struct-specifiers-in-uniforms.html, framebuffer-object-attachment.html
Fixed clamping of array elements.
- ANGLE.xcodeproj/project.pbxproj:
- src/compiler/translator/TranslatorMetalDirect.cpp:
(sh::TranslatorMetalDirect::translateImpl):
- src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp:
(GenMetalTraverser::emitPostQualifier):
(GenMetalTraverser::visitBinary):
(GenMetalTraverser::BuildFuncToName):
- src/compiler/translator/TranslatorMetalDirect/FixTypeConstructors.cpp: Added.
(sh::FixTypeTraverser::FixTypeTraverser):
(sh::FixTypeConstructors):
- src/compiler/translator/TranslatorMetalDirect/FixTypeConstructors.h: Added.
- src/compiler/translator/TranslatorMetalDirect/NameEmbeddedUniformStructsMetal.cpp: Added.
(sh::NameEmbeddedStructUniformsMetal):
- src/compiler/translator/TranslatorMetalDirect/NameEmbeddedUniformStructsMetal.h: Added.
- src/compiler/translator/TranslatorMetalDirect/Pipeline.cpp:
(SaturateVectorOf):
- src/compiler/translator/TranslatorMetalDirect/ProgramPrelude.cpp:
(sh::ProgramPrelude::ProgramPrelude):
- src/compiler/translator/TranslatorMetalDirect/ReduceInterfaceBlocks.cpp:
(sh::Reducer::Reducer):
(sh::ReduceInterfaceBlocks):
- src/compiler/translator/TranslatorMetalDirect/ReduceInterfaceBlocks.h:
- src/compiler/translator/TranslatorMetalDirect/SeparateCompoundStructDeclarations.cpp:
- src/libANGLE/renderer/load_functions_table_autogen.cpp:
- src/libANGLE/renderer/metal/ContextMtl.mm:
(rx::ContextMtl::drawElementsImpl):
- src/libANGLE/renderer/metal/IOSurfaceSurfaceMtl.h:
- src/libANGLE/renderer/metal/IOSurfaceSurfaceMtl.mm:
(rx::IOSurfaceSurfaceMtl::IOSurfaceSurfaceMtl):
(rx::IOSurfaceSurfaceMtl::createBackingTexture):
- src/libANGLE/renderer/metal/RenderBufferMtl.mm:
(rx::RenderbufferMtl::setStorageImpl):
- src/libANGLE/renderer/metal/VertexArrayMtl.h:
- src/libANGLE/renderer/metal/VertexArrayMtl.mm:
(rx::VertexArrayMtl::getIndexBuffer):
(rx::VertexArrayMtl::convertIndexBuffer):
(rx::VertexArrayMtl::streamIndexBufferFromClient):
- src/libANGLE/renderer/metal/mtl_utils.mm:
(rx::mtl::InitializeDepthStencilTextureContentsGPU):
- src/libANGLE/renderer/metal/shaders/blit.metal:
- src/libANGLE/renderer/metal/shaders/mtl_default_shaders_src_autogen.inc:
- 9:00 AM Changeset in webkit [273199] by
-
- 3 edits in trunk/Tools
Revert r272384 [Python-3] Change shebang in git-webkit
https://bugs.webkit.org/show_bug.cgi?id=221412
Unreviewed infrastructure fix.
Revert to Python 2 for git-webkit command because of auto-install issues.
- CISupport/ews-build/steps.py:
- CISupport/ews-build/steps_unittest.py:
- 6:18 AM Changeset in webkit [273198] by
-
- 4 edits in trunk/Source/WebCore
[LFC][Integration] Enclosing top and bottom value are relative to the containing block's border box
https://bugs.webkit.org/show_bug.cgi?id=222220
Reviewed by Antti Koivisto.
This patch ensures that the enclosing top and bottom values are in the same coordinate space
as the line top and bottom values are.
See fast/scrolling/scroll-to-anchor-zoomed-header.html.
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):
- layout/inlineformatting/InlineLineGeometry.h:
- layout/integration/LayoutIntegrationInlineContentBuilder.cpp:
(WebCore::LayoutIntegration::operator+):
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLines const):
- 2:39 AM Changeset in webkit [273197] by
-
- 2 edits in trunk/Source/WebCore
Remove unused isGoogle function
https://bugs.webkit.org/show_bug.cgi?id=222227
Patch by Rob Buis <rbuis@igalia.com> on 2021-02-20
Reviewed by Frédéric Wang.
Remove unused (after r273084) isGoogle function.
- platform/UserAgentQuirks.cpp:
(WebCore::isGoogle): Deleted.