commit-queue@webkit.org [Wed, 23 Sep 2020 22:14:15 +0000 (22:14 +0000)]
[GTK][WPE] Move TLS errors API from WebKitContext to WebKitWebsiteDataManager
https://bugs.webkit.org/show_bug.cgi?id=216822
Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2020-09-23
Reviewed by Alex Christensen.
Source/WebCore:
Make ignoreTLSErrors a member of SoupNetworkSession, instead of being global.
* platform/network/soup/SoupNetworkSession.cpp:
(WebCore::SoupNetworkSession::setIgnoreTLSErrors):
(WebCore::SoupNetworkSession::checkTLSErrors):
(WebCore::SoupNetworkSession::setShouldIgnoreTLSErrors): Deleted.
* platform/network/soup/SoupNetworkSession.h:
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::setAllowsAnySSLCertificate): Do not use SoupNetworkSession in the web process.
Source/WebKit:
Make TLS errors policy per session instead of global to the network process. The web context API now simply
forwards the request to the website data manager. The website data manager created for an ephemeral web view
will inherit the network settings from the web context website data manager. This ensures backwards
compatibility, but it's also convenient, since it's the desired behavior in most of the cases. Apps can still
change the network settings of the web view by getting the website data manager.
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.messages.in:
* NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):
* NetworkProcess/NetworkProcessCreationParameters.h:
* NetworkProcess/NetworkSessionCreationParameters.cpp:
(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):
* NetworkProcess/NetworkSessionCreationParameters.h:
* NetworkProcess/soup/NetworkDataTaskSoup.cpp:
(WebKit::NetworkDataTaskSoup::tlsConnectionAcceptCertificate):
* NetworkProcess/soup/NetworkProcessSoup.cpp:
(WebKit::NetworkProcess::platformInitializeNetworkProcess):
(WebKit::NetworkProcess::setIgnoreTLSErrors):
* NetworkProcess/soup/NetworkSessionSoup.cpp:
(WebKit::NetworkSessionSoup::NetworkSessionSoup):
(WebKit::webSocketAcceptCertificateCallback):
(WebKit::webSocketMessageNetworkEventCallback):
(WebKit::NetworkSessionSoup::createWebSocketTask):
(WebKit::NetworkSessionSoup::setIgnoreTLSErrors):
* NetworkProcess/soup/NetworkSessionSoup.h:
* UIProcess/API/glib/WebKitAutomationSession.cpp:
(webkitAutomationSessionCreate):
* UIProcess/API/glib/WebKitWebContext.cpp:
(webkitWebContextConstructed):
(webkit_web_context_set_tls_errors_policy):
(webkit_web_context_get_tls_errors_policy):
* UIProcess/API/glib/WebKitWebView.cpp:
(webkitWebViewConstructed):
(webkit_web_view_class_init):
(webkitWebViewLoadFailedWithTLSErrors):
* UIProcess/API/glib/WebKitWebsiteDataManager.cpp:
(webkitWebsiteDataManagerConstructed):
(webkitWebsiteDataManagerGetDataStore):
(webkit_website_data_manager_set_tls_errors_policy):
(webkit_website_data_manager_get_tls_errors_policy):
* UIProcess/API/gtk/WebKitWebContext.h:
* UIProcess/API/gtk/WebKitWebsiteDataManager.h:
* UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
* UIProcess/API/wpe/WebKitWebContext.h:
* UIProcess/API/wpe/WebKitWebsiteDataManager.h:
* UIProcess/API/wpe/docs/wpe-1.0-sections.txt:
* UIProcess/WebProcessPool.h:
* UIProcess/WebsiteData/WebsiteDataStore.h:
(WebKit::WebsiteDataStore::ignoreTLSErrors const):
* UIProcess/WebsiteData/soup/WebsiteDataStoreSoup.cpp:
(WebKit::WebsiteDataStore::setIgnoreTLSErrors):
* UIProcess/soup/WebProcessPoolSoup.cpp:
(WebKit::WebProcessPool::platformInitializeNetworkProcess):
(WebKit::WebProcessPool::setIgnoreTLSErrors): Deleted.
Tools:
Update tests to use the new API instead of the deprecated one. Also update the TLSErrorsPolicy test to also
check that ephemeral web views inherit the network settings from its web context.
* TestWebKitAPI/Tests/WebKitGLib/TestSSL.cpp:
(testSSL):
(testInsecureContent):
(testTLSErrorsPolicy):
(testTLSErrorsRedirect):
(testTLSErrorsHTTPAuth):
(testLoadFailedWithTLSErrors):
(testSubresourceLoadFailedWithTLSErrors):
(testWebSocketTLSErrors):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267502
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jbedard@apple.com [Wed, 23 Sep 2020 21:54:31 +0000 (21:54 +0000)]
Force SYSTEM_VERSION_COMPAT=0 in Webkit scripts
https://bugs.webkit.org/show_bug.cgi?id=216895
<rdar://problem/
69454393>
Reviewed by Dewei Zhu.
* Scripts/configure-xcode-for-embedded-development:
* Scripts/webkitpy/__init__.py:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267501
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ysuzuki@apple.com [Wed, 23 Sep 2020 21:26:09 +0000 (21:26 +0000)]
[JSC] Intl spec update: handle awkward rounding behavior
https://bugs.webkit.org/show_bug.cgi?id=216760
Reviewed by Ross Kirsling.
JSTests:
* stress/intl-numberformat.js:
* test262/expectations.yaml:
Source/JavaScriptCore:
This patch supports new spec change of "handle awkward rounding behavior"[1].
This changes minimumFractionDigits / maximumFractionDigits calculation when the specified ones are less than currency-digits.
[1]: https://github.com/tc39/ecma402/pull/471
* runtime/CommonIdentifiers.h:
* runtime/IntlNumberFormat.cpp:
(JSC::IntlNumberFormat::resolvedOptions const):
* runtime/IntlNumberFormatInlines.h:
(JSC::setNumberFormatDigitOptions):
* runtime/IntlPluralRules.cpp:
(JSC::IntlPluralRules::resolvedOptions const):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267500
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
timothy_horton@apple.com [Wed, 23 Sep 2020 21:17:06 +0000 (21:17 +0000)]
Fix some typo'd wheel event listener logging
https://bugs.webkit.org/show_bug.cgi?id=216892
Reviewed by Wenson Hsieh.
* rendering/EventRegion.cpp:
(WebCore::EventRegion::uniteEventListeners):
Wheel is passive, NonPassiveWheel is active.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267499
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
pvollan@apple.com [Wed, 23 Sep 2020 19:52:03 +0000 (19:52 +0000)]
[macOS] Issue sandbox extension for the diagnostic daemon
https://bugs.webkit.org/show_bug.cgi?id=216834
<rdar://problem/
58496834>
Reviewed by Brent Fulgham.
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):
* Shared/WebProcessCreationParameters.h:
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::isInternalInstall):
(WebKit::agxCompilerClasses):
(WebKit::diagnosticServices):
(WebKit::WebProcessPool::platformInitializeWebProcess):
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
* WebProcess/com.apple.WebProcess.sb.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267498
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
Hironori.Fujii@sony.com [Wed, 23 Sep 2020 19:50:23 +0000 (19:50 +0000)]
Remove ENABLE_SVG_FONTS macro
https://bugs.webkit.org/show_bug.cgi?id=216850
Reviewed by Don Olmstead.
.:
No ports have this disabled, so remove it.
* Source/cmake/OptionsFTW.cmake:
* Source/cmake/OptionsMac.cmake:
* Source/cmake/OptionsWin.cmake:
* Source/cmake/WebKitFeatures.cmake:
* Source/cmake/tools/vsprops/FeatureDefines.props:
* Source/cmake/tools/vsprops/FeatureDefinesCairo.props:
Source/WebCore:
* CMakeLists.txt:
* css/CSSFontFace.cpp:
(WebCore::CSSFontFace::appendSources):
(WebCore::CSSFontFace::hasSVGFontFaceSource const):
* css/CSSFontFace.h:
* css/CSSFontFaceSource.cpp:
(WebCore::CSSFontFaceSource::CSSFontFaceSource):
(WebCore::CSSFontFaceSource::load):
(WebCore::CSSFontFaceSource::font):
(WebCore::CSSFontFaceSource::isSVGFontFaceSource const):
* css/CSSFontFaceSource.h:
* css/CSSFontFaceSrcValue.cpp:
(WebCore::CSSFontFaceSrcValue::isSVGFontTarget const):
(WebCore::CSSFontFaceSrcValue::isSupportedFormat const):
* css/CSSFontFaceSrcValue.h:
* inspector/agents/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::inspectorResourceType):
* loader/LinkLoader.cpp:
(WebCore::createLinkPreloadResourceClient):
* loader/ResourceLoadInfo.cpp:
(WebCore::ContentExtensions::toResourceType):
* loader/SubresourceLoader.cpp:
(WebCore::logResourceLoaded):
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::defaultPriorityForResourceType):
(WebCore::CachedResource::isCORSSameOrigin const):
* loader/cache/CachedResource.h:
* loader/cache/CachedResourceLoader.cpp:
(WebCore::createResource):
(WebCore::CachedResourceLoader::requestFont):
(WebCore::contentTypeFromResourceType):
(WebCore::CachedResourceLoader::checkInsecureContent const):
(WebCore::CachedResourceLoader::allowedByContentSecurityPolicy const):
(WebCore::CachedResourceLoader::shouldUpdateCachedResourceWithCurrentRequest):
(WebCore::destinationForType):
* loader/cache/CachedSVGFont.cpp:
* loader/cache/CachedSVGFont.h:
* loader/cache/MemoryCache.cpp:
(WebCore::MemoryCache::getStatistics):
* rendering/svg/SVGTextLayoutEngineSpacing.cpp:
* style/StyleResolver.cpp:
(WebCore::Style::Resolver::addCurrentSVGFontFaceRules):
* svg/SVGAltGlyphDefElement.cpp:
* svg/SVGAltGlyphDefElement.h:
* svg/SVGAltGlyphDefElement.idl:
* svg/SVGAltGlyphElement.cpp:
* svg/SVGAltGlyphElement.h:
* svg/SVGAltGlyphElement.idl:
* svg/SVGAltGlyphItemElement.cpp:
* svg/SVGAltGlyphItemElement.h:
* svg/SVGAltGlyphItemElement.idl:
* svg/SVGDocumentExtensions.cpp:
* svg/SVGDocumentExtensions.h:
* svg/SVGElement.cpp:
(WebCore::SVGElement::childShouldCreateRenderer const):
* svg/SVGFontElement.cpp:
* svg/SVGFontElement.h:
* svg/SVGFontElement.idl:
* svg/SVGFontFaceElement.cpp:
* svg/SVGFontFaceElement.h:
* svg/SVGFontFaceElement.idl:
* svg/SVGFontFaceFormatElement.cpp:
* svg/SVGFontFaceFormatElement.h:
* svg/SVGFontFaceFormatElement.idl:
* svg/SVGFontFaceNameElement.cpp:
* svg/SVGFontFaceNameElement.h:
* svg/SVGFontFaceNameElement.idl:
* svg/SVGFontFaceSrcElement.cpp:
* svg/SVGFontFaceSrcElement.h:
* svg/SVGFontFaceSrcElement.idl:
* svg/SVGFontFaceUriElement.cpp:
* svg/SVGFontFaceUriElement.h:
* svg/SVGFontFaceUriElement.idl:
* svg/SVGGlyphElement.cpp:
* svg/SVGGlyphElement.h:
* svg/SVGGlyphElement.idl:
* svg/SVGGlyphRefElement.cpp:
* svg/SVGGlyphRefElement.h:
* svg/SVGGlyphRefElement.idl:
* svg/SVGHKernElement.cpp:
* svg/SVGHKernElement.h:
* svg/SVGHKernElement.idl:
* svg/SVGMissingGlyphElement.cpp:
* svg/SVGMissingGlyphElement.h:
* svg/SVGMissingGlyphElement.idl:
* svg/SVGTRefElement.cpp:
(WebCore::SVGTRefElement::rendererIsNeeded):
* svg/SVGTSpanElement.cpp:
(WebCore::SVGTSpanElement::childShouldCreateRenderer const):
(WebCore::SVGTSpanElement::rendererIsNeeded):
* svg/SVGTests.cpp:
(WebCore::supportedSVGFeatures):
* svg/SVGTextElement.cpp:
(WebCore::SVGTextElement::childShouldCreateRenderer const):
* svg/SVGTextPositioningElement.cpp:
(WebCore::SVGTextPositioningElement::elementFromRenderer):
* svg/SVGToOTFFontConversion.cpp:
* svg/SVGVKernElement.cpp:
* svg/SVGVKernElement.h:
* svg/SVGVKernElement.idl:
* svg/svgtags.in:
Source/WebKit:
* WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::maximumBufferingTime):
Source/WTF:
* wtf/PlatformEnable.h:
Tools:
* Scripts/webkitperl/FeatureList.pm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267497
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
pvollan@apple.com [Wed, 23 Sep 2020 19:39:48 +0000 (19:39 +0000)]
[macOS] Change name of client decoder entitlement
https://bugs.webkit.org/show_bug.cgi?id=216670
<rdar://problem/
69101997>
Reviewed by Darin Adler.
The client decoder entitlement landed in <https://trac.webkit.org/changeset/266613/webkit> has changed name, and should be updated.
* Scripts/process-entitlements.sh:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267496
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
tzagallo@apple.com [Wed, 23 Sep 2020 19:35:19 +0000 (19:35 +0000)]
Missing scope release in JSDOMBuiltinConstructorBase
https://bugs.webkit.org/show_bug.cgi?id=216851
<rdar://problem/
69144642>
Reviewed by Yusuke Suzuki.
Source/WebCore:
In JSDOMBuiltinConstructorBase::callFunctionWithCurrentArguments, we should release the
ThrowScope before calling into JavaScript since we don't intend to handle the exception.
Test: js/transform-stream.html
* bindings/js/JSDOMBuiltinConstructorBase.cpp:
(WebCore::JSDOMBuiltinConstructorBase::callFunctionWithCurrentArguments):
LayoutTests:
* js/script-tests/transform-stream.js: Added.
* js/transform-stream-expected.txt: Added.
* js/transform-stream.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267495
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zalan@apple.com [Wed, 23 Sep 2020 19:34:44 +0000 (19:34 +0000)]
[LFC][IFC] Precompute the collapsible trailing width for LineBreaker
https://bugs.webkit.org/show_bug.cgi?id=216881
Reviewed by Antti Koivisto.
Let's just compute the collapsible trailing width while adding inline content to LineCandidate instead of
reverse looping through the runs in LineBreaker.
This is also in preparation for reducing the number of RuntimeEnabledFeatures::layoutFormattingContextIntegrationEnabled calls.
* layout/inlineformatting/InlineLineBreaker.cpp:
(WebCore::Layout::ContinuousContent::hasTrailingCollapsibleContent const):
(WebCore::Layout::ContinuousContent::isFullyCollapsible const):
(WebCore::Layout::LineBreaker::shouldKeepEndOfLineWhitespace const):
(WebCore::Layout::LineBreaker::shouldWrapInlineContent):
(WebCore::Layout::LineBreaker::tryWrappingInlineContent const):
(WebCore::Layout::ContinuousContent::ContinuousContent):
(WebCore::Layout::ContinuousContent::nonCollapsibleLogicalWidth const):
(WebCore::Layout::ContinuousContent::isTrailingContentFullyCollapsible const): Deleted.
(WebCore::Layout::ContinuousContent::TrailingCollapsibleContent::reset): Deleted.
* layout/inlineformatting/InlineLineBreaker.h:
* layout/inlineformatting/InlineLineBuilder.cpp:
(WebCore::Layout::LineCandidate::InlineContent::collapsibleTrailingWidth const):
(WebCore::Layout::LineCandidate::InlineContent::appendInlineItem):
(WebCore::Layout::LineCandidate::InlineContent::reset):
(WebCore::Layout::LineBuilder::handleFloatsAndInlineContent):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267494
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
aakash_jain@apple.com [Wed, 23 Sep 2020 19:17:20 +0000 (19:17 +0000)]
Limit number of emails to send for flaky and pre-existing API and layout test failures
https://bugs.webkit.org/show_bug.cgi?id=216876
Reviewed by Jonathan Bedard.
* BuildSlaveSupport/ews-build/steps.py:
(ReRunWebKitTests): Simply limit the flaky failures immediately after they are calculated, since we don't display
the count of flaky failures. Flaky failures are displayed only to help bot-watchers in noticing flaky tests.
(AnalyzeLayoutTestsResults.report_pre_existing_failures): Limit pre-existing and flaky test failures just before sending emails.
(AnalyzeAPITestsResults.analyzeResults):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267493
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
aakash_jain@apple.com [Wed, 23 Sep 2020 19:07:10 +0000 (19:07 +0000)]
Notify igalia team about pre-existing test failures and build failures for JSC queues
https://bugs.webkit.org/show_bug.cgi?id=216889
Reviewed by Jonathan Bedard.
* BuildSlaveSupport/ews-build/steps.py:
(AnalyzeCompileWebKitResults.send_email_for_preexisting_build_failure): Send email for pre-existing jsc build failures.
(AnalyzeJSCTestsResults.send_email_for_pre_existing_failure): Send email for pre-existing jsc test failure.
* BuildSlaveSupport/ews-build/send_email.py:
* BuildSlaveSupport/ews-build/emails.json: Added email address of igalia jsc team.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267492
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
peng.liu6@apple.com [Wed, 23 Sep 2020 18:45:11 +0000 (18:45 +0000)]
[Media in GPU Process] Implement caption support in video fullscreen and PiP
https://bugs.webkit.org/show_bug.cgi?id=208752
Reviewed by Eric Carlson.
Source/WebCore:
Export TextTrackRepresentation so that WebKit can use it. Also, update the
interface of VideoLayerManagerObjC related to text track representation to
use PlatformLayer* instead of TextTrackRepresentation*.
Manually tested.
* WebCore.xcodeproj/project.pbxproj:
Change target membership of TextTrackRepresentation.h.
* platform/graphics/avfoundation/objc/VideoLayerManagerObjC.h:
* platform/graphics/avfoundation/objc/VideoLayerManagerObjC.mm:
(WebCore::VideoLayerManagerObjC::setTextTrackRepresentationLayer):
(WebCore::VideoLayerManagerObjC::setTextTrackRepresentation): Deleted.
Replace setTextTrackRepresentation() with setTextTrackRepresentationLayer().
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::setTextTrackRepresentation):
Use VideoLayerManagerObjC::setTextTrackRepresentationLayer() instead of
VideoLayerManagerObjC::setTextTrackRepresentation().
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setTextTrackRepresentation): Ditto.
Source/WebKit:
* GPUProcess/media/RemoteMediaPlayerProxy.cpp:
(WebKit::RemoteMediaPlayerProxy::syncTextTrackBounds): Deleted.
* GPUProcess/media/RemoteMediaPlayerProxy.h:
* GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
Remove syncTextTrackBounds() because the GPU process does not need to deal with
the text track bounds.
* WebProcess/GPU/GPUProcessConnection.cpp:
(WebKit::GPUProcessConnection::dispatchMessage):
Add a missing IPC message receiver.
* WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
(WebKit::MediaPlayerPrivateRemote::setVideoFullscreenLayer): Set the flag
m_requiresTextTrackRepresentation when changing video presentation mode.
(WebKit::MediaPlayerPrivateRemote::requiresTextTrackRepresentation const): Deleted.
(WebKit::MediaPlayerPrivateRemote::setTextTrackRepresentation): Deleted.
(WebKit::MediaPlayerPrivateRemote::syncTextTrackBounds): Deleted.
Move the implementation of those functions to MediaPlayerPrivateRemoteCocoa.
* WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
Add the flag m_requiresTextTrackRepresentation and add a reference
to the layer used to render text track (in fullscreen or picture-in-picture).
* WebProcess/GPU/media/cocoa/MediaPlayerPrivateRemoteCocoa.mm:
(WebKit::MediaPlayerPrivateRemote::setVideoFullscreenFrame):
(WebKit::MediaPlayerPrivateRemote::setTextTrackRepresentation):
(WebKit::MediaPlayerPrivateRemote::syncTextTrackBounds):
Those functions share a similar implementation as VideoLayerManagerObjC.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267491
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
pvollan@apple.com [Wed, 23 Sep 2020 17:55:35 +0000 (17:55 +0000)]
[macOS] Start collecting telemetry from a set of XPC services
<https://bugs.webkit.org/show_bug.cgi?id=216797>
Reviewed by Brent Fulgham.
* WebProcess/com.apple.WebProcess.sb.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267490
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ticaiolima@gmail.com [Wed, 23 Sep 2020 17:19:38 +0000 (17:19 +0000)]
[JSC][ESNext] Create a new opcode to handle private fields store/define
https://bugs.webkit.org/show_bug.cgi?id=213372
Reviewed by Yusuke Suzuki.
JSTests:
Adjusting tests that emit `get_private_name` to avoid execution in
FTL/DFG.
* microbenchmarks/class-fields-private/polymorphic-put-private-field.js: Added.
* microbenchmarks/class-fields-private/put-private-field.js: Added.
* microbenchmarks/polymorphic-put-public-field.js: Added.
* microbenchmarks/put-public-field.js: Added.
* stress/dfg-put-private-name-check-barrier-insertion.js: Added.
* stress/dfg-put-private-name-compiled-as-put-by-id-direct.js: Added.
* stress/dfg-put-private-name-compiled-as-put-private-name-by-id.js: Added.
* stress/put-private-name-by-id-set-do-not-add-structure-trasition.js: Added.
* stress/put-private-name-check-structure-miss.js: Added.
* stress/put-private-name-constant-folding-to-mult-put-by-offset.js: Added.
* stress/put-private-name-constant-folding-to-put-by-offset.js: Added.
* stress/put-private-name-generic.js: Added.
* stress/put-private-name-invalid-define.js: Added.
* stress/put-private-name-invalid-store.js: Added.
* stress/put-private-name-invalidate-compiled-with-constant-symbol.js: Added.
* stress/put-private-name-polymorphic-with-constant-symbol.js: Added.
* stress/put-private-name-with-constant-symbol.js: Added.
* stress/put-private-name-with-different-identifier.js: Added.
Source/JavaScriptCore:
This patch is adding a new opcode to handle private field storage.
Before this change, we were using `put_by_val_direct` and including
the information of `PutKind` into `PutByValFlags`. We initially decided
to use `put_by_val_direct` to take advantage of all IC mechanism already
implemented for this instruction, however the semantics of private field
is different enough to complicate the understanding of
`put_by_val_direct`.
The new instruction is called `put_private_name` and has as its operands
`baseObject` where the put is going to be placed, the `property`
that's going to be installed (it is always a private symbol of a
private field), the `value` we are going to store and the
`PrivateFieldPutKind` that can be `Define` or `Set`.
The difference of each `PrivateFieldPutKind` is the following:
- Define: It defines a new private field. If this field is already
present, it throws a `TypeError`.
- Set: It sets the value of a private field. If the field is not
present at the moment of set, it throws a `TypeError`.
This patch includes support of IC for all tiers. For DFG and FTL, we
are only emmiting IC when we are able to emit `CheckConstant`
for subscript identifier during Bytecode parsing. We are adding a new
DFG node called `PutPrivateNameById` that handles such cases when we
have constant identifiers.
We are also adding a new DFG node `PutPrivateName` that handles generic
case of `put_private_name`. The strategy used to compile
`put_private_name` is very similar with what we are using with
`put_by_val[_direct]`. We first try to compile it as `[Multi]PutByOffset`
using profiled information from LLInt and Baseline execution. If it
is not possible, we then emit `PutPrivateName[ById]` node. We get another
chance to transform `PutPrivateNameById` into `PutByOffset` if we can prove
its structure set at constant folding phase.
* CMakeLists.txt:
* JavaScriptCore.xcodeproj/project.pbxproj:
* Sources.txt:
* bytecode/BytecodeList.rb:
* bytecode/BytecodeUseDef.cpp:
(JSC::computeUsesForBytecodeIndexImpl):
(JSC::computeDefsForBytecodeIndexImpl):
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::propagateTransitions):
(JSC::CodeBlock::finalizeLLIntInlineCaches):
* bytecode/Fits.h:
* bytecode/PutByIdStatus.cpp:
(JSC::PutByIdStatus::computeFromLLInt):
(JSC::PutByIdStatus::computeFor):
* bytecode/PutByIdStatus.h:
* bytecode/PutByValFlags.cpp: Removed.
* bytecode/PutByValFlags.h: Removed.
* bytecode/PutKind.h:
(): Deleted.
* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitDirectPutByVal):
(JSC::BytecodeGenerator::emitDefinePrivateField):
(JSC::BytecodeGenerator::emitPrivateFieldPut):
* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handlePutPrivateNameById):
(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::handlePutByVal):
(JSC::DFG::ecmaMode): Deleted.
(JSC::DFG::ecmaMode<OpPutByValDirect>): Deleted.
* dfg/DFGCapabilities.cpp:
(JSC::DFG::capabilityLevel):
* dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
* dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
(JSC::DFG::ConstantFoldingPhase::tryFoldAsPutByOffset):
* dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
* dfg/DFGNode.h:
(JSC::DFG::Node::convertToPutByOffset):
(JSC::DFG::Node::convertToMultiPutByOffset):
(JSC::DFG::Node::hasCacheableIdentifier):
(JSC::DFG::Node::hasPrivateFieldPutKind):
(JSC::DFG::Node::privateFieldPutKind):
* dfg/DFGNodeType.h:
* dfg/DFGOpInfo.h:
(JSC::DFG::OpInfo::OpInfo):
* dfg/DFGPredictionPropagationPhase.cpp:
* dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compilePutPrivateName):
(JSC::DFG::SpeculativeJIT::compilePutPrivateNameById):
(JSC::DFG::SpeculativeJIT::compilePutByIdFlush):
(JSC::DFG::SpeculativeJIT::compilePutById):
(JSC::DFG::SpeculativeJIT::compilePutByIdDirect):
(JSC::DFG::SpeculativeJIT::cachedPutById):
* dfg/DFGSpeculativeJIT.h:
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGStoreBarrierInsertionPhase.cpp:
* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compilePutPrivateNameById):
(JSC::FTL::DFG::LowerDFGToB3::compilePutPrivateName):
(JSC::FTL::DFG::LowerDFGToB3::cachedPutById):
(JSC::FTL::DFG::LowerDFGToB3::compilePutById):
* generator/DSL.rb:
* jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):
(JSC::JIT::link):
* jit/JIT.h:
(JSC::ByValCompilationInfo::ByValCompilationInfo):
* jit/JITInlineCacheGenerator.cpp:
(JSC::JITPutByIdGenerator::JITPutByIdGenerator):
(JSC::JITPutByIdGenerator::slowPathFunction):
* jit/JITInlineCacheGenerator.h:
(JSC::JITPutByIdGenerator::JITPutByIdGenerator):
* jit/JITInlines.h:
(JSC::JIT::ecmaMode<OpPutPrivateName>):
(JSC::JIT::ecmaMode<OpPutByValDirect>): Deleted.
(JSC::JIT::privateFieldAccessKind): Deleted.
(JSC::JIT::privateFieldAccessKind<OpPutByValDirect>): Deleted.
* jit/JITOperations.cpp:
(JSC::setPrivateField):
(JSC::putPrivateField): Deleted.
* jit/JITOperations.h:
* jit/JITPropertyAccess.cpp:
(JSC::JIT::emitPutByValWithCachedId):
(JSC::JIT::emitSlow_op_put_by_val):
(JSC::JIT::emit_op_put_private_name):
(JSC::JIT::emitSlow_op_put_private_name):
(JSC::JIT::emit_op_put_by_id):
(JSC::JIT::emitPutPrivateNameWithCachedId):
(JSC::JIT::privateCompilePutPrivateNameWithCachedId):
(JSC::JIT::privateCompilePutByValWithCachedId):
* jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emit_op_put_private_name):
(JSC::JIT::emitSlow_op_put_private_name):
(JSC::JIT::emit_op_put_by_id):
* jit/Repatch.cpp:
(JSC::appropriateGenericPutByIdFunction):
(JSC::appropriateOptimizingPutByIdFunction):
(JSC::tryCachePutByID):
(JSC::resetPutByID):
* llint/LLIntOffsetsExtractor.cpp:
* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
* llint/LLIntSlowPaths.h:
* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm:
* runtime/JSObject.h:
* runtime/JSObjectInlines.h:
(JSC::JSObject::setPrivateField):
(JSC::JSObject::putPrivateField): Deleted.
* runtime/PrivateFieldPutKind.cpp: Added.
(JSC::PrivateFieldPutKind::dump const):
* runtime/PrivateFieldPutKind.h: Added.
(JSC::PrivateFieldPutKind::fromByte):
(JSC::PrivateFieldPutKind::none):
(JSC::PrivateFieldPutKind::set):
(JSC::PrivateFieldPutKind::define):
(JSC::PrivateFieldPutKind::isNone const):
(JSC::PrivateFieldPutKind::isSet const):
(JSC::PrivateFieldPutKind::isDefine const):
(JSC::PrivateFieldPutKind::value const):
(JSC::PrivateFieldPutKind::PrivateFieldPutKind):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267489
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cdumez@apple.com [Wed, 23 Sep 2020 17:10:18 +0000 (17:10 +0000)]
Turn on the modern unprefixed WebAudio API
https://bugs.webkit.org/show_bug.cgi?id=216885
Reviewed by Eric Carlson.
Turn on the modern unprefixed WebAudio API now that we support most of the API
besides AudioWorklet and now that we have a good pass rate on WPT tests.
Source/WebKit:
* Shared/WebPreferencesExperimental.yaml:
Source/WebKitLegacy/mac:
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267488
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cdumez@apple.com [Wed, 23 Sep 2020 17:07:18 +0000 (17:07 +0000)]
webaudio/AudioBufferSource/audiobuffersource-playbackrate.html is crashing
https://bugs.webkit.org/show_bug.cgi?id=216827
Reviewed by Darin Adler.
Source/WebCore:
AudioBufferSourceNode::renderSilenceAndFinishIfNotLooping() would hit an assertion inside
finish() because finish() was already called earlier when calling updateSchedulingInfo().
updateSchedulingInfo() already takes care of calling finish() when we're done playing.
Address the issue by only calling finish() if hasFinished() returns false.
No new tests, unskipped existing test.
* Modules/webaudio/AudioBufferSourceNode.cpp:
(WebCore::AudioBufferSourceNode::renderSilenceAndFinishIfNotLooping):
LayoutTests:
Unskip test that is no longer crashing.
* TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267486
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
philn@webkit.org [Wed, 23 Sep 2020 16:54:27 +0000 (16:54 +0000)]
Unreviewed, add ios baseline for media/media-can-play-av1.html
This was forgotten in r267474.
* platform/ios/media/media-can-play-av1-expected.txt: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267484
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
tsavell@apple.com [Wed, 23 Sep 2020 16:03:59 +0000 (16:03 +0000)]
Unreviewed, reverting r267403.
Caused 50+ Crashes on iOS Debug
Reverted changeset:
"Move Media in GPU Process flag from internal to experimental"
https://bugs.webkit.org/show_bug.cgi?id=216473
https://trac.webkit.org/changeset/267403
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267479
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
lmoura@igalia.com [Wed, 23 Sep 2020 15:57:11 +0000 (15:57 +0000)]
REGRESSION(r267368) [webkitpy] autoinstalled pytest raises ImportError in run-webdriver-tests
https://bugs.webkit.org/show_bug.cgi?id=216879
Reviewed by Jonathan Bedard.
Autoinstalled pytest requires sys.path to be updated with the newly
installed packages. Before r267368 it worked because
webdriver_w3c_executor.py autoinstalled mozlog/mozprocess which
updated the sys.path.
* Scripts/webkitpy/thirdparty/__init__.py:
(AutoinstallImportHook._install_pytest):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267478
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
andresg_22@apple.com [Wed, 23 Sep 2020 15:53:01 +0000 (15:53 +0000)]
Fix for accessibility/aria-combobox-control-owns-elements.html in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=216878
Reviewed by Chris Fleizach.
Source/WebCore:
Test: accessibility/aria-combobox-control-owns-elements.html.
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::updateIsolatedTree): Update the isolated tree
node for ActiveDescendant and SelectedChildren notifications.
* accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::initializeAttributeData): Only cache
selectedChildren for those AXObjects that canHaveSelectedChildren.
LayoutTests:
Use Promises to make this test work reliably for both single and multithreaded accessibility modes.
* accessibility/aria-combobox-control-owns-elements-expected.txt:
* accessibility/aria-combobox-control-owns-elements.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267477
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
darin@apple.com [Wed, 23 Sep 2020 15:50:44 +0000 (15:50 +0000)]
Selection API: Update more tests that depend on WebKit's legacy non-standard behavior to set up the selection
https://bugs.webkit.org/show_bug.cgi?id=216844
Reviewed by Ryosuke Niwa.
Discovered a batch of editing tests that accidentally rely on non-standard selection
behavior to set up the tests. In many cases, the tests were clearly written wrong, like
using character offsets but a container that is not a text node. These changes keep the
tests testing the same things they are today.
* editing/deleting/delete-block-merge-contents-025.html: Use the actual number of child
nodes rather than
2000000000.
* editing/deleting/delete-blockquote-large-offsets.html: Ditto. The "large offsets" in
the title of this bug might simply be something that can't actually be done in practice,
setting an offset that is much higher than the actual number of children. The old code
simply clamped the high value.
* editing/execCommand/format-block-typing-style.html: Use a 1 as an offset so we are
past the child text element, rather than 5, which was presumably an attempt at setting
an offset to a particular character, but using the wrong container node.
* editing/execCommand/insert-nested-lists-in-table.html: Use a computed offset instead
of a hardcoded, and too high, value of 3.
* editing/execCommand/outdent-selection.html: Use a 1 instead of a 2 for an offset on
a container node that has only one child.
* editing/input/select-all-clear-input-method.html: Use a 3 instead of a 5 for an
offset in a container that's a text node containing 3 characters.
* editing/inserting/insert-list-during-node-removal-crash.html: This one is a little
different. The code selected the entire document and used the deleteFromDocument method.
That function is specified to not do an end-user "editing" delete, but to literally
delete all the nodes. That includes all the script nodes. To fix the test, just select
the contents of the body of the document.
* editing/inserting/insert-list-in-table-assert.html: Use a 0 instead of a 1
for an offset inside an empty style element.
* editing/inserting/insert-list-in-table-cell-04.html: Use a 1 instead of a 2
as the offest for the end of the element, given the element had only one child.
* editing/inserting/insert-list-in-table-cell-08.html: Ditto.
* editing/inserting/page-zoom-font-size.html: Ditto, 1 instead of 12.
* editing/inserting/replace-at-visible-boundary.html: Select the image by setting end
points before and after it, rather than trying to set offsets inside the image with
offsets of 0 and 1, since 1 is an illegal offset in an image with no children.
* editing/pasteboard/dataTransfer-setData-getData.html: Use a 1 instead of a 4
for an offset inside the dragme element, which has one child, which was presumably
an attempt at setting an offset to a particular character, but using the wrong
container node.
* editing/pasteboard/drag-drop-to-data-url.html: Ditto.
* editing/pasteboard/paste-blockquote-into-blockquote-2.html: Use an offset of 1
instead of 3 inside the block element which has no children, which was presumably
an attempt at setting an offset to a particular character, but using the wrong
container node.
* editing/pasteboard/paste-blockquote-into-blockquote-3.html: Use a range to set
the selection after the endContent <br> element rather than trying to use an
offset of 1 inside that element, which has no children.
* editing/pasteboard/paste-blockquote-into-blockquote.html: Use an offset of 1
instead of 3 inside the block element which has no children, which was presumably
an attempt at setting an offset to a particular character, but using the wrong
container node.
* editing/pasteboard/paste-table-cells.html: Use an offset of 1 instead of 3
inside the table, so the selection is after the table body. Presumably the error
is that someone thought that the table row elements were each children of the table.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267476
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
philn@webkit.org [Wed, 23 Sep 2020 14:44:24 +0000 (14:44 +0000)]
media/can-play-av1.html is not spec compliant
https://bugs.webkit.org/show_bug.cgi?id=216873
Reviewed by Eric Carlson.
Source/WebCore:
* platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:
(WebCore::GStreamerRegistryScanner::initialize): Add the "av1" codec in the codecs mapping.
LayoutTests:
* media/media-can-play-av1-expected.txt: Update baseline.
* media/media-can-play-av1.html: Update test and add another few testing invalid codecs.
* platform/glib/TestExpectations: Unflag passing test.
* platform/mac/media/media-can-play-av1-expected.txt: Added. This test is expected to fail on mac.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267474
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
youenn@apple.com [Wed, 23 Sep 2020 14:04:20 +0000 (14:04 +0000)]
Add support for HTMLMediaElement.setSinkId
https://bugs.webkit.org/show_bug.cgi?id=216696
Reviewed by Eric Carlson.
LayoutTests/imported/w3c:
* resources/import-expectations.json:
* web-platform-tests/audio-output/META.yml: Added.
* web-platform-tests/audio-output/idlharness.https.window-expected.txt: Added.
* web-platform-tests/audio-output/idlharness.https.window.html: Added.
* web-platform-tests/audio-output/idlharness.https.window.js: Added.
* web-platform-tests/audio-output/setSinkId.https-expected.txt: Added.
* web-platform-tests/audio-output/setSinkId.https.html: Added.
* web-platform-tests/audio-output/w3c-import.log: Added.
Source/WebCore:
Implement setSinkId and sinkId as per https://w3c.github.io/mediacapture-output/#htmlmediaelement-extensions.
Introduce a setting to expose these methods and to enable/disable user gesture requirement.
Add interfaces to change device output for specific media players.
Add support for HLS, MSE and MediaStreamTrack renderers on MacOS.
In case of setting the empty string, the default output device is used
Tests: http/wpt/audio-output/setSinkId.https.html
imported/w3c/web-platform-tests/audio-output/idlharness.https.window.html
imported/w3c/web-platform-tests/audio-output/setSinkId.https.html
* CMakeLists.txt:
* DerivedSources.make:
* Modules/mediastream/MediaDevices.cpp:
(WebCore::MediaDevices::exposeDevices):
* Modules/mediastream/MediaDevices.h:
* WebCore.xcodeproj/project.pbxproj:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::audioOutputDevice const):
(WebCore::HTMLMediaElement::setAudioOutputDevice):
(WebCore::HTMLMediaElement::audioOutputDeviceId const):
* html/HTMLMediaElement.h:
(WebCore::HTMLMediaElement::audioOutputHashedDeviceId const):
* html/HTMLMediaElementAudioOutput.idl: Added.
* page/Settings.yaml:
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::audioOutputDeviceChanged):
* platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayerClient::audioOutputDeviceId const):
(WebCore::MediaPlayerClient::audioOutputDeviceIdOverride const):
(WebCore::MediaPlayer::audioOutputDeviceId const):
(WebCore::MediaPlayer::audioOutputDeviceIdOverride const):
* platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::audioOutputDeviceChanged):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::audioOutputDeviceChanged):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::audioOutputDeviceChanged):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateTracks):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::audioOutputDeviceChanged):
* platform/mediastream/AudioMediaStreamTrackRenderer.h:
(WebCore::AudioMediaStreamTrackRenderer::setAudioOutputDevice):
* platform/mediastream/AudioTrackPrivateMediaStream.cpp:
(WebCore::AudioTrackPrivateMediaStream::setAudioOutputDevice):
* platform/mediastream/AudioTrackPrivateMediaStream.h:
* platform/mediastream/mac/AudioMediaStreamTrackRendererCocoa.cpp:
(WebCore::AudioMediaStreamTrackRendererCocoa::setAudioOutputDevice):
(WebCore::AudioMediaStreamTrackRendererCocoa::pushSamples):
* platform/mediastream/mac/AudioMediaStreamTrackRendererCocoa.h:
* platform/mediastream/mac/AudioMediaStreamTrackRendererUnit.cpp:
(WebCore::AudioMediaStreamTrackRendererUnit::setAudioOutputDevice):
(WebCore::AudioMediaStreamTrackRendererUnit::createAudioUnitIfNeeded):
* platform/mediastream/mac/AudioMediaStreamTrackRendererUnit.h:
Source/WebKit:
Add internal flag to enable/disable user gesture requirement for setting audio output device,
and for per media element setting of audio output device.
* Shared/WebPreferencesExperimental.yaml:
* Shared/WebPreferencesInternals.yaml:
Source/WTF:
Add HAVE_AUDIO_OUTPUT_DEVICE_UNIQUE_ID.
* wtf/PlatformHave.h:
Tools:
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues):
LayoutTests:
Skip new tests on WK1 since mediaDevices is not implemented in WK1.
* http/wpt/audio-output/setSinkId.https-expected.txt: Added.
* http/wpt/audio-output/setSinkId.https.html: Added.
* platform/mac-wk1/TestExpectations:
* platform/win/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267472
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
philn@webkit.org [Wed, 23 Sep 2020 13:36:28 +0000 (13:36 +0000)]
REGRESSION(r267383): fast/mediastream/getUserMedia-webaudio.html is failing
https://bugs.webkit.org/show_bug.cgi?id=216813
Reviewed by Adrian Perez de Castro.
Source/WebCore:
Revert r267428 and fixup the GStreamer FFT implementation which broke in r267383.
* platform/audio/FFTFrame.cpp:
(WebCore::FFTFrame::multiply):
* platform/audio/FFTFrameStub.cpp:
(WebCore::FFTFrame::multiply): Deleted.
* platform/audio/gstreamer/FFTFrameGStreamer.cpp:
(WebCore::FFTFrame::doFFT): Update the real and imaginary arrays after applying the FFT.
(WebCore::FFTFrame::multiply): Deleted.
* platform/audio/mac/FFTFrameMac.cpp:
(WebCore::FFTFrame::multiply): Deleted.
LayoutTests:
Unflag passing tests.
* platform/glib/TestExpectations:
* platform/glib/webaudio/Analyser/realtimeanalyser-fftsize-reset-expected.txt:
* platform/glib/webaudio/Analyser/realtimeanalyser-freq-data-expected.txt: Added. There's
still a FAIL test there though.
* platform/glib/webaudio/Analyser/realtimeanalyser-multiple-calls-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267471
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
philn@webkit.org [Wed, 23 Sep 2020 12:36:35 +0000 (12:36 +0000)]
Unreviewed, prospective GTK build fix after r267449.
* svg/SVGPathBlender.cpp: Include <functional>, needed for std::invoke().
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267470
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cathiechen@igalia.com [Wed, 23 Sep 2020 12:17:59 +0000 (12:17 +0000)]
Wheel event phases of FrameView are not handled correctly
https://bugs.webkit.org/show_bug.cgi?id=216870
Reviewed by Simon Fraser.
In AsyncScrollingCoordinator::handleWheelEventPhase, the scrollAnimator of a FrameView should be from FrameView itself, not ScrollableArea.
It doesn't call nodeDidHandleEvent to handle wheel event phases when !asyncFrameOrOverflowScrollingEnabled. Should call it after handleWheelEvent.
* page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::handleWheelEventPhase): When nodeID is FrameView, we should use the scrollAnimator of FrameView instead.
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::handleWheelEvent): If wheelEvent is handled, we should call nodeDidHandleEvent to handle the phases.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267469
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
antti@apple.com [Wed, 23 Sep 2020 12:03:57 +0000 (12:03 +0000)]
[LFC][Integration] Add canUseFor functions
https://bugs.webkit.org/show_bug.cgi?id=216869
Reviewed by Zalan Bujtas.
Copy the SLL canUseFor code.
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* layout/integration/LayoutIntegrationCoverage.cpp: Added.
(WebCore::LayoutIntegration::canUseForCharacter):
(WebCore::LayoutIntegration::canUseForText):
(WebCore::LayoutIntegration::canUseForFontAndText):
(WebCore::LayoutIntegration::canUseForStyle):
(WebCore::LayoutIntegration::canUseForLineLayoutWithReason):
(WebCore::LayoutIntegration::canUseForLineLayout):
(WebCore::LayoutIntegration::canUseForLineLayoutAfterStyleChange):
* layout/integration/LayoutIntegrationCoverage.h: Added.
Also switch to OptionSet.
* layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::isEnabled):
(WebCore::LayoutIntegration::LineLayout::canUseFor):
(WebCore::LayoutIntegration::LineLayout::canUseForAfterStyleChange):
* layout/integration/LayoutIntegrationLineLayout.h:
(WebCore::LayoutIntegration::LineLayout::canUseFor): Deleted.
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::layoutInlineChildren):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267468
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
dpino@igalia.com [Wed, 23 Sep 2020 10:27:14 +0000 (10:27 +0000)]
[GLIB] Unreviewed test gardening. Garden more failures in webaudio and webrtc tests.
* platform/glib/TestExpectations:
* platform/gtk/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267467
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
dpino@igalia.com [Wed, 23 Sep 2020 09:17:49 +0000 (09:17 +0000)]
[GLIB] Unreviewed test gardening. Remove specific baseline for webaudio/BiquadFilter/tail-time-lowpass.html
The baseline became redudant after r267444.
* platform/glib/webaudio/BiquadFilter/tail-time-lowpass-expected.txt: Removed.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267466
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zalan@apple.com [Wed, 23 Sep 2020 07:57:26 +0000 (07:57 +0000)]
[LFC][IFC] Remove redundant RuntimeEnabledFeatures::layoutFormattingContextIntegrationEnabled from Line::Run::hasTrailingLetterSpacing
https://bugs.webkit.org/show_bug.cgi?id=216867
Reviewed by Simon Fraser.
This codepath is only triggered when Line::TrimmableTrailingContent has a partially trimmable run.
However we don't add such runs unless m_shouldIgnoreTrailingLetterSpacing is false (which is already based on the RuntimeEnabledFeatures flag).
* layout/inlineformatting/InlineLine.cpp:
(WebCore::Layout::Line::Run::hasTrailingLetterSpacing const):
(WebCore::Layout::Line::Run::trailingLetterSpacing const):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267465
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Wed, 23 Sep 2020 04:47:42 +0000 (04:47 +0000)]
Web Inspector: Change `InspectorAnimationAgent->startTracking` to not error on repeated calls
https://bugs.webkit.org/show_bug.cgi?id=216385
Patch by Patrick Angle <pangle@apple.com> on 2020-09-22
Reviewed by Devin Rousso.
InpsectorAnimationAgent now mirrors the behavior of other timeline agents by no longer returning an error on a
repeated invocation of `startTracking`.
* inspector/agents/InspectorAnimationAgent.cpp:
(WebCore::InspectorAnimationAgent::startTracking):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267464
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
antti@apple.com [Wed, 23 Sep 2020 04:39:06 +0000 (04:39 +0000)]
[LFC][Integration] Basic pagination support
https://bugs.webkit.org/show_bug.cgi?id=215451
<rdar://problem/
67482721>
Reviewed by Zalan Bujtas.
Port the Simple Line Layout pagination code to LFC integration layer.
Pagination is the last remaining use of SLL so this patch turns it into dead code.
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* layout/displaytree/DisplayInlineContent.h:
(WebCore::Display::InlineContent::create):
* layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::canUseFor):
This now the same as SLL test, covering all cases.
(WebCore::LayoutIntegration::LineLayout::contentLogicalHeight const):
(WebCore::LayoutIntegration::LineLayout::adjustForPagination):
(WebCore::LayoutIntegration::LineLayout::ensureDisplayInlineContent):
This is fairly direct copy of the SLL code. It is not future proof or otherwise great but it serves the job for now.
* layout/integration/LayoutIntegrationLineLayout.h:
(WebCore::LayoutIntegration::LineLayout::isPaginated const):
* layout/integration/LayoutIntegrationPagination.cpp: Added.
(WebCore::LayoutIntegration::computeLineTopAndBottomWithOverflow):
(WebCore::LayoutIntegration::computeLineBreakIndex):
(WebCore::LayoutIntegration::computeOffsetAfterLineBreak):
(WebCore::LayoutIntegration::setPageBreakForLine):
(WebCore::LayoutIntegration::updateMinimumPageHeight):
(WebCore::LayoutIntegration::makeAdjustedContent):
(WebCore::LayoutIntegration::adjustLinePositionsForPagination):
* layout/integration/LayoutIntegrationPagination.h: Copied from Source/WebCore/layout/displaytree/DisplayInlineContent.h.
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::layoutLFCLines):
(WebCore::RenderBlockFlow::ensureLineBoxes):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267463
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
lmoura@igalia.com [Wed, 23 Sep 2020 04:08:08 +0000 (04:08 +0000)]
[GLIB] Gardening some tests
Unreviewed test gardening.
* platform/glib/TestExpectations:
* platform/gtk/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267462
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zalan@apple.com [Wed, 23 Sep 2020 03:50:31 +0000 (03:50 +0000)]
[LFC][Integration] Move RuntimeEnabledFeatures::layoutFormattingContextIntegrationEnabled() check out from LineBuilder::constraintsForLine
https://bugs.webkit.org/show_bug.cgi?id=216862
Reviewed by Simon Fraser.
* layout/LayoutState.cpp:
(WebCore::Layout::LayoutState::setIsIntegratedRootBoxFirstChild):
* layout/LayoutState.h:
(WebCore::Layout::LayoutState::isIntegratedRootBoxFirstChild const):
* layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):
* layout/inlineformatting/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::constraintsForLine):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267461
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zalan@apple.com [Wed, 23 Sep 2020 03:48:22 +0000 (03:48 +0000)]
[LFC][Floats] Remove the redundant RuntimeEnabledFeatures::layoutFormattingContextIntegrationEnabled() check from FloatingState::append
https://bugs.webkit.org/show_bug.cgi?id=216866
Reviewed by Simon Fraser.
The no-layout-box-for-the-FloatItem codepath is reserved for the IFC integration. This is temporary anyway.
* layout/floats/FloatingState.cpp:
(WebCore::Layout::FloatingState::append):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267460
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
wenson_hsieh@apple.com [Wed, 23 Sep 2020 03:41:44 +0000 (03:41 +0000)]
[GPU Process] fast/canvas/canvas-blend-image.html and fast/canvas/canvas-blend-solid.html fail on macOS
https://bugs.webkit.org/show_bug.cgi?id=216860
Reviewed by Said Abou-Hallawa.
These two tests disable accelerated drawing for canvas elements; when using the GPU process, this causes us to
use `ImageBufferShareableBitmapBackend` as the back-end for the image buffer backing the canvas element.
On both macOS and iOS, the image buffer is backed by BGRA image data. However, we override
`backendColorFormat()` and return `ColorFormat::BGRA` only for `PLATFORM(IOS_FAMILY)`, causing `putImageData`
and `getImageData` to result in flipped red and blue channels on macOS, which subsequently causes these two
layout tests to fail.
Fix these tests by removing the `PLATFORM(IOS_FAMILY)` guard.
* WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267459
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
krollin@apple.com [Wed, 23 Sep 2020 03:38:17 +0000 (03:38 +0000)]
Unify debug and release target aliases
https://bugs.webkit.org/show_bug.cgi?id=216863
<rdar://problem/
69407746>
Reviewed by Tim Horton.
All Makefiles have "debug", "d", "release", and "r" for build
targets. Others -- but not all -- also include "dev", "develop",
"development", "dep", "deploy", and "deployment". Because of this
inconsistency, trying to use those additional targets didn't work. It
looks like all Makefiles used to support all of those targets, but
some got dropped along the way. For instance, the top-level Makefile
and Source/Makefile dropped them in 2013 as part of Bug 107863. And it
looks like WebKitLibraries/Makefile never had them. Given that those
additional targets don't work, it seems like no one uses them, so
let's remove them completely.
.:
* Makefile.shared:
Source/ThirdParty:
* Makefile:
Tools:
* Makefile:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267458
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
lmoura@igalia.com [Wed, 23 Sep 2020 03:36:13 +0000 (03:36 +0000)]
[GTK] REGRESSION(r267329): imported/blink/editing/undo/crash-redo-with-iframes.html is crashing
https://bugs.webkit.org/show_bug.cgi?id=216778
Reviewed by Darin Adler.
Covered by existing tests.
* editing/markup.cpp:
(WebCore::serializePreservingVisualAppearanceInternal): Return early
also for "negative" ranges to avoid hitting an assertion inside
serializeNodes, as suggested by Darin.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267457
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Wed, 23 Sep 2020 02:37:54 +0000 (02:37 +0000)]
Unreviewed, reverting r267421.
https://bugs.webkit.org/show_bug.cgi?id=216864
Broke a test on macOS
Reverted changeset:
"[macOS] Start collecting telemetry from a set of XPC
services"
https://bugs.webkit.org/show_bug.cgi?id=216797
https://trac.webkit.org/changeset/267421
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267455
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ysuzuki@apple.com [Wed, 23 Sep 2020 01:57:35 +0000 (01:57 +0000)]
[JSC] Enable Intl.DateTimeFormat dayPeriod
https://bugs.webkit.org/show_bug.cgi?id=216845
Reviewed by Mark Lam.
JSTests:
* stress/intl-datetimeformat.js:
Source/JavaScriptCore:
Since we already have consensus, let's enable it.
For now, we keep this flag since it is possible that something
happens before the change is integrated into the spec.
* runtime/OptionsList.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267454
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cdumez@apple.com [Wed, 23 Sep 2020 01:49:31 +0000 (01:49 +0000)]
Slightly improve AudioBufferSourceNode resampling
https://bugs.webkit.org/show_bug.cgi?id=216859
Reviewed by Eric Carlson.
LayoutTests/imported/w3c:
Rebaseline WPT tests that are now passing.
* web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/buffer-resampling-expected.txt:
* web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching-expected.txt:
Source/WebCore:
Slightly improve AudioBufferSourceNode resampling. Use simple linear extrapolation
to resample the data when we reach the end of the buffer. Previously, the last
sample would just be repeated enough times.
This is a merge of the following Blink change by Raymond Toy:
- https://chromium-review.googlesource.com/c/chromium/src/+/1211910/
No new tests, rebaselined existing tests.
* Modules/webaudio/AudioBufferSourceNode.cpp:
(WebCore::AudioBufferSourceNode::renderFromBuffer):
LayoutTests:
* webaudio/AudioBufferSource/audiobuffersource-detune-modulation-expected.txt:
* webaudio/AudioBufferSource/audiobuffersource-playbackrate-modulation-expected.txt:
* webaudio/gain-expected.wav:
Rebaseline tests that have slightly different output.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267453
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
weinig@apple.com [Wed, 23 Sep 2020 00:20:14 +0000 (00:20 +0000)]
[WebIDL] Switch to new file name convention for partial interfaces
https://bugs.webkit.org/show_bug.cgi?id=216843
Reviewed by Tim Horton.
Updates all 'partial interface' IDLs to use the new naming convention adopted
in https://webkit.org/b/216729, where they are name as the construction of the
base interface '+' the supplementing spec. So, additions to Document from the
Web Animations spec becomes Document+WebAnimations.idl.
* accessibility/AccessibilityRenderObject.cpp:
* bindings/js/JSDocumentCustom.cpp:
* bindings/js/JSXMLDocumentCustom.cpp:
* html/HTMLFrameOwnerElement.h:
* loader/FrameLoader.cpp:
* page/FrameView.cpp:
* svg/DocumentSVG.cpp: Added.
* svg/DocumentSVG.h: Added.
* svg/SVGDocument.cpp:
* svg/SVGDocument.h:
* svg/SVGTRefElement.cpp:
* svg/graphics/SVGImage.cpp:
* style/StyleAdjuster.cpp:
* svg/Document+SVG.idl: Added.
* svg/SVGDocument.idl: Removed.
Fix weirdness around SVGDocument. Previously, additions to the Document
interface were in a class that was also a document subclass. Now the two
are split, so the additions are in DocumentSVG.h/cpp, matching convention,
and the subclass remains SVGDocument.h/cpp, also matching convention.
* CMakeLists.txt:
* DerivedSources-input.xcfilelist:
* DerivedSources-output.xcfilelist:
* DerivedSources.make:
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
Update for renames.
* Modules/async-clipboard/Navigator+Clipboard.idl: Added.
* Modules/async-clipboard/NavigatorClipboard.idl: Removed.
* Modules/beacon/Navigator+Beacon.idl: Added.
* Modules/beacon/NavigatorBeacon.idl: Removed.
* Modules/cache/DOMWindow+Caches.idl: Added.
* Modules/cache/DOMWindowCaches.idl: Removed.
* Modules/cache/WorkerGlobalScope+Caches.idl: Added.
* Modules/cache/WorkerGlobalScopeCaches.idl: Removed.
* Modules/credentialmanagement/Navigator+Credentials.idl: Added.
* Modules/credentialmanagement/NavigatorCredentials.idl: Removed.
* Modules/encryptedmedia/Navigator+EME.idl: Added.
* Modules/encryptedmedia/NavigatorEME.idl: Removed.
* Modules/entriesapi/HTMLInputElement+EntriesAPI.idl: Added.
* Modules/entriesapi/HTMLInputElementEntriesAPI.idl: Removed.
* Modules/fetch/WindowOrWorkerGlobalScope+Fetch.idl: Added.
* Modules/fetch/WindowOrWorkerGlobalScopeFetch.idl: Removed.
* Modules/gamepad/Navigator+Gamepad.idl: Added.
* Modules/gamepad/NavigatorGamepad.idl: Removed.
* Modules/geolocation/Navigator+Geolocation.idl: Added.
* Modules/geolocation/NavigatorGeolocation.idl: Removed.
* Modules/indexeddb/DOMWindow+IndexedDatabase.idl: Added.
* Modules/indexeddb/DOMWindowIndexedDatabase.idl: Removed.
* Modules/indexeddb/WorkerGlobalScope+IndexedDatabase.idl: Added.
* Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.idl: Removed.
* Modules/mediacapabilities/Navigator+MediaCapabilities.idl: Added.
* Modules/mediacapabilities/NavigatorMediaCapabilities.idl: Removed.
* Modules/mediasession/HTMLMediaElement+MediaSession.idl: Added.
* Modules/mediasession/HTMLMediaElementMediaSession.idl: Removed.
* Modules/mediasource/AudioTrack+MediaSource.idl: Added.
* Modules/mediasource/AudioTrackMediaSource.idl: Removed.
* Modules/mediasource/DOMURL+MediaSource.idl: Added.
* Modules/mediasource/DOMURLMediaSource.idl: Removed.
* Modules/mediasource/TextTrack+MediaSource.idl: Added.
* Modules/mediasource/TextTrackMediaSource.idl: Removed.
* Modules/mediasource/VideoTrack+MediaSource.idl: Added.
* Modules/mediasource/VideoTrackMediaSource.idl: Removed.
* Modules/mediastream/Navigator+MediaDevices.idl: Added.
* Modules/mediastream/NavigatorMediaDevices.idl: Removed.
* Modules/pictureinpicture/Document+PictureInPicture.idl: Added.
* Modules/pictureinpicture/DocumentOrShadowRoot+PictureInPicture.idl: Added.
* Modules/pictureinpicture/DocumentOrShadowRootPictureInPicture.idl: Removed.
* Modules/pictureinpicture/DocumentPictureInPicture.idl: Removed.
* Modules/pictureinpicture/HTMLVideoElement+PictureInPicture.idl: Added.
* Modules/pictureinpicture/HTMLVideoElementPictureInPicture.idl: Removed.
* Modules/quota/DOMWindow+Quota.idl: Added.
* Modules/quota/DOMWindowQuota.idl: Removed.
* Modules/quota/Navigator+StorageQuota.idl: Added.
* Modules/quota/NavigatorStorageQuota.idl: Removed.
* Modules/quota/WorkerNavigator+StorageQuota.idl: Added.
* Modules/quota/WorkerNavigatorStorageQuota.idl: Removed.
* Modules/remoteplayback/HTMLMediaElement+RemotePlayback.idl: Added.
* Modules/remoteplayback/HTMLMediaElementRemotePlayback.idl: Removed.
* Modules/speech/DOMWindow+SpeechSynthesis.idl: Added.
* Modules/speech/DOMWindowSpeechSynthesis.idl: Removed.
* Modules/webdatabase/DOMWindow+WebDatabase.idl: Added.
* Modules/webdatabase/DOMWindowWebDatabase.idl: Removed.
* Modules/webdriver/Navigator+WebDriver.idl: Added.
* Modules/webdriver/NavigatorWebDriver.idl: Removed.
* Modules/webgpu/Navigator+GPU.idl: Added.
* Modules/webgpu/NavigatorGPU.idl: Removed.
* Modules/webgpu/WorkerNavigator+GPU.idl: Added.
* Modules/webgpu/WorkerNavigatorGPU.idl: Removed.
* Modules/webxr/Navigator+WebXR.idl: Added.
* Modules/webxr/NavigatorWebXR.idl: Removed.
* animation/Document+WebAnimations.idl: Added.
* animation/DocumentAnimations.idl: Removed.
* animation/DocumentOrShadowRoot+WebAnimations.idl: Added.
* animation/DocumentOrShadowRootAnimations.idl: Removed.
* animation/GlobalEventHandlers+CSSAnimations.idl: Added.
* animation/GlobalEventHandlers+CSSTransitions.idl: Added.
* animation/GlobalEventHandlersCSSAnimations.idl: Removed.
* animation/GlobalEventHandlersCSSTransitions.idl: Removed.
* css/DOMCSSNamespace+CSSPainting.idl: Added.
* css/DOMCSSNamespace+CSSPropertiesandValues.idl: Added.
* css/DOMCSSPaintWorklet.idl: Removed.
* css/DOMCSSRegisterCustomProperty.idl: Removed.
* css/DocumentOrShadowRoot+CSSOM.idl: Added.
* css/DocumentOrShadowRootStyleSheets.idl: Removed.
* dom/Document+CSSOMView.idl: Added.
* dom/Document+Fullscreen.idl: Added.
* dom/Document+HTML.idl: Added.
* dom/Document+HTMLObsolete.idl: Added.
* dom/Document+PageVisibility.idl: Added.
* dom/Document+PointerLock.idl: Added.
* dom/Document+Selection.idl: Added.
* dom/Document+StorageAccess.idl: Added.
* dom/Document+Touch.idl: Added.
* dom/Document+UndoMananger.idl: Added.
* dom/DocumentFullscreen.idl: Removed.
* dom/DocumentHTML.idl: Removed.
* dom/DocumentHTMLObsolete.idl: Removed.
* dom/DocumentOrShadowRoot+PointerLock.idl: Added.
* dom/DocumentOrShadowRootPointerLock.idl: Removed.
* dom/DocumentPageVisibility.idl: Removed.
* dom/DocumentPointerLock.idl: Removed.
* dom/DocumentScrolling.idl: Removed.
* dom/DocumentSelection.idl: Removed.
* dom/DocumentStorageAccess.idl: Removed.
* dom/DocumentTouch.idl: Removed.
* dom/DocumentUndoMananger.idl: Removed.
* dom/Element+DOMParsing.idl: Added.
* dom/ElementDOMParsing.idl: Removed.
* dom/GlobalEventHandlers+PointerEvents.idl: Added.
* dom/GlobalEventHandlersPointerEvents.idl: Removed.
* page/Navigator+IsLoggedIn.idl: Added.
* page/NavigatorIsLoggedIn.idl: Removed.
Rename IDLs.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267449
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
achristensen@apple.com [Wed, 23 Sep 2020 00:11:00 +0000 (00:11 +0000)]
Make TLSVersion API tests more robust.
https://bugs.webkit.org/show_bug.cgi?id=216704
Like I did in r267278, the TLSVersion.ShouldAllowDeprecatedTLS API test was also asserting with TCPServer,
so use HTTPServer which gracefully handles a variable number of connection attempts.
The NetworkSession tests that use NSUserDefaults need to be split into a separate test for bug 216041,
so may as well do that here, too.
* TestWebKitAPI/Tests/WebKitCocoa/TLSDeprecation.mm:
(TestWebKitAPI::makeWebViewWith):
(TestWebKitAPI::TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267448
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
aakash_jain@apple.com [Wed, 23 Sep 2020 00:04:52 +0000 (00:04 +0000)]
Limit number of emails to send for flaky and pre-existing JSC test failures
https://bugs.webkit.org/show_bug.cgi?id=216857
Reviewed by Jonathan Bedard.
* BuildSlaveSupport/ews-build/steps.py:
(AnalyzeJSCTestsResults.start):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267447
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zalan@apple.com [Tue, 22 Sep 2020 23:43:06 +0000 (23:43 +0000)]
[LFC][IFC] Used geometry for inline level boxes should be in the coordinate system of the formatting context root
https://bugs.webkit.org/show_bug.cgi?id=216854
Reviewed by Simon Fraser.
Convert inline level box geometry from relative to the line box to relative to the formatting context root.
* layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267446
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cdumez@apple.com [Tue, 22 Sep 2020 22:54:43 +0000 (22:54 +0000)]
Fix BiquadFilterNode's lowpass & highpass filters
https://bugs.webkit.org/show_bug.cgi?id=216852
Reviewed by Eric Carlson.
Source/WebCore:
Fix BiquadFilterNode's lowpass & highpass filters. They incorrectly clamp the
resonance to make it positive.
Formulas for the filters are specified here:
- https://www.w3.org/TR/webaudio/#filters-characteristics
No new tests, rebaselined existing tests.
* platform/audio/Biquad.cpp:
(WebCore::pow10):
(WebCore::Biquad::setLowpassParams):
(WebCore::Biquad::setHighpassParams):
LayoutTests:
Rebaseline tests that are now passing.
* webaudio/BiquadFilter/tail-time-highpass-expected.txt:
* webaudio/BiquadFilter/tail-time-lowpass-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267444
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cdumez@apple.com [Tue, 22 Sep 2020 22:52:42 +0000 (22:52 +0000)]
Merge AudioBufferSourceNode loop fixes from Blink
https://bugs.webkit.org/show_bug.cgi?id=216849
Reviewed by Eric Carlson.
Source/WebCore:
Merge AudioBufferSourceNode loop fixes from Blink, the following one in particular:
- https://codereview.chromium.org/
723823002
This allows us to pass all the checks in:
webaudio/AudioBufferSource/audiobuffersource-loop-comprehensive.html.
No new tests, rebaselined existing test.
* Modules/webaudio/AudioBufferSourceNode.cpp:
(WebCore::AudioBufferSourceNode::renderFromBuffer):
(WebCore::AudioBufferSourceNode::adjustGrainParameters):
Merge loop fixes from Blink.
* Modules/webaudio/AudioScheduledSourceNode.cpp:
(WebCore::AudioScheduledSourceNode::stopLater):
Stop throwing when m_endTime is already set. Our behavior did not match
Chrome and Firefox here. This was causing some existing tests to start
failing now that providing a grain duration when calling start() would
set m_endTime if loop() returns true.
LayoutTests:
* webaudio/AudioBufferSource/audiobuffersource-loop-comprehensive-expected.txt:
Rebaseline test that is now passing.
* webaudio/Oscillator/oscillator-basic-expected.txt:
* webaudio/dom-exceptions-expected.txt:
Rebaseline tests because the exception message was improved.
* webaudio/audiobuffersource-exception-expected.txt:
* webaudio/audiobuffersource-exception.html:
Stop expecting an exception to be thrown when AudioBufferSourceNode.stop() gets called
more than once. I have verified that Chrome and Firefox do not throw in this case.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267443
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
hector_i_lopez@apple.com [Tue, 22 Sep 2020 22:40:17 +0000 (22:40 +0000)]
[ macOS ] webgl/2.0.0/conformance/textures/misc/texture-upload-size.html is a flaky failure
rdar://
66842535
Unreviewed test gardening.
* platform/mac-wk2/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267442
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
krollin@apple.com [Tue, 22 Sep 2020 22:26:39 +0000 (22:26 +0000)]
Refactor build rules in Makefiles and Makefile.shared
https://bugs.webkit.org/show_bug.cgi?id=216806
<rdar://problem/
69332316>
Reviewed by David Kilzer.
Build fix: Previous change for this bug broke the ability to perform a
build with just `make`, due to that code path invoking
`set-webkit-configuration` with no parameters, which causes that
script to error-out.
* Makefile.shared:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267441
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Tue, 22 Sep 2020 22:23:08 +0000 (22:23 +0000)]
Coerce computed property before adding to |excludedList|
https://bugs.webkit.org/show_bug.cgi?id=216437
Patch by HyeockJin Kim <kherootz@gmail.com> on 2020-09-22
Reviewed by Yusuke Suzuki.
JSTests:
* stress/object-rest-deconstruct.js:
(get 3):
Source/JavaScriptCore:
* bytecompiler/NodesCodegen.cpp:
(JSC::ObjectPatternNode::bindValue const):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267440
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
sihui_liu@apple.com [Tue, 22 Sep 2020 22:21:43 +0000 (22:21 +0000)]
REGRESSION(r266075): WebContent process crashes at TextManipulationController::getPath
https://bugs.webkit.org/show_bug.cgi?id=216846
Reviewed by Wenson Hsieh.
Source/WebCore:
TextIterator does not visit node that has no renderer, so if node has become hidden, TextManipulationController
will not find content node in paragraph range during replacement.
API Test: TextManipulation.CompleteTextManipulationParagraphBecomesHidden
* editing/TextManipulationController.cpp:
(WebCore::TextManipulationController::replace):
Tools:
* TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:
(TestWebKitAPI::TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267439
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zalan@apple.com [Tue, 22 Sep 2020 21:45:32 +0000 (21:45 +0000)]
[LFC][IFC] Atomic inline-level box with margin is mispositioned
https://bugs.webkit.org/show_bug.cgi?id=216842
Reviewed by Antti Koivisto.
The inline box that an atomic inline-level box generates has the height of the margin box. Therefore the inline box's logical top position
is the position of the top edge of the margin box.
When converting the inline box geometry back to the layout box, we need to offset the top position (border box top edge)
with the value of the used margin before.
* layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267437
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cdumez@apple.com [Tue, 22 Sep 2020 20:13:41 +0000 (20:13 +0000)]
AudioParam.setValueCurveAtTime() should have an implicit call to setValueAtTime() at the end
https://bugs.webkit.org/show_bug.cgi?id=216839
Reviewed by Eric Carlson.
Source/WebCore:
AudioParam.setValueCurveAtTime() should have an implicit call to setValueAtTime() at the end,
as specified here:
- https://www.w3.org/TR/webaudio/#dom-audioparam-setvaluecurveattime
"""
An implicit call to setValueAtTime() is made at time 𝑇0+𝑇𝐷 with value 𝑉[𝑁−1] so that
following automations will start from the end of the setValueCurveAtTime() event.
"""
No new tests, rebaselined existing test.
* Modules/webaudio/AudioParamTimeline.cpp:
(WebCore::AudioParamTimeline::setValueCurveAtTime):
LayoutTests:
Rebaseline test that is now passing.
* webaudio/AudioParam/audioparam-setValueCurve-end-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267435
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zalan@apple.com [Tue, 22 Sep 2020 20:07:19 +0000 (20:07 +0000)]
[LFC][IFC] Add support for multiline inline box geometry.
https://bugs.webkit.org/show_bug.cgi?id=216835
Reviewed by Antti Koivisto.
This patch computes the geometry for inline boxes spanning multiple lines (e.g. <span>first line<br>next line</span).
However this is not the getBoundingClientRect() type of geometry where we provide geometry for each fragments. This is more like the
element.offset* geometry where we compute the enclosing rectangle for all the fragments.
* layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::layoutInFlowContent): Decouple the run construction and inline box geometry update logic,
where we loop through the runs and create "line runs" when needed and then we loop through the inline boxes on the current line and
update the box geometries.
(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):
* layout/inlineformatting/InlineFormattingState.h:
(WebCore::Layout::InlineFormattingState::lineBoxes const):
(WebCore::Layout::InlineFormattingState::addLineBox):
(WebCore::Layout::InlineFormattingState::clearLineAndRuns):
(WebCore::Layout::InlineFormattingState::shrinkToFit):
* layout/inlineformatting/InlineLineBox.h:
(WebCore::Layout::LineBox::containsInlineLevelBox const):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267434
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cdumez@apple.com [Tue, 22 Sep 2020 19:25:56 +0000 (19:25 +0000)]
AudioParams with automations must process timelines
https://bugs.webkit.org/show_bug.cgi?id=216837
Reviewed by Darin Adler.
Source/WebCore:
Currently, if an AudioNode has no inputs connected, any automations
(or connections) to an AudioParam of the node is not processed. Thus,
time never advances on the AudioParam, and any upstream graph
connected to the AudioParam never gets pulled for data.
AudioParam should get processed so that time progresses. Normal
processing of the node causes AudioParams to be processed, so we were
only missing the case where the node has silent inputs (silent or no
inputs). Then we just need to update the AudioParams, without having
to do the full processing associated with the node.
See https://webaudio.github.io/web-audio-api/#rendering-loop, step 8.1.1
in particular that says any inputs connected to an AudioParam are
processed. There are no conditions on when this happens.
This is a merge of the following Blink change by Raymond Toy:
- https://codereview.chromium.org/
2420983002
No new tests, rebaselined existing test.
* Modules/webaudio/AudioBasicProcessorNode.cpp:
(WebCore::AudioBasicProcessorNode::processOnlyAudioParams):
* Modules/webaudio/AudioBasicProcessorNode.h:
* Modules/webaudio/AudioListener.h:
* Modules/webaudio/AudioNode.cpp:
(WebCore::AudioNode::processIfNecessary):
* Modules/webaudio/AudioNode.h:
(WebCore::AudioNode::processOnlyAudioParams):
* Modules/webaudio/BiquadFilterNode.cpp:
(WebCore::BiquadFilterNode::BiquadFilterNode):
* Modules/webaudio/BiquadProcessor.cpp:
(WebCore::BiquadProcessor::processOnlyAudioParams):
* Modules/webaudio/BiquadProcessor.h:
* Modules/webaudio/DelayDSPKernel.cpp:
(WebCore::DelayDSPKernel::processOnlyAudioParams):
* Modules/webaudio/DelayDSPKernel.h:
* Modules/webaudio/DelayNode.cpp:
(WebCore::DelayNode::DelayNode):
* Modules/webaudio/DynamicsCompressorNode.cpp:
(WebCore::DynamicsCompressorNode::processOnlyAudioParams):
* Modules/webaudio/DynamicsCompressorNode.h:
* Modules/webaudio/GainNode.cpp:
(WebCore::GainNode::processOnlyAudioParams):
* Modules/webaudio/GainNode.h:
* Modules/webaudio/PannerNode.cpp:
(WebCore::PannerNode::processOnlyAudioParams):
* Modules/webaudio/PannerNode.h:
* Modules/webaudio/StereoPannerNode.cpp:
(WebCore::StereoPannerNode::processOnlyAudioParams):
* Modules/webaudio/StereoPannerNode.h:
* platform/audio/AudioDSPKernel.h:
(WebCore::AudioDSPKernel::processOnlyAudioParams):
* platform/audio/AudioDSPKernelProcessor.cpp:
(WebCore::AudioDSPKernelProcessor::processOnlyAudioParams):
* platform/audio/AudioDSPKernelProcessor.h:
* platform/audio/AudioProcessor.h:
(WebCore::AudioProcessor::processOnlyAudioParams):
LayoutTests:
Rebaseline test that is now passing.
* webaudio/AudioParam/audioparam-processing-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267432
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
lmoura@igalia.com [Tue, 22 Sep 2020 19:18:17 +0000 (19:18 +0000)]
[GTK] REGRESSION(r267398): several hidpi tests are failing
https://bugs.webkit.org/show_bug.cgi?id=216830
Reviewed by Adrian Perez de Castro.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setCustomDeviceScaleFactor): Remove check for removed define.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267431
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cdumez@apple.com [Tue, 22 Sep 2020 19:03:05 +0000 (19:03 +0000)]
Unreviewed, partial revert of r267383.
Restore GStreamer-specific implementation of FFTFrame::multiply() since it appears
r267383 introduced test failures on GTK port.
* platform/audio/FFTFrame.cpp:
(WebCore::FFTFrame::multiply): Deleted.
* platform/audio/FFTFrameStub.cpp:
(WebCore::FFTFrame::multiply):
* platform/audio/gstreamer/FFTFrameGStreamer.cpp:
(WebCore::FFTFrame::multiply):
* platform/audio/mac/FFTFrameMac.cpp:
(WebCore::FFTFrame::multiply):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267428
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
peng.liu6@apple.com [Tue, 22 Sep 2020 19:01:06 +0000 (19:01 +0000)]
[Media in GPU Process] Add missing IPC message receivers
https://bugs.webkit.org/show_bug.cgi?id=216829
Reviewed by Jer Noble.
Add missing IPC message receivers and clean up some macro usages.
Also remove the empty RemoteMediaPlayerManager.messages.in.
No new tests, no functional change.
* CMakeLists.txt:
* DerivedSources-input.xcfilelist:
* DerivedSources.make:
* GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::dispatchMessage):
(WebKit::GPUConnectionToWebProcess::dispatchSyncMessage):
* GPUProcess/GPUConnectionToWebProcess.h:
* GPUProcess/media/ios/RemoteMediaSessionHelperProxy.h:
(WebKit::RemoteMediaSessionHelperProxy::didReceiveMessageFromWebProcess):
* WebKit.xcodeproj/project.pbxproj:
* WebProcess/GPU/GPUProcessConnection.cpp:
(WebKit::GPUProcessConnection::dispatchMessage):
* WebProcess/GPU/media/RemoteMediaPlayerManager.messages.in: Removed.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267427
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
krollin@apple.com [Tue, 22 Sep 2020 18:37:51 +0000 (18:37 +0000)]
Refactor build rules in Makefiles and Makefile.shared
https://bugs.webkit.org/show_bug.cgi?id=216806
<rdar://problem/
69332316>
Reviewed by David Kilzer.
Factor out the common aspects of the build rules in Makefile.shared
and the various Makefiles. This allows us to more easily see what's
different between the various build targets, and to apply uniform
changes across all of the targets.
* Makefile:
.:
* Makefile.shared:
* Source/Makefile:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267424
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
pvollan@apple.com [Tue, 22 Sep 2020 18:03:15 +0000 (18:03 +0000)]
[macOS] Start collecting telemetry from a set of XPC services
<https://bugs.webkit.org/show_bug.cgi?id=216797>
Reviewed by Brent Fulgham.
* WebProcess/com.apple.WebProcess.sb.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267421
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
dpino@igalia.com [Tue, 22 Sep 2020 17:57:36 +0000 (17:57 +0000)]
[GLIB] Unreviewed test gardening. Mark several audio related tests as failure after r267383.
Also emit baselines for 2 tests passing.
* platform/glib/TestExpectations:
* platform/glib/webaudio/Analyser/realtimeanalyser-fftsize-reset-expected.txt: Added.
* platform/glib/webaudio/Analyser/realtimeanalyser-multiple-calls-expected.txt: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267419
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zalan@apple.com [Tue, 22 Sep 2020 17:33:21 +0000 (17:33 +0000)]
[LFC] FormattingState should never be copied.
https://bugs.webkit.org/show_bug.cgi?id=216833
Reviewed by Antti Koivisto.
Even when running a throw-away layout, we should not copy the state object but instead generate a new one for the subtree.
These objects should never be copied in general.
* layout/FormattingState.h:
* layout/LayoutState.h:
* layout/tableformatting/TableFormattingContextGeometry.cpp:
(WebCore::Layout::TableFormattingContext::Geometry::usedBaselineForCell):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267418
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Tue, 22 Sep 2020 16:53:31 +0000 (16:53 +0000)]
REGRESSION(r267354): Only import resource module on Darwin
https://bugs.webkit.org/show_bug.cgi?id=216823
Patch by Sam Sneddon <gsnedders@apple.com> on 2020-09-22
Reviewed by Darin Adler.
* web-platform-tests/tools/serve/serve.py:
Move the resource import to the local point behind the Darwin platform
test. This code is only run once per process initiation, hence it makes
no difference to have the import locally.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267417
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jbedard@apple.com [Tue, 22 Sep 2020 16:45:48 +0000 (16:45 +0000)]
Correct instructions for building iOS in ReadMe
https://bugs.webkit.org/show_bug.cgi?id=216825
<rdar://problem/
69372654>
Reviewed by David Kilzer.
* ReadMe.md: Update iOS build instructions to apply to all embedded platforms.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267416
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
youenn@apple.com [Tue, 22 Sep 2020 16:32:11 +0000 (16:32 +0000)]
Implement a default prompt for getUserMedia
https://bugs.webkit.org/show_bug.cgi?id=216821
Reviewed by Eric Carlson.
Source/WebCore:
Manually tested by running Minibrowser.
* en.lproj/Localizable.strings:
Source/WebKit:
Move preferences used by WebRTC develop menu to internals.
This allows having them in MiniBrowser.
Enable video capture in UIProcess by default for non Safari applications.
Add support for a getUserMedia prompt, very similar to iOS current prompt.
Use the prompt in case the application does not implement any of the two delegates.
* Shared/WebPreferences.yaml:
* Shared/WebPreferencesDefaultValues.cpp:
(WebKit::defaultCaptureVideoInUIProcessEnabled):
* Shared/WebPreferencesDefaultValues.h:
* Shared/WebPreferencesExperimental.yaml:
* Shared/WebPreferencesInternal.yaml:
* UIProcess/Cocoa/UIDelegate.h:
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::setDelegate):
(WebKit::requestUserMediaAuthorizationForFrame):
(WebKit::UIDelegate::UIClient::decidePolicyForUserMediaPermissionRequest):
* UIProcess/Cocoa/WKUserMediaCaptureAccessAlert.h: Added.
* UIProcess/Cocoa/WKUserMediaCaptureAccessAlert.mm: Added.
(WebKit::visibleDomain):
(WebKit::alertMessageText):
(WebKit::presentUserMediaCaptureAccessAlert):
* WebKit.xcodeproj/project.pbxproj:
Tools:
Remove getUserMedia delegate implementations to use WebKit built-in prompt.
Add camera and microphone entitlements to allow using real cameras and microphones.
Keep using mock devices as the default.
* MiniBrowser/MiniBrowser.entitlements:
* MiniBrowser/mac/WK2BrowserWindowController.m:
(-[WK2BrowserWindowController _webView:requestMediaCaptureAuthorization:decisionHandler:]): Deleted.
(-[WK2BrowserWindowController _webView:includeSensitiveMediaDeviceDetails:]): Deleted.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267414
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cdumez@apple.com [Tue, 22 Sep 2020 16:29:35 +0000 (16:29 +0000)]
webaudio/AudioParam/audioparam-setTarget-timeConstant-0.html is crashing
https://bugs.webkit.org/show_bug.cgi?id=216824
Reviewed by Darin Adler.
Source/WebCore:
If the time constant pass to AudioParam.setTargetAtTime() is 0, then insert a SetValue event in
the timeline instead of a SetTarget one, causing us to instantly jump to the target value. This
matches the Blink behavior.
No new tests, unskipped existing test.
* Modules/webaudio/AudioParamTimeline.cpp:
(WebCore::AudioParamTimeline::setTargetAtTime):
LayoutTests:
Unskip test that is passing and no longer crashing.
* TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267413
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
beidson@apple.com [Tue, 22 Sep 2020 16:22:33 +0000 (16:22 +0000)]
Crashtracer inside PDFPlugin::createScrollbar.
<rdar://problem/
69256031> and https://bugs.webkit.org/show_bug.cgi?id=216810
Reviewed by Tim Horton.
To quote Tim from r264945:
No new tests; timing is such that I can't reproduce without inserting
intentional delays into the main thread hops, which is further than
I'm willing to go for a test.
This is a speculative fix due to the aforementioned reproducibility issue.
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::installPDFDocument): With all the past fixes in place, its apparent
the plug-in HAS been torn down, and it's somewhat common to bypass the other "hasBeenDestroyed"
checks. So put an explicit check here followed by an explicit release assert.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267412
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
bburg@apple.com [Tue, 22 Sep 2020 16:14:08 +0000 (16:14 +0000)]
[Cocoa] _WKInspectorDelegate should handle showing external resources
https://bugs.webkit.org/show_bug.cgi?id=216334
Reviewed by Devin Rousso.
Source/WebCore:
Adapt to the rename of InspectorFrontendHost.{openInNewTab => openURLExternally}.
* inspector/InspectorFrontendClient.h:
* inspector/InspectorFrontendClientLocal.cpp:
(WebCore::InspectorFrontendClientLocal::openURLExternally):
(WebCore::InspectorFrontendClientLocal::openInNewTab): Deleted.
* inspector/InspectorFrontendClientLocal.h:
* inspector/InspectorFrontendHost.cpp:
(WebCore::InspectorFrontendHost::openURLExternally):
(WebCore::InspectorFrontendHost::openInNewTab): Deleted.
* inspector/InspectorFrontendHost.h:
* inspector/InspectorFrontendHost.idl:
Source/WebInspectorUI:
Adapt to the rename of InspectorFrontendHost.{openInNewTab => openURLExternally}.
* UserInterface/Base/Main.js:
* UserInterface/Debug/UncaughtExceptionReporter.js:
(sheetElement.innerHTML.div):
* UserInterface/Protocol/InspectorFrontendAPI.js:
* UserInterface/Views/ResourceTreeElement.js:
(WI.ResourceTreeElement.prototype.ondblclick):
Source/WebKit:
WebKit clients need a way to control the loading and presentation of
external resources that are linked in Web Inspector's user interface.
Rename InspectorFrontendHost.openInNewTab to openURLExternally. Change
the implementation to forward the request to UIProcess rather than the
inspected WebProcess.
When a navigation is triggered in WKInspectorViewController's WKWebView,
allow the delegate to open the requested resource. Otherwise, redirect
the navigation to the inspected WebView or open it using NSWorkspace
(for the remote case).
New API test: WKInspectorDelegate.OpenURLExternally.
* UIProcess/API/Cocoa/_WKInspectorPrivateForTesting.h: Added.
* UIProcess/API/Cocoa/_WKInspectorTesting.mm: Added.
(snippetToOpenURLExternally):
(-[_WKInspector _openURLExternallyForTesting:useFrontendAPI:]):
Add some helpers for writing API tests.
* UIProcess/API/APIInspectorClient.h:
(API::InspectorClient::openURLExternally):
* UIProcess/API/Cocoa/_WKInspectorDelegate.h:
* UIProcess/Cocoa/PageClientImplCocoa.mm:
* UIProcess/Inspector/Cocoa/InspectorDelegate.h:
* UIProcess/Inspector/Cocoa/InspectorDelegate.mm:
(WebKit::InspectorDelegate::setDelegate):
(WebKit::InspectorDelegate::InspectorClient::openURLExternally):
Add new delegate method to _WKInspectorDelegate.
* UIProcess/Inspector/RemoteWebInspectorProxy.messages.in:
* UIProcess/Inspector/RemoteWebInspectorProxy.h:
* UIProcess/Inspector/RemoteWebInspectorProxy.cpp:
(WebKit::RemoteWebInspectorProxy::openURLExternally):
(WebKit::RemoteWebInspectorProxy::platformOpenURLExternally):
(WebKit::RemoteWebInspectorProxy::openInNewTab): Deleted.
(WebKit::RemoteWebInspectorProxy::platformOpenInNewTab): Deleted.
* UIProcess/Inspector/gtk/RemoteWebInspectorProxyGtk.cpp:
(WebKit::RemoteWebInspectorProxy::platformURLExternally):
(WebKit::RemoteWebInspectorProxy::platformOpenInNewTab): Deleted.
* UIProcess/Inspector/mac/RemoteWebInspectorProxyMac.mm:
(WebKit::RemoteWebInspectorProxy::platformOpenURLExternally):
(WebKit::RemoteWebInspectorProxy::platformOpenInNewTab): Deleted.
* UIProcess/Inspector/win/RemoteWebInspectorProxyWin.cpp:
(WebKit::RemoteWebInspectorProxy::platformOpenURLExternally):
(WebKit::RemoteWebInspectorProxy::platformOpenInNewTab): Deleted.
Rename openInNewTab to openURLExternally. In some cases the client
may not choose to present a new tab, so the name is no longer accurate.
* UIProcess/Inspector/WebInspectorProxy.messages.in:
* UIProcess/Inspector/WebInspectorProxy.h:
* UIProcess/Inspector/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::inspectorWindow const):
(WebKit::WebInspectorProxy::openURLExternally):
(WebKit::WebInspectorProxy::evaluateInFrontendForTesting):
* UIProcess/Inspector/mac/WebInspectorProxyMac.mm:
(-[WKWebInspectorProxyObjCAdapter inspectorViewController:openURLExternally:]):
Add some helpers for writing API tests. Add an IPC message
for evaluating a JavaScript expression in the frontend page.
Also, add a message receiver for the OpenURLExternally message
which passes the request to the API layer.
* UIProcess/Inspector/mac/WKInspectorViewController.h:
* UIProcess/Inspector/mac/WKInspectorViewController.mm:
(-[WKInspectorViewController webView:decidePolicyForNavigationAction:decisionHandler:]):
Call the delegate method if a navigation inside the inspector WKWebView is an external URL.
Specifically the request is to load something other than the Web Inspector's main HTML page.
* WebProcess/Inspector/WebInspector.cpp:
(WebKit::WebInspector::openInNewTab): Deleted.
* WebProcess/Inspector/WebInspector.h:
* WebProcess/Inspector/WebInspector.messages.in:
No need to handle this message anymore in the inspected WebProcess.
* WebProcess/Inspector/RemoteWebInspectorUI.h:
* WebProcess/Inspector/RemoteWebInspectorUI.cpp:
(WebKit::RemoteWebInspectorUI::openURLExternally):
(WebKit::RemoteWebInspectorUI::openInNewTab): Deleted.
* WebProcess/Inspector/WebInspectorUI.messages.in:
* WebProcess/Inspector/WebInspectorUI.h:
* WebProcess/Inspector/WebInspectorUI.cpp:
(WebKit::WebInspectorUI::updateConnection):
(WebKit::WebInspectorUI::closeWindow):
(WebKit::WebInspectorUI::openURLExternally):
(WebKit::WebInspectorUI::evaluateInFrontendForTesting):
(WebKit::WebInspectorUI::openInNewTab): Deleted.
When we need to open the URL externally, send an IPC message to UIProcess.
The old implementation triggered the navigation from the inspected WebProcess.
That approach is no longer desirable. Remove the unneeded IPC connection.
* WebProcess/Inspector/WebInspectorFrontendAPIDispatcher.h:
* WebProcess/Inspector/WebInspectorFrontendAPIDispatcher.cpp:
(WebKit::WebInspectorFrontendAPIDispatcher::evaluateExpressionForTesting):
Fulfill the request to evaluate the expression in the frontend page.
* SourcesCocoa.txt:
* WebKit.xcodeproj/project.pbxproj:
Some files were added.
Tools:
Test the delegate using WebKit API and using InspectorFrontendHost API.
* TestWebKitAPI/Tests/WebKitCocoa/WKInspectorDelegate.mm:
(-[InspectorDelegate inspector:openURLExternally:]): Added.
(TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267411
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
tsavell@apple.com [Tue, 22 Sep 2020 16:00:50 +0000 (16:00 +0000)]
Unreviewed, reverting r267380.
Broke multiple test suites on Liberty
Reverted changeset:
"[webkitpy] Use webkitcorepy's auto installer for pytest
packages"
https://bugs.webkit.org/show_bug.cgi?id=215895
https://trac.webkit.org/changeset/267380
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267410
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
weinig@apple.com [Tue, 22 Sep 2020 15:28:32 +0000 (15:28 +0000)]
[WebIDL] Split up Performance.idl into component partials
https://bugs.webkit.org/show_bug.cgi?id=216729
Reviewed by Darin Adler.
Split additions to the Peformance interface from the Navagation Timing,
Resource Timing, User Timing and Performance Timeline specs into their
own IDL files. Trying something new with the naming (using Performance
'+' name of the spec supplying the addition) for these partials to test
the waters.
* CMakeLists.txt:
* DerivedSources-input.xcfilelist:
* DerivedSources-output.xcfilelist:
* DerivedSources.make:
* WebCore.xcodeproj/project.pbxproj:
* page/Performance+NavigationTiming.idl: Added.
* page/Performance+PerformanceTimeline.idl: Added.
* page/Performance+ResourceTiming.idl: Added.
* page/Performance+UserTiming.idl: Added.
* page/Performance.idl:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267408
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
lmoura@igalia.com [Tue, 22 Sep 2020 14:59:02 +0000 (14:59 +0000)]
[GTK] Mark compositing/video/video-update-rendering.html as flaky crash
Unreviewed test gardening.
* platform/gtk/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267406
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
pvollan@apple.com [Tue, 22 Sep 2020 14:54:16 +0000 (14:54 +0000)]
[macOS] Start collecting telemetry from message filtering
<https://bugs.webkit.org/show_bug.cgi?id=216803>
Reviewed by Darin Adler.
Start collecting telemetry for message filtering in the WebContent sandbox on macOS.
* WebProcess/com.apple.WebProcess.sb.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267405
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zalan@apple.com [Tue, 22 Sep 2020 13:34:07 +0000 (13:34 +0000)]
[LFC][IFC] TextUtil::split needs logical left
https://bugs.webkit.org/show_bug.cgi?id=216798
Reviewed by Antti Koivisto.
Measuring text content requires logical left offset (e.g. tab size depends on the logical position).
Let's pass in the current logical left position to TextUtil::split.
* layout/inlineformatting/InlineLineBreaker.cpp:
(WebCore::Layout::ContinuousContent::runs const):
(WebCore::Layout::ContinuousContent::isEmpty const):
(WebCore::Layout::ContinuousContent::logicalWidth const):
(WebCore::Layout::ContinuousContent::logicalLeft const):
(WebCore::Layout::ContinuousContent::nonCollapsibleLogicalWidth const):
(WebCore::Layout::LineBreaker::isContentWrappingAllowed const):
(WebCore::Layout::LineBreaker::shouldKeepEndOfLineWhitespace const):
(WebCore::Layout::LineBreaker::shouldWrapInlineContent):
(WebCore::Layout::LineBreaker::tryWrappingInlineContent const):
(WebCore::Layout::LineBreaker::wrapTextContent const):
(WebCore::Layout::LineBreaker::tryBreakingTextRun const):
(WebCore::Layout::ContinuousContent::ContinuousContent):
(WebCore::Layout::ContinuousContent::hasTextContentOnly const):
(WebCore::Layout::ContinuousContent::isVisuallyEmptyWhitespaceContentOnly const):
(WebCore::Layout::ContinuousContent::firstTextRunIndex const):
(WebCore::Layout::ContinuousContent::lastContentRunIndex const):
(WebCore::Layout::ContinuousContent::hasNonContentRunsOnly const):
(WebCore::Layout::ContinuousContent::size const): Deleted.
(WebCore::Layout::ContinuousContent::width const): Deleted.
(WebCore::Layout::ContinuousContent::nonCollapsibleWidth const): Deleted.
* layout/inlineformatting/InlineLineBreaker.h:
* layout/inlineformatting/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::handleFloatsAndInlineContent):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267404
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
youenn@apple.com [Tue, 22 Sep 2020 12:10:58 +0000 (12:10 +0000)]
Move Media in GPU Process flag from internal to experimental
https://bugs.webkit.org/show_bug.cgi?id=216473
<rdar://problem/
69318786>
Reviewed by Eric Carlson.
Source/WebKit:
No change of behavior.
* Shared/WebPreferencesExperimental.yaml:
* Shared/WebPreferencesInternal.yaml:
Tools:
* Scripts/webkitpy/layout_tests/run_webkit_tests.py:
(parse_args):
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues):
Disable Media in GPU Process flag and WebRTC codec experimental features by default.
This can be overriden by WebKitTestRunner options.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267403
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
weinig@apple.com [Tue, 22 Sep 2020 08:46:36 +0000 (08:46 +0000)]
Update User Timing interfaces to User Timing Level 3
https://bugs.webkit.org/show_bug.cgi?id=216787
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
Import missing case-sensitivity test case from upstream and update the results
of User Timing tests now that we support Level 3.
* web-platform-tests/user-timing/case-sensitivity.any-expected.txt: Added.
* web-platform-tests/user-timing/case-sensitivity.any.html: Added.
* web-platform-tests/user-timing/case-sensitivity.any.js: Added.
* web-platform-tests/user-timing/case-sensitivity.any.worker-expected.txt: Added.
* web-platform-tests/user-timing/case-sensitivity.any.worker.html: Added.
* web-platform-tests/user-timing/idlharness.any-expected.txt:
* web-platform-tests/user-timing/idlharness.any.worker-expected.txt:
* web-platform-tests/user-timing/mark-entry-constructor.any-expected.txt:
* web-platform-tests/user-timing/mark-entry-constructor.any.worker-expected.txt:
* web-platform-tests/user-timing/mark-errors.any-expected.txt:
* web-platform-tests/user-timing/mark-errors.any.worker-expected.txt:
* web-platform-tests/user-timing/mark-l3.any-expected.txt:
* web-platform-tests/user-timing/mark-l3.any.worker-expected.txt:
* web-platform-tests/user-timing/mark-measure-return-objects.any-expected.txt:
* web-platform-tests/user-timing/mark-measure-return-objects.any.worker-expected.txt:
* web-platform-tests/user-timing/measure-l3.any-expected.txt:
* web-platform-tests/user-timing/measure-l3.any.worker-expected.txt:
* web-platform-tests/user-timing/measure-with-dict.any-expected.txt:
* web-platform-tests/user-timing/measure-with-dict.any.worker-expected.txt:
* web-platform-tests/user-timing/measure_exception-expected.txt:
* web-platform-tests/user-timing/performance-measure-invalid.worker-expected.txt:
* web-platform-tests/user-timing/structured-serialize-detail.any-expected.txt:
* web-platform-tests/user-timing/structured-serialize-detail.any.worker-expected.txt:
Source/WebCore:
Adds support for User Timing Level 3 which adds more flexibility in how PerformanceMarks
and PerformanceMeasures are created via synthetic start/end times and associate 'details'
values serialized with events themselves.
Updates results to existing WPT and standalone tests.
* CMakeLists.txt:
* DerivedSources-input.xcfilelist:
* DerivedSources-output.xcfilelist:
* DerivedSources.make:
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
Add new files.
* page/Performance.cpp:
(WebCore::Performance::mark):
(WebCore::Performance::clearMarks):
(WebCore::Performance::measure):
(WebCore::Performance::clearMeasures):
* page/Performance.h:
* page/Performance.idl:
Update for new signatures for mark and measure, and rename of UserTiming to PerformanceUserTiming.
* page/PerformanceMark.cpp: Added.
(WebCore::peformanceNow):
(WebCore::PerformanceMark::create):
(WebCore::PerformanceMark::PerformanceMark):
(WebCore::PerformanceMark::detail):
* page/PerformanceMark.h:
* page/PerformanceMark.idl:
Add support for PerformanceMark's constructor `detail` getter. While the spec says to
serialize and the deserialize in the constructor, we only serialize, and delay deserialization
until the first access, which is a non-observable difference. We also utilize [CachedAttribute]
to only ever deserialize once per wrapper world (and also greatly simplify the GC shenanigans).
* page/PerformanceMarkOptions.h: Added.
* page/PerformanceMarkOptions.idl: Added.
Import and bind PerformanceMarkOptions dictionary to a new struct.
* page/PerformanceMeasure.cpp: Added.
(WebCore::PerformanceMeasure::create):
(WebCore::PerformanceMeasure::PerformanceMeasure):
(WebCore::PerformanceMeasure::detail):
* page/PerformanceMeasure.h:
* page/PerformanceMeasure.idl:
Like with PerformanceMark, but there is no constructor here, so we only need to handle adding
support for the detail getter.
* page/PerformanceMeasureOptions.h: Added.
* page/PerformanceMeasureOptions.idl: Added.
Import and bind PerformanceMeasureOptions dictionary to a new struct.
* page/PerformanceUserTiming.cpp:
(WebCore::restrictedMarkNamesToNavigationTimingFunctionMap):
(WebCore::restrictedMarkFunction):
(WebCore::isRestrictedMarkNameNonMainThread):
(WebCore::PerformanceUserTiming::isRestrictedMarkName):
Split up existing map to enable accessing it safely from a worker using conservative
callOnMainThreadAndWait approach, though since the map is immutable after initialization,
we can probably optimize this to allow concurrent querying in the future.
(WebCore::addPerformanceEntry):
Add helper, mirroring clearPerformanceEntries, to add entries.
(WebCore::PerformanceUserTiming::mark):
Matching the spec language, utilize the new PerformanceMark constructor to create
the mark.
(WebCore::PerformanceUserTiming::convertMarkToTimestamp const):
(WebCore::isNonEmptyDictionary):
(WebCore::PerformanceUserTiming::measure):
Implement measure support by dispatching various combinations of arguments to
overloads manually by inspecting the Variant.
* page/PerformanceUserTiming.h:
Renames class from UserTiming to PerformanceUserTiming to match file names.
LayoutTests:
Update error text due to some changes in which exceptions are thrown due to
new support for User Timing Level 3.
* performance-api/performance-measure-name-expected.txt:
* performance-api/performance-now-api-expected.txt:
* performance-api/user-timing-apis-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267402
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
youenn@apple.com [Tue, 22 Sep 2020 08:03:38 +0000 (08:03 +0000)]
toRTCIceProtocol should handle ssltcp candidates
https://bugs.webkit.org/show_bug.cgi?id=216762
Reviewed by Darin Adler.
Source/WebCore:
Covered by mock WebRTC backend pushing ssltcp candidates.
* Modules/mediastream/libwebrtc/LibWebRTCUtils.cpp:
(WebCore::toRTCIceProtocol):
* testing/MockLibWebRTCPeerConnection.cpp:
LayoutTests:
* fast/mediastream/RTCPeerConnection-icecandidate-event-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267401
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
youenn@apple.com [Tue, 22 Sep 2020 06:58:00 +0000 (06:58 +0000)]
Enable MediaRecorder by default on iOS
https://bugs.webkit.org/show_bug.cgi?id=216664
Reviewed by Darin Adler.
* Shared/WebPreferencesDefaultValues.cpp:
(WebKit::defaultMediaRecorderEnabled):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267400
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
aperez@igalia.com [Tue, 22 Sep 2020 06:52:15 +0000 (06:52 +0000)]
[CMake] Use imported targets in find module for the ATK SPI2 bridge dependency
https://bugs.webkit.org/show_bug.cgi?id=216773
Reviewed by Don Olmstead.
.:
* Source/cmake/FindATKBridge.cmake: Rewrite to define an ATK::Bridge imported target.
* Source/cmake/OptionsWPE.cmake: Use the ATK::Bridge imported target.
Source/WebKit:
No new tests needed.
* PlatformWPE.cmake: Use the ATK::Bridge imported target.
Tools:
* wpe/backends/CMakeLists.txt: Use the ATK::Bridge imported target.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267399
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
aperez@igalia.com [Tue, 22 Sep 2020 06:08:19 +0000 (06:08 +0000)]
[GTK] Bump cairo version to support HiDPI
https://bugs.webkit.org/show_bug.cgi?id=133378
Reviewed by Carlos Garcia Campos.
Remove conditional compilation around cairo_{g,s}et_device_scale() as there is no need to
support older versions of Cairo which lack the functions. The minimum version of Cairo
being required by CMake is 1.14.0, which already includes them.
Source/WebCore:
No new tests needed.
* platform/graphics/cairo/BackingStoreBackendCairoImpl.cpp:
(WebCore::createCairoImageSurfaceWithFastMalloc): Use cairo_surface_set_device_scale()
directly.
(WebCore::BackingStoreBackendCairoImpl::scroll): Use cairo_surface_get_device_scale()
directly.
* platform/graphics/cairo/BackingStoreBackendCairoX11.cpp:
(WebCore::BackingStoreBackendCairoX11::BackingStoreBackendCairoX11): Use
cairo_surface_set_device_scale() directly.
(WebCore::BackingStoreBackendCairoX11::scroll): Use cairo_surface_get_device_scale()
directly.
* platform/graphics/cairo/CairoUtilities.cpp: Remove helper functions
cairoSurfaceSetDeviceScale() and cairoSurfaceGetDeviceScale().
* platform/graphics/cairo/CairoUtilities.h: Ditto.
Source/WebKit:
* Shared/cairo/ShareableBitmapCairo.cpp:
(WebKit::ShareableBitmap::paint): use cairo_surface_set_device_scale() directly.
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseTakeViewSnapshot): Ditto.
* UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:
(WebKit::AcceleratedBackingStoreWayland::displayBuffer): Ditto.
(WebKit::AcceleratedBackingStoreWayland::downloadTexture): Ditto.
* UIProcess/gtk/AcceleratedBackingStoreX11.cpp:
(WebKit::AcceleratedBackingStoreX11::update): Ditto.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267398
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Tue, 22 Sep 2020 05:07:13 +0000 (05:07 +0000)]
Remove deprecated script and stylesheet injection SPI, replaced with more inclusively-named SPI
https://bugs.webkit.org/show_bug.cgi?id=214936
Patch by Alex Christensen <achristensen@webkit.org> on 2020-09-21
Reviewed by Youenn Fablet.
rdar://
64376341 tracks the adoption of the replacement. Once that is done, we can remove the old SPI.
* WebView/WebView.mm:
(+[WebView _addUserScriptToGroup:world:source:url:whitelist:blacklist:injectionTime:]): Deleted.
(+[WebView _addUserScriptToGroup:world:source:url:whitelist:blacklist:injectionTime:injectedFrames:]): Deleted.
(+[WebView _addUserStyleSheetToGroup:world:source:url:whitelist:blacklist:]): Deleted.
(+[WebView _addUserStyleSheetToGroup:world:source:url:whitelist:blacklist:injectedFrames:]): Deleted.
* WebView/WebViewPrivate.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267397
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
dpino@igalia.com [Tue, 22 Sep 2020 05:03:08 +0000 (05:03 +0000)]
[GLIB] Unreviewed test gardening. Update baselines after r267389.
* platform/glib/imported/w3c/web-platform-tests/selection/selection-select-all-move-input-crash-expected.txt:
* platform/glib/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-panner-expected.txt: Update after r267357.
* platform/glib/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-automation-expected.txt: Removed.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267396
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
pmatos@igalia.com [Tue, 22 Sep 2020 04:56:42 +0000 (04:56 +0000)]
Fix MIPS leai,leap when offset is nonzero
https://bugs.webkit.org/show_bug.cgi?id=216772
Reviewed by Mark Lam.
Fix required by change from webkit#216685
* offlineasm/mips.rb:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267395
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
timothy_horton@apple.com [Tue, 22 Sep 2020 04:44:47 +0000 (04:44 +0000)]
paper.io ad close buttons cannot be iteracted with via trackpad on iPad
https://bugs.webkit.org/show_bug.cgi?id=216812
<rdar://problem/
68738585>
Reviewed by Wenson Hsieh.
Source/WebCore:
* platform/RuntimeApplicationChecks.h:
* platform/cocoa/RuntimeApplicationChecksCocoa.mm:
(WebCore::IOSApplication::isPaperIO):
Source/WebKit:
* UIProcess/ios/WKContentViewInteraction.mm:
(applicationIsKnownToIgnoreMouseEvents):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267394
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
lmoura@igalia.com [Tue, 22 Sep 2020 03:48:18 +0000 (03:48 +0000)]
[GLIB] fast/mediastream/getUserMedia-webaudio.html is failing since 267383
Unreviewed test gardening.
* platform/glib/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267389
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cdumez@apple.com [Tue, 22 Sep 2020 01:30:35 +0000 (01:30 +0000)]
Value returned by AudioParamTimeline::valuesForTimeRange() is sometimes incorrect for exponential ramps
https://bugs.webkit.org/show_bug.cgi?id=216811
Reviewed by Darin Adler.
Source/WebCore:
AudioParamTimeline::valuesForTimeRangeImpl() always need to return the *last* value since this is
what will be used to update AudioParam::m_value to its latest value. We had a bug in our exponential
ramp processing causing value to be multiplied one extra time.
No new tests, rebaselined existing test.
* Modules/webaudio/AudioParamTimeline.cpp:
(WebCore::AudioParamTimeline::valuesForTimeRangeImpl):
LayoutTests:
Rebaseline test that is now passing.
* webaudio/AudioParam/audioparam-update-value-attribute-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267388
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
timothy@apple.com [Tue, 22 Sep 2020 00:37:16 +0000 (00:37 +0000)]
Add some WKWebProcessPlugInFrame SPI needed by Safari.
https://bugs.webkit.org/show_bug.cgi?id=216809
rdar://problem/
69336928
Reviewed by Brian Weinstein.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:
(+[WKWebProcessPlugInFrame lookUpFrameFromJSContext:]): Added.
(-[WKWebProcessPlugInFrame _securityOrigin]): Added.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFramePrivate.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267387
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cdumez@apple.com [Tue, 22 Sep 2020 00:17:33 +0000 (00:17 +0000)]
AudioBufferSourceNode should update grain parameters when buffer is set after rendering has started
https://bugs.webkit.org/show_bug.cgi?id=216808
Reviewed by Eric Carlson.
Source/WebCore:
AudioBufferSourceNode should update grain parameters when buffer is set after rendering has
started. The grain parameters need to be adjusted so that they make sense given the buffer
length. Previously, we would only update grain parameters in AudioBufferSourceNode::startPlaying(),
when a buffer is set. We would fail to update those grain parameters when the buffer is set,
in setBuffer(), if startPlaying() has already been called.
No new tests, rebaselined existing test.
* Modules/webaudio/AudioBufferSourceNode.cpp:
(WebCore::AudioBufferSourceNode::setBuffer):
(WebCore::AudioBufferSourceNode::startLater):
(WebCore::AudioBufferSourceNode::startPlaying):
(WebCore::AudioBufferSourceNode::updateGrainParameters):
* Modules/webaudio/AudioBufferSourceNode.h:
LayoutTests:
Rebaseline test that is now passing.
* webaudio/AudioBufferSource/audiobuffersource-loop-grain-no-duration-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267386
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
andresg_22@apple.com [Mon, 21 Sep 2020 23:49:41 +0000 (23:49 +0000)]
Make accessibility isolated tree a non-experimental feature.
https://bugs.webkit.org/show_bug.cgi?id=216792
Reviewed by Chris Fleizach.
Promote accessibility isolated tree from an experimental feature to a
non-experimental one. This avoids the problem where a user can turn off
the feature through the Safari > Develop > Experimental Features submenu,
while the accessibility request are still coming on a secondary thread,
which leads to random crashes.
* Shared/WebPreferences.yaml:
* Shared/WebPreferencesExperimental.yaml:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267385
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cdumez@apple.com [Mon, 21 Sep 2020 23:42:29 +0000 (23:42 +0000)]
Unreviewed, unskip webaudio/Analyser/handle-silent-inputs.html.
This test should no longer be flaky now that it is passing.
* TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267384
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cdumez@apple.com [Mon, 21 Sep 2020 23:27:50 +0000 (23:27 +0000)]
Values returned by FFTFrame::doFFT() are twice as large as they should be
https://bugs.webkit.org/show_bug.cgi?id=216781
Reviewed by Darin Adler.
Source/WebCore:
To provide the best possible execution speeds, the vDSP library's functions don't always adhere strictly
to textbook formulas for Fourier transforms, and must be scaled accordingly [1].
In the case of a Real forward Transform like in FFTFrame::doFFT(): RFimp = RFmath * 2 so we need to
divide the output by 2 to get the correct value. We were failing to do this scaling and this was causing
AnalyserNode tests to fail.
[1] See https://developer.apple.com/library/archive/documentation/Performance/Conceptual/vDSP_Programming_Guide/UsingFourierTransforms/UsingFourierTransforms.html#//apple_ref/doc/uid/TP40005147-CH3-SW5
No new tests, rebaselined existing tests.
* Modules/webaudio/PeriodicWave.cpp:
(WebCore::PeriodicWave::createBandLimitedTables):
Update normalization factor now that FFTFrame::doInverseFFT() has been fixed. The new normalization factor
matches the value used by blink at:
- https://github.com/chromium/chromium/blob/master/third_party/blink/renderer/modules/webaudio/periodic_wave.cc
* platform/audio/FFTFrame.cpp:
(WebCore::FFTFrame::multiply):
We were applying a 0.5 scaling factor to the output of vDSP_zvmul(). However, the documentation for vDSP_zvmul()
does not indicate that its output is twice as large as expected. Odds are that this was done because we used
to have a bug in FFTFrame::doFFT() that was returning values twice as large as expected. SInce this function
relies on VectorMath, there is no need for its implementation to be platform-specific.
* platform/audio/FFTFrameStub.cpp:
* platform/audio/gstreamer/FFTFrameGStreamer.cpp:
(WebCore::FFTFrame::doFFT):
(WebCore::FFTFrame::doInverseFFT):
Drop 2 factor in the GStreamer implementation that was added to try and be consistent with the incorrect Mac
implementation.
* platform/audio/mac/FFTFrameMac.cpp:
(WebCore::FFTFrame::doFFT):
Fix issue where the values returned by doFFT() were twice as large as expected due to the odd behavior of
vDSP_fft_zrip().
(WebCore::FFTFrame::doInverseFFT):
Drop 2 factor in doInverseFFT that was added because the output of doFFT() was twice as large as expected
and we wanted x == InverseFFT(FFT(x)).
LayoutTests:
* webaudio/Analyser/realtimeanalyser-downmix-expected.txt:
* webaudio/Analyser/realtimeanalyser-freq-data-expected.txt:
* webaudio/Analyser/realtimeanalyser-freq-data-smoothing-expected.txt:
* webaudio/Analyser/realtimeanalyser-multiple-calls-expected.txt:
Rebaseline tests that are passing now that the bug has been fixed.
* webaudio/realtimeanalyser-fft-scaling-expected.txt: Removed.
* webaudio/realtimeanalyser-fft-scaling.html: Removed.
Drop outdated test. This test was imported into WPT and now resides at:
- imported/w3c/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267383
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
wenson_hsieh@apple.com [Mon, 21 Sep 2020 23:25:25 +0000 (23:25 +0000)]
[GPU Process] Several tests in canvas/philip/tests are failing with text diffs
https://bugs.webkit.org/show_bug.cgi?id=216800
Reviewed by Darin Adler.
When using the GPU process to render canvas elements, we currently fail the 7 tests in `canvas/philip/tests`
below, due to gradient and pattern fill/stroke styles lingering on the 2D graphics context state after a fill or
stroke color is set, respectively.
This happens when:
1. The fill color is set to a color `C`.
2. A fill pattern or gradient is applied.
3. The fill color is set to the color `C` again.
In this case, after step (2), we propagate a graphics context state change indicating that the fill pattern has
changed, but we leave the fill color unchanged (i.e., it remains equal to `C`). In step (3), we then set the
fill color to `C` again, which doesn't propagate a state change to the GPU process, since the fill color is the
same (`C`). As such, the state in the GPU process keeps its fill gradient, and we end up filling with this old
gradient instead of the fill color `C`.
To fix this, we simply revert `fillColor` and `strokeColor` to the invalid color when setting a gradient or
pattern in the same way that we currently clear out the fill/stroke gradient and pattern when setting a fill/
stroke color, which ensures that a state change will be sent to the GPU process during step (3).
Fixes the following canvas-related layout tests when using the GPU process:
- canvas/philip/tests/2d.gradient.radial.cone.shape2.html
- canvas/philip/tests/2d.pattern.basic.nocontext.html
- canvas/philip/tests/2d.pattern.paint.norepeat.coord3.html
- canvas/philip/tests/2d.pattern.paint.repeatx.coord1.html
- canvas/philip/tests/2d.pattern.paint.repeatx.outside.html
- canvas/philip/tests/2d.pattern.paint.repeaty.coord1.html
- canvas/philip/tests/2d.pattern.paint.repeaty.outside.html
The entire canvas/ directory is currently skipped when enabling the GPU process for canvas rendering, but once
we're down to a smaller number of failures, I intend to unskip these directories for GPU process, and
individually track any remaining test failures.
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::setStrokePattern):
(WebCore::GraphicsContext::setFillPattern):
(WebCore::GraphicsContext::setStrokeGradient):
(WebCore::GraphicsContext::setFillGradient):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267382
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cdumez@apple.com [Mon, 21 Sep 2020 23:14:06 +0000 (23:14 +0000)]
Properly handle AudioParam.setTargetAtTime() followed by a ramp
https://bugs.webkit.org/show_bug.cgi?id=216804
Reviewed by Darin Adler.
Source/WebCore:
Properly handle AudioParam.setTargetAtTime() followed by a ramp:
- https://www.w3.org/TR/webaudio/#dom-audioparam-settargetattime
- https://www.w3.org/TR/webaudio/#dom-audioparam-linearramptovalueattime
- https://www.w3.org/TR/webaudio/#dom-audioparam-exponentialramptovalueattime
This is a merge of the following Blink change:
- https://codereview.chromium.org/
1485003002
No new tests, rebaselined existing test.
* Modules/webaudio/AudioParamTimeline.cpp:
(WebCore::AudioParamTimeline::valuesForTimeRangeImpl):
(WebCore::AudioParamTimeline::processSetTargetFollowedByRamp):
* Modules/webaudio/AudioParamTimeline.h:
LayoutTests:
Rebaseline test that is now passing.
* webaudio/AudioParam/audioparam-setTargetAtTime-continuous-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267381
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jbedard@apple.com [Mon, 21 Sep 2020 23:10:08 +0000 (23:10 +0000)]
[webkitpy] Use webkitcorepy's auto installer for pytest packages
https://bugs.webkit.org/show_bug.cgi?id=215895
<rdar://problem/
67885471>
Rubber-stamped by Aakash Jain.
* Scripts/webkitpy/__init__.py: Add pytest and it's dependencies.
* Scripts/webkitpy/thirdparty/__init__.py:
(AutoinstallImportHook.find_module): Remove pytest and pytest_timeout.
(AutoinstallImportHook._install_pytest_timeout): Deleted.
(AutoinstallImportHook._install_pytest): Deleted.
* Scripts/webkitpy/webdriver_tests/pytest_runner.py: Implicitly use webkitcorepy's autoinstaller.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267380
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
nvasilyev@apple.com [Mon, 21 Sep 2020 23:09:18 +0000 (23:09 +0000)]
Web Inspector: Uncaught Exception: Missing node for given nodeId
https://bugs.webkit.org/show_bug.cgi?id=216067
<rdar://problem/
68520144>
Reviewed by Devin Rousso.
* UserInterface/Views/ContentBrowserTabContentView.js:
(WI.ContentBrowserTabContentView.prototype.showDetailsSidebarPanels):
Rewrite `showDetailsSidebarPanels` in such way that causes no more than one change of selectedSidebarPanel.
Previously, `removeSidebarPanel` would cause the change of selectedSidebarPanel, resulting in showing
a panel with outdated `this.domNode`.
* UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
Display a useful error with a relevant location instead of a generic Connection.js error.
* UserInterface/Views/Sidebar.js:
(WI.Sidebar.prototype.removeSidebarPanel):
After removing a panel, don't select the nearest panel. There doesn't seem to be a useful case for it.
The selected panel is determined at the removeSidebarPanel callsites.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267379
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
graouts@webkit.org [Mon, 21 Sep 2020 22:56:34 +0000 (22:56 +0000)]
Remove unused NodeFlag::HasCSSAnimation
https://bugs.webkit.org/show_bug.cgi?id=216785
Reviewed by Antti Koivisto.
* dom/Element.h:
(WebCore::Element::hasCSSAnimation const): Deleted.
(WebCore::Element::setHasCSSAnimation): Deleted.
(WebCore::Element::clearHasCSSAnimation): Deleted.
* dom/Node.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267377
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cdumez@apple.com [Mon, 21 Sep 2020 22:50:47 +0000 (22:50 +0000)]
Throw when AudioConnect::connect() is called for an output that has no channels
https://bugs.webkit.org/show_bug.cgi?id=216802
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Rebaseline existing tests because I improved exception messages.
* web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode-connect-method-chaining-expected.txt:
* web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode-expected.txt:
Source/WebCore:
Throw when AudioConnect::connect() is called for an output that has no channels, for consistency
with Blink. The ScriptProcessorNode cannot have an output node that has zero channels.
No new tests, rebaselined existing tests.
* Modules/webaudio/AudioNode.cpp:
(WebCore::AudioNode::connect):
LayoutTests:
* webaudio/MediaElementAudioSource/mediaelementaudiosourcenode-expected.txt:
* webaudio/dom-exceptions-expected.txt:
Rebaseline existing tests because I improved exception messages.
* webaudio/ScriptProcessor/scriptprocessornode-0-output-channels-expected.txt:
Rebaseline test that is now passing.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267376
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ysuzuki@apple.com [Mon, 21 Sep 2020 22:10:24 +0000 (22:10 +0000)]
[JSC] BigInt should work with Map / Set
https://bugs.webkit.org/show_bug.cgi?id=216667
JSTests:
<rdar://problem/
69107221>
Reviewed by Robin Morisset.
* stress/bigint-and-map-set.js: Added.
(shouldBe):
(opaque1n):
(testMap):
(let.set new):
* stress/bigint-string-map-set.js: Added.
(shouldBe):
(testMap):
* stress/bigint32-map-set.js: Added.
(shouldBe):
(testMap):
Source/JavaScriptCore:
Reviewed by Robin Morisset.
This patch makes BigInt supported in Map / Set.
1. In NormalizeMapKey, we always attempt to convert HeapBigInt to BigInt32 (if supported). So we ensure that,
normalized BigInt has one unique form for BigInt32 range. This allows us to use hashing for BigInt32 bit pattern directly.
2. In MapHash, for BigInt32, we directly has the JSValue bits. For HeapBigInt, we calculate hash via Hasher.
3. In GetMapBucket, we consider HeapBigInt case correctly.
* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
* dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::fixupNormalizeMapKey):
* dfg/DFGOperations.cpp:
* dfg/DFGOperations.h:
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileNormalizeMapKey):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileMapHash):
(JSC::FTL::DFG::LowerDFGToB3::compileNormalizeMapKey):
(JSC::FTL::DFG::LowerDFGToB3::compileGetMapBucket):
* runtime/HashMapImpl.h:
(JSC::normalizeMapKey):
(JSC::jsMapHash):
(JSC::concurrentJSMapHash):
* runtime/JSBigInt.cpp:
(JSC::JSBigInt::concurrentHash):
* runtime/JSBigInt.h:
(JSC::tryConvertToBigInt32):
Source/WebCore:
<rdar://problem/
69107221>
Reviewed by Robin Morisset.
Strongly ensure that BigInt32 is always selected since Map / Set could use it as a key.
* bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneDeserializer::readBigInt):
Source/WTF:
Reviewed by Robin Morisset.
* wtf/Hasher.h:
(WTF::Hasher::hash const):
(WTF::add):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267373
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
peng.liu6@apple.com [Mon, 21 Sep 2020 22:03:44 +0000 (22:03 +0000)]
Tapping to zoom in and out causes video to become very small on some iPhone models
https://bugs.webkit.org/show_bug.cgi?id=216635
Reviewed by Jer Noble.
* platform/ios/VideoFullscreenInterfaceAVKit.mm:
(-[WebAVPlayerLayer resolveBounds]): On some iPhone models, AVKit does not
change "bounds" of WebAVPlayerLayer after changing its video gravity. Therefore,
in this function, "modelVideoLayerFrame" and "bounds" might be the same. But we
still need to update the video layer frame in the Web process.
(-[WebAVPlayerLayer setVideoGravity:]): On some iPhone models, AVKit does
not call -[WebAVPlayerLayer:layoutSublayers] immediately after changing
the video gravity. Forcing a layout can fix that.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267372
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mark.lam@apple.com [Mon, 21 Sep 2020 22:01:12 +0000 (22:01 +0000)]
Move some LLInt globals into JSC::Config.
https://bugs.webkit.org/show_bug.cgi?id=216685
rdar://
68964544
Reviewed by Keith Miller.
Source/bmalloc:
Introduce ConfigAlignment to match WTFConfig.h.
Added BENABLE(UNIFIED_AND_FREEZABLE_CONFIG_RECORD) support to match WTF.
* bmalloc/BPlatform.h:
* bmalloc/Gigacage.cpp:
(Gigacage::ensureGigacage):
* bmalloc/GigacageConfig.h:
* bmalloc/mbmalloc.cpp:
Source/JavaScriptCore:
1. Moved the following into g_jscConfig:
Data::s_exceptionInstructions ==> g_jscConfig.llint.exceptionInstructions
Data::s_wasmExceptionInstructions ==> g_jscConfig.llint.wasmExceptionInstructions
g_opcodeMap ==> g_jscConfig.llint.opcodeMap
g_opcodeMapWide16 ==> g_jscConfig.llint.opcodeMapWide16
g_opcodeMapWide32 ==> g_jscConfig.llint.opcodeMapWide32
2. Fixed cloop.rb so that it can take an offset for the leap offlineasm instruction.
3. Fixed x86.rb so that it can take an offset for the leap offlineasm instruction.
4. Fixed arm.rb so that it can take an offset for the leap offlineasm instruction.
Note: arm64.rb already does this right.
5. Added JSC::Config::singleton() to return a reference to g_jscConfig.
This is useful when debugging with lldb since g_jscConfig is not an actual
label, but is a macro that computes the address of the Config record.
This patch has been smoke tested on arm64e, x86_64, and cloop (on x86_64 and armv7k).
* llint/LLIntData.cpp:
(JSC::LLInt::LLIntInitializeAssertScope::LLIntInitializeAssertScope):
(JSC::LLInt::LLIntInitializeAssertScope::~LLIntInitializeAssertScope):
(JSC::LLInt::LLIntInitializeAssertScope::assertInitializationIsAllowed):
(JSC::LLInt::initialize):
* llint/LLIntData.h:
(JSC::LLInt::exceptionInstructions):
(JSC::LLInt::wasmExceptionInstructions):
(JSC::LLInt::opcodeMap):
(JSC::LLInt::opcodeMapWide16):
(JSC::LLInt::opcodeMapWide32):
(JSC::LLInt::getOpcode):
(JSC::LLInt::getOpcodeWide16):
(JSC::LLInt::getOpcodeWide32):
* llint/LowLevelInterpreter.asm:
* llint/LowLevelInterpreter.cpp:
* llint/LowLevelInterpreter64.asm:
* llint/WebAssembly.asm:
* offlineasm/arm.rb:
* offlineasm/cloop.rb:
* offlineasm/x86.rb:
* runtime/JSCConfig.cpp:
(JSC::Config::singleton):
* runtime/JSCConfig.h:
Source/WTF:
1. Introduce ConfigAlignment as a distinct value from ConfigSizeToProtect.
This is because ConfigSizeToProtect is now larger than 1 CeilingOnPageSize on
some platforms, but ConfigAlignment only needs to match CeilingOnPageSize.
2. Introduced ENABLE(UNIFIED_AND_FREEZABLE_CONFIG_RECORD) to disable using the
unified g_config record for Windows ports.
This is needed because WTF is built as a DLL on Windows. offlineasm does not
know how to resolve a DLL exported variable. Additionally, the Windows ports
have never supported freezing of the Config record to begin with. So, we're
working around this by disabling ENABLE(UNIFIED_AND_FREEZABLE_CONFIG_RECORD)
for Windows. This allows JSC to have its own g_jscConfig record, which solves
this issue for now.
* wtf/PlatformEnable.h:
* wtf/WTFConfig.cpp:
(WTF::Config::permanentlyFreeze):
* wtf/WTFConfig.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267371
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
basuke.suzuki@sony.com [Mon, 21 Sep 2020 21:45:23 +0000 (21:45 +0000)]
[WinCairo][PlayStation] Support different instances of listener client.
https://bugs.webkit.org/show_bug.cgi?id=216733
Reviewed by Don Olmstead.
Source/JavaScriptCore:
Currently RemoteInspectorSocketEndpoint support one client instance for all
listeners. This patch allows listeners to create its own listener client on
accept timing.
* inspector/remote/RemoteControllableTarget.h:
* inspector/remote/RemoteInspector.h:
* inspector/remote/socket/RemoteInspectorConnectionClient.cpp:
(Inspector::RemoteInspectorConnectionClient::didReceive):
* inspector/remote/socket/RemoteInspectorConnectionClient.h:
* inspector/remote/socket/RemoteInspectorServer.cpp:
(Inspector::RemoteInspectorServer::start):
(Inspector::RemoteInspectorServer::doAccept):
* inspector/remote/socket/RemoteInspectorServer.h:
* inspector/remote/socket/RemoteInspectorSocket.cpp:
(Inspector::RemoteInspector::didClose):
* inspector/remote/socket/RemoteInspectorSocket.h:
* inspector/remote/socket/RemoteInspectorSocketEndpoint.cpp:
(Inspector::RemoteInspectorSocketEndpoint::RemoteInspectorSocketEndpoint):
(Inspector::RemoteInspectorSocketEndpoint::~RemoteInspectorSocketEndpoint):
(Inspector::RemoteInspectorSocketEndpoint::listenInet):
(Inspector::RemoteInspectorSocketEndpoint::workerThread):
(Inspector::RemoteInspectorSocketEndpoint::generateConnectionID):
(Inspector::RemoteInspectorSocketEndpoint::createClient):
(Inspector::RemoteInspectorSocketEndpoint::disconnect):
(Inspector::RemoteInspectorSocketEndpoint::createListener):
(Inspector::RemoteInspectorSocketEndpoint::invalidateClient):
(Inspector::RemoteInspectorSocketEndpoint::invalidateListener):
(Inspector::RemoteInspectorSocketEndpoint::getPort const):
(Inspector::RemoteInspectorSocketEndpoint::recvIfEnabled):
(Inspector::RemoteInspectorSocketEndpoint::sendIfEnabled):
(Inspector::RemoteInspectorSocketEndpoint::send):
(Inspector::RemoteInspectorSocketEndpoint::acceptInetSocketIfEnabled):
* inspector/remote/socket/RemoteInspectorSocketEndpoint.h:
Source/WebKit:
Follows the change of RemoteInspectorSocketEndpoint::Client interface change.
No new tests because there's no behaivior change.
* UIProcess/Inspector/socket/RemoteInspectorClient.cpp:
(WebKit::RemoteInspectorClient::didClose):
* UIProcess/Inspector/socket/RemoteInspectorClient.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267370
268f45cc-cd09-0410-ab3c-
d52691b4dbfc