Timeline



Apr 14, 2022:

11:08 PM Changeset in webkit [292901] by Martin Robinson
  • 3 edits in trunk/Source/WebCore

[GTK] AddressSanitizer: heap-buffer-overflow in WebCore::Length::ref()
https://bugs.webkit.org/show_bug.cgi?id=237389

Reviewed by Žan Doberšek.

  • platform/graphics/nicosia/NicosiaAnimation.cpp:

(Nicosia::createThreadsafeKeyFrames): Convert Length members of transform functions to
the fixed variety before they are moved to separate threads.
(Nicosia::Animation::Animation): Use the new helper.

  • platform/graphics/transforms/TranslateTransformOperation.h: Added setters.
10:54 PM Changeset in webkit [292900] by zan@falconsigh.net
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix for GTK and WPE.

  • platform/graphics/gbm/DMABufFormat.h: Add a missing <array> header include.
10:44 PM Changeset in webkit [292899] by Chris Dumez
  • 25 edits in trunk/Source/WebCore

Use WebCoreBuiltinNames when possible
https://bugs.webkit.org/show_bug.cgi?id=239361

Reviewed by Yusuke Suzuki.

Use WebCoreBuiltinNames when possible to avoid unnecessary calls to Identifier::fromString().
This is more efficient.

  • Modules/encryptedmedia/legacy/LegacyCDMSessionClearKey.cpp:

(WebCore::CDMSessionClearKey::update):

  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSDOMGlobalObject::addBuiltinGlobals):

  • bindings/js/JSDOMMapLike.cpp:

(WebCore::getBackingMap):

  • bindings/js/JSDOMSetLike.cpp:

(WebCore::getBackingSet):

  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::initStaticGlobals):
(WebCore::JSDOMWindowBase::finishCreation):
(WebCore::JSDOMWindowBase::updateDocument):

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::jsDOMWindowGetOwnPropertySlotRestrictedAccess):
(WebCore::JSDOMWindow::getOwnPropertySlot):
(WebCore::JSDOMWindow::put):
(WebCore::addCrossOriginPropertyNames):
(WebCore::JSDOMWindow::defineOwnProperty):
(WebCore::JSDOMWindow::setOpener):
(WebCore::JSDOMWindow::openDatabase const):
(WebCore::JSDOMWindow::setOpenDatabase):

  • bindings/js/JSEventListener.cpp:

(WebCore::JSEventListener::handleEvent):

  • bindings/js/JSLocationCustom.cpp:

(WebCore::getOwnPropertySlotCommon):
(WebCore::JSLocation::put):

  • bindings/js/JSRemoteDOMWindowCustom.cpp:

(WebCore::JSRemoteDOMWindow::put):

  • bindings/js/ReadableStream.cpp:

(WebCore::ReadableStream::create):
(WebCore::ReadableStream::lock):

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::setupModuleScriptHandlers):

  • bindings/js/ScriptModuleLoader.cpp:

(WebCore::rejectToPropagateNetworkError):
(WebCore::rejectWithFetchError):

  • bindings/js/WebCoreBuiltinNames.h:
  • bindings/js/WebCoreJSClientData.h:

(WebCore::webCoreBuiltinNames):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

  • bindings/scripts/test/JS/JSDOMWindow.cpp:

(WebCore::JSDOMWindow::finishCreation):

  • bindings/scripts/test/JS/JSTestConditionallyReadWrite.cpp:

(WebCore::JSTestConditionallyReadWritePrototype::finishCreation):
(WebCore::JSTestConditionallyReadWrite::finishCreation):

  • bindings/scripts/test/JS/JSTestEnabledBySetting.cpp:

(WebCore::JSTestEnabledBySetting::finishCreation):

  • bindings/scripts/test/JS/JSTestEnabledForContext.cpp:

(WebCore::JSTestEnabledForContext::finishCreation):

  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:

(WebCore::JSTestGlobalObject::finishCreation):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::JSTestObjPrototype::finishCreation):

  • html/HTMLMediaElement.cpp:

(WebCore::controllerJSValue):
(WebCore::HTMLMediaElement::didAddUserAgentShadowRoot):

  • testing/Internals.cpp:

(WebCore::Internals::cloneArrayBuffer):

  • workers/WorkerOrWorkletScriptController.cpp:

(WebCore::WorkerOrWorkletScriptController::loadModuleSynchronously):
(WebCore::WorkerOrWorkletScriptController::loadAndEvaluateModule):

6:45 PM Changeset in webkit [292898] by Wenson Hsieh
  • 20 edits in trunk

Undo option after invoking "Markup Image" says "Undo Paste"
https://bugs.webkit.org/show_bug.cgi?id=239351
rdar://91647863

Reviewed by Darin Adler.

Source/WebCore:

Add plumbing to allow a caller of Editor::replaceNodeFromPasteboard to specify an EditAction for the editing
command that is not just EditAction::Paste, and use it to supply a more specific edit action type of
MarkupImage in the case where "Markup Image" is used to replace an image element with other image data. This
allows the undo/redo title to be more accurate than simply "Undo/Redo Paste".

Test: ImageAnalysisTests.PerformImageAnalysisMarkup

  • dom/TextEvent.cpp:

(WebCore::TextEvent::createForPlainTextPaste):
(WebCore::TextEvent::createForFragmentPaste):
(WebCore::TextEvent::TextEvent):

  • dom/TextEvent.h:
  • dom/TextEventInputType.h:

Introduce TextEventInputMarkup. This is used to preserve the fact that a TextEvent was triggered via
"Markup Image" as opposed to a regular "Paste" command, when plumbing this event object through DOM event
propagation code. Once it reenters editing code, we consult this type to re-map this event to
EditAction::MarkupImage if appropriate.

I opted for this (slightly more roundabout) approach to prevent a potential layering violation, due to TextEvent
otherwise knowing about EditAction.

  • editing/EditAction.cpp:

(WebCore::undoRedoLabel):

  • editing/EditAction.h:

Introduce EditAction::MarkupImage. Additionally, alphabetically sort these enum types.

  • editing/Editor.cpp:

(WebCore::Editor::handleTextEvent):
(WebCore::Editor::pasteAsFragment):
(WebCore::Editor::replaceSelectionWithFragment):

  • editing/Editor.h:
  • editing/cocoa/EditorCocoa.mm:

(WebCore::Editor::replaceNodeFromPasteboard):

Add an EditAction argument; by default, this is EditAction::Paste.

  • en.lproj/Localizable.strings:

Add a new localized string to represent the name of the "Markup Image" item, for the purposes of setting the
Redo/Undo action title.

Source/WebKit:

Rename replaceWithPasteboardData to the more specific replaceImageWithMarkupResults. This method was
introduced (and is currently only used) to drive image replacement using "Markup Image"; giving this method a
more specific name allows us to hard-code EditAction::MarkupImage when calling into Editor to carry out the
replacement editing action in WebPage::replaceImageWithMarkupResults.

See WebCore/ChangeLog for additional details.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::replaceImageWithMarkupResults):
(WebKit::WebPageProxy::replaceWithPasteboardData): Deleted.

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

(-[WKContentView imageAnalysisMarkupMenu]):

  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::WebContextMenuProxyMac::applyMarkupToControlledImage):

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::replaceImageWithMarkupResults):
(WebKit::WebPage::replaceWithPasteboardData): Deleted.

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

Tools:

Augment an existing API test to verify that the resulting undo action title after invoking "Markup Image" is not
"Undo Paste".

  • TestWebKitAPI/Tests/WebKitCocoa/ImageAnalysisTests.mm:

(TestWebKitAPI::TEST):

5:27 PM Changeset in webkit [292897] by Matteo Flores
  • 4 edits in trunk/LayoutTests

EXPECTATIONS: [ Monterey wk2 ] 7 /paymentrequest/* tests are constant text failures https://bugs.webkit.org/show_bug.cgi?id=238908 Unreviewed test gardening. * TestExpectations: * platform/ios-wk2/TestExpectations: * platform/mac-wk2/TestExpectations:

5:21 PM Changeset in webkit [292896] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

Unreviewed, fix the Catalyst build after r292888

MCProfileConnection is not available on Mac Catalyst.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _dataOwnerForPasteboard:]):

4:39 PM Changeset in webkit [292895] by caitp@igalia.com
  • 8 edits
    3 adds in trunk

[JSC] ShadowRealm global object has a mutable prototype
https://bugs.webkit.org/show_bug.cgi?id=239332

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/shadow-realm-globalThis-mutable-prototype.js: Added.

Source/JavaScriptCore:

This patch circumvents the ASSERT(toThis() == this) in JSObject::setPrototypeWithCycleCheck()
when this is a GlobalObject. Ordinarily, GlobalObjects have the IsImmutablePrototypeExoticObject
bit set and miss this pathway, however this is not the case for ShadowRealm Global Objects.

In addition, the JSC internal version is also modified to have a mutable prototype in the same way
as in WebCore.

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::deriveShadowRealmGlobalObject):
(JSC::JSGlobalObject::createStructureForShadowRealm):

  • runtime/JSObject.cpp:

(JSC::JSObject::setPrototypeWithCycleCheck):

Source/WebCore:

Hack: The IDL code generator now special cases ShadowRealmGlobalObject to remove the
ImmutablePrototypeExoticObject bit from the inherited JSGlobalObject structure flags.

As a result, this enables the assignment of a ShadowRealm's globalThis.proto, or
overwriting the prototype with [Object / Reflect].setPrototypeOf().

Test: js/ShadowRealm-globalThis.html

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):

  • bindings/scripts/test/JS/JSShadowRealmGlobalScope.h:

LayoutTests:

Add a new layout test to verify changes to verify that ShadowRealmGlobalObject has a properly
mutable prototype.

  • js/ShadowRealm-globalThis-expected.txt: Added.
  • js/ShadowRealm-globalThis.html: Added.
4:36 PM Changeset in webkit [292894] by Jenner@apple.com
  • 2 edits in trunk/Tools

Add an additional system to unsafe-merge queue
https://bugs.webkit.org/show_bug.cgi?id=239354

Reviewed by Ryan Haddad.

  • CISupport/ews-build/config.json:
4:32 PM Changeset in webkit [292893] by Nikos Mouchtaris
  • 15 edits in trunk

calc(): Serialize top level min/max/hypot as calc()
https://bugs.webkit.org/show_bug.cgi?id=239019

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-values/hypot-pow-sqrt-invalid-expected.txt:
  • web-platform-tests/css/css-values/hypot-pow-sqrt-serialize-expected.txt:
  • web-platform-tests/css/css-values/minmax-angle-serialize-expected.txt:
  • web-platform-tests/css/css-values/minmax-length-percent-serialize-expected.txt:
  • web-platform-tests/css/css-values/minmax-length-serialize-expected.txt:
  • web-platform-tests/css/css-values/minmax-number-serialize-expected.txt:
  • web-platform-tests/css/css-values/minmax-percentage-serialize-expected.txt:
  • web-platform-tests/css/css-values/minmax-time-serialize-expected.txt:

Source/WebCore:

For functions that would have no effect on the top level value, serialize as calc() rather
than the function.

  • css/calc/CSSCalcOperationNode.cpp:

(WebCore::CSSCalcOperationNode::simplifyNode):

  • css/calc/CSSCalcOperationNode.h:

LayoutTests:

  • fast/css/calc-parsing-expected.txt:
  • fast/css/calc-parsing.html:
4:26 PM Changeset in webkit [292892] by gnavamarino@apple.com
  • 2 edits in trunk/Source/WebCore

WebCore::WorkerStorageConnection::fileSystemGetDirectory could have invalid storageConnection()
https://bugs.webkit.org/show_bug.cgi?id=239355

Reviewed by Sihui Liu.

Add a check since storageConnection() can be invalid at this point.

  • Modules/storage/WorkerStorageConnection.cpp:

(WebCore::WorkerStorageConnection::fileSystemGetDirectory):

2:56 PM Changeset in webkit [292891] by ysuzuki@apple.com
  • 10 edits in trunk/Source

[JSC] Reduce use of CallFrame::deprecatedVM
https://bugs.webkit.org/show_bug.cgi?id=239326

Reviewed by Devin Rousso.

Reduce use of CallFrame::deprecatedVM, mainly in inspector related code to eventually remove CallFrame::deprecatedVM.

  • Source/JavaScriptCore/debugger/Debugger.cpp:

(JSC::Debugger::evaluateBreakpointCondition):
(JSC::Debugger::evaluateBreakpointActions):
(JSC::Debugger::exceptionOrCaughtValue):

  • Source/JavaScriptCore/debugger/DebuggerCallFrame.cpp:

(JSC::DebuggerCallFrame::globalObject):
(JSC::DebuggerCallFrame::functionName const):
(JSC::DebuggerCallFrame::scope):
(JSC::DebuggerCallFrame::type const):
(JSC::DebuggerCallFrame::evaluateWithScopeExtension):
(JSC::DebuggerCallFrame::deprecatedVMEntryGlobalObject const): Deleted.

  • Source/JavaScriptCore/debugger/DebuggerCallFrame.h:
  • Source/JavaScriptCore/inspector/JSJavaScriptCallFrame.cpp:

(Inspector::JSJavaScriptCallFrame::evaluateWithScopeExtension):
(Inspector::JSJavaScriptCallFrame::scopeDescriptions):
(Inspector::JSJavaScriptCallFrame::functionName const):
(Inspector::JSJavaScriptCallFrame::scopeChain const):
(Inspector::JSJavaScriptCallFrame::type const):

  • Source/JavaScriptCore/inspector/JavaScriptCallFrame.h:

(Inspector::JavaScriptCallFrame::functionName const):
(Inspector::JavaScriptCallFrame::type const):
(Inspector::JavaScriptCallFrame::scopeChain const):
(Inspector::JavaScriptCallFrame::evaluateWithScopeExtension const):
(Inspector::JavaScriptCallFrame::deprecatedVMEntryGlobalObject const): Deleted.

  • Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.cpp:

(Inspector::InspectorDebuggerAgent::debuggerScopeExtensionObject):
(Inspector::InspectorDebuggerAgent::didPause):

  • Source/JavaScriptCore/interpreter/Interpreter.cpp:

(JSC::Interpreter::debug):

Canonical link: https://commits.webkit.org/249661@main

2:15 PM Changeset in webkit [292890] by Jonathan Bedard
  • 6 edits in trunk/Tools

[git-webkit] Personal branch is "not a PR branch"
https://bugs.webkit.org/show_bug.cgi?id=239329
<rdar://problem/91756286>

Reviewed by Yusuke Suzuki.

  • Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:

(Git.branches_for): Provide optional caching.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/branch.py:

(Branch.editable): If a branch does not exist on production remotes, that branch
should also be considered a PR branch.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/pull_request.py:

(PullRequest.main): Only create a new PR branch if the current branch is a
production branch.

Canonical link: https://commits.webkit.org/249660@main

2:00 PM Changeset in webkit [292889] by Jonathan Bedard
  • 2 edits in trunk/Websites/webkit.org

[webkit.org] Remove leading r from archive revisions
https://bugs.webkit.org/show_bug.cgi?id=239322
<rdar://problem/91735590>

Reviewed by Ryan Haddad.

  • Websites/webkit.org/wp-content/themes/webkit/build-archives.php: Remove leading 'r' from revisions,

since "revisions" will now be identifiers.

Canonical link: https://commits.webkit.org/249659@main

1:58 PM Changeset in webkit [292888] by Wenson Hsieh
  • 7 edits in trunk

[iOS] [WK2] Managed pasteboard should function for all managed domains
https://bugs.webkit.org/show_bug.cgi?id=239319
rdar://80059355

Reviewed by Kate Cheney.

Source/WebCore/PAL:

Add an SPI method on MCProfileConnection.

  • pal/spi/ios/ManagedConfigurationSPI.h:

Source/WebKit:

Unless a WebKit client has specified a data owner for the web view that is not _UIDataOwnerUndefined, fall back
to _UIDataOwnerEnterprise when the current domain of the WKWebView is managed (that is, `-[MCProfileConnection
isURLManaged:]` returns YES for the web view's current URL). This allows managed pasteboard to work for all
WebKit clients, if the current URL is managed.

Test: UIPasteboardTests.PerformAsDataOwnerWithManagedURL

  • Platform/spi/ios/UIKitSPI.h:

Drive-by fix: move the staged declarations of -_dataOwnerForCopy and -_dataOwnerForPaste out of the IPI
section, and into the non-internal SDK section.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _dataOwnerForPasteboard:]):

Tools:

Add a new API test to verify that we fall back to consulting -[MCProfileConnection isURLManaged:] when
determining the data owner for copy and paste, unless a data owner is already explicitly set on a view in the
responder chain (specifically, the WKWebView).

  • TestWebKitAPI/Tests/ios/UIPasteboardTests.mm:

(+[TestUIPasteboard _performAsDataOwner:block:]):
(-[TestMCProfileConnection isURLManaged:]):
(TestWebKitAPI::TEST):

1:35 PM Changeset in webkit [292887] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Require an existing AtomString for HTMLFormElement's named getter parameter
https://bugs.webkit.org/show_bug.cgi?id=239335

Reviewed by Darin Adler.

Require an existing AtomString for HTMLFormElement's named getter parameter. There is no point
in allocating a new AtomString as the AtomString should already exist if there is any element
with this name / id.

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::namedElements):

  • html/HTMLFormElement.idl:
1:19 PM Changeset in webkit [292886] by Alexey Shvayka
  • 2 edits in trunk/Source/JavaScriptCore

InternalFunction::createSubclassStructure() should use base object's global object
https://bugs.webkit.org/show_bug.cgi?id=239346

Unreviewed, account for offline feedback by Yusuke Suzuki.

  • runtime/InternalFunction.cpp:

(JSC::InternalFunction::createSubclassStructure):

12:52 PM Changeset in webkit [292885] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Require an existing AtomString for HTMLDocument's named getter parameter
https://bugs.webkit.org/show_bug.cgi?id=239334

Reviewed by Alexey Shvayka.

Require an existing AtomString for HTMLDocument's named getter parameter. There is no point
in allocating a new AtomString as the AtomString should already exist if there is any element
with this name.

  • html/HTMLDocument.idl:
12:45 PM Changeset in webkit [292884] by Jonathan Bedard
  • 1 edit
    2 adds in trunk

Add .github/pull_request_template.md
https://bugs.webkit.org/show_bug.cgi?id=239347
<rdar://problem/91763594>

Reviewed by Michael Catanzaro.

  • .github/pull_request_template.md: Added.

Canonical link: https://commits.webkit.org/249654@main

12:30 PM Changeset in webkit [292883] by Alexey Shvayka
  • 4 edits in trunk

InternalFunction::createSubclassStructure() should use base object's global object
https://bugs.webkit.org/show_bug.cgi?id=239346

Reviewed by Darin Adler.

JSTests:

  • stress/internal-function-subclass-structure-realm.js:

Source/JavaScriptCore:

Chrome and Firefox don't agree on interoperable behavior in case of cross-realm
NewTarget's "prototype", so this patch aligns WebKit with Chrome to fix a web-compat issue.

  • runtime/InternalFunction.cpp:

(JSC::InternalFunction::createSubclassStructure):

12:13 PM Changeset in webkit [292882] by J Pascoe
  • 41 edits
    9 deletes in trunk

[WebAuthn] Clean up WebAuthenticationModern and WebAuthnProcess
https://bugs.webkit.org/show_bug.cgi?id=239073
rdar://problem/91571030

Source/WebCore:

The WebAuthenticationModern flag and WebAuthnProcess are no longer used
and can be removed. This patch removes all references to both the flag
and the process.

Reviewed by Brent Fulgham.

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setWebAuthenticationModernEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::webAuthenticationModernEnabled const): Deleted.

  • platform/RuntimeApplicationChecks.cpp:

(WebCore::processTypeDescription):

  • platform/RuntimeApplicationChecks.h:

Source/WebKit:

The WebAuthenticationModern flag and WebAuthnProcess are no longer used
and can be removed. This patch removes all references to both the flag
and the process.

Reviewed by Brent Fulgham.

Covered by existing tests and manual testing on macOS / iOS.

  • Configurations/WebAuthnService.xcconfig: Removed.
  • Configurations/WebKit.xcconfig:
  • DerivedSources.make:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb.in: Removed.
  • Scripts/process-entitlements.sh:
  • Shared/Cocoa/DefaultWebBrowserChecks.mm:

(WebKit::isInWebKitChildProcess):

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

(WebKit::XPCServiceEventHandler):

  • Shared/mac/AuxiliaryProcessMac.mm:

(WebKit::processStorageClass):
(WebKit::sandboxDirectory):

  • Sources.txt:
  • SourcesCocoa.txt:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetWebAuthenticationModernEnabled): Deleted.
(WKPreferencesGetWebAuthenticationModernEnabled): Deleted.

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

(+[WKProcessPool _webAuthnProcessIdentifier]): Deleted.

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

(+[_WKWebAuthenticationPanel importLocalAuthenticatorWithAccessGroup:credential:error:]):

  • UIProcess/AuxiliaryProcessProxy.cpp:

(WebKit::AuxiliaryProcessProxy::getLaunchOptions):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::notifyPreferencesChanged):

  • UIProcess/Launcher/ProcessLauncher.h:
  • UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm:

(WebKit::serviceName):
(WebKit::shouldLeakBoost):

  • UIProcess/WebAuthentication/Authenticator.h:

(WebKit::Authenticator::requestData const):
(WebKit::Authenticator::setWebAuthenticationModernEnabled): Deleted.
(WebKit::Authenticator::webAuthenticationModernEnabled const): Deleted.
(): Deleted.

  • UIProcess/WebAuthentication/AuthenticatorManager.cpp:

(WebKit::AuthenticatorManager::authenticatorAdded):
(WebKit::AuthenticatorManager::enableModernWebAuthentication): Deleted.

  • UIProcess/WebAuthentication/AuthenticatorManager.h:
  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(WebKit::LocalAuthenticator::makeCredential):
(WebKit::LocalAuthenticator::getAssertion):
(WebKit::LocalAuthenticator::continueGetAssertionAfterResponseSelected):

  • UIProcess/WebAuthentication/WebAuthnProcessProxy.cpp: Removed.
  • UIProcess/WebAuthentication/WebAuthnProcessProxy.h: Removed.
  • UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp:

(WebKit::CtapAuthenticator::continueGetNextAssertionAfterResponseReceived):
(WebKit::CtapAuthenticator::continueRequestPinAfterGetKeyAgreement):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::getWebAuthnProcessConnection): Deleted.

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::getWebAuthnProcessConnection): Deleted.

  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebProcessProxy.messages.in:
  • WebAuthnProcess/EntryPoint/Cocoa/XPCService/WebAuthnService/Info-OSX.plist: Removed.
  • WebAuthnProcess/EntryPoint/Cocoa/XPCService/WebAuthnService/Info-iOS.plist: Removed.
  • WebAuthnProcess/EntryPoint/Cocoa/XPCService/WebAuthnServiceEntryPoint.mm: Removed.
  • WebAuthnProcess/WebAuthnConnectionToWebProcess.cpp: Removed.
  • WebAuthnProcess/WebAuthnConnectionToWebProcess.h: Removed.
  • WebAuthnProcess/WebAuthnConnectionToWebProcess.messages.in: Removed.
  • WebAuthnProcess/WebAuthnProcess.cpp: Removed.
  • WebAuthnProcess/WebAuthnProcess.h: Removed.
  • WebAuthnProcess/WebAuthnProcess.messages.in: Removed.
  • WebAuthnProcess/WebAuthnProcessCreationParameters.cpp: Removed.
  • WebAuthnProcess/WebAuthnProcessCreationParameters.h: Removed.
  • WebAuthnProcess/ios/WebAuthnProcessIOS.mm: Removed.
  • WebAuthnProcess/mac/WebAuthnProcessMac.mm: Removed.
  • WebAuthnProcess/mac/com.apple.WebKit.WebAuthnProcess.sb.in: Removed.
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebAuthentication/WebAuthenticatorCoordinator.cpp:

(WebKit::WebAuthenticatorCoordinator::makeCredential):
(WebKit::WebAuthenticatorCoordinator::getAssertion):
(WebKit::WebAuthenticatorCoordinator::isUserVerifyingPlatformAuthenticatorAvailable):

  • WebProcess/WebAuthentication/WebAuthnProcessConnection.cpp: Removed.
  • WebProcess/WebAuthentication/WebAuthnProcessConnection.h: Removed.
  • WebProcess/WebAuthentication/WebAuthnProcessConnection.messages.in: Removed.
  • WebProcess/WebAuthentication/WebAuthnProcessConnectionInfo.h: Removed.
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::setMockWebAuthenticationConfiguration):

  • WebProcess/WebProcess.cpp:

(WebKit::getWebAuthnProcessConnection): Deleted.
(WebKit::WebProcess::ensureWebAuthnProcessConnection): Deleted.
(WebKit::WebProcess::webAuthnProcessConnectionClosed): Deleted.

  • WebProcess/WebProcess.h:

(WebKit::WebProcess::existingWebAuthnProcessConnection): Deleted.

Source/WTF:

Reviewed by Brent Fulgham.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

Tools:

Reviewed by Brent Fulgham.

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(TestWebKitAPI::TEST):
(TestWebKitAPI::WebCore::webAuthenticationModernExperimentalFeature): Deleted.

12:04 PM Changeset in webkit [292881] by Jonathan Bedard
  • 2 edits in trunk/Tools

[build.webkit.org] Use identifier as version when uploading artifacts
https://bugs.webkit.org/show_bug.cgi?id=239321
<rdar://problem/91734798>

Reviewed by Ryan Haddad.

  • Tools/CISupport/build-webkit-org/steps.py:

(GenerateJSCBundle): Use archive_revision to name generated content.
(GenerateMiniBrowserBundle): Ditto
(UploadBuiltProduct): Ditto
(UploadMinifiedBuiltProduct): Ditto
(DownloadBuiltProduct): Ditto
(DownloadBuiltProductFromMaster): Ditto
(RunBenchmarkTests): Ditto
(UploadTestResults): Ditto
(TransferToS3): Ditto
(ExtractTestResults.init): Ditto
(ShowIdentifier.evaluateCommand): Set archive_revision as identifier,
fall back to got_revision.

Canonical link: https://commits.webkit.org/249651@main

11:00 AM Changeset in webkit [292880] by Aditya Keerthi
  • 4 edits in trunk/Source/WebKit

[iOS] Add support for find-and-replace keyboard shortcut
https://bugs.webkit.org/show_bug.cgi?id=239320
rdar://91537724

Reviewed by Wenson Hsieh.

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

(-[WKContentView canPerformActionForWebView:withSender:]):
(-[WKContentView findAndReplaceForWebView:]):

10:55 AM Changeset in webkit [292879] by Chris Dumez
  • 44 edits in trunk

Drop inefficient String::append() overloads
https://bugs.webkit.org/show_bug.cgi?id=239289

Reviewed by Sam Weinig.

Source/JavaScriptCore:

  • heap/HeapSnapshotBuilder.cpp:

(JSC::HeapSnapshotBuilder::json):

  • runtime/IntlObject.cpp:

(JSC::resolveLocale):

  • runtime/TemporalObject.cpp:

(JSC::ellipsizeAt):

  • tools/FunctionOverrides.cpp:

(JSC::initializeOverrideInfo):
(JSC::parseClause):

Source/WebCore:

  • Modules/indexeddb/IDBKeyData.cpp:

(WebCore::IDBKeyData::loggingString const):

  • Modules/indexeddb/IDBKeyRangeData.cpp:

(WebCore::IDBKeyRangeData::loggingString const):

  • Modules/indexeddb/shared/IDBIndexInfo.cpp:

(WebCore::IDBIndexInfo::loggingString const):

  • Modules/websockets/WebSocketHandshake.cpp:

(WebCore::trimInputSample):

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData):

  • dom/CharacterData.cpp:

(WebCore::CharacterData::parserAppendData):

  • dom/Text.cpp:

(WebCore::appendTextRepresentation):

  • dom/ViewportArguments.cpp:

(WebCore::viewportErrorMessage):

  • editing/markup.cpp:

(WebCore::fillContainerFromString):

  • html/FTPDirectoryDocument.cpp:

(WebCore::FTPDirectoryDocumentParser::parseAndAppendOneLine):
(WebCore::FTPDirectoryDocumentParser::append):
(WebCore::FTPDirectoryDocumentParser::finish):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::getActiveUniform):

  • html/track/WebVTTParser.cpp:

(WebCore::WebVTTParser::checkAndStoreStyleSheet):

  • html/track/WebVTTParser.h:
  • inspector/InspectorOverlay.cpp:

(WebCore::truncateWithEllipsis):

  • inspector/InspectorOverlayLabel.cpp:

(WebCore::InspectorOverlayLabel::draw):

  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::buildObjectForNode):

  • page/scrolling/ScrollingStateTree.cpp:

(WebCore::ScrollingStateTree::scrollingStateTreeAsText const):

  • platform/graphics/HEVCUtilities.cpp:

(WebCore::createHEVCCodecParametersString):

  • platform/network/HTTPParsers.cpp:

(WebCore::trimInputSample):

  • platform/network/curl/CurlCacheEntry.cpp:

(WebCore::CurlCacheEntry::CurlCacheEntry):
(WebCore::CurlCacheEntry::saveResponseHeaders):

  • platform/network/curl/CurlCacheManager.cpp:

(WebCore::CurlCacheManager::setCacheDirectory):

  • platform/network/curl/CurlContext.cpp:

(WebCore::CurlHandle::addExtraNetworkLoadMetrics):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):

Source/WebKit:

  • Shared/mac/AuxiliaryProcessMac.mm:

(WebKit::populateSandboxInitializationParameters):

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::setSuggestedFilename):

Source/WebKitLegacy/win:

  • WebDownload.cpp:

(WebDownload::bundlePathForTargetPath):

Source/WTF:

  • wtf/Assertions.cpp:
  • wtf/text/StringBuilder.h:

(WTF::StringBuilder::append):

  • wtf/text/WTFString.cpp:

(WTF::String::insert):
(WTF::String::append):

  • wtf/text/WTFString.h:

Tools:

  • TestWebKitAPI/Tests/WTF/FileSystem.cpp:

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WTF/StringBuilder.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::TEST_F):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::didReceiveAuthenticationChallenge):

10:46 AM Changeset in webkit [292878] by gnavamarino@apple.com
  • 2 edits in trunk/Source/WebCore

ScriptDisallowedScope::isEventAllowedInMainThread assert failure when activating AudioSession
https://bugs.webkit.org/show_bug.cgi?id=239343

Reviewed by Eric Carlson.

As part of HTMLMediaElement::clearMediaPlayer we call PlatformMediaSession::canProduceAudioChanged
which can result in activating the AudioSession when the page is capturing audio.

This sends a synchronous IPC message to the GPU process. As part of IPC::Connection::waitForSyncReply,
we also end up dispatching enqueued messages, including a WebPage_EndPrinting message that
fires an event listener on the main thread.

This patch will instead queue the PlatformMediaSession::canProduceAudioChanged as a task to avoid
firing the event listener on the main thread, which results in assertion failure.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::clearMediaPlayer):

10:26 AM Changeset in webkit [292877] by Russell Epstein
  • 9 edits in branches/safari-614.1.10-branch/Source

Versioning.

WebKit-7614.1.10.1

10:23 AM Changeset in webkit [292876] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Replace PaintCompositedResultsToMediaSample with PaintCompositedResultsToVideoFrame in generate-gpup-webgl
https://bugs.webkit.org/show_bug.cgi?id=239317

Patch by John Cunningham <johncunningham@apple.com> on 2022-04-14
Reviewed by Alexey Proskuryakov.

  • Scripts/generate-gpup-webgl:
10:15 AM Changeset in webkit [292875] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ Mac ] editing/execCommand/insert-ordered-list-and-delete.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=239345

Unreviewed test gardening.

  • platform/mac/TestExpectations:
10:07 AM Changeset in webkit [292874] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Update ContainerNode::getElementsByName() to take in an AtomString
https://bugs.webkit.org/show_bug.cgi?id=239333

Reviewed by Alexey Shvayka.

Update ContainerNode::getElementsByName() to take in an AtomString instead of a String.
Its implementation ends up atomizing the name anyway.

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::getElementsByName):

  • dom/ContainerNode.h:
9:39 AM Changeset in webkit [292873] by Robert Jenner
  • 2 edits in trunk/Tools

Remove bot241 to be re-purposed
<rdar://problem/91729033>

Unreviewed configuration change.

  • Tools/CISupport/build-webkit-org/config.json:
9:23 AM Changeset in webkit [292872] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Add logging for persistent notification event handler failure
https://bugs.webkit.org/show_bug.cgi?id=239131

Reviewed by Chris Dumez.

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::processNotificationEvent):

9:05 AM Changeset in webkit [292871] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ Mac wk2 arm64 ] scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-overflow-in-iframe.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=225529

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
8:56 AM Changeset in webkit [292870] by Justin Michaud
  • 32 edits
    1 add in trunk

[PGO] We should be able to build WebKit to collect PGO profiles easily
https://bugs.webkit.org/show_bug.cgi?id=238776

Reviewed by Wenson Hsieh.

.:

  • Makefile.shared:
  • Source/cmake/WebKitFeatures.cmake:

Source/JavaScriptCore:

  • Configurations/JavaScriptCore.xcconfig:
  • runtime/VM.cpp:

(JSC::VM::VM):

Source/WebCore:

  • Configurations/WebCore.xcconfig:
  • Configurations/WebCoreTestSupport.xcconfig:
  • page/Frame.cpp:

(WebCore::Frame::Frame):

Source/WebKit:

  • Configurations/BaseTarget.xcconfig:
  • Configurations/WebKit.xcconfig:
  • GPUProcess/mac/GPUProcessMac.mm:

(WebKit::GPUProcess::initializeProcess):

  • NetworkProcess/mac/NetworkProcessMac.mm:

(WebKit::NetworkProcess::initializeProcess):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_appHighlightsVisible):

Source/WTF:

Build WebKit as follows: make release WK_LTO_MODE=thin ENABLE_LLVM_PROFILE_GENERATION=ON
Then, follow the directions in the log output at runtime to collect your raw PGO profiles!

We add a new compile flag plus WTF::registerProfileGenerationCallback, allowing llvm profiles
to be collected by sending a notifyutil signal. The files are written to the temp directory,
and it seems like the sandbox permits this by default. You may need to disable the sandbox if
you encounter issues, either by editing the *.sb files or by using an inserted dylib to interpose
the sandbox initialization calls.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/GenerateProfiles.h: Added.

(WTF::registerProfileGenerationCallback):

  • wtf/PlatformEnable.h:

Tools:

  • Scripts/check-for-weak-vtables-and-externals:
  • Scripts/webkitdirs.pm:

(XcodeOptions):

  • Scripts/webkitperl/FeatureList.pm:
8:48 AM Changeset in webkit [292869] by youenn@apple.com
  • 3 edits in trunk/Source/WebKit

REGRESSION (249029@main): http/wpt/cache-storage/cache-storage-networkprocess-crash.html is a flaky CRASH with ASSERTION FAILED: m_pageMap.isEmpty()
https://bugs.webkit.org/show_bug.cgi?id=239095
<rdar://problem/91595784>

Reviewed by Chris Dumez.

We send the same IPC message to close WebSWContextManagerConnection from either network process or UIProcess.
To prevent closing twice the same connection, we exit early if the connection is closed.

Covered by existing tests.

  • WebProcess/Storage/WebSWContextManagerConnection.cpp:
  • WebProcess/Storage/WebSharedWorkerContextManagerConnection.cpp:
8:44 AM Changeset in webkit [292868] by youenn@apple.com
  • 2 edits in trunk/Tools

Enable ExitsUnderMemoryPressureWebRTCCase and disable ExitsUnderMemoryPressureGetUserMediaAudioCase on iOS simulator
https://bugs.webkit.org/show_bug.cgi?id=239115

Reviewed by Eric Carlson.

  • TestWebKitAPI/Tests/WebKitCocoa/GPUProcess.mm:

(TEST):

7:52 AM Changeset in webkit [292867] by Kate Cheney
  • 16 edits in trunk

WKWebView: navigator.serviceWorker.register method fails for a new version of an already registered service worker.
https://bugs.webkit.org/show_bug.cgi?id=229554
<rdar://problem/82388593>

Reviewed by Brent Fulgham.

Source/WebCore:

Check to see if a domain has already been registered when validating
a service worker registration domain. In this case, we allow an
updated registration.

There are a couple of other changes that are key for testing this.
First, this adds a way to override the max registration count for
tests. This is because we can only use 127.0.0.1 and localhost in
tests, but would need 3 domains in order to test the max count.
overrideServiceWorkerRegistrationCountTestingValue lets us lower that
number.

Second, we also want a way to override the loopback IP address check
to make sure we don't get a false positive test result for localhost
and 127.0.0.1 in API tests.

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::addRegistrationFromStore):
(WebCore::SWServer::addRegistration):
(WebCore::SWServer::SWServer):
(WebCore::SWServer::maxRegistrationCount):
(WebCore::SWServer::allowLoopbackIPAddress):
(WebCore::SWServer::validateRegistrationDomain):
(WebCore::SWServer::scheduleJob):
(WebCore::SWServer::removeFromScopeToRegistrationMap):

  • workers/service/server/SWServer.h:

Source/WebKit:

Plumbing to override the max service worker registration count for
test purposes. See WebCore changelog for details.

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::NetworkSession):
(WebKit::NetworkSession::ensureSWServer):

  • NetworkProcess/NetworkSession.h:

(WebKit::NetworkSession::overrideServiceWorkerRegistrationCountTestingValue const):

  • NetworkProcess/NetworkSessionCreationParameters.cpp:

(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):

  • NetworkProcess/NetworkSessionCreationParameters.h:
  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:
  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm:

(-[_WKWebsiteDataStoreConfiguration overrideServiceWorkerRegistrationCountTestingValue]):
(-[_WKWebsiteDataStoreConfiguration setOverrideServiceWorkerRegistrationCountTestingValue:]):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::parameters):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:

(WebKit::WebsiteDataStoreConfiguration::copy const):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:

(WebKit::WebsiteDataStoreConfiguration::overrideServiceWorkerRegistrationCountTestingValue const):
(WebKit::WebsiteDataStoreConfiguration::setOverrideServiceWorkerRegistrationCountTestingValue):

Tools:

Adds a new test for re-registering and an overdue test for
unregistering now that we have the infrastructure. This also does some
refactoring to reduce duplicate code.

  • TestWebKitAPI/Info.plist:

Update the Info.plist to consider localhost an app-bound domain so we
can test the max count when overriding the loopback IP. This requires
replacing an existing domain to stay under the count limit.

  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:

(TEST):

7:36 AM Changeset in webkit [292866] by Kate Cheney
  • 2 edits in trunk/LayoutTests

[ iOS ] imported/w3c/web-platform-tests/content-security-policy/worker-src/service-* tests are consistently failing (229875)
https://bugs.webkit.org/show_bug.cgi?id=229875
<rdar://problem/82727204>

Unreviewed. Updating test expectations to enable CSP worker-src tests.

  • platform/ios-wk2/TestExpectations:
7:35 AM Changeset in webkit [292865] by zan@falconsigh.net
  • 3 edits in trunk

[GTK][WPE] Make the ENABLE_GPU_PROCESS CMake option depend on USE_ANGLE_WEBGL
https://bugs.webkit.org/show_bug.cgi?id=239330

Reviewed by Adrian Perez de Castro.

For the GTK and WPE ports, the ENABLE_GPU_PROCESS CMake option should
depend on the USE_ANGLE_WEBGL option being enabled. There's no plans
to support 'direct' GL execution in that process, and the ANGLE usage
also implies (for these two ports) usage of generic buffer solutions
that are shareable across process boundaries, as is necessary for a
functioning GPUProcess implementation.

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:
7:13 AM Changeset in webkit [292864] by zan@falconsigh.net
  • 2 edits in trunk/Source/WebCore

[GTK][WPE] Provide WK2 IPC encoding, decoding methods for the DMABufObject type
https://bugs.webkit.org/show_bug.cgi?id=239038

Reviewed by Adrian Perez de Castro.

Provide encoding and decoding methods on the DMABufObject class,
enabling transport over IPC channels.

There are two separate ref-qualified encoding methods. When encoding
an object that's managed through an lvalue reference, we duplicate the
file descriptor objects since the DMABufObject will live on. When
managed through an rvalue object, we know the object's lifetime is
intended to be limited to this encoding process, so we can avoid the
file descriptor duplication and move the fd values into the encoder.

  • platform/graphics/gbm/DMABufObject.h:

(WebCore::DMABufObject::encode const):
(WebCore::DMABufObject::encode):
(WebCore::DMABufObject::decode):

7:12 AM Changeset in webkit [292863] by zan@falconsigh.net
  • 24 edits in trunk/Source

[WK2] Enable more efficient encoding of synchronous-message reply arguments
https://bugs.webkit.org/show_bug.cgi?id=238740
<rdar://problem/91567779>

Reviewed by Kimmo Kinnunen.

Source/WebKit:

Handling of synchronous messages requires construction of a
CompletionHandler object that wraps a lambda function which handles
logging of the passed-in reply arguments as well as subsequent encoding
and dispatching of the reply into the IPC channel.

Right now, for any given message the CompletionHandler type is generated
from the IPC message specification, and it's essentially a function type
with a void return value and const lvalue references for every
non-builtin parameter type. This type is imposed onto the lambda handler
and when invoked, all the reply arguments are passed on to the IPC
encoding as lvalue references.

This inhibits opportunities where the reply argument could instead be
moved into the completion handler invocation, enabling a more efficient
encoding of the passed-in value. For instance, if a Unix file descriptor
was moved into the completion handler invocation, it could be trickled
down into an IPC::Attachment object and dispatched over IPC without any
problems. Instead, because the lvalue reference is imposed as the type,
it will have to be duplicated even if the object itself is expiring or
would be movable down the invocation.

To cover these cases, the actual completion handler type is now deduced
from the synchronous-message-handling method itself. This means that
the completion handler parameter for the given handler method can now
specify whether it wants to receive reply arguments by value or by
either lvalue or rvalue reference. The completion handler lambda can
combine these parameter types with std::forward() to pass down the
actual arguments in the most optimal fashion.

To avoid problems, each CompletionHandler specialization retrieved from
the method siganture is validated against the CompletionHandler type
generated from the IPC specification, requiring that the decayed
parameter types match between the two. It's still possible to directly
use the CompletionHandler type from the IPC specification as the
completion handler type in the message-handling method.

An rvalue reference variant of ArgumentCoder<T>::encode() is added.
Generic implementation again casts the passed-in reference into an
rvalue and calls the encode() on that object. If that type provides
ref-qualified encode() methods, implementations of those methods can
adjust and more aggressively move things into the encoder when the
method is called on an rvalue. It would also be possible to delete the
ref-qualified method covering lvalues, meaning encoding would be allowed
only for objects that are moved into the completion handler.

For types with custom specializations of ArgumentCoder<T>, those
specializations would again have to provide rvalue variants of the
encode() method and handle the passed-in values appropriately.

The send() methods that were previously generated for every IPC message
are removed in favor of encoding and calling Connection::sendSyncReply()
in the completion-handler lambda. Missing std::forward() calls are added
in parameter pack expansions as required.

  • GPUProcess/media/RemoteCDMProxy.cpp:

(WebKit::RemoteCDMProxy::getSupportedConfiguration):

  • GPUProcess/media/RemoteCDMProxy.h:
  • GPUProcess/media/RemoteImageDecoderAVFProxy.cpp:

(WebKit::RemoteImageDecoderAVFProxy::createFrameImageAtIndex):

  • GPUProcess/media/RemoteImageDecoderAVFProxy.h:
  • Platform/IPC/ArgumentCoder.h:

(IPC::ArgumentCoder::encode):

  • Platform/IPC/HandleMessage.h:

(IPC::C::):
(IPC::CompletionHandlerValidation::matchingParameters):
(IPC::CompletionHandlerValidation::matchingTypes):
(IPC::handleMessageSynchronous):
(IPC::handleMessageSynchronousWantsConnection):
(IPC::handleMessageAsync):
(IPC::handleMessageAsyncWantsConnection):

  • Platform/IPC/StreamServerConnection.h:

(IPC::StreamServerConnection::sendSyncReply):

  • Scripts/webkit/messages.py:

(message_to_struct_declaration):
(generate_message_handler):

  • Scripts/webkit/tests/TestWithCVPixelBufferMessageReceiver.cpp:

(Messages::TestWithCVPixelBuffer::ReceiveCVPixelBuffer::send): Deleted.

  • Scripts/webkit/tests/TestWithCVPixelBufferMessages.h:
  • Scripts/webkit/tests/TestWithImageDataMessageReceiver.cpp:

(Messages::TestWithImageData::ReceiveImageData::send): Deleted.

  • Scripts/webkit/tests/TestWithImageDataMessages.h:
  • Scripts/webkit/tests/TestWithLegacyReceiverMessageReceiver.cpp:

(Messages::TestWithLegacyReceiver::CreatePlugin::send): Deleted.
(Messages::TestWithLegacyReceiver::RunJavaScriptAlert::send): Deleted.
(Messages::TestWithLegacyReceiver::GetPlugins::send): Deleted.
(Messages::TestWithLegacyReceiver::GetPluginProcessConnection::send): Deleted.
(Messages::TestWithLegacyReceiver::TestMultipleAttributes::send): Deleted.
(Messages::TestWithLegacyReceiver::InterpretKeyEvent::send): Deleted.

  • Scripts/webkit/tests/TestWithLegacyReceiverMessages.h:
  • Scripts/webkit/tests/TestWithSemaphoreMessageReceiver.cpp:

(Messages::TestWithSemaphore::ReceiveSemaphore::send): Deleted.

  • Scripts/webkit/tests/TestWithSemaphoreMessages.h:
  • Scripts/webkit/tests/TestWithSuperclassMessageReceiver.cpp:

(Messages::TestWithSuperclass::TestAsyncMessage::send): Deleted.
(Messages::TestWithSuperclass::TestAsyncMessageWithNoArguments::send): Deleted.
(Messages::TestWithSuperclass::TestAsyncMessageWithMultipleArguments::send): Deleted.
(Messages::TestWithSuperclass::TestAsyncMessageWithConnection::send): Deleted.
(Messages::TestWithSuperclass::TestSyncMessage::send): Deleted.
(Messages::TestWithSuperclass::TestSynchronousMessage::send): Deleted.

  • Scripts/webkit/tests/TestWithSuperclassMessages.h:
  • Scripts/webkit/tests/TestWithoutAttributesMessageReceiver.cpp:

(Messages::TestWithoutAttributes::CreatePlugin::send): Deleted.
(Messages::TestWithoutAttributes::RunJavaScriptAlert::send): Deleted.
(Messages::TestWithoutAttributes::GetPlugins::send): Deleted.
(Messages::TestWithoutAttributes::GetPluginProcessConnection::send): Deleted.
(Messages::TestWithoutAttributes::TestMultipleAttributes::send): Deleted.
(Messages::TestWithoutAttributes::InterpretKeyEvent::send): Deleted.

  • Scripts/webkit/tests/TestWithoutAttributesMessages.h:
  • UIProcess/ProvisionalPageProxy.cpp:

Add a missing include that brings in the definition of the
WebBackForwardListCounts type along with its encode() method.

Source/WTF:

Add two helper types, OutType and InTypes, on both CompletionHandler
classes. OutType is an alias against the return type of the invokable
handler, InTypes is a tuple with types corresponding to the parameter
types of the invokable handler.

These are especially helpful in various templates dealing with the
CompletionHandler types.

  • wtf/CompletionHandler.h:

(WTF::CompletionHandler):
(WTF::CompletionHandlerWithFinalizer):

6:23 AM Changeset in webkit [292862] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

Some IPC related message forwarding functions use const lvalue references
https://bugs.webkit.org/show_bug.cgi?id=238937

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-04-14
Reviewed by Antti Koivisto.

Passing the message as const lvalue reference prevents IPC messages to be
changed to support move semantics for some message arguments.

Fix by using universal references in the shell function signatures.
Forward the messages from one shell function to other as rvalue references
via WTFMove, since the messages are always such that they are forwarded so.
This also catches most such errors in the future.

No new tests, refactor.

  • Platform/IPC/MessageSender.h:

(IPC::MessageSender::send):
(IPC::MessageSender::sendSync):
(IPC::MessageSender::sendWithAsyncReply):

  • WebProcess/WebPage/DrawingArea.h:

(WebKit::DrawingArea::send):

1:48 AM Changeset in webkit [292861] by youenn@apple.com
  • 46 edits
    4 adds in trunk

Expose workers as service worker clients and implement registration matching for dedicated workers
https://bugs.webkit.org/show_bug.cgi?id=239066

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/service-worker/local-url-inherit-controller.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/worker-client-id.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/worker-interception-redirect.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/worker-interception.https-expected.txt:

Source/WebCore:

Add support for exposing workers (dedicated and shared) as service worker clients.
Add support for setting the controlling registration for dedicated workers
(a follow-up patch should handle shared workers).
To properly handle loads coming from a worker, we properly set clientIdentifier and registration identifier
from the worker context, instead of from the worker's document.

Small refactoring to pass additional data to worker through WorkerInitializationData.
This is used to set the context ID and context controlling service worker.

Adding a specific check in CachedResourceLoader to not reuse the cache in case the service worker modes are different.
A potential issue is that the service workers are the same (0) as one request is the main request
and the second request is the request triggered by service worker to answer the first request.

Properly support blob URL matching directly in WorkerScriptLoader for workers.

Test: http/wpt/service-workers/controlled-dedicatedworker.https.html

  • WebCore.xcodeproj/project.pbxproj:
  • dom/Document.h:
  • dom/ScriptExecutionContext.h:
  • loader/DocumentLoader.cpp:
  • loader/FetchOptions.h:
  • loader/ThreadableLoader.cpp:
  • loader/WorkerThreadableLoader.cpp:
  • loader/cache/CachedResourceLoader.cpp:
  • workers/DedicatedWorkerThread.cpp:
  • workers/Worker.cpp:
  • workers/Worker.h:
  • workers/WorkerGlobalScope.cpp:
  • workers/WorkerGlobalScope.h:
  • workers/WorkerGlobalScopeProxy.h:
  • workers/WorkerInitializationData.h: Added.
  • workers/WorkerMessagingProxy.cpp:
  • workers/WorkerMessagingProxy.h:
  • workers/WorkerOrWorkletGlobalScope.cpp:
  • workers/WorkerOrWorkletGlobalScope.h:
  • workers/WorkerScriptLoader.cpp:
  • workers/WorkerScriptLoader.h:
  • workers/WorkerThread.cpp:
  • workers/WorkerThread.h:
  • workers/service/SWClientConnection.cpp:
  • workers/service/ServiceWorker.h:
  • workers/service/ServiceWorkerClientData.cpp:
  • workers/service/ServiceWorkerClientType.h:
  • workers/service/ServiceWorkerContainer.cpp:
  • workers/service/context/ServiceWorkerThread.cpp:
  • workers/shared/SharedWorkerScriptLoader.h:
  • workers/shared/context/SharedWorkerThreadProxy.cpp:

Source/WebKit:

Reuse the same strategy for DedicatedWorkers as for Documents to match registrations and control then:

  • Do matching in network process
  • If matching, send a message to WebProcess to set the matching registration data.

Add specific handling for worker registration rematching in case of redirections:

  • If redirection comes from service worker (via respondWith), do rematching.
  • If redirection comes from network, do not do rematching.
  • NetworkProcess/NetworkResourceLoader.cpp:
  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:
  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:
  • WebProcess/Network/WebLoaderStrategy.cpp:
  • WebProcess/Storage/WebSWClientConnection.cpp:
  • WebProcess/Storage/WebSWClientConnection.h:
  • WebProcess/Storage/WebSWClientConnection.messages.in:

LayoutTests:

  • TestExpectations:
  • http/wpt/service-workers/controlled-dedicatedworker.https-expected.txt: Added.
  • http/wpt/service-workers/controlled-dedicatedworker.https.html: Added.
  • http/wpt/service-workers/resources/controlled-worker.js: Added.
12:16 AM Changeset in webkit [292860] by youenn@apple.com
  • 22 edits
    4 adds in trunk

A shared worker in a cached page should not allow the remote shared worker to continue executing
https://bugs.webkit.org/show_bug.cgi?id=239286

Reviewed by Chris Dumez.

Source/WebCore:

SharedWorker need to react to resume/suspend in case of page cache so that the corresponding
remote shared worker might get suspended if all its shared worker objects are suspended.

Test: http/tests/navigation/page-cache-shared-worker.html

  • workers/shared/SharedWorker.cpp:
  • workers/shared/SharedWorker.h:
  • workers/shared/SharedWorkerObjectConnection.h:
  • workers/shared/context/SharedWorkerContextManager.cpp:
  • workers/shared/context/SharedWorkerContextManager.h:

Source/WebKit:

Store whether shared worker objects are suspended or resumed.
If all objects are suspended, suspend the remote shared worker.
Otherwise, keep the remote shared worker live.
Add plumbing code to make this happen.

  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:
  • NetworkProcess/SharedWorker/WebSharedWorker.cpp:
  • NetworkProcess/SharedWorker/WebSharedWorker.h:
  • NetworkProcess/SharedWorker/WebSharedWorkerServer.cpp:
  • NetworkProcess/SharedWorker/WebSharedWorkerServer.h:
  • NetworkProcess/SharedWorker/WebSharedWorkerServerConnection.cpp:
  • NetworkProcess/SharedWorker/WebSharedWorkerServerConnection.h:
  • NetworkProcess/SharedWorker/WebSharedWorkerServerConnection.messages.in:
  • NetworkProcess/SharedWorker/WebSharedWorkerServerToContextConnection.cpp:
  • NetworkProcess/SharedWorker/WebSharedWorkerServerToContextConnection.h:
  • WebProcess/Storage/WebSharedWorkerContextManagerConnection.messages.in:
  • WebProcess/Storage/WebSharedWorkerObjectConnection.cpp:
  • WebProcess/Storage/WebSharedWorkerObjectConnection.h:

LayoutTests:

  • http/tests/navigation/page-cache-shared-worker-expected.txt: Added.
  • http/tests/navigation/page-cache-shared-worker.html: Added.
  • http/tests/navigation/resources/page-cache-helper-for-sharedworker.html: Added.
  • http/tests/navigation/resources/shared-worker-script.js: Added.
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:

Apr 13, 2022:

11:19 PM Changeset in webkit [292859] by mmaxfield@apple.com
  • 15 edits
    2 deletes in trunk

Revert r291846 because it caused a 3% performance regression
https://bugs.webkit.org/show_bug.cgi?id=239323
<rdar://problem/91046238>

Rubber-stamped by Stephanie Lewis.

Source/WebCore:

I'm having trouble figuring out why this caused a regression, so I'm reverting the patch
wholesale while I can do more investigation.

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::normalizeWeight):
(WebCore::denormalizeWeight):
(WebCore::preparePlatformFont):
(WebCore::fontCacheRegisteredFontsChangedNotificationCallback):
(WebCore::FontCache::platformInit):
(WebCore::variationCapabilitiesForFontDescriptor):
(WebCore::normalizeGXWeight): Deleted.
(WebCore::normalizeCTWeight): Deleted.
(WebCore::denormalizeGXWeight): Deleted.
(WebCore::denormalizeCTWeight): Deleted.
(WebCore::overrideEnhanceTextLegibility): Deleted.
(WebCore::setOverrideEnhanceTextLegibility): Deleted.
(WebCore::shouldEnhanceTextLegibility): Deleted.

  • platform/graphics/cocoa/FontCacheCoreText.h:
  • testing/Internals.cpp:

(WebCore::Internals::setOverrideEnhanceTextLegibility): Deleted.

  • testing/Internals.h:
  • testing/Internals.idl:

Source/WebCore/PAL:

  • pal/spi/cf/CoreTextSPI.h:
  • pal/spi/cocoa/AccessibilitySupportSPI.h:

LayoutTests:

  • TestExpectations:
  • fast/text/accessibility-bold-expected-mismatch.html: Removed.
  • fast/text/accessibility-bold.html: Removed.
  • platform/ios-wk2/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
11:11 PM Changeset in webkit [292858] by graouts@webkit.org
  • 3 edits
    2 adds in trunk

[web-animations] REGRESSION(r291527): assertion hit during teardown of document with CSS Animations
https://bugs.webkit.org/show_bug.cgi?id=239291
rdar://90699078

Reviewed by Dean Jackson.

Source/WebCore:

When a CSS Animation is not considered to be relevant anymore, it is removed from both AnimationTimeline::m_animations
and Styleable::animations(). However, if that animation becomes relevant again, it will be added back to the associated
effect stack as well as AnimationTimeline::m_animations but not to Styleable::animations().

This causes a problem because when eventually that CSS Animation's target is removed from the tree, such as during
document teardown, Styleable::cancelDeclarativeAnimations() will be called an iterate over Styleable::animations()
to find declarative animations to cancel. Since the CSS animation was not added to Styleable::animations(), it will
not be canceled and the associated effect will not be removed from the effect stack.

Later in Styleable::cancelDeclarativeAnimations(), the list of associated CSS Animation names is cleared.

If during that teardown an animation resolution is performed, such as within a "beforeunload" event listener as
shown in the new test, we will get into a state where there are effects left in the effect stack of the element
being torn down but no associated CSS Animation names and we will hit the RELEASE_ASSERT_NOT_REACHED() at the
end of compareCSSAnimations().

To fix this, we simply ensure that we add animations back to Styleable::animations() within
AnimationTimeline::animationTimingDidChange() the same way we add the animations back to
AnimationTimeline::m_animations.

Test: webanimations/css-animation-resolution-during-teardown.html

  • animation/AnimationTimeline.cpp:

(WebCore::AnimationTimeline::animationTimingDidChange):

LayoutTests:

Add a new test that would have asserted prior to the source change.

  • webanimations/css-animation-resolution-during-teardown-expected.txt: Added.
  • webanimations/css-animation-resolution-during-teardown.html: Added.
9:50 PM Changeset in webkit [292857] by Chris Dumez
  • 87 edits in trunk

Replace calls to substring(0, x) with the more concise left(x)
https://bugs.webkit.org/show_bug.cgi?id=239306

Reviewed by Darin Adler.

Source/JavaScriptCore:

  • inspector/ScriptArguments.h:
  • runtime/ExceptionHelpers.cpp:

(JSC::clampErrorMessage):

  • runtime/IntlNumberFormat.cpp:

(JSC::wellFormedUnitIdentifier):

  • runtime/IntlObject.cpp:

(JSC::resolveLocale):

  • runtime/IntlObjectInlines.h:

(JSC::bestAvailableLocale):

Source/WebCore:

Replace calls to substring(0, x) with the more concise left(x). Also use StringView in more cases
for performance.

  • Modules/fetch/FetchBodyConsumer.cpp:

(WebCore::parseMIMEType):

  • Modules/indexeddb/IDBCursor.cpp:

(WebCore::IDBCursor::setGetResult):

  • Modules/indexeddb/IDBKeyPath.cpp:

(WebCore::IDBKeyPathLexer::lexIdentifier):

  • Modules/mediastream/PeerConnectionBackend.cpp:

(WebCore::shouldIgnoreIceCandidate):

  • Modules/mediastream/RTCDTMFSender.cpp:

(WebCore::RTCDTMFSender::playNextTone):

  • Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp:

(WebCore::GStreamerMediaEndpoint::addRemoteStream):

  • Modules/mediastream/libwebrtc/LibWebRTCRtpTransceiverBackend.cpp:

(WebCore::toRtpCodecCapability):

  • Modules/plugins/YouTubePluginReplacement.cpp:

(WebCore::processAndCreateYouTubeURL):
(WebCore::YouTubePluginReplacement::youTubeURLFromAbsoluteURL):

  • display/css/DisplayTextBox.cpp:

(WebCore::Display::TextBox::debugDescription const):

  • dom/Document.cpp:

(WebCore::Document::parseQualifiedName):

  • dom/Text.cpp:

(WebCore::Text::splitText):

  • editing/TextCheckingHelper.cpp:

(WebCore::checkTextOfParagraph):

  • editing/TextIterator.cpp:

(WebCore::SearchBuffer::prependContext):

  • editing/VisibleUnits.cpp:

(WebCore::suffixLengthForRange):
(WebCore::startWordBoundary):
(WebCore::previousWordPositionBoundary):

  • editing/cocoa/DataDetection.mm:

(WebCore::DataDetection::detectContentInRange):

  • editing/markup.cpp:

(WebCore::shouldPreserveMSOLists):

  • html/FeaturePolicy.cpp:

(WebCore::updateList):

  • html/HTMLMediaElement.cpp:

(WTF::LogArgument<URL>::toString):

  • html/HTMLTrackElement.cpp:

(WebCore::urlForLoggingTrack):

  • html/URLDecomposition.cpp:

(WebCore::URLDecomposition::setHost):

  • html/parser/HTMLParserIdioms.cpp:

(WebCore::parseHTTPRefreshInternal):

  • html/parser/HTMLSrcsetParser.cpp:

(WebCore::parseDescriptors):

  • html/parser/HTMLTreeBuilder.cpp:

(WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::characterPredicate):

  • inspector/InspectorStyleSheet.cpp:

(WebCore::StyleSheetHandler::observeComment):

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::outputLayoutBox):

  • loader/appcache/ApplicationCacheManifestParser.cpp:

(WebCore::manifestPath):

  • mathml/MathMLPresentationElement.cpp:

(WebCore::MathMLPresentationElement::parseNumberAndUnit):

  • page/Frame.cpp:

(WebCore::createRegExpForLabels):

  • page/SecurityOriginData.cpp:

(WebCore::SecurityOriginData::fromDatabaseIdentifier):

  • platform/SharedStringHash.cpp:

(WebCore::computeSharedStringHashInline):

  • platform/graphics/StringTruncator.cpp:

(WebCore::centerTruncateToBuffer):
(WebCore::rightTruncateToBuffer):
(WebCore::rightClipToCharacterBuffer):
(WebCore::rightClipToWordBuffer):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::setPlaybinURL):

  • platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:

(WebCore::SourceBufferPrivateGStreamer::platformMaximumBufferSize const):

  • platform/graphics/win/FontCacheWin.cpp:

(WebCore::createGDIFont):
(WebCore::FontCache::getFontSelectionCapabilitiesInFamily):

  • platform/ios/UserAgentIOS.mm:

(WebCore::deviceNameForUserAgent):

  • platform/network/CacheValidation.cpp:

(WebCore::trimToNextSeparator):
(WebCore::parseCacheHeader):

  • platform/network/CredentialStorage.cpp:

(WebCore::protectionSpaceMapKeyFromURL):
(WebCore::CredentialStorage::findDefaultProtectionSpaceForURL):

  • platform/network/DataURLDecoder.cpp:

(WebCore::DataURLDecoder::DecodeTask::process):

  • platform/network/HTTPParsers.cpp:

(WebCore::parseStructuredFieldValue):

  • platform/network/MIMEHeader.cpp:

(WebCore::retrieveKeyValuePairs):

  • platform/network/curl/CookieUtil.cpp:

(WebCore::CookieUtil::parseCookieAttributes):
(WebCore::CookieUtil::parseCookieHeader):
(WebCore::CookieUtil::defaultPathForURL):

  • platform/text/LocaleToScriptMapping.cpp:

(WebCore::localeToScriptCodeForFontSelection):

  • platform/win/PasteboardWin.cpp:

(WebCore::fileSystemPathFromURLOrTitle):
(WebCore::Pasteboard::writeURLToDataObject):
(WebCore::createGlobalImageFileDescriptor):

  • platform/win/WebCoreTextRenderer.cpp:

(WebCore::doDrawTextAtPoint):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::outputRenderObject const):

  • rendering/style/GridPositionsResolver.cpp:

(WebCore::NamedLineCollectionBase::NamedLineCollectionBase):

  • svg/SVGTests.cpp:

(WebCore::SVGTests::isValid const):

  • svg/SVGURIReference.cpp:

(WebCore::SVGURIReference::fragmentIdentifierFromIRIString):

  • svg/animation/SVGSMILElement.cpp:

(WebCore::SVGSMILElement::parseClockValue):

  • workers/service/ServiceWorkerJob.cpp:

(WebCore::ServiceWorkerJob::validateServiceWorkerResponse):

  • workers/service/ServiceWorkerRegistrationKey.cpp:

(WebCore::ServiceWorkerRegistrationKey::fromDatabaseKey):

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::canHandleScheme const):

Source/WebDriver:

  • CommandResult.cpp:

(WebDriver::CommandResult::CommandResult):

Source/WebKit:

  • NetworkProcess/WebStorage/LocalStorageDatabaseTracker.cpp:

(WebKit::LocalStorageDatabaseTracker::origins const):

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::traverseRecordsFiles):

  • NetworkProcess/storage/LocalStorageManager.cpp:

(WebKit::fileNameToOrigin):

  • Shared/API/c/WKString.cpp:

(WKStringGetCharacters):

  • UIProcess/API/glib/InputMethodFilter.cpp:

(WebKit::InputMethodFilter::notifySurrounding):

  • UIProcess/gtk/GtkSettingsManager.cpp:

(WebKit::GtkSettingsManager::themeName const):

  • UIProcess/gtk/TextCheckerGtk.cpp:

(WebKit::TextChecker::checkTextOfParagraph):

  • UIProcess/win/WebProcessPoolWin.cpp:

(WebKit::initializeRemoteInspectorServer):

Source/WebKitLegacy:

  • Storage/StorageTracker.cpp:

(WebKit::StorageTracker::syncFileSystemAndTrackerDatabase):

Source/WebKitLegacy/mac:

  • WebView/WebHTMLRepresentation.mm:

(regExpForLabels):

Source/WTF:

  • wtf/URL.cpp:

(WTF::URL::protocol const):
(WTF::URL::protocolHostAndPort const):
(WTF::URL::setProtocol):
(WTF::URL::setHost):
(WTF::URL::setHostAndPort):
(WTF::URL::strippedForUseAsReferrer const):

  • wtf/URLParser.cpp:

(WTF::URLParser::addNonSpecialDotSlash):
(WTF::URLParser::parseURLEncodedForm):

  • wtf/UUID.cpp:

(WTF::UUID::parse):

  • wtf/text/WTFString.cpp:

(WTF::String::insert):

  • wtf/text/WTFString.h:

Tools:

  • DumpRenderTree/win/DumpRenderTree.cpp:

(findFontFallback):

  • TestWebKitAPI/Tests/WTF/URLParser.cpp:

(TestWebKitAPI::insertTabAtLocation):

  • TestWebKitAPI/Tests/WebCore/FileMonitor.cpp:

(TestWebKitAPI::readContentsOfFile):

  • TestWebKitAPI/Tests/WebCore/HTTPHeaderField.cpp:

(canonicalizeHTTPHeader):

  • TestWebKitAPI/Tests/WebCore/URLParserTextEncoding.cpp:

(TestWebKitAPI::insertTabAtLocation):

  • WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:

(WTR::pathSuitableForTestResult):
(WTR::dumpFrameText):
(WTR::stripTrailingSpacesAddNewline):
(WTR::InjectedBundlePage::willAddMessageToConsole):

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

Punycode encode U+15AF when not in context of other Canadian aboriginal code points
https://bugs.webkit.org/show_bug.cgi?id=239316
<rdar://91248059>

Patch by Alex Christensen <achristensen@webkit.org> on 2022-04-13
Reviewed by Darin Adler.

Source/WTF:

  • wtf/URLHelpers.cpp:

(WTF::URLHelpers::isLookalikeCharacterOfScriptType<USCRIPT_CANADIAN_ABORIGINAL>):
(WTF::URLHelpers::isLookalikeCharacter):

Tools:

  • TestWebKitAPI/Tests/WTF/cocoa/URLExtras.mm:

(TestWebKitAPI::TEST):

8:56 PM Changeset in webkit [292855] by Alan Bujtas
  • 5 edits
    2 adds in trunk

REGRESSION (r292043): [ Mac ] fast/block/positioning/fixed-container-with-relative-parent.html is a flaky image failure
https://bugs.webkit.org/show_bug.cgi?id=239101
<rdar://problem/91603539>

Reviewed by Antti Koivisto.

Source/WebCore:

  1. Out of flow boxes are laid out independently from each other as the last step of their containing block layout.
  2. However their static positions are computed during regular in-flow layout (as if their positions were static).

In order to do #1, we maintain a ListHashSet for the out-of-flow boxes and insert them at #2 (and we also have
a corresponding HashMap<ContainingBlock, ListHasSet>).

Normally this is a very simple list of descendant positioned boxes and since out-of-flow boxes don't interact with each
other, their position in the list is not important.

e.g.

<div id=A style="position: relative">

<div>

<div id=B style="position: absolute"></div>
<div id=C style="position: absolute"></div>

</div>

</div>

At in-flow layout (#2), we insert B and C to "ListHashSet of A" as we come across them in DOM order and compute their static positions.
Later in the layout flow when we get to the "let's layout the out-of-flow boxes" phase (#1) we simply walk
the ListHashSet and lay out B and C (but "C and B" order would also work just fine).

However the ICB (RenderView) is a special containing block as it can hold different types of out-of-flow boxes (absolute and fixed)
and those out-of-flow boxes may have layout dependencies.
e.g.

<body><div id=A class=absolute><div id=B class=fixed></div></div></body>

ICB's ListHasSet has both A and B, but in this case there's (static)layout dependency between these boxes.
In order to figure out the static position of B, we have to have A laid out first. In order to lay out A before B,
B has to be preceded by A in ICB's ListHasSet.

Now full layout always guarantees the correct order.
However in case of partial layout since we don't run a full #2, the ListHasSet may end up having an unexpected order.

e.g.

<body><div id=A class=absolute><div id=B><div id=C class=fixed></div></div></div></body>

  1. The initial (full) layout produces the following (correct) order for the ICB's ListHasSet -> AC.
  2. A subsequent partial layout (e.g. triggered by A's position change) runs an in-flow layout on the <body> which (re-)appends A to the ListHasSet (CA <- incorrect order). Now at this point we assume that the in-flow layout picks up B which eventually (re-)appends C to the ListHashSet (AC <- correct order). However since B does not need layout, we just stop at <body> which leaves us with an unexpected ListHashSet.
  3. As part of the ICB's out-of-flow layout, we pick C as the first box to lay out followed by A. However since C's static position depends on A's position, we end up using stale geometry when computing C's static position.

This patch fixes this issue by ensuring the absolute positioned boxes always come first in the ICB's ListHasSet (note
that their order is not really important -see above. What's important is that a potential (as-if-static) containing block always
comes before the fixed boxes).

Test: fast/block/fixed-inside-absolute-positioned.html

  • rendering/RenderBlock.cpp:

(WebCore::PositionedDescendantsMap::addDescendant):
(WebCore::RenderBlock::insertPositionedObject):

LayoutTests:

  • fast/block/fixed-inside-absolute-positioned-expected.html: Added.
  • fast/block/fixed-inside-absolute-positioned.html: Added.
  • platform/mac-wk1/TestExpectations:
8:55 PM Changeset in webkit [292854] by Chris Dumez
  • 59 edits in trunk/Source/WebCore

Use [AtomString] where appropriate in IDL files for performance
https://bugs.webkit.org/show_bug.cgi?id=239314

Reviewed by Alexey Shvayka.

Use [AtomString] where appropriate in IDL files for performance. I added [AtomString] on the
IDL side whenever our C++ implementation uses AtomString.

Without this, the generated bindings code will generate a String, which will then get atomized
once passed to our implementation. This means we're doing unnecessary String allocations in
cases where the AtomString is already in the AtomStringTable.

  • dom/Attr.idl:
  • dom/Document+HTML.idl:
  • dom/Document.cpp:

(WebCore::Document::createAttribute):

  • dom/Document.h:
  • dom/Document.idl:
  • dom/Element.cpp:

(WebCore::Element::getAttribute const):

  • dom/Element.idl:
  • dom/ElementContentEditable.idl:
  • dom/Event.idl:
  • dom/FocusEvent.idl:
  • dom/FormDataEvent.idl:
  • dom/HashChangeEvent.idl:
  • dom/InputEvent.idl:
  • dom/KeyboardEvent.idl:
  • dom/MessageEvent.idl:
  • dom/MouseEvent.idl:
  • dom/MutationEvent.idl:
  • dom/NamedNodeMap.idl:
  • dom/Node.idl:
  • dom/OverflowEvent.idl:
  • dom/PageTransitionEvent.idl:
  • dom/PointerEvent.idl:
  • dom/ProgressEvent.idl:
  • dom/PromiseRejectionEvent.idl:
  • dom/SecurityPolicyViolationEvent.idl:
  • dom/TextEvent.idl:
  • dom/TouchEvent.idl:
  • dom/TransitionEvent.idl:
  • dom/UIEvent.idl:
  • dom/WheelEvent.idl:
  • html/HTMLButtonElement.idl:
  • html/HTMLDocument.idl:
  • html/HTMLElement.idl:
  • html/HTMLFormElement.idl:
  • html/HTMLImageElement.idl:
  • html/HTMLInputElement.idl:
  • html/HTMLLinkElement.idl:
  • html/HTMLMediaElement.idl:
  • html/HTMLScriptElement.idl:
  • html/HTMLTableCellElement.idl:
  • html/HTMLTrackElement.idl:
  • html/MediaEncryptedEvent.idl:
  • html/SubmitEvent.idl:
  • html/track/AudioTrack.idl:
  • html/track/AudioTrackList.idl:
  • html/track/TextTrack.idl:
  • html/track/TextTrackList.idl:
  • html/track/VTTRegion.idl:
  • html/track/VideoTrack.idl:
  • html/track/VideoTrackList.idl:
  • page/DOMWindow.idl:
  • page/UserMessageHandlersNamespace.idl:
  • storage/StorageEvent.idl:
  • svg/SVGAltGlyphElement.idl:
  • svg/SVGStyleElement.idl:
  • workers/service/ExtendableEvent.idl:
  • workers/service/ExtendableMessageEvent.idl:
  • workers/service/FetchEvent.idl:
7:34 PM Changeset in webkit [292853] by Matteo Flores
  • 2 edits in trunk/Tools

[ iOS ] TestWebKitAPI.WebKit2.CrashGPUProcessWhileCapturing is a flaky timeout https://bugs.webkit.org/show_bug.cgi?id=239315 Unreviewed test gardening. * TestWebKitAPI/Tests/WebKit/GetUserMedia.mm:

7:24 PM Changeset in webkit [292852] by Matteo Flores
  • 2 edits in trunk/Tools

[ iOS ] TestWebKitAPI.WebKit2.CrashGPUProcessWhileCapturingAndCalling is a flaky timeout https://bugs.webkit.org/show_bug.cgi?id=239309 Unreviewed test gardening. * TestWebKitAPI/Tests/WebKit/GetUserMedia.mm: Disabling test to help EWS

7:02 PM Changeset in webkit [292851] by Matteo Flores
  • 2 edits in trunk/Tools

[ iOS ] TestWebKitAPI.SOAuthorizationSubFrame.InterceptionErrorWithReferrer is a flaky timeout https://bugs.webkit.org/show_bug.cgi?id=239311 Unreviewed test gardening * TestWebKitAPI/Tests/WebKitCocoa/TestSOAuthorization.mm: Disabling the test to help EWS (TestWebKitAPI::TEST):

6:50 PM Changeset in webkit [292850] by Matteo Flores
  • 2 edits in trunk/Tools

REGRESSION(r292401-r292310): [ iOS ] TestWebKitAPI.GPUProcess.CanvasBasicCrashHandling is a constant failure on iOS https://bugs.webkit.org/show_bug.cgi?id=239303 Unreviewed test gardening. * TestWebKitAPI/Tests/WebKitCocoa/GPUProcess.mm: Disabling the test to help EWS (TEST):

6:30 PM Changeset in webkit [292849] by Matteo Flores
  • 2 edits in trunk/Tools

[ iOS ] TestWebKitAPI.IndexedDB.IndexedDBSuspendImminently is a constant timeout https://bugs.webkit.org/show_bug.cgi?id=239310 Unreviewed test gardening. * TestWebKitAPI/Tests/WebKitCocoa/IndexedDBSuspendImminently.mm: Disabling the test (TEST):

6:18 PM Changeset in webkit [292848] by Kocsen Chung
  • 1 copy in tags/WebKit-7613.2.6.0.1

Tag WebKit-7613.2.6.0.1.

6:05 PM Changeset in webkit [292847] by Kocsen Chung
  • 1 copy in tags/WebKit-7613.2.6.1.1

Tag WebKit-7613.2.6.1.1.

5:52 PM Changeset in webkit [292846] by achristensen@apple.com
  • 3 edits in trunk/Source/WebKit

Adjust when _setPrivacyProxyFailClosedForUnreachableNonMainHosts is called
https://bugs.webkit.org/show_bug.cgi?id=237735

Reviewed by Geoff Garen.

This is recommitting http://trac.webkit.org/r291598 but leaving the definition of PrivateRelayed::Yes and ::No
based on whether metrics._privacyStance == nw_connection_privacy_stance_direct instead of nw_connection_privacy_stance_failed.
It has flip flopped several times in the various related commits, but it needs to be nw_connection_privacy_stance_direct.
I manually verified that this fixes <rdar://88965550> without reintroducing <rdar://90677955>.

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
(WebKit::NetworkSessionCocoa::createWebSocketTask):

5:15 PM Changeset in webkit [292845] by Elliott Williams
  • 16 edits in trunk

[Xcode] Fix public watchOS workspace build by updating scheme and build settings
https://bugs.webkit.org/show_bug.cgi?id=239301

Reviewed by Alexey Proskuryakov.

.:

Add AD_HOC_CODE_SIGNING_ALLOWED=YES (similar to
https://commits.webkit.org/249449@main) and
DISABLE_SDK_METADATA_PARSING=YES in various places to work around
open-source workspace build failures when building for watchOS.

  • WebKit.xcworkspace/xcshareddata/xcschemes/All Source.xcscheme:
  • Remove libwebrtc from the "All Source" scheme. On watchOS, it doesn't

build, and on other platforms, it is an implicit dependency, so
removing it lets the build system determine whether or not it should
build.

  • Remove MiniBrowser from the "All Source" scheme, as it's part of "All

Tools". "All Tools" probably shouldn't be built for embedded
platforms, as it contains some Mac-only tools, but we do not enforce
this.

Source/WebCore:

  • Configurations/Base.xcconfig:
  • Configurations/WebCore.xcconfig:
  • Configurations/WebCoreTestSupport.xcconfig:

Source/WebGPU:

  • Configurations/Base.xcconfig:
  • Configurations/WebGPU.xcconfig:

Source/WebInspectorUI:

  • Configurations/Base.xcconfig:

Source/WebKit:

  • Configurations/WebKit.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/Base.xcconfig:
  • Configurations/WebKitLegacy.xcconfig:
4:43 PM Changeset in webkit [292844] by Jonathan Bedard
  • 6 edits in trunk/Tools

[git-webkit] Found branch name instead of hash
https://bugs.webkit.org/show_bug.cgi?id=239296
<rdar://problem/91720224>

Reviewed by Michael Catanzaro.

  • Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:

(Git.Cache.populate): Add --no-decorate to git log command.
(Git.commit): Ditto.
(Git.commits): Ditto.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py:
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py:

(TestGit.test_log): Ditto.

Canonical link: https://commits.webkit.org/249617@main

4:24 PM Changeset in webkit [292843] by Ross Kirsling
  • 4 edits
    1 add in trunk/Tools

Add PlayStation builds to bot watcher's dashboard.
https://bugs.webkit.org/show_bug.cgi?id=239090

Reviewed by Jonathan Bedard.

  • Tools/CISupport/build-webkit-org/public_html/dashboard/Images/PlayStation.png: Added.
  • Tools/CISupport/build-webkit-org/public_html/dashboard/Scripts/Dashboard.js:
  • Tools/CISupport/build-webkit-org/public_html/dashboard/Scripts/WebKitBuildbot.js:

(WebKitBuildbot):

  • Tools/CISupport/build-webkit-org/public_html/dashboard/Styles/Main.css:

(table.queue-grid tr.platform.playstation img.logo):

Canonical link: https://commits.webkit.org/249616@main

4:17 PM Changeset in webkit [292842] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

WebContent crashes with SIGTERM_TIMEOUT on macOS
https://bugs.webkit.org/show_bug.cgi?id=239298
<rdar://90665705>

Reviewed by Darin Adler.

To make sure that WebProcesses cannot use any CPU time while in the WebProcess cache on macOS, I recently tried to
suspend these cached processes. However, since we haven't adopted RunningBoard on macOS yet, I was doing suspension
and resuming manually via the SIGSTOP & SIGCONT signals. While this properly suspended our cached processes, this
introduced SIGTERM_TIMEOUT crashes and potential delays when exiting Safari or logging out of macOS while Safari is
running. This is because our cached & suspended processes are unable to process the SIGTERM signal they receive and
thus don't cleanly exit. After a timeout, the system forcefully kills them and generates a crash log with
SIGTERM_TIMEOUT to let us know.

To address the issue, I am disabling the WebProcess suspension logic that I recently added. We can reconsider doing
something like this once we adopt RunningBoard on macOS, assuming the same issue doesn't affect suspension via
RunningBoard.

  • UIProcess/mac/WebProcessProxyMac.mm:

(WebKit::WebProcessProxy::platformSuspendProcess):
(WebKit::WebProcessProxy::platformResumeProcess):

4:14 PM Changeset in webkit [292841] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

GCC 12 -Wdangling-pointer warning spam from AbstractSlotVisitorInlines.h
https://bugs.webkit.org/show_bug.cgi?id=239299

Patch by Michael Catanzaro <mcatanzaro@redhat.com> on 2022-04-13
Reviewed by Mark Lam.

Suppress this warning, so we can see other warnings.

  • heap/AbstractSlotVisitorInlines.h:

(JSC::AbstractSlotVisitor::ReferrerContext::ReferrerContext):

3:55 PM Changeset in webkit [292840] by commit-queue@webkit.org
  • 14 edits in trunk/Source

Misc compiler warnings, April 2022 edition
https://bugs.webkit.org/show_bug.cgi?id=239290

Patch by Michael Catanzaro <Michael Catanzaro> on 2022-04-13
Reviewed by Adrian Perez de Castro.

Fix the usual spam of -Wreturn-type warnings.

Bonus warnings: unused variable, unknown pragmas, and redundant move.

  • Source/JavaScriptCore/bytecode/PropertyCondition.cpp:

(JSC::PropertyCondition::isStillValidAssumingImpurePropertyWatchpoint const):
(JSC::watchabilityToConcurrency):
(JSC::PropertyCondition::validityRequiresImpurePropertyWatchpoint const):

  • Source/JavaScriptCore/runtime/JSObject.h:

(JSC::JSObject::getDirect const):

  • Source/JavaScriptCore/runtime/Structure.h:

(JSC::Structure::get):

  • Source/WebKit/NetworkProcess/storage/OriginStorageManager.cpp:

(WebKit::OriginStorageManager::StorageBucket::resolvedPath):

  • Source/WebCore/dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::canAccessResource const):

  • Source/WebCore/page/DebugPageOverlays.cpp:
  • Source/WebCore/page/InteractionRegion.cpp:

(WebCore::regionForElement):

  • Source/WebCore/platform/graphics/GraphicsContextState.cpp:

(WebCore::stateChangeName):

  • Source/WebCore/rendering/style/RenderStyle.cpp:

(WebCore::getPathFromPathOperation):

  • Source/WebCore/style/ContainerQueryEvaluator.cpp:

(WebCore::Style::ContainerQueryEvaluator::evaluateSizeFeature const):

  • Source/WebCore/testing/Internals.cpp:

(WebCore::Internals::categoryAtMostRecentPlayback const):

Canonical link: https://commits.webkit.org/249613@main

3:50 PM Changeset in webkit [292839] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ Monterey WK2 ] media/media-source/media-source-webm-vorbis-partial.html is a constant failure
https://bugs.webkit.org/show_bug.cgi?id=239308

Unreviewed test gardening

  • platform/mac-wk2/TestExpectations:
3:50 PM Changeset in webkit [292838] by Diego Pino Garcia
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix non-unified build after r292810

  • editing/HTMLInterchange.h:
3:47 PM Changeset in webkit [292837] by Andres Gonzalez
  • 1 edit
    2 adds
    2 deletes in trunk/LayoutTests

Rewrite accessibility/mac/stale-table-rows.html to properly check that the number of rows and columns are correct after grid changes.
https://bugs.webkit.org/show_bug.cgi?id=239292
<rdar://problem/91705969>

Reviewed by Chris Fleizach.

This test had a weak success criterion that was passing when two
expressions were equal without checking the actual value of the
expressions, which was incorrect in isolated tree mode. This is a
rewrite of the test that makes the success criteria more strict and
modernize the test to be async so that it can pass in isolated tree
mode. In addition, renamed the test to better reflect what it is
actually doing.

  • accessibility/mac/grid-add-remove-rows-expected.txt: Added.
  • accessibility/mac/grid-add-remove-rows.html: Added.
  • accessibility/mac/stale-table-rows-expected.txt: Renamed to above.
  • accessibility/mac/stale-table-rows.html: Renamed to above.
3:44 PM Changeset in webkit [292836] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebCore

StorageMap::importItems may update currentSize wrongly in release build
https://bugs.webkit.org/show_bug.cgi?id=239255

Reviewed by Chris Dumez.

StorageMap::importItems() has a debug assertion that keys of imported items do not exist in map, but that does
not prevent this from happening in release build. With our current implementation, if this happens in release
build, we increase currentSize without updating the map, which may lead to overflow.

To make StorageMap more safe to use, we can calculate the correct currentSize based on size of exsiting item, as
in StorageMap::setItem(), or we just don't update currentSize or map if key already exists. Since current users
of StorageMap should only call importItems() when the map is empty, we can add an early return if map is not
empty.

  • storage/StorageMap.cpp:

(WebCore::StorageMap::importItems):

3:43 PM Changeset in webkit [292835] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ Monterey wk2 release ] imported/w3c/web-platform-tests/content-security-policy/inheritance/blob-url-inherits-from-initiator.sub.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=239307

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:22 PM Changeset in webkit [292834] by commit-queue@webkit.org
  • 5 edits
    2 deletes in trunk

Unreviewed, reverting r292817.
https://bugs.webkit.org/show_bug.cgi?id=239305

some dialog tests are asserting

Reverted changeset:

"REGRESSION (r292043): [ Mac ] fast/block/positioning/fixed-
container-with-relative-parent.html is a flaky image failure"
https://bugs.webkit.org/show_bug.cgi?id=239101
https://commits.webkit.org/r292817

3:04 PM Changeset in webkit [292833] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ Mac wk2 ] http/tests/cache-storage/cache-origins.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=239304

Unreviewed test gardening.

2:41 PM Changeset in webkit [292832] by Chris Dumez
  • 3 edits in trunk/LayoutTests/imported/w3c

imported/w3c/web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/no-dezippering.html
https://bugs.webkit.org/show_bug.cgi?id=238790
<rdar://problem/91607355>

Reviewed by Eric Carlson.

The audio values may differ slightly from hardware to hardware due to floating point precision and vectorization.
On one of our ARM platforms, we were getting values slightly outside the allowed range but still close enough
that we consider the behavior to be correct. As a result, I am increasing the tolerance a bit in the test.

If this resolves the issue on our bot (I cannot reproduce locally), I'll submit a PR upstream.

  • web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/no-dezippering-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/no-dezippering.html:
2:27 PM Changeset in webkit [292831] by Matteo Flores
  • 2 edits in trunk/LayoutTests

REBASLINE: [ Monterey wk2 ] 7 /paymentrequest/* tests are constant text failures

https://bugs.webkit.org/show_bug.cgi?id=238908

Unreviewed test gardening.

2:01 PM Changeset in webkit [292830] by ysuzuki@apple.com
  • 9 edits in trunk/Source/JavaScriptCore

[JSC] Remove DeprecatedCallFrameForDebugger
https://bugs.webkit.org/show_bug.cgi?id=239045

Reviewed by Devin Rousso.

We should not enlarge sizeof(JSGlobalObject) by having DeprecatedCallFrameForDebugger which is only used for Debugger, and it is used
only when we have an error when evaluating top-level SyntaxError. This patch removes it: we introduce EmptyTopLevelCallFrameForDebugger
which can be constructed on stack and we use it instead of DeprecatedCallFrameForDebugger.

  • Source/JavaScriptCore/debugger/Debugger.cpp:

(JSC::Debugger::updateCallFrame):
(JSC::EmptyTopLevelCallFrameForDebugger::EmptyTopLevelCallFrameForDebugger):
(JSC::EmptyTopLevelCallFrameForDebugger::asCallFrame):
(JSC::Debugger::exception):

  • Source/JavaScriptCore/debugger/DebuggerCallFrame.cpp:

(JSC::DebuggerCallFrame::create):
(JSC::DebuggerCallFrame::positionForCallFrame):

  • Source/JavaScriptCore/interpreter/CallFrame.cpp:

(JSC::CallFrame::convertToStackOverflowFrame):
(JSC::CallFrame::initDeprecatedCallFrameForDebugger): Deleted.

  • Source/JavaScriptCore/interpreter/CallFrame.h:

(JSC::CallFrame::isEmptyTopLevelCallFrameForDebugger const):
(JSC::CallFrame::isDeprecatedCallFrameForDebugger const): Deleted.

  • Source/JavaScriptCore/interpreter/Interpreter.cpp:

(JSC::Interpreter::notifyDebuggerOfExceptionToBeThrown):

  • Source/JavaScriptCore/runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::deprecatedCallFrameForDebugger): Deleted.

  • Source/JavaScriptCore/runtime/JSGlobalObject.h:
  • Source/JavaScriptCore/runtime/VM.cpp:

(JSC::VM::throwException):

Canonical link: https://commits.webkit.org/249603@main

1:50 PM Changeset in webkit [292829] by Kocsen Chung
  • 14 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r292801. rdar://problem/91346216

Crash under CachedResourceClientWalker<WebCore::CachedImageClient>::next()
https://bugs.webkit.org/show_bug.cgi?id=239253
<rdar://91346216>

Reviewed by Simon Fraser and Brent Fulgham.

I haven't been able to reproduce the issue or figure out why this is happening so I am doing
some hardening and adding assertions to help catch the underlying bug.

  • loader/ImageLoader.cpp: (WebCore::ImageLoader::didUpdateCachedImage): There is some speculation that r291141 could have caused this because of the timing of when this patch landed and the fact that this patch modifies ImageLoader, which is a CachedImageClient. I couldn't see anything wrong with the change. However, I did notice that we were calling didUpdateCachedImage() twice with the same CachedImage now for lazy loading (once initially and then another time when the image actually starts lazily). This was intentional. However, the registering again as a client of the CachedImage (and then unregistering right away) was not. Technically, this should be fine since CachedResource is using a HashCountedSet for m_clients locally. However, for the sake of safety, I am now not doing this redundant registering/unregistering as a client of the CachedImage when this image has not changed.
  • loader/cache/CachedCSSStyleSheet.cpp: (WebCore::CachedCSSStyleSheet::checkNotify):
  • loader/cache/CachedFont.cpp: (WebCore::CachedFont::checkNotify):
  • loader/cache/CachedImage.cpp: (WebCore::CachedImage::load): (WebCore::CachedImage::addClientWaitingForAsyncDecoding): (WebCore::CachedImage::notifyObservers): (WebCore::CachedImage::canDestroyDecodedData): (WebCore::CachedImage::imageFrameAvailable): (WebCore::CachedImage::scheduleRenderingUpdate): (WebCore::CachedImage::isVisibleInViewport): (WebCore::CachedImage::isVisibleInViewport const): Deleted.
  • loader/cache/CachedImage.h:
  • loader/cache/CachedRawResource.cpp: (WebCore::CachedRawResource::notifyClientsDataWasReceived): (WebCore::iterateRedirects):

(WebCore::CachedRawResource::redirectReceived):
The new assertions found a bug here where we were capturing the CachedRawResourceClient by value in the lambda and thus
making a copy of it (even though this is a polymorphic class). I fixed the bug and marked CachedResourceClient as non
copyable to avoid issues like these.

(WebCore::CachedRawResource::responseReceived):
(WebCore::CachedRawResource::shouldCacheResponse):
(WebCore::CachedRawResource::didSendData):
(WebCore::CachedRawResource::finishedTimingForWorkerLoad):
(WebCore::CachedRawResource::previewResponseReceived):

  • loader/cache/CachedResource.cpp: (WebCore::CachedResource::checkNotify): (WebCore::CachedResource::didAddClient): (WebCore::CachedResource::addClientToSet): (WebCore::CachedResource::removeClient):
  • loader/cache/CachedResource.h:
  • loader/cache/CachedResourceClient.h: (WebCore::CachedResourceClient::~CachedResourceClient): (WebCore::CachedResourceClient::addAssociatedResource): (WebCore::CachedResourceClient::removeAssociatedResource): Add new assertions to make sure that a CachedResourceClient is no longer associated (i.e. marked as a client of) with any CachedResource at the time it is destroyed. Hopefully, this will catch the issue right away and give us a useful stack trace, instead of crashing later on when iterating over the clients of a CachedResource.
  • loader/cache/CachedResourceClientWalker.h: (WebCore::CachedResourceClientWalker::CachedResourceClientWalker): (WebCore::CachedResourceClientWalker::next): CachedResourceClientWalker is meant to be a safe way of iterating over the clients of a CachedResource, allowing clients to unregister themselves as we iterate. However, when clients unregister themselves, it could in theory cause the CachedResource itself to get destroyed. In such cases, the CachedResourceClientWalker would not be safe since its m_clientSet data member would come from a dead CachedResource. To address the issue, the walker now keeps a handle to the cached resource, instead of the reference to the CachedResource's clients set. The handle will ensure the cached resource stays alive.
  • loader/cache/CachedScript.cpp:
  • loader/cache/CachedTextTrack.cpp: (WebCore::CachedTextTrack::doUpdateBuffer):
  • loader/cache/CachedXSLStyleSheet.cpp: (WebCore::CachedXSLStyleSheet::checkNotify):
  • rendering/RenderObject.cpp:

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

1:50 PM Changeset in webkit [292828] by Kocsen Chung
  • 4 edits in branches/safari-613-branch

Cherry-pick r292721. rdar://problem/88249235

Fix size computation in WebCore::StorageMap
https://bugs.webkit.org/show_bug.cgi?id=239024
rdar://88249235

Reviewed by Chris Dumez.

Source/WebCore:

We use currentSize to track size for StorageMap. There are a few issues in current implementation that can make
currentSize incorrect and may lead to overflow:

  1. When computing size of key, StorageMap uses parameter key instead of stored key. The problem is that two Strings can be evaluated to equal while their sizeInBytes() value is different, when one String is 8-bit and the other is 16-bit. That means removeItem() may decrease currentSize by wrong number (e.g setItem() with an 8-bit key, converting the key to 16-bit, removeItem() with the key). To fix this, StorageMap now always uses stored key for computation.
  2. When map.take(key) or map.get(key) returns null string, StorageMap takes it as the key does not exist and will not correctly update currentSize, but user of WebCore::StorageMap may store null string as value. To fix this, StorageMap now check if key exists with find() function.
  3. StorageMap only uses CheckedUint32 in setItem(), but removeItem() and importItem() may cause overflow in currentSize as mentioned above, and the error will not be caught until setItem() is called. To fix this, StorageMap now uses CheckedUint32 in all places that update currentSize.

New test: WKWebView.LocalStorageNoSizeOverflow

  • storage/StorageMap.cpp: (WebCore::StorageMap::setItem): (WebCore::StorageMap::removeItem): (WebCore::StorageMap::importItems):

Tools:

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

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

1:49 PM Changeset in webkit [292827] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ Monterey ] 4 http/tests/paymentrequest tests failing
https://bugs.webkit.org/show_bug.cgi?id=239300

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
1:32 PM Changeset in webkit [292826] by Kocsen Chung
  • 14 edits in branches/safari-613.2.6.1-branch/Source/WebCore

Cherry-pick r292801. rdar://problem/91346216

Crash under CachedResourceClientWalker<WebCore::CachedImageClient>::next()
https://bugs.webkit.org/show_bug.cgi?id=239253
<rdar://91346216>

Reviewed by Simon Fraser and Brent Fulgham.

I haven't been able to reproduce the issue or figure out why this is happening so I am doing
some hardening and adding assertions to help catch the underlying bug.

  • loader/ImageLoader.cpp: (WebCore::ImageLoader::didUpdateCachedImage): There is some speculation that r291141 could have caused this because of the timing of when this patch landed and the fact that this patch modifies ImageLoader, which is a CachedImageClient. I couldn't see anything wrong with the change. However, I did notice that we were calling didUpdateCachedImage() twice with the same CachedImage now for lazy loading (once initially and then another time when the image actually starts lazily). This was intentional. However, the registering again as a client of the CachedImage (and then unregistering right away) was not. Technically, this should be fine since CachedResource is using a HashCountedSet for m_clients locally. However, for the sake of safety, I am now not doing this redundant registering/unregistering as a client of the CachedImage when this image has not changed.
  • loader/cache/CachedCSSStyleSheet.cpp: (WebCore::CachedCSSStyleSheet::checkNotify):
  • loader/cache/CachedFont.cpp: (WebCore::CachedFont::checkNotify):
  • loader/cache/CachedImage.cpp: (WebCore::CachedImage::load): (WebCore::CachedImage::addClientWaitingForAsyncDecoding): (WebCore::CachedImage::notifyObservers): (WebCore::CachedImage::canDestroyDecodedData): (WebCore::CachedImage::imageFrameAvailable): (WebCore::CachedImage::scheduleRenderingUpdate): (WebCore::CachedImage::isVisibleInViewport): (WebCore::CachedImage::isVisibleInViewport const): Deleted.
  • loader/cache/CachedImage.h:
  • loader/cache/CachedRawResource.cpp: (WebCore::CachedRawResource::notifyClientsDataWasReceived): (WebCore::iterateRedirects):

(WebCore::CachedRawResource::redirectReceived):
The new assertions found a bug here where we were capturing the CachedRawResourceClient by value in the lambda and thus
making a copy of it (even though this is a polymorphic class). I fixed the bug and marked CachedResourceClient as non
copyable to avoid issues like these.

(WebCore::CachedRawResource::responseReceived):
(WebCore::CachedRawResource::shouldCacheResponse):
(WebCore::CachedRawResource::didSendData):
(WebCore::CachedRawResource::finishedTimingForWorkerLoad):
(WebCore::CachedRawResource::previewResponseReceived):

  • loader/cache/CachedResource.cpp: (WebCore::CachedResource::checkNotify): (WebCore::CachedResource::didAddClient): (WebCore::CachedResource::addClientToSet): (WebCore::CachedResource::removeClient):
  • loader/cache/CachedResource.h:
  • loader/cache/CachedResourceClient.h: (WebCore::CachedResourceClient::~CachedResourceClient): (WebCore::CachedResourceClient::addAssociatedResource): (WebCore::CachedResourceClient::removeAssociatedResource): Add new assertions to make sure that a CachedResourceClient is no longer associated (i.e. marked as a client of) with any CachedResource at the time it is destroyed. Hopefully, this will catch the issue right away and give us a useful stack trace, instead of crashing later on when iterating over the clients of a CachedResource.
  • loader/cache/CachedResourceClientWalker.h: (WebCore::CachedResourceClientWalker::CachedResourceClientWalker): (WebCore::CachedResourceClientWalker::next): CachedResourceClientWalker is meant to be a safe way of iterating over the clients of a CachedResource, allowing clients to unregister themselves as we iterate. However, when clients unregister themselves, it could in theory cause the CachedResource itself to get destroyed. In such cases, the CachedResourceClientWalker would not be safe since its m_clientSet data member would come from a dead CachedResource. To address the issue, the walker now keeps a handle to the cached resource, instead of the reference to the CachedResource's clients set. The handle will ensure the cached resource stays alive.
  • loader/cache/CachedScript.cpp:
  • loader/cache/CachedTextTrack.cpp: (WebCore::CachedTextTrack::doUpdateBuffer):
  • loader/cache/CachedXSLStyleSheet.cpp: (WebCore::CachedXSLStyleSheet::checkNotify):
  • rendering/RenderObject.cpp:

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

1:11 PM Changeset in webkit [292825] by Andres Gonzalez
  • 5 edits in trunk/Source/WebCore

Fix for accessibility/table-add-remove-rows.html in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=239271
<rdar://problem/91663287>

Reviewed by Chris Fleizach.

Test: accessibility/table-add-remove-rows.html

Added AXIsolatedTree::updateTableProperties() to recalculate all cached
table properties when the children of a table object change.
AXIsolatedTree::updateChildren now calls updateRelatedProperties to
update properties that can change as the result of children changes for
specific types of objects like tables, trees and treeitems.
Moved and renamed idsForObjects as axIDs() so that it can be used across
the board.

  • accessibility/AccessibilityObjectInterface.h:

(WebCore::axIDs):
(WebCore::AXCoreObject::childrenIDs):

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::setObjectVectorProperty):
(WebCore::AXIsolatedObject::setSelectedChildren):

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::updateNodeProperty):
(WebCore::AXIsolatedTree::updateTableProperties):
(WebCore::AXIsolatedTree::updateTreeItemProperties):
(WebCore::AXIsolatedTree::updateRelatedProperties):
(WebCore::AXIsolatedTree::updateChildren):
(WebCore::AXIsolatedTree::idsForObjects const): Moved to AccessibilityObjectInterface.h as axIDs().

  • accessibility/isolatedtree/AXIsolatedTree.h:
1:05 PM Changeset in webkit [292824] by hironori.fujii@sony.com
  • 5 edits in trunk

[WinCairo] WEBKIT_LIBRARIES env var should be customizable
https://bugs.webkit.org/show_bug.cgi?id=239268

Reviewed by Yusuke Suzuki.

  • Tools/Scripts/update-webkit-wincairo-libs.py:
  • Source/WebKitLegacy/CMakeLists.txt:
  • Source/WebKitLegacy/PlatformWin.cmake:

Canonical link: https://commits.webkit.org/249600@main

12:53 PM Changeset in webkit [292823] by Kocsen Chung
  • 14 edits in branches/safari-613.2.6.0-branch/Source/WebCore

Cherry-pick r292801. rdar://problem/91346216

Crash under CachedResourceClientWalker<WebCore::CachedImageClient>::next()
https://bugs.webkit.org/show_bug.cgi?id=239253
<rdar://91346216>

Reviewed by Simon Fraser and Brent Fulgham.

I haven't been able to reproduce the issue or figure out why this is happening so I am doing
some hardening and adding assertions to help catch the underlying bug.

  • loader/ImageLoader.cpp: (WebCore::ImageLoader::didUpdateCachedImage): There is some speculation that r291141 could have caused this because of the timing of when this patch landed and the fact that this patch modifies ImageLoader, which is a CachedImageClient. I couldn't see anything wrong with the change. However, I did notice that we were calling didUpdateCachedImage() twice with the same CachedImage now for lazy loading (once initially and then another time when the image actually starts lazily). This was intentional. However, the registering again as a client of the CachedImage (and then unregistering right away) was not. Technically, this should be fine since CachedResource is using a HashCountedSet for m_clients locally. However, for the sake of safety, I am now not doing this redundant registering/unregistering as a client of the CachedImage when this image has not changed.
  • loader/cache/CachedCSSStyleSheet.cpp: (WebCore::CachedCSSStyleSheet::checkNotify):
  • loader/cache/CachedFont.cpp: (WebCore::CachedFont::checkNotify):
  • loader/cache/CachedImage.cpp: (WebCore::CachedImage::load): (WebCore::CachedImage::addClientWaitingForAsyncDecoding): (WebCore::CachedImage::notifyObservers): (WebCore::CachedImage::canDestroyDecodedData): (WebCore::CachedImage::imageFrameAvailable): (WebCore::CachedImage::scheduleRenderingUpdate): (WebCore::CachedImage::isVisibleInViewport): (WebCore::CachedImage::isVisibleInViewport const): Deleted.
  • loader/cache/CachedImage.h:
  • loader/cache/CachedRawResource.cpp: (WebCore::CachedRawResource::notifyClientsDataWasReceived): (WebCore::iterateRedirects):

(WebCore::CachedRawResource::redirectReceived):
The new assertions found a bug here where we were capturing the CachedRawResourceClient by value in the lambda and thus
making a copy of it (even though this is a polymorphic class). I fixed the bug and marked CachedResourceClient as non
copyable to avoid issues like these.

(WebCore::CachedRawResource::responseReceived):
(WebCore::CachedRawResource::shouldCacheResponse):
(WebCore::CachedRawResource::didSendData):
(WebCore::CachedRawResource::finishedTimingForWorkerLoad):
(WebCore::CachedRawResource::previewResponseReceived):

  • loader/cache/CachedResource.cpp: (WebCore::CachedResource::checkNotify): (WebCore::CachedResource::didAddClient): (WebCore::CachedResource::addClientToSet): (WebCore::CachedResource::removeClient):
  • loader/cache/CachedResource.h:
  • loader/cache/CachedResourceClient.h: (WebCore::CachedResourceClient::~CachedResourceClient): (WebCore::CachedResourceClient::addAssociatedResource): (WebCore::CachedResourceClient::removeAssociatedResource): Add new assertions to make sure that a CachedResourceClient is no longer associated (i.e. marked as a client of) with any CachedResource at the time it is destroyed. Hopefully, this will catch the issue right away and give us a useful stack trace, instead of crashing later on when iterating over the clients of a CachedResource.
  • loader/cache/CachedResourceClientWalker.h: (WebCore::CachedResourceClientWalker::CachedResourceClientWalker): (WebCore::CachedResourceClientWalker::next): CachedResourceClientWalker is meant to be a safe way of iterating over the clients of a CachedResource, allowing clients to unregister themselves as we iterate. However, when clients unregister themselves, it could in theory cause the CachedResource itself to get destroyed. In such cases, the CachedResourceClientWalker would not be safe since its m_clientSet data member would come from a dead CachedResource. To address the issue, the walker now keeps a handle to the cached resource, instead of the reference to the CachedResource's clients set. The handle will ensure the cached resource stays alive.
  • loader/cache/CachedScript.cpp:
  • loader/cache/CachedTextTrack.cpp: (WebCore::CachedTextTrack::doUpdateBuffer):
  • loader/cache/CachedXSLStyleSheet.cpp: (WebCore::CachedXSLStyleSheet::checkNotify):
  • rendering/RenderObject.cpp:

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

12:53 PM Changeset in webkit [292822] by Kocsen Chung
  • 4 edits in branches/safari-613.2.6.0-branch

Cherry-pick r292721. rdar://problem/88249235

Fix size computation in WebCore::StorageMap
https://bugs.webkit.org/show_bug.cgi?id=239024
rdar://88249235

Reviewed by Chris Dumez.

Source/WebCore:

We use currentSize to track size for StorageMap. There are a few issues in current implementation that can make
currentSize incorrect and may lead to overflow:

  1. When computing size of key, StorageMap uses parameter key instead of stored key. The problem is that two Strings can be evaluated to equal while their sizeInBytes() value is different, when one String is 8-bit and the other is 16-bit. That means removeItem() may decrease currentSize by wrong number (e.g setItem() with an 8-bit key, converting the key to 16-bit, removeItem() with the key). To fix this, StorageMap now always uses stored key for computation.
  2. When map.take(key) or map.get(key) returns null string, StorageMap takes it as the key does not exist and will not correctly update currentSize, but user of WebCore::StorageMap may store null string as value. To fix this, StorageMap now check if key exists with find() function.
  3. StorageMap only uses CheckedUint32 in setItem(), but removeItem() and importItem() may cause overflow in currentSize as mentioned above, and the error will not be caught until setItem() is called. To fix this, StorageMap now uses CheckedUint32 in all places that update currentSize.

New test: WKWebView.LocalStorageNoSizeOverflow

  • storage/StorageMap.cpp: (WebCore::StorageMap::setItem): (WebCore::StorageMap::removeItem): (WebCore::StorageMap::importItems):

Tools:

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

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

12:43 PM Changeset in webkit [292821] by Russell Epstein
  • 1 copy in tags/WebKit-7614.1.10

Tag WebKit-7614.1.10.

12:27 PM Changeset in webkit [292820] by Kocsen Chung
  • 9 edits in branches/safari-613.2.6.0-branch/Source

Versioning.

WebKit-7613.2.6.0.1

12:12 PM Changeset in webkit [292819] by Antti Koivisto
  • 7 edits in trunk

[CSS Container Queries] Correct container selection for pseudo-elements
https://bugs.webkit.org/show_bug.cgi?id=239279

Reviewed by Simon Fraser.

Source/WebCore:

The element itself may be the container for its pseudo-elements.

  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::computeNonCalcLengthDouble):

  • style/ContainerQueryEvaluator.cpp:

(WebCore::Style::ContainerQueryEvaluator::ContainerQueryEvaluator):
(WebCore::Style::ContainerQueryEvaluator::selectContainer const):
(WebCore::Style::ContainerQueryEvaluator::selectContainer):

  • style/ContainerQueryEvaluator.h:

Instead of passing the pseudo-element being matched, pass a container selection mode flag. The exact pseudo-element type
doesn't matter.

  • style/ElementRuleCollector.cpp:

(WebCore::Style::ElementRuleCollector::containerQueriesMatch):

We need to use the pseudo-element mode when matching a rule that matches a pseudo-element, even when we are not actually resolving
the pseudo element. This is because regular element rule matching sets the style bits that indicate what pseudo-elements the
element has.

LayoutTests:

11:53 AM Changeset in webkit [292818] by Patrick Angle
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Clean up WI.DOMNode to no longer require the shared WI.DOMManager be passed during construction
https://bugs.webkit.org/show_bug.cgi?id=239129

Reviewed by Devin Rousso.

  • UserInterface/Controllers/DOMManager.js:

(WI.DOMManager.prototype._setDocument):
(WI.DOMManager.prototype._childNodeInserted):
(WI.DOMManager.prototype._pseudoElementAdded):

  • Update to use new syntax for WI.DOMNode constructor/newOrExistingFromPayload. Additionally, there is no

need to explicitly map node ids to nodes here since WI.DOMNode's constructor does this.

(WI.DOMManager.prototype._setChildNodes):
(WI.DOMManager.prototype._setDetachedRoot): Deleted.

  • Inline _setDetachedRoot with a comment instead and update to use WI.DOMNode.newOrExistingFromPayload instead

of always creating a new node.

  • UserInterface/Models/DOMNode.js:

(WI.DOMNode):

  • Remove the _domManager property since it will always be WI.domManager, the shared singleton and update the

required arguments to use an options object for non-required parameters.

(WI.DOMNode.prototype.newOrExistingFromPayload):
(WI.DOMNode.prototype._insertChild):
(WI.DOMNode.prototype._setChildrenPayload):

  • Update to use new constructor syntax.
11:50 AM Changeset in webkit [292817] by Alan Bujtas
  • 5 edits
    2 adds in trunk

REGRESSION (r292043): [ Mac ] fast/block/positioning/fixed-container-with-relative-parent.html is a flaky image failure
https://bugs.webkit.org/show_bug.cgi?id=239101
<rdar://problem/91603539>

Reviewed by Antti Koivisto.

Source/WebCore:

  1. Out of flow boxes are laid out independently from each other as the last step of their containing block layout.
  2. However their static positions are computed during regular in-flow layout (as if their positions were static).

In order to do #1, we maintain a ListHashSet for the out-of-flow boxes and insert them at #2 (and we also have
a corresponding HashMap<ContainingBlock, ListHasSet>).

Normally this is a very simple list of descendant positioned boxes and since out-of-flow boxes don't interact with each
other, their position in the list is not important.

e.g.

<div id=A style="position: relative">

<div>

<div id=B style="position: absolute"></div>
<div id=C style="position: absolute"></div>

</div>

</div>

At in-flow layout (#2), we insert B and C to "ListHashSet of A" as we come across them in DOM order and compute their static positions.
Later in the layout flow when we get to the "let's layout the out-of-flow boxes" phase (#1) we simply walk
the ListHashSet and lay out B and C (but "C and B" order would also work just fine).

However the ICB (RenderView) is a special containing block as it can hold different types of out-of-flow boxes (absolute and fixed)
and those out-of-flow boxes may have layout dependencies.
e.g.

<body><div id=A class=absolute><div id=B class=fixed></div></div></body>

ICB's ListHasSet has both A and B, but in this case there's (static)layout dependency between these boxes.
In order to figure out the static position of B, we have to have A laid out first. In order to lay out A before B,
B has to be preceded by A in ICB's ListHasSet.

Now full layout always guarantees the correct order.
However in case of partial layout since we don't run a full #2, the ListHasSet may end up having an unexpected order.

e.g.

<body><div id=A class=absolute><div id=B><div id=C class=fixed></div></div></div></body>

  1. The initial (full) layout produces the following (correct) order for the ICB's ListHasSet -> AC.
  2. A subsequent partial layout (e.g. triggered by A's position change) runs an in-flow layout on the <body> which (re-)appends A to the ListHasSet (CA <- incorrect order). Now at this point we assume that the in-flow layout picks up B which eventually (re-)appends C to the ListHashSet (AC <- correct order). However since B does not need layout, we just stop at <body> which leaves us with an unexpected ListHashSet.
  3. As part of the ICB's out-of-flow layout, we pick C as the first box to lay out followed by A. However since C's static position depends on A's position, we end up using stale geometry when computing C's static position.

This patch fixes this issue by ensuring the absolute positioned boxes always come first in the ICB's ListHasSet (note
that their order is not really important -see above. What's important is that a potential (as-if-static) containing block always
comes before the fixed boxes).

Test: fast/block/fixed-inside-absolute-positioned.html

  • rendering/RenderBlock.cpp:

(WebCore::PositionedDescendantsMap::addDescendant):
(WebCore::RenderBlock::insertPositionedObject):

LayoutTests:

  • fast/block/fixed-inside-absolute-positioned-expected.html: Added.
  • fast/block/fixed-inside-absolute-positioned.html: Added.
  • platform/mac-wk1/TestExpectations:
11:48 AM Changeset in webkit [292816] by Antti Koivisto
  • 4 edits in trunk

[CSS Container Queries] Limit query range syntax
https://bugs.webkit.org/show_bug.cgi?id=239118

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/at-container-parsing-expected.txt:

Source/WebCore:

The spec disallows things like (100px = width < 200px) and (100px < width > 200px).

https://www.w3.org/TR/mediaqueries-4/#mq-range-context

  • css/ContainerQueryParser.cpp:

(WebCore::ContainerQueryParser::consumeContainerQuery):

Try as a condition first.
Return UnknownQuery on parse failure.

(WebCore::ContainerQueryParser::consumeRangeSizeFeature):

Validate the ranges so what ends up being allowed matches the spec productions.

11:17 AM Changeset in webkit [292815] by Russell Epstein
  • 1 copy in tags/WebKit-7614.1.9.4

Tag WebKit-7614.1.9.4.

10:52 AM Changeset in webkit [292814] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Drop unused AtomString(const LChar*) constructor
https://bugs.webkit.org/show_bug.cgi?id=239274

Reviewed by Darin Adler.

  • wtf/text/AtomString.h:
9:52 AM Changeset in webkit [292813] by Russell Epstein
  • 9 edits in branches/safari-614.1.9-branch/Source

Versioning.

WebKit-7614.1.9.4

9:41 AM Changeset in webkit [292812] by Simon Fraser
  • 23 edits
    2 adds in trunk

[css-scroll-snap] scrollIntoView fails with scroll-snap-type on :root
https://bugs.webkit.org/show_bug.cgi?id=239063
<rdar://problem/91603363>

Reviewed by Dean Jackson.

Source/WebCore:

Programmatic smooth scrolls on iframe documents were broken because
ScrollingTreeFrameScrollingNodeRemoteIOS was overlooked when adding support (easily done
since the main frame's scrolling is controlled via the WKWebView; some unification here
would be beneficial). Implementing startAnimatedScrollToPosition() and stopAnimatedScroll()
on ScrollingTreeFrameScrollingNodeRemoteIOS fixes this.

However, this revealed an additional bug; RenderLayer::scrollRectToVisible() failed to clamp
the target scroll position correctly, and nothing in the iOS-smooth scrolling code path
clamped, so the scroll would go too far.

Testing required getting UIHelper.waitForScrollCompletion() to work. This is based on the
uiController.didEndScrollingCallback, but that was only hooked up for the main scroller. So
make it work for all scrollers by plumbing ScrollingNodeIDs through
scrollingNodeScrollViewDidScroll() and friends so that everything ends up in -[WKWebViewIOS
_didFinishScrolling:] with a UIScrollView argument; to avoid any behavior change, this bails
for non-main scroll views, but TestRunnerWKWebView overrides it to make testing work.

Test: fast/scrolling/ios/constrain-scrollintoview-position.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::scrollRectToVisible):

Source/WebKit:

Programmatic smooth scrolls on iframe documents were broken because
ScrollingTreeFrameScrollingNodeRemoteIOS was overlooked when adding support (easily done
since the main frame's scrolling is controlled via the WKWebView; some unification here
would be beneficial). Implementing startAnimatedScrollToPosition() and stopAnimatedScroll()
on ScrollingTreeFrameScrollingNodeRemoteIOS fixes this.

However, this revealed an additional bug; RenderLayer::scrollRectToVisible() failed to clamp
the target scroll position correctly, and nothing in the iOS-smooth scrolling code path
clamped, so the scroll would go too far.

Testing required getting UIHelper.waitForScrollCompletion() to work. This is based on the
uiController.didEndScrollingCallback, but that was only hooked up for the main scroller. So
make it work for all scrollers by plumbing ScrollingNodeIDs through
scrollingNodeScrollViewDidScroll() and friends so that everything ends up in -[WKWebViewIOS
_didFinishScrolling:] with a UIScrollView argument; to avoid any behavior change, this bails
for non-main scroll views, but TestRunnerWKWebView overrides it to make testing work.

Test: fast/scrolling/ios/constrain-scrollintoview-position.html

  • UIProcess/API/ios/WKWebViewIOS.h:
  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _didFinishScrolling:]):
(-[WKWebView scrollViewDidEndDragging:willDecelerate:]):
(-[WKWebView scrollViewDidEndDecelerating:]):
(-[WKWebView scrollViewDidScrollToTop:]):
(-[WKWebView scrollViewDidEndScrollingAnimation:]):
(-[WKWebView _didFinishScrolling]): Deleted.

  • UIProcess/PageClient.h:
  • UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:

(WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeDidScroll):

  • UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm:

(WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeWillStartPanGesture):
(WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeWillStartScroll):
(WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeDidEndScroll):

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeFrameScrollingNodeRemoteIOS.h:
  • UIProcess/RemoteLayerTree/ios/ScrollingTreeFrameScrollingNodeRemoteIOS.mm:

(WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::startAnimatedScrollToPosition):
(WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::stopAnimatedScroll):

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:

(-[WKScrollingNodeScrollViewDelegate scrollViewDidEndScrollingAnimation:]):
(WebKit::ScrollingTreeScrollingNodeDelegateIOS::repositionScrollingLayers):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::scrollingNodeScrollViewWillStartPanGesture):
(WebKit::PageClientImpl::scrollingNodeScrollViewDidScroll):
(WebKit::PageClientImpl::scrollingNodeScrollWillStartScroll):
(WebKit::PageClientImpl::scrollingNodeScrollDidEndScroll):

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

(-[WKContentView _scrollingNodeScrollingWillBegin:]):
(-[WKContentView _scrollingNodeScrollingDidEnd:]):
(-[WKContentView keyboardScrollViewAnimatorDidFinishScrolling:]):
(-[WKContentView _scrollingNodeScrollingWillBegin]): Deleted.
(-[WKContentView _scrollingNodeScrollingDidEnd]): Deleted.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::scrollingNodeScrollViewWillStartPanGesture):
(WebKit::WebPageProxy::scrollingNodeScrollViewDidScroll):
(WebKit::WebPageProxy::scrollingNodeScrollWillStartScroll):
(WebKit::WebPageProxy::scrollingNodeScrollDidEndScroll):

  • WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:

(WebKit::WebChromeClient::didStartOverflowScroll):
(WebKit::WebChromeClient::didEndOverflowScroll):

Tools:

_didFinishScrolling: now works for subscrollers too.

  • WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:

(-[TestRunnerWKWebView _didFinishScrolling:]):
(-[TestRunnerWKWebView _didFinishScrolling]): Deleted.

LayoutTests:

Make UIHelper.waitForScrollCompletion() work on iOS.

  • fast/scrolling/ios/constrain-scrollintoview-position-expected.txt: Added.
  • fast/scrolling/ios/constrain-scrollintoview-position.html: Added.
  • resources/ui-helper.js:

(window.UIHelper.async waitForScrollCompletion.await.new.Promise.):
(window.UIHelper.async waitForScrollCompletion.await.new.Promise):
(window.UIHelper.async waitForScrollCompletion):

9:12 AM Changeset in webkit [292811] by Wenson Hsieh
  • 2 edits in trunk/Source/WTF

MSE video is not drawn onto canvas
https://bugs.webkit.org/show_bug.cgi?id=206812
rdar://31763425

Reviewed by Eric Carlson.

Enable MediaSource inline painting by default on all platforms where AVSampleBufferVideoOutput has been tuned
with a more aggressive pruning interval; this avoids significant increases in memory and power use when
utilizing the sample buffer to snapshot videos with MSE.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
7:47 AM Changeset in webkit [292810] by Chris Dumez
  • 78 edits in trunk

Replace AtomString(const char*) with AtomString::fromLatin1(const char*)
https://bugs.webkit.org/show_bug.cgi?id=239127

Reviewed by Darin Adler.

Source/JavaScriptCore:

  • API/JSBase.cpp:

(JSGetMemoryUsageStatistics):

  • runtime/Identifier.h:
  • runtime/IdentifierInlines.h:

(JSC::Identifier::fromLatin1):
(JSC::Identifier::fromCString): Deleted.

  • runtime/JSObject.cpp:

(JSC::JSObject::reifyAllStaticProperties):

  • runtime/JSObjectInlines.h:

(JSC::JSObject::getNonReifiedStaticPropertyNames):

Source/WebCore:

  • Modules/encryptedmedia/InitDataRegistry.cpp:

(WebCore::InitDataRegistry::InitDataRegistry):

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::setElementAttributeValue):

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::commitStyles):

  • dom/DocumentInlines.h:

(WebCore::Document::encoding const):

  • dom/Element.cpp:

(WebCore::Element::dispatchWebKitImageReadyEventForTesting):

  • dom/PseudoElement.cpp:

(WebCore::pseudoElementTagName):

  • editing/Editing.cpp:

(WebCore::createTabSpanElement):

  • editing/Editor.cpp:

(WebCore::Editor::willUnapplyEditing const):
(WebCore::Editor::unappliedEditing):
(WebCore::Editor::willReapplyEditing const):
(WebCore::Editor::reappliedEditing):
(WebCore::Editor::quoteFragmentForPasting):

  • editing/HTMLInterchange.h:
  • editing/IndentOutdentCommand.cpp:

(WebCore::IndentOutdentCommand::IndentOutdentCommand):

  • editing/markup.cpp:

(WebCore::createFragmentFromText):

  • html/HTMLAudioElement.cpp:

(WebCore::HTMLAudioElement::createForLegacyFactoryFunction):

  • html/HTMLDetailsElement.cpp:

(WebCore::summarySlotName):

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::setTranslate):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::updateShouldContinueAfterNeedKey):
(WebCore::HTMLMediaElement::mediaPlayerKeyNeeded):
(WebCore::HTMLMediaElement::layoutSizeChanged):

  • html/HTMLMeterElement.cpp:

(WebCore::setValueClass):
(WebCore::HTMLMeterElement::didAddUserAgentShadowRoot):

  • html/ImageDocument.cpp:

(WebCore::ImageDocument::createDocumentStructure):

  • html/PDFDocument.cpp:

(WebCore::PDFDocument::createDocumentStructure):
(WebCore::PDFDocument::injectStyleAndContentScript):

  • html/canvas/CanvasRenderingContext2DBase.cpp:
  • html/canvas/CanvasRenderingContext2DBase.h:
  • html/parser/HTMLTreeBuilder.cpp:

(WebCore::createForeignAttributesMap):

  • html/parser/TextDocumentParser.cpp:

(WebCore::TextDocumentParser::insertFakePreElement):

  • html/track/TextTrack.cpp:

(WebCore::TextTrack::captionMenuOffItem):
(WebCore::TextTrack::captionMenuAutomaticItem):

  • html/track/TextTrackCue.cpp:

(WebCore::cueAttributName):
(WebCore::cueBackgroundAttributName):

  • html/track/WebVTTElement.cpp:

(WebCore::nodeTypeToTagName):

  • html/track/WebVTTElement.h:
  • inspector/InspectorAuditAccessibilityObject.cpp:

(WebCore::InspectorAuditAccessibilityObject::getComputedProperties):

  • inspector/InspectorOverlayLabel.cpp:

(WebCore::systemFont):

  • inspector/InspectorStyleSheet.cpp:

(WebCore::InspectorStyleSheetForInlineStyle::InspectorStyleSheetForInlineStyle):
(WebCore::InspectorStyleSheetForInlineStyle::elementStyleText const):

  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):

  • loader/LinkLoader.cpp:

(WebCore::LinkLoader::preloadIfNeeded):

  • mathml/MathMLPresentationElement.cpp:

(WebCore::MathMLPresentationElement::isFlowContent):

  • page/DebugPageOverlays.cpp:

(WebCore::NonFastScrollableRegionOverlay::drawRect):
(WebCore::InteractionRegionOverlay::drawSettings):

  • page/Quirks.cpp:

(WebCore::Quirks::shouldTooltipPreventFromProceedingWithClick const):
(WebCore::Quirks::simulatedMouseEventTypeForTarget const):
(WebCore::isKinjaLoginAvatarElement):
(WebCore::isStorageAccessQuirkDomainAndElement):
(WebCore::isBBCPopUpPlayerElement):
(WebCore::Quirks::triggerOptionalStorageAccessQuirk const):

  • platform/cocoa/VideoFullscreenModelVideoElement.mm:

(WebCore::VideoFullscreenModelVideoElement::eventNameAll):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::processMetadataTrack):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setCurrentTextTrack):

  • platform/graphics/avfoundation/objc/SourceBufferParserAVFObjC.mm:
  • platform/graphics/ca/PlatformCALayer.cpp:

(WebCore::PlatformCALayer::drawRepaintIndicator):

  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::drawText):

  • platform/network/BlobRegistryImpl.cpp:

(WebCore::registerBlobResourceHandleConstructor):

  • rendering/RenderCounter.cpp:

(showCounterRendererTree):

  • rendering/RenderLayerBacking.cpp:

(WebCore::patternForDescription):

  • rendering/mathml/RenderMathMLFenced.cpp:
  • style/StyleResolveForDocument.cpp:

(WebCore::Style::resolveForDocument):

  • svg/SVGFontFaceUriElement.cpp:

(WebCore::SVGFontFaceUriElement::srcValue const):

  • svg/SVGUseElement.cpp:

(WebCore::SVGUseElement::transferSizeAttributesToTargetClone const):

  • workers/service/FetchEvent.cpp:

(WebCore::FetchEvent::createForTesting):

  • xml/XMLErrors.cpp:

(WebCore::createXHTMLParserErrorHeader):
(WebCore::XMLErrors::insertErrorMessageBlock):

  • xml/XMLTreeViewer.cpp:

(WebCore::XMLTreeViewer::transformDocumentToTreeView):

Source/WebKit:

  • WebProcess/Plugins/PDF/PDFPluginPasswordField.mm:

(WebKit::PDFPluginPasswordField::createAnnotationElement):

  • WebProcess/WebPage/IPCTestingAPI.cpp:

(WebKit::IPCTestingAPI::JSIPC::messages):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::focusedElementInformation):

Source/WTF:

  • wtf/text/AtomString.cpp:

(WTF::AtomString::init):

  • wtf/text/AtomString.h:

(WTF::operator==):
(WTF::operator!=):

Tools:

  • TestWebKitAPI/Tests/WTF/AtomString.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/StringOperators.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/ComplexTextController.cpp:

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebCore/cg/BifurcatedGraphicsContextTestsCG.cpp:

(TestWebKitAPI::TEST):

6:52 AM Changeset in webkit [292809] by Angelos Oikonomopoulos
  • 2 edits in trunk/Tools

[run-jsc-stress-tests] Minor robustness fix
https://bugs.webkit.org/show_bug.cgi?id=239280

Reviewed by Adrian Perez de Castro.

Occasionally (e.g. https://build.webkit.org/#/builders/31/builds/3282),
run-jsc-stress-tests will receive a partial line when recovering the
results because the remote has died. The original code was being too
defensive; we should simply ignore those lines and allow for a retry.

  • Scripts/run-jsc-stress-tests:
6:39 AM Changeset in webkit [292808] by Angelos Oikonomopoulos
  • 2 edits in trunk/Tools

[run-jsc-stress-tests] Use ServerAliveInterval in GNU parallel
https://bugs.webkit.org/show_bug.cgi?id=239283

Reviewed by Adrian Perez de Castro.

run-jsc-stress-tests occasionally dies e.g. in
https://build.webkit.org/#/builders/31/builds/3262/steps/8/logs/stdio
because the remote commands don't produce any output for a full hour.

This seems like an issue with hung ssh connections (possibly because of
all the remotes rebooting at the same time), so use ServerAliveInterval
to detect that.

Reuse SSH_OPTIONS_DEFAULT to pick up the ServerAliveInterval. While
here, move the extra ssh options outside the command string and
document them properly.

  • Scripts/run-jsc-stress-tests:
5:53 AM Changeset in webkit [292807] by Jonathan Bedard
  • 3 edits in trunk/Tools

[Merge-Queue] Do not duplicate reviewer names
https://bugs.webkit.org/show_bug.cgi?id=239270
<rdar://problem/91662347>

Reviewed by Yusuke Suzuki.

  • Tools/CISupport/ews-build/steps.py:

(ValidateCommitterAndReviewer.start):

  • Tools/CISupport/ews-build/steps_unittest.py:

Canonical link: https://commits.webkit.org/249589@main

5:20 AM Changeset in webkit [292806] by Diego Pino Garcia
  • 2 edits in trunk/Tools

[JHBuild] Unreviewed, replace 'false' for 'disabled' in glib mesonargs

  • gtk/jhbuild.modules:
5:16 AM Changeset in webkit [292805] by Diego Pino Garcia
  • 3 edits in trunk/Tools

[JHBuild] Unreviewed, fix 'glib-networking' module path in WPE and GTK general modules

  • gtk/jhbuild.modules:
  • wpe/jhbuild.modules:
3:39 AM Changeset in webkit [292804] by youenn@apple.com
  • 4 edits in trunk

Complement implementation of step 5.5 of https://fetch.spec.whatwg.org/#http-fetch
https://bugs.webkit.org/show_bug.cgi?id=239123

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/service-worker/fetch-response-taint.https-expected.txt:

Source/WebCore:

Covered by rebased test.

  • workers/service/context/ServiceWorkerFetch.cpp:

(WebCore::ServiceWorkerFetch::validateResponse):

12:29 AM Changeset in webkit [292803] by commit-queue@webkit.org
  • 22 edits in trunk/Source/WebKit

RemoteRenderingBackend should have dedicated IPC::Connection for out-of-stream messages
https://bugs.webkit.org/show_bug.cgi?id=238516

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-04-13
Reviewed by Simon Fraser.

Use dedicated IPC::Connection for RemoteRenderingBackend IPC stream connection instead
of using the WP-GPUP main connection. RemoteDisplayListRecorder starts listening to
its messages in the worker thread. At that point, some out-of-stream message for that
id might already have been dispatched to main thread, causing missing message and assert.

Instead, use dedicated connection and route all the messages to the StreamServerConnection
in a "message queue". This way when each out-of-stream message marker is processed, the
message will be, directly or eventually, found from the message queue.

Remove workarounds:

  • Adding a listener to the main WP-GPUP connection for all RemoteDisplayListRecorder messages and routing them to particular StreamServerConnection. This was problematic since there are many RRB StreamServerConnection instances, one per Page, but only one WP-GPUP connection.
  • RELEASE_LOG in MessageReceiveQueueMap about warning for the above. Turn this back into an ASSERT.

Since IPC::StreamClientConnection and IPC::StreamServerConnection are like IPC::Connection,
add open() and invalidate() calls. These have same contract as with IPC::Connection:
open() should be called if connection is to be used, invalidate() must be called if open() was called.
These calls have an effect currently only with dedicated connections, but these are added to all
IPC::Stream*Connection clients for consistency and future uses.

Changes semantics of IPC::Connection slightly:
Before, there was no untrusted holders of "server" IPC::Connection, e.g. the IPC::Connection instances
were never instantiated by WP.
After, untrusted WP instantiates these IPC stream dedicated connections.
This is accounted in the case where IPC::Connection ensures that IPC::MessageNames::InitializeConnection
message is not acted on twice.

Tested by imported/w3c/web-platform-tests/html/semantics/links/links-created-by-a-and-area-elements/target_blank_implicit_noopener.html

--child-processes=1 --experimental-feature=UseGPUProcessForDOMRenderingEnabled=true --iterations=100 --force --simulator

  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::createRenderingBackend):

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/GPUConnectionToWebProcess.messages.in:
  • GPUProcess/graphics/RemoteGraphicsContextGL.cpp:

(WebKit::RemoteGraphicsContextGL::initialize):
(WebKit::RemoteGraphicsContextGL::stopListeningForIPC):

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::create):
(WebKit::RemoteRenderingBackend::RemoteRenderingBackend):
(WebKit::RemoteRenderingBackend::startListeningForIPC):
(WebKit::RemoteRenderingBackend::stopListeningForIPC):
(WebKit::RemoteRenderingBackend::messageSenderConnection const):

  • GPUProcess/graphics/RemoteRenderingBackend.h:
  • GPUProcess/graphics/WebGPU/RemoteGPU.cpp:

(WebKit::RemoteGPU::initialize):
(WebKit::RemoteGPU::stopListeningForIPC):

  • Platform/IPC/MessageReceiveQueueMap.cpp:

(IPC::MessageReceiveQueueMap::addImpl):
(IPC::MessageReceiveQueueMap::remove):

  • Platform/IPC/StreamClientConnection.cpp:

(IPC::StreamClientConnection::createWithDedicatedConnection):
(IPC::StreamClientConnection::StreamClientConnection):
(IPC::StreamClientConnection::~StreamClientConnection):
(IPC::StreamClientConnection::open):
(IPC::StreamClientConnection::invalidate):
(IPC::StreamClientConnection::connectionForTesting):

  • Platform/IPC/StreamClientConnection.h:

(IPC::StreamClientConnection::send):
(IPC::StreamClientConnection::sendSync):
(IPC::StreamClientConnection::waitForAndDispatchImmediately):
(IPC::StreamClientConnection::trySendSyncStream):

  • Platform/IPC/StreamServerConnection.cpp:

(IPC::StreamServerConnection::create):
(IPC::StreamServerConnection::createWithDedicatedConnection):
(IPC::StreamServerConnectionBase::StreamServerConnectionBase):
(IPC::StreamServerConnectionBase::~StreamServerConnectionBase):
(IPC::StreamServerConnectionBase::open):
(IPC::StreamServerConnectionBase::invalidate):
(IPC::StreamServerConnectionBase::startReceivingMessagesImpl):
(IPC::StreamServerConnectionBase::stopReceivingMessagesImpl):

  • Platform/IPC/StreamServerConnection.h:
  • Shared/IPCStreamTester.cpp:

(WebKit::IPCStreamTester::initialize):
(WebKit::IPCStreamTester::stopListeningForIPC):

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:

(WebKit::RemoteGraphicsContextGLProxy::RemoteGraphicsContextGLProxy):
(WebKit::RemoteGraphicsContextGLProxy::disconnectGpuProcessIfNeeded):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::ensureGPUProcessConnection):
(WebKit::RemoteRenderingBackendProxy::disconnectGPUProcess):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
  • WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.cpp:

(WebKit::RemoteGPUProxy::RemoteGPUProxy):
(WebKit::RemoteGPUProxy::abandonGPUProcess):

  • WebProcess/WebPage/IPCTestingAPI.cpp:

(WebKit::IPCTestingAPI::JSIPCStreamClientConnection::sendMessage):
(WebKit::IPCTestingAPI::JSIPCStreamClientConnection::sendSyncMessage):

12:20 AM Changeset in webkit [292802] by Diego Pino Garcia
  • 2 edits in trunk/Tools

[JHBuild] Unreviewed, fix 'glib-networking' module path

  • jhbuild/jhbuild-minimal.modules:

Apr 12, 2022:

10:38 PM Changeset in webkit [292801] by Chris Dumez
  • 14 edits in trunk/Source/WebCore

Crash under CachedResourceClientWalker<WebCore::CachedImageClient>::next()
https://bugs.webkit.org/show_bug.cgi?id=239253
<rdar://91346216>

Reviewed by Simon Fraser and Brent Fulgham.

I haven't been able to reproduce the issue or figure out why this is happening so I am doing
some hardening and adding assertions to help catch the underlying bug.

  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::didUpdateCachedImage):
There is some speculation that r291141 could have caused this because of the timing of when
this patch landed and the fact that this patch modifies ImageLoader, which is a CachedImageClient.
I couldn't see anything wrong with the change. However, I did notice that we were calling
didUpdateCachedImage() twice with the same CachedImage now for lazy loading (once initially and then
another time when the image actually starts lazily). This was intentional. However, the registering
again as a client of the CachedImage (and then unregistering right away) was not. Technically, this
should be fine since CachedResource is using a HashCountedSet for m_clients locally. However, for
the sake of safety, I am now not doing this redundant registering/unregistering as a client of
the CachedImage when this image has not changed.

  • loader/cache/CachedCSSStyleSheet.cpp:

(WebCore::CachedCSSStyleSheet::checkNotify):

  • loader/cache/CachedFont.cpp:

(WebCore::CachedFont::checkNotify):

  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::load):
(WebCore::CachedImage::addClientWaitingForAsyncDecoding):
(WebCore::CachedImage::notifyObservers):
(WebCore::CachedImage::canDestroyDecodedData):
(WebCore::CachedImage::imageFrameAvailable):
(WebCore::CachedImage::scheduleRenderingUpdate):
(WebCore::CachedImage::isVisibleInViewport):
(WebCore::CachedImage::isVisibleInViewport const): Deleted.

  • loader/cache/CachedImage.h:
  • loader/cache/CachedRawResource.cpp:

(WebCore::CachedRawResource::notifyClientsDataWasReceived):
(WebCore::iterateRedirects):

(WebCore::CachedRawResource::redirectReceived):
The new assertions found a bug here where we were capturing the CachedRawResourceClient by value in the lambda and thus
making a copy of it (even though this is a polymorphic class). I fixed the bug and marked CachedResourceClient as non
copyable to avoid issues like these.

(WebCore::CachedRawResource::responseReceived):
(WebCore::CachedRawResource::shouldCacheResponse):
(WebCore::CachedRawResource::didSendData):
(WebCore::CachedRawResource::finishedTimingForWorkerLoad):
(WebCore::CachedRawResource::previewResponseReceived):

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::checkNotify):
(WebCore::CachedResource::didAddClient):
(WebCore::CachedResource::addClientToSet):
(WebCore::CachedResource::removeClient):

  • loader/cache/CachedResource.h:
  • loader/cache/CachedResourceClient.h:

(WebCore::CachedResourceClient::~CachedResourceClient):
(WebCore::CachedResourceClient::addAssociatedResource):
(WebCore::CachedResourceClient::removeAssociatedResource):
Add new assertions to make sure that a CachedResourceClient is no longer associated (i.e. marked as a client of) with
any CachedResource at the time it is destroyed. Hopefully, this will catch the issue right away and give us a useful
stack trace, instead of crashing later on when iterating over the clients of a CachedResource.

  • loader/cache/CachedResourceClientWalker.h:

(WebCore::CachedResourceClientWalker::CachedResourceClientWalker):
(WebCore::CachedResourceClientWalker::next):
CachedResourceClientWalker is meant to be a safe way of iterating over the clients of a CachedResource, allowing clients
to unregister themselves as we iterate. However, when clients unregister themselves, it could in theory cause the
CachedResource itself to get destroyed. In such cases, the CachedResourceClientWalker would not be safe since its
m_clientSet data member would come from a dead CachedResource. To address the issue, the walker now keeps a handle to
the cached resource, instead of the reference to the CachedResource's clients set. The handle will ensure the cached
resource stays alive.

  • loader/cache/CachedScript.cpp:
  • loader/cache/CachedTextTrack.cpp:

(WebCore::CachedTextTrack::doUpdateBuffer):

  • loader/cache/CachedXSLStyleSheet.cpp:

(WebCore::CachedXSLStyleSheet::checkNotify):

  • rendering/RenderObject.cpp:
9:58 PM Changeset in webkit [292800] by Wenson Hsieh
  • 19 edits
    2 deletes in trunk

Remove support for drawing cropped image overlays when hovering over "Copy Cropped Image"
https://bugs.webkit.org/show_bug.cgi?id=239269

Reviewed by Darin Adler.

Source/WebCore:

Revert <https://trac.webkit.org/r290211> -- the corresponding UI is no longer plan of record.

  • dom/ImageOverlay.cpp:

(WebCore::ImageOverlay::installImageOverlayStyleSheet):
(WebCore::ImageOverlay::imageOverlayCroppedImageIdentifier): Deleted.
(WebCore::ImageOverlay::imageOverlayCroppedImageBackdropIdentifier): Deleted.
(WebCore::ImageOverlay::CroppedImage::install): Deleted.
(WebCore::ImageOverlay::CroppedImage::CroppedImage): Deleted.
(WebCore::ImageOverlay::CroppedImage::~CroppedImage): Deleted.
(WebCore::ImageOverlay::CroppedImage::setVisibility): Deleted.

  • dom/ImageOverlay.h:
  • html/shadow/imageOverlay.css:

(div.image-overlay-data-detector-result):
(img#image-overlay-cropped-image): Deleted.
(div#image-overlay-cropped-image-backdrop): Deleted.

  • testing/Internals.cpp:

(WebCore::Internals::installCroppedImageOverlay): Deleted.
(WebCore::Internals::uninstallCroppedImageOverlay): Deleted.

  • testing/Internals.h:
  • testing/Internals.idl:

Source/WebKit:

  • Shared/ContextMenuContextData.cpp:

(WebKit::ContextMenuContextData::ContextMenuContextData):
(WebKit::ContextMenuContextData::encode const):
(WebKit::ContextMenuContextData::decode):

  • Shared/ContextMenuContextData.h:

(WebKit::ContextMenuContextData::hitTestedElementContext const): Deleted.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didDismissContextMenu):
(WebKit::WebPageProxy::resetStateAfterProcessExited):

  • UIProcess/WebPageProxy.h:
  • UIProcess/mac/WebContextMenuProxyMac.mm:

(-[WKMenuDelegate menu:willHighlightItem:]): Deleted.

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::handleContextMenuCopyCroppedImage):
(WebKit::WebPageProxy::willHighlightContextMenuItem): Deleted.

  • WebProcess/WebPage/WebContextMenu.cpp:

(WebKit::WebContextMenu::show):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didDismissContextMenu):
(WebKit::WebPage::installCroppedImageOverlay): Deleted.
(WebKit::WebPage::setCroppedImageOverlayVisibility): Deleted.

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

LayoutTests:

  • fast/images/text-recognition/image-overlay-cropped-image-expected.txt: Removed.
  • fast/images/text-recognition/image-overlay-cropped-image.html: Removed.
9:27 PM Changeset in webkit [292799] by commit-queue@webkit.org
  • 19 edits
    1 add in trunk

Allow Wasm import from a JS Worker module
https://bugs.webkit.org/show_bug.cgi?id=238291

Patch by Asumu Takikawa <asumu@igalia.com> on 2022-04-12
Reviewed by Yusuke Suzuki.

LayoutTests/imported/w3c:

Fixed worker test and updated expectation.

  • web-platform-tests/wasm/webapi/esm-integration/resources/worker-helper.js:

(export.pm):

  • web-platform-tests/wasm/webapi/esm-integration/worker-import.tentative-expected.txt:
  • web-platform-tests/wasm/webapi/esm-integration/worker-import.tentative.html:

Source/WebCore:

Adds new source provider for Wasm module loading when imported via
a JS module running in a Worker. Also adjust how WorkerRunLoop
processes tasks for script module loading. In particular, during
the module parsing phase, Wasm modules schedule async tasks that
need to be run to produce a module record.

When a Wasm module is loaded (via the module loader's module parsing
step), the validation/compilation happens asynchronously and
completion callbacks are run via
DeferredWorkTimer::scheduleWorkSoon, which queues up microtasks
from the VM. These microtasks, however, don't get run in a Worker
run loop during module loading and therefore the Wasm module never
finishes loading.

This is because during non-default modes, the Worker run loop
does not install its set timer callback, and continues to wait for
a task to run (due to infinite timeout). This means the microtask
checkpoint is also not reached, so other microtasks cannot run.
In non-default modes, the run loop also ignores all tasks that were
not installed in that particular mode.

In addition, the Worker event loop cannot run either, as it posts
default mode tasks to the run loop to trigger its operation.

The current patch modifies the run loop to allow the run loop to time
out even in non-default modes if a useTimeout parameter is passed as
true (defaults to false). We set this to true for the Worker module
loading process. It also allows the timer notification callback to
post tasks to non-default run loops.

  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/ScriptBufferSourceProvider.h:

(WebCore::AbstractScriptBufferHolder::~AbstractScriptBufferHolder):

  • bindings/js/ScriptModuleLoader.cpp:

(WebCore::ScriptModuleLoader::notifyFinished):

  • bindings/js/WebAssemblyScriptBufferSourceProvider.h: Added.
  • bindings/js/WebAssemblyScriptSourceCode.h:

(WebCore::WebAssemblyScriptSourceCode::WebAssemblyScriptSourceCode):

  • workers/ScriptBuffer.cpp:

(WebCore::ScriptBuffer::append):

  • workers/ScriptBuffer.h:
  • workers/WorkerEventLoop.cpp:

(WebCore::WorkerEventLoop::scheduleToRun):
(WebCore::WorkerEventLoop::taskMode):

  • workers/WorkerEventLoop.h:
  • workers/WorkerOrWorkletGlobalScope.cpp:

(WebCore::WorkerOrWorkletGlobalScope::postTaskForMode):

  • workers/WorkerOrWorkletGlobalScope.h:
  • workers/WorkerOrWorkletScriptController.cpp:

(WebCore::WorkerOrWorkletScriptController::loadModuleSynchronously):

  • workers/WorkerRunLoop.cpp:

(WebCore::ModePredicate::ModePredicate):
(WebCore::ModePredicate::mode const):
(WebCore::ModePredicate::operator() const):
(WebCore::WorkerDedicatedRunLoop::run):
(WebCore::WorkerDedicatedRunLoop::runInDebuggerMode):
(WebCore::WorkerDedicatedRunLoop::runInMode):
(WebCore::WorkerMainRunLoop::runInMode):

  • workers/WorkerRunLoop.h:
  • workers/WorkerScriptLoader.cpp:

(WebCore::WorkerScriptLoader::didReceiveData):

9:25 PM Changeset in webkit [292798] by Russell Epstein
  • 3 edits in branches/safari-614.1.10-branch/Source/ThirdParty/libwebrtc

Cherry-pick r292758. rdar://problem/91585769

REGRESSION (r292411): libwebrtc header files aren't installed in system content path
https://bugs.webkit.org/show_bug.cgi?id=239100

Reviewed by Mark Lam.

Restored System Content Path processing for absl and webrtc header files.

  • Configurations/libabsl.xcconfig:
  • Configurations/libwebrtc.xcconfig:

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

9:21 PM Changeset in webkit [292797] by Elliott Williams
  • 35 edits in trunk

[Xcode] In open-source builds, disable bitcode in xcconfigs instead of build-webkit
https://bugs.webkit.org/show_bug.cgi?id=239262

Reviewed by Alexey Proskuryakov.

Source/bmalloc:

  • Configurations/Base.xcconfig:

Source/JavaScriptCore:

Disable bitcode in open-source builds, as WebKit never part of an App
Store submission. This improves support for building WebKit directly
from the workspace.

  • Configurations/Base.xcconfig:

Source/ThirdParty/ANGLE:

  • Configurations/Base.xcconfig:

Source/ThirdParty/libwebrtc:

  • Configurations/Base.xcconfig:

Source/WebCore:

  • Configurations/Base.xcconfig:

Source/WebCore/PAL:

  • Configurations/Base.xcconfig:

Source/WebGPU:

  • Configurations/Base.xcconfig:

Source/WebInspectorUI:

  • Configurations/Base.xcconfig:

Source/WebKit:

  • Configurations/Base.xcconfig:
  • SwiftOverlay/Configurations/Base.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/Base.xcconfig:

Source/WTF:

  • Configurations/Base.xcconfig:

Tools:

  • ContentExtensionTester/Configurations/Base.xcconfig:
  • DumpRenderTree/mac/Configurations/Base.xcconfig:
  • ImageDiff/cg/Configurations/Base.xcconfig:
  • MiniBrowser/Configurations/Base.xcconfig:
  • MiniBrowserSwiftUI/Configurations/Base.xcconfig:
  • MobileMiniBrowser/Configurations/Base.xcconfig:
  • Scripts/webkitdirs.pm:

(XcodeOptions):

  • TestWebKitAPI/Configurations/Base.xcconfig:
  • WebEditingTester/Configurations/Base.xcconfig:
  • WebKitTestRunner/Configurations/Base.xcconfig:
  • lldb/lldbWebKitTester/Configurations/Base.xcconfig:
8:58 PM Changeset in webkit [292796] by Chris Dumez
  • 14 edits in trunk/Source/WebCore

Use safer downcast<>() for CachedResourceClient subclasses
https://bugs.webkit.org/show_bug.cgi?id=239220

Reviewed by Simon Fraser.

  • loader/LinkPreloadResourceClients.h:

(WebCore::LinkPreloadImageResourceClient::LinkPreloadImageResourceClient):

  • loader/cache/CachedCSSStyleSheet.cpp:

(WebCore::CachedCSSStyleSheet::didAddClient):

  • loader/cache/CachedFont.cpp:

(WebCore::CachedFont::didAddClient):

  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::didAddClient):
(WebCore::CachedImage::didRemoveClient):

  • loader/cache/CachedImageClient.h:
  • loader/cache/CachedRawResource.cpp:

(WebCore::CachedRawResource::didAddClient):

  • loader/cache/CachedRawResourceClient.h:
  • loader/cache/CachedResourceClient.h:
  • loader/cache/CachedResourceLoader.cpp:

(WebCore::createResource):

  • loader/cache/CachedSVGDocumentClient.h:
  • loader/cache/CachedStyleSheetClient.h:
  • loader/cache/CachedXSLStyleSheet.cpp:

(WebCore::CachedXSLStyleSheet::didAddClient):

8:54 PM Changeset in webkit [292795] by ysuzuki@apple.com
  • 16 edits in trunk/Source/JavaScriptCore

[JSC] Move StructureCache from VM to JSGlobalObject
https://bugs.webkit.org/show_bug.cgi?id=239044

Reviewed by Saam Barati.

We should have StructureCache per JSGlobalObject since cached structures are tied to some of JSGlobalObject.
This can (1) reduce size of each StructureCache, (2) destroy StructureCache timely at the destruction of
JSGlobalObject, and (3) simplifies JSGlobalObject::haveABadTime handling in the compiler.

  • bytecode/InternalFunctionAllocationProfile.h:

(JSC::InternalFunctionAllocationProfile::createAllocationStructureFromBase):

  • bytecode/ObjectAllocationProfileInlines.h:

(JSC::ObjectAllocationProfileBase<Derived>::initializeProfile):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • runtime/InternalFunction.cpp:

(JSC::InternalFunction::createSubclassStructure):

  • runtime/IteratorOperations.cpp:

(JSC::createIteratorResultObjectStructure):

  • runtime/JSBoundFunction.cpp:

(JSC::getBoundFunctionStructure):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::JSGlobalObject):
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::fireWatchpointAndMakeAllArrayStructuresSlowPut):
(JSC::JSGlobalObject::haveABadTime):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::structureCache):

  • runtime/ObjectConstructor.h:

(JSC::constructEmptyObject):
(JSC::createDataPropertyDescriptorObjectStructure):
(JSC::createAccessorPropertyDescriptorObjectStructure):

  • runtime/PrototypeKey.h:

(JSC::PrototypeKey::PrototypeKey):
(JSC::PrototypeKey::classInfo const):
(JSC::PrototypeKey::operator== const):
(JSC::PrototypeKey::hash const):
(JSC::PrototypeKey::globalObject const): Deleted.

  • runtime/StructureCache.cpp:

(JSC::StructureCache::createEmptyStructure):
(JSC::StructureCache::emptyObjectStructureConcurrently):

  • runtime/StructureCache.h:
  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
8:15 PM Changeset in webkit [292794] by Devin Rousso
  • 21 edits
    4 adds in trunk

[Modern Media Controls] allow skipping by durations other than 15s
https://bugs.webkit.org/show_bug.cgi?id=239260
<rdar://problem/91441576>

Reviewed by Eric Carlson.

Source/WebCore:

  • Modules/modern-media-controls/main.js:
  • Modules/modern-media-controls/controls/ios-layout-traits.js:

(IOSLayoutTraits.prototype.skipDuration): Added.

  • Modules/modern-media-controls/controls/layout-traits.js:

(LayoutTraits.prototype.skipDuration): Added.

  • Modules/modern-media-controls/controls/macos-layout-traits.js:

(MacOSLayoutTraits.prototype.skipDuration): Added.

  • Modules/modern-media-controls/controls/skip-back-button.js:

(SkipBackButton):

  • Modules/modern-media-controls/controls/skip-forward-button.js:

(SkipForwardButton):

  • Modules/modern-media-controls/controls/watchos-layout-traits.js:

(WatchOSLayoutTraits.prototype.skipDuration): Added.

  • Modules/modern-media-controls/media/skip-back-support.js:

(SkipBackSupport.prototype.buttonWasPressed):

  • Modules/modern-media-controls/media/skip-forward-support.js:

(SkipForwardSupport.prototype.buttonWasPressed):
Instead of hardcoding the SkipDuration to 15, have the LayoutTraits to define it.

  • Modules/modern-media-controls/controls/icon-service.js:
  • Modules/modern-media-controls/images/iOS/SkipBack10.svg: Added.
  • Modules/modern-media-controls/images/iOS/SkipBack15.svg:
  • Modules/modern-media-controls/images/iOS/SkipForward10.svg: Added.
  • Modules/modern-media-controls/images/iOS/SkipForward15.svg:
  • Modules/modern-media-controls/images/macOS/SkipBack10.svg: Added.
  • Modules/modern-media-controls/images/macOS/SkipBack15.svg:
  • Modules/modern-media-controls/images/macOS/SkipForward10.svg: Added.
  • Modules/modern-media-controls/images/macOS/SkipForward15.svg:
  • en.lproj/modern-media-controls-localized-strings.js:

Add existing icons for other skip durations.

LayoutTests:

  • media/modern-media-controls/skip-back-button/skip-back-button.html:
  • media/modern-media-controls/skip-back-button/skip-back-button-expected.txt:
  • media/modern-media-controls/skip-forward-button/skip-forward-button.html:
  • media/modern-media-controls/skip-forward-button/skip-forward-button-expected.txt:
5:38 PM Changeset in webkit [292793] by timothy_horton@apple.com
  • 61 edits in trunk

Adopt "version set"-based linked-on-or-after checks instead of platform-specific ones
https://bugs.webkit.org/show_bug.cgi?id=239054
<rdar://problem/83436715>

Reviewed by Wenson Hsieh.

Source/JavaScriptCore:

  • API/JSTypedArray.cpp:

(isLinkedBeforeTypedArrayLengthQuirk):

  • API/JSWrapperMap.mm:

(supportsInitMethodConstructors):

  • API/tests/testapi.cpp:

(TestAPI::promiseDrainDoesNotEatExceptions):

  • API/tests/testapi.mm:

(testMicrotaskWithFunction):

  • runtime/JSLock.cpp:

(JSC::JSLock::willReleaseLock):

  • runtime/ObjectPrototype.cpp:

(JSC::isPokerBros):
Adopt the new naming.

Source/WebCore:

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::allowsLegacyExpandoIndexedProperties):

  • bindings/js/JSWindowProxy.cpp:

(WebCore::JSWindowProxy::setWindow):

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::requiresFullscreenForVideoPlayback const):

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequest):

  • page/Quirks.cpp:

(WebCore::Quirks::needsWeChatScrollingQuirk const):
(WebCore::Quirks::shouldOmitHTMLDocumentSupportedPropertyNames):

  • page/SecurityOrigin.cpp:

(WebCore::shouldTreatAsUniqueOrigin):

  • platform/Timer.cpp:

(WebCore::shouldSuppressThreadSafetyCheck):

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::isDotPrefixedForbiddenFont):

  • platform/network/DataURLDecoder.cpp:

(WebCore::DataURLDecoder::shouldRemoveFragmentIdentifier):

  • testing/js/WebCoreTestSupport.cpp:

(WebCoreTestSupport::setLinkedOnOrAfterEverythingForTesting):
Adopt the new naming.

Source/WebKit:

  • Shared/AuxiliaryProcess.h:
  • Shared/Cocoa/AuxiliaryProcessCocoa.mm:

(WebKit::AuxiliaryProcess::platformInitialize):

  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h:

(WebKit::XPCServiceInitializer):

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

(WebKit::XPCServiceInitializerDelegate::getClientSDKAlignedBehaviors):
(WebKit::XPCServiceInitializerDelegate::getClientSDKVersion): Deleted.
(WebKit::XPCServiceInitializerDelegate::getLinkedOnOrAfterOverride): Deleted.

  • UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm:

(WebKit::ProcessLauncher::launchProcess):
Instead of transmitting the SDK version and override state in the bootstrap
message, just send the computed set of behaviors.

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection):

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::configurationForSessionID):

  • Shared/Cocoa/CompletionHandlerCallChecker.mm:

(WebKit::shouldThrowExceptionForDuplicateCompletionHandlerCall):

  • Shared/Cocoa/DefaultWebBrowserChecks.mm:

(WebKit::determineITPState):

  • Shared/Cocoa/WebKit2InitializeCocoa.mm:

(WebKit::InitializeWebKit2):

  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultPassiveTouchListenersAsDefaultOnDocument):
(WebKit::defaultCSSOMViewScrollingAPIEnabled):
(WebKit::defaultPassiveWheelListenersAsDefaultOnDocument):
(WebKit::defaultWheelEventGesturesBecomeNonBlocking):
(WebKit::defaultOfflineWebApplicationCacheEnabled):

  • UIProcess/API/C/WKPage.cpp:

(WKPageReload):

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(+[WKProcessPool _setLinkedOnOrBeforeEverythingForTesting]):
(+[WKProcessPool _setLinkedOnOrAfterEverything]):

  • UIProcess/API/Cocoa/WKWebView.mm:

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

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

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

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore init]):

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _computedObscuredInset]):

  • UIProcess/API/mac/WKWebViewMac.mm:

(-[WKWebView _web_dragDestinationActionForDraggingInfo:]):

  • UIProcess/Inspector/mac/WKInspectorViewController.mm:

(-[WKInspectorViewController inspectorWKWebViewReload:]):

  • UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:

(WebKit::RemoteScrollingCoordinatorProxy::hasScrollableOrZoomedMainFrame const):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle):
(WebKit::WebPageProxy::makeViewBlankIfUnpaintedSinceLastLoadCommit):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::createWebPage):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::isMainThreadOrCheckDisabled):

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _commonInitializationWithProcessPool:configuration:]):

  • UIProcess/ios/WKContentViewInteraction.mm:

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

  • UIProcess/ios/WKScrollView.mm:

(-[WKScrollView _systemContentInset]):

  • UIProcess/ios/WKStylusDeviceObserver.mm:

(-[WKStylusDeviceObserver start]):
(-[WKStylusDeviceObserver stop]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::desktopClassBrowsingRecommended):
Adopt the new naming.

Source/WebKitLegacy/mac:

  • DefaultDelegates/WebDefaultUIDelegate.mm:

(-[WebDefaultUIDelegate webView:dragDestinationActionMaskForDraggingInfo:]):

  • Misc/WebDownload.mm:

(shouldCallOnNetworkThread):

  • Misc/WebIconDatabase.mm:

(+[WebIconDatabase sharedIconDatabase]):

  • WebView/WebPreferencesDefaultValues.mm:

(WebKit::defaultAllowsPictureInPictureMediaPlayback):
(WebKit::defaultJavaScriptCanOpenWindowsAutomatically):
(WebKit::defaultPassiveTouchListenersAsDefaultOnDocument):
(WebKit::defaultRequiresUserGestureToLoadVideo):
(WebKit::defaultWebSQLEnabled):
(WebKit::defaultShouldRestrictBaseURLSchemes):
(WebKit::defaultShouldConvertInvalidURLsToBlank):
(WebKit::defaultPassiveWheelListenersAsDefaultOnDocument):
(WebKit::defaultWheelEventGesturesBecomeNonBlocking):

  • WebView/WebView.mm:

(needsLaBanquePostaleQuirks):
Adopt the new naming.

Source/WTF:

Switch to dyld_program_sdk_at_least, which correctly handles SDK
checks for binaries built for one SDK running on another platform
(e.g. iOS apps running on macOS).

Because dyld_program_sdk_at_least is based off more than a simple
integer comparison like our old SDK check, we move it into the
application process, and just transmit the computed behaviors to
subprocesses.

Remove functions that expose/transmit platform-specific SDK versions,
so that usage isn't accidentally reintroduced.

Re-frame the naming of our linked-on-or-after checks as being about
specific behaviors instead of SDK versions.

  • wtf/Bitmap.h:

(WTF::WordType>::setAll):
Add setAll, which sets all the bits in the Bitmap, like FastBitVector has.
Expose the length of the data in bytes to make transmitting the Bitmap simple.

  • wtf/cocoa/LanguageCocoa.mm:

(WTF::canMinimizeLanguages):
Adopt the new naming.

  • wtf/spi/darwin/dyldSPI.h:

Because of the nature of dyld_build_version_t values, we can't forward
declare them. Thus, maintain a fallback to the legacy platform-specific
SDK checks for use when building against the internal SDK, or when
back-deploying to older SDKs that don't yet have values for newer version sets.

  • wtf/cocoa/RuntimeApplicationChecksCocoa.cpp:

(disableAdditionalSDKAlignedBehaviors):
(WTF::computeSDKAlignedBehaviors):
(WTF::sdkAlignedBehaviorsValue):
(WTF::sdkAlignedBehaviors):
(WTF::setSDKAlignedBehaviors):
(WTF::enableAllSDKAlignedBehaviors):
(WTF::disableAllSDKAlignedBehaviors):
(WTF::linkedOnOrAfterSDKWithBehavior):
(WTF::applicationSDKVersionOverride): Deleted.
(WTF::setApplicationSDKVersion): Deleted.
(WTF::applicationSDKVersion): Deleted.
(WTF::linkedOnOrAfterOverrideValue): Deleted.
(WTF::setLinkedOnOrAfterOverride): Deleted.
(WTF::linkedOnOrAfterOverride): Deleted.
(WTF::linkedOnOrAfter): Deleted.

  • wtf/cocoa/RuntimeApplicationChecksCocoa.h:

Tools:

  • TestWebKitAPI/Tests/WTF/Bitmap.cpp:

(TestWebKitAPI::testBitmapCountAfterSetAll):
(TestWebKitAPI::TEST):
Add a test that Bitmap.count() works correctly after Bitmap.setAll(),
because my initial implementation was incorrect for bitmaps where
the total number of bits was not a multiple of the word size.

4:10 PM Changeset in webkit [292792] by Diego Pino Garcia
  • 5 edits in trunk/Tools

[JHBuild] Update ATSPI, GLib and GStreamer libraries
https://bugs.webkit.org/show_bug.cgi?id=239117

Reviewed by Adrian Perez de Castro.

Update several libraries to the same version as their Flatpak
counterparts.

JHBuild dependencies didn't build because ATSPI required a more recent
version of gdbus-codegen, provided by GLib. The patch also fixes
dependencies build in WPE, which required to update several GStreamer
libs. Finally, ATSPI and GLib are added to the minimal dependencies
modules set to make it possible to build with A11y support via ATSPI.

  • gstreamer/jhbuild.modules:
  • gtk/jhbuild.modules:
  • jhbuild/jhbuild-minimal.modules:
  • wpe/jhbuild.modules:
4:02 PM Changeset in webkit [292791] by Elliott Williams
  • 35 edits in trunk

Reland "[XCBuild] Enable dependency validation by default"
https://bugs.webkit.org/show_bug.cgi?id=238901
<rdar://problem/91379968>

Reviewed by Alexey Proskuryakov.

.:

Addresses two problems that impacted the previous attempt at landing:

Derived Sources scripts which use generated xcfilelists contain
"optional" inputs which are only available in internal builds. These
inputs lead to spurious dependency validation errors. These scripts
are unique in that they run from script-only targets, not as a phase
in one of the project's native targets. So, in open-source builds,
restrict VALIDATE_DEPENDENCIES to only run on native targets.

When building an individual project, and not a workspace, it's
expected that many input dependencies in the build directory will be
missing from XCBuild's graph. Disable dependency validation unless we
_know_ we're building from a workspace, defined as when the
USE_WORKSPACE Make flag or --use-workspace build-webkit flag is
passed.

  • Makefile.shared: Turn on validation errors when USE_WORKSPACE=YES.

Use a new build setting, WK_VALIDATE_DEPENDENCIES, which is the
"requested" validation level. The actual validation level set in
VALIDATE_DEPENDENCIES may be lower (see above).

Source/bmalloc:

  • Configurations/DebugRelease.xcconfig: In open-source builds, disable

VALIDATE_DEPENDENCIES when there is no PRODUCT_TYPE (i.e. not building
a native target).

Source/JavaScriptCore:

  • Configurations/DebugRelease.xcconfig: In open-source builds, disable

VALIDATE_DEPENDENCIES when there is no PRODUCT_TYPE (i.e. not building
a native target).

Source/ThirdParty/ANGLE:

  • Configurations/DebugRelease.xcconfig: In open-source builds, disable

VALIDATE_DEPENDENCIES when there is no PRODUCT_TYPE (i.e. not building
a native target).

Source/ThirdParty/libwebrtc:

  • Configurations/DebugRelease.xcconfig: In open-source builds, disable

VALIDATE_DEPENDENCIES when there is no PRODUCT_TYPE (i.e. not building
a native target).

Source/WebCore:

  • Configurations/DebugRelease.xcconfig: In open-source builds, disable

VALIDATE_DEPENDENCIES when there is no PRODUCT_TYPE (i.e. not building
a native target).

Source/WebCore/PAL:

  • Configurations/DebugRelease.xcconfig: In open-source builds, disable

VALIDATE_DEPENDENCIES when there is no PRODUCT_TYPE (i.e. not building
a native target).

Source/WebGPU:

  • Configurations/DebugRelease.xcconfig: In open-source builds, disable

VALIDATE_DEPENDENCIES when there is no PRODUCT_TYPE (i.e. not building
a native target).

Source/WebInspectorUI:

  • Configurations/DebugRelease.xcconfig: In open-source builds, disable

VALIDATE_DEPENDENCIES when there is no PRODUCT_TYPE (i.e. not building
a native target).

Source/WebKit:

  • Configurations/DebugRelease.xcconfig: In open-source builds, disable

VALIDATE_DEPENDENCIES when there is no PRODUCT_TYPE (i.e. not building
a native target).

Source/WebKitLegacy/mac:

  • Configurations/DebugRelease.xcconfig: In open-source builds, disable

VALIDATE_DEPENDENCIES when there is no PRODUCT_TYPE (i.e. not building
a native target).

Source/WTF:

  • Configurations/DebugRelease.xcconfig: In open-source builds, disable

VALIDATE_DEPENDENCIES when there is no PRODUCT_TYPE (i.e. not building
a native target).

Tools:

  • DumpRenderTree/mac/Configurations/DebugRelease.xcconfig: In

open-source builds, disable VALIDATE_DEPENDENCIES when there is no
PRODUCT_TYPE (i.e. not building a native target).

  • ImageDiff/cg/Configurations/DebugRelease.xcconfig: Same as above.
  • MiniBrowser/Configurations/DebugRelease.xcconfig: Same as above.
  • MobileMiniBrowser/Configurations/DebugRelease.xcconfig: Same as

above.

  • Scripts/build-webkit: Turn on validation errors when

USE_WORKSPACE=YES. Use a new build setting, WK_VALIDATE_DEPENDENCIES,
which is the "requested" validation level. The actual validation level
set in VALIDATE_DEPENDENCIES may be lower.

  • Scripts/set-webkit-configuration:
  • Scripts/webkitdirs.pm:

(markBaseProductDirectoryAsCreatedByXcodeBuildSystem):
(setCreatedByXcodeBuildSystem):

  • TestWebKitAPI/Configurations/DebugRelease.xcconfig: Same as above.
  • WebKitTestRunner/Configurations/DebugRelease.xcconfig: Same as

above.

  • lldb/lldbWebKitTester/Configurations/DebugRelease.xcconfig: Same as

above.

3:52 PM Changeset in webkit [292790] by ysuzuki@apple.com
  • 2 edits
    563 copies
    206 adds
    1 delete in trunk/PerformanceTests

Unreviewed, speculative OSS perf tests

  • Skipped:
  • Speedometer/InteractiveRunner.html: Renamed from PerformanceTests/Speedometer2.0/InteractiveRunner.html.
  • Speedometer/index.html: Renamed from PerformanceTests/Speedometer2.0/index.html.
  • Speedometer/resources/benchmark-report.js: Renamed from PerformanceTests/Speedometer2.0/resources/benchmark-report.js.
  • Speedometer/resources/benchmark-runner.js: Renamed from PerformanceTests/Speedometer2.0/resources/benchmark-runner.js.
  • Speedometer/resources/flightjs-example-app/LICENSE.md: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/LICENSE.md.
  • Speedometer/resources/flightjs-example-app/README.md: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/README.md.
  • Speedometer/resources/flightjs-example-app/app/boot/page.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/app/boot/page.js.
  • Speedometer/resources/flightjs-example-app/app/component_data/compose_box.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/app/component_data/compose_box.js.
  • Speedometer/resources/flightjs-example-app/app/component_data/mail_items.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/app/component_data/mail_items.js.
  • Speedometer/resources/flightjs-example-app/app/component_data/move_to.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/app/component_data/move_to.js.
  • Speedometer/resources/flightjs-example-app/app/component_ui/compose_box.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/app/component_ui/compose_box.js.
  • Speedometer/resources/flightjs-example-app/app/component_ui/folders.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/app/component_ui/folders.js.
  • Speedometer/resources/flightjs-example-app/app/component_ui/mail_controls.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/app/component_ui/mail_controls.js.
  • Speedometer/resources/flightjs-example-app/app/component_ui/mail_items.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/app/component_ui/mail_items.js.
  • Speedometer/resources/flightjs-example-app/app/component_ui/move_to_selector.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/app/component_ui/move_to_selector.js.
  • Speedometer/resources/flightjs-example-app/app/component_ui/with_select.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/app/component_ui/with_select.js.
  • Speedometer/resources/flightjs-example-app/app/css/custom.css: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/app/css/custom.css.
  • Speedometer/resources/flightjs-example-app/app/data.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/app/data.js.
  • Speedometer/resources/flightjs-example-app/app/templates.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/app/templates.js.
  • Speedometer/resources/flightjs-example-app/components/bootstrap/css/bootstrap-responsive.css: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/bootstrap/css/bootstrap-responsive.css.
  • Speedometer/resources/flightjs-example-app/components/bootstrap/css/bootstrap-responsive.min.css: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/bootstrap/css/bootstrap-responsive.min.css.
  • Speedometer/resources/flightjs-example-app/components/bootstrap/css/bootstrap.css: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/bootstrap/css/bootstrap.css.
  • Speedometer/resources/flightjs-example-app/components/bootstrap/css/bootstrap.min.css: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/bootstrap/css/bootstrap.min.css.
  • Speedometer/resources/flightjs-example-app/components/bootstrap/img/glyphicons-halflings-white.png: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/bootstrap/img/glyphicons-halflings-white.png.
  • Speedometer/resources/flightjs-example-app/components/bootstrap/img/glyphicons-halflings.png: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/bootstrap/img/glyphicons-halflings.png.
  • Speedometer/resources/flightjs-example-app/components/bootstrap/js/bootstrap.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/bootstrap/js/bootstrap.js.
  • Speedometer/resources/flightjs-example-app/components/bootstrap/js/bootstrap.min.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/bootstrap/js/bootstrap.min.js.
  • Speedometer/resources/flightjs-example-app/components/es5-shim/.gitignore: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/es5-shim/.gitignore.
  • Speedometer/resources/flightjs-example-app/components/es5-shim/CHANGES: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/es5-shim/CHANGES.
  • Speedometer/resources/flightjs-example-app/components/es5-shim/CONTRIBUTORS.md: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/es5-shim/CONTRIBUTORS.md.
  • Speedometer/resources/flightjs-example-app/components/es5-shim/LICENSE: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/es5-shim/LICENSE.
  • Speedometer/resources/flightjs-example-app/components/es5-shim/README.md: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/es5-shim/README.md.
  • Speedometer/resources/flightjs-example-app/components/es5-shim/component.json: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/es5-shim/component.json.
  • Speedometer/resources/flightjs-example-app/components/es5-shim/es5-sham.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/es5-shim/es5-sham.js.
  • Speedometer/resources/flightjs-example-app/components/es5-shim/es5-sham.min.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/es5-shim/es5-sham.min.js.
  • Speedometer/resources/flightjs-example-app/components/es5-shim/es5-shim.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/es5-shim/es5-shim.js.
  • Speedometer/resources/flightjs-example-app/components/es5-shim/es5-shim.min.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/es5-shim/es5-shim.min.js.
  • Speedometer/resources/flightjs-example-app/components/es5-shim/package.json: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/es5-shim/package.json.
  • Speedometer/resources/flightjs-example-app/components/es5-shim/tests/helpers/h-kill.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/es5-shim/tests/helpers/h-kill.js.
  • Speedometer/resources/flightjs-example-app/components/es5-shim/tests/helpers/h-matchers.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/es5-shim/tests/helpers/h-matchers.js.
  • Speedometer/resources/flightjs-example-app/components/es5-shim/tests/helpers/h.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/es5-shim/tests/helpers/h.js.
  • Speedometer/resources/flightjs-example-app/components/es5-shim/tests/index.html: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/es5-shim/tests/index.html.
  • Speedometer/resources/flightjs-example-app/components/es5-shim/tests/lib/jasmine-html.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/es5-shim/tests/lib/jasmine-html.js.
  • Speedometer/resources/flightjs-example-app/components/es5-shim/tests/lib/jasmine.css: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/es5-shim/tests/lib/jasmine.css.
  • Speedometer/resources/flightjs-example-app/components/es5-shim/tests/lib/jasmine.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/es5-shim/tests/lib/jasmine.js.
  • Speedometer/resources/flightjs-example-app/components/es5-shim/tests/lib/jasmine_favicon.png: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/es5-shim/tests/lib/jasmine_favicon.png.
  • Speedometer/resources/flightjs-example-app/components/es5-shim/tests/lib/json2.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/es5-shim/tests/lib/json2.js.
  • Speedometer/resources/flightjs-example-app/components/es5-shim/tests/spec/s-array.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/es5-shim/tests/spec/s-array.js.
  • Speedometer/resources/flightjs-example-app/components/es5-shim/tests/spec/s-date.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/es5-shim/tests/spec/s-date.js.
  • Speedometer/resources/flightjs-example-app/components/es5-shim/tests/spec/s-function.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/es5-shim/tests/spec/s-function.js.
  • Speedometer/resources/flightjs-example-app/components/es5-shim/tests/spec/s-object.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/es5-shim/tests/spec/s-object.js.
  • Speedometer/resources/flightjs-example-app/components/es5-shim/tests/spec/s-string.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/es5-shim/tests/spec/s-string.js.
  • Speedometer/resources/flightjs-example-app/components/flight/.travis.yml: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/flight/.travis.yml.
  • Speedometer/resources/flightjs-example-app/components/flight/lib/advice.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/flight/lib/advice.js.
  • Speedometer/resources/flightjs-example-app/components/flight/lib/component.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/flight/lib/component.js.
  • Speedometer/resources/flightjs-example-app/components/flight/lib/compose.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/flight/lib/compose.js.
  • Speedometer/resources/flightjs-example-app/components/flight/lib/index.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/flight/lib/index.js.
  • Speedometer/resources/flightjs-example-app/components/flight/lib/logger.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/flight/lib/logger.js.
  • Speedometer/resources/flightjs-example-app/components/flight/lib/registry.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/flight/lib/registry.js.
  • Speedometer/resources/flightjs-example-app/components/flight/lib/utils.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/flight/lib/utils.js.
  • Speedometer/resources/flightjs-example-app/components/flight/tools/debug/debug.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/flight/tools/debug/debug.js.
  • Speedometer/resources/flightjs-example-app/components/jasmine-flight/LICENSE.md: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/jasmine-flight/LICENSE.md.
  • Speedometer/resources/flightjs-example-app/components/jasmine-flight/README.md: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/jasmine-flight/README.md.
  • Speedometer/resources/flightjs-example-app/components/jasmine-flight/bower.json: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/jasmine-flight/bower.json.
  • Speedometer/resources/flightjs-example-app/components/jasmine-flight/lib/jasmine-flight.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/jasmine-flight/lib/jasmine-flight.js.
  • Speedometer/resources/flightjs-example-app/components/jasmine-jquery/lib/jasmine-jquery.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/jasmine-jquery/lib/jasmine-jquery.js.
  • Speedometer/resources/flightjs-example-app/components/jquery/component.json: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/jquery/component.json.
  • Speedometer/resources/flightjs-example-app/components/jquery/composer.json: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/jquery/composer.json.
  • Speedometer/resources/flightjs-example-app/components/jquery/jquery.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/jquery/jquery.js.
  • Speedometer/resources/flightjs-example-app/components/jquery/jquery.min.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/jquery/jquery.min.js.
  • Speedometer/resources/flightjs-example-app/components/mustache/mustache.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/mustache/mustache.js.
  • Speedometer/resources/flightjs-example-app/components/requirejs/require.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/components/requirejs/require.js.
  • Speedometer/resources/flightjs-example-app/index.html: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/index.html.
  • Speedometer/resources/flightjs-example-app/karma.conf.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/karma.conf.js.
  • Speedometer/resources/flightjs-example-app/package.json: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/package.json.
  • Speedometer/resources/flightjs-example-app/requireMain.js: Renamed from PerformanceTests/Speedometer2.0/resources/flightjs-example-app/requireMain.js.
  • Speedometer/resources/gauge.png: Renamed from PerformanceTests/Speedometer2.0/resources/gauge.png.
  • Speedometer/resources/gauge@2x.png: Renamed from PerformanceTests/Speedometer2.0/resources/gauge@2x.png.
  • Speedometer/resources/logo.png: Renamed from PerformanceTests/Speedometer2.0/resources/logo.png.
  • Speedometer/resources/logo@2x.png: Renamed from PerformanceTests/Speedometer2.0/resources/logo@2x.png.
  • Speedometer/resources/main.css: Renamed from PerformanceTests/Speedometer2.0/resources/main.css.
  • Speedometer/resources/main.js: Renamed from PerformanceTests/Speedometer2.0/resources/main.js.
  • Speedometer/resources/tests.js: Renamed from PerformanceTests/Speedometer2.0/resources/tests.js.
  • Speedometer/resources/todomvc/architecture-examples/angular/.angular-cli.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angular/.angular-cli.json.
  • Speedometer/resources/todomvc/architecture-examples/angular/.editorconfig: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angular/.editorconfig.
  • Speedometer/resources/todomvc/architecture-examples/angular/README.md: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angular/README.md.
  • Speedometer/resources/todomvc/architecture-examples/angular/dist/assets/css/todomvc-app.css: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angular/dist/assets/css/todomvc-app.css.
  • Speedometer/resources/todomvc/architecture-examples/angular/dist/assets/css/todomvc-common.css: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angular/dist/assets/css/todomvc-common.css.
  • Speedometer/resources/todomvc/architecture-examples/angular/dist/favicon.ico: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angular/dist/favicon.ico.
  • Speedometer/resources/todomvc/architecture-examples/angular/dist/index.html: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angular/dist/index.html.
  • Speedometer/resources/todomvc/architecture-examples/angular/dist/inline.3b7f8ce2e6bc2f77dd83.bundle.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angular/dist/inline.3b7f8ce2e6bc2f77dd83.bundle.js.
  • Speedometer/resources/todomvc/architecture-examples/angular/dist/main.f1c5d33a6950c335064d.bundle.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angular/dist/main.f1c5d33a6950c335064d.bundle.js.
  • Speedometer/resources/todomvc/architecture-examples/angular/dist/polyfills.3a2aed82a0c9b24e6585.bundle.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angular/dist/polyfills.3a2aed82a0c9b24e6585.bundle.js.
  • Speedometer/resources/todomvc/architecture-examples/angular/dist/styles.d41d8cd98f00b204e980.bundle.css: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angular/dist/styles.d41d8cd98f00b204e980.bundle.css.
  • Speedometer/resources/todomvc/architecture-examples/angular/dist/vendor.9a296bbc1909830a9106.bundle.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angular/dist/vendor.9a296bbc1909830a9106.bundle.js.
  • Speedometer/resources/todomvc/architecture-examples/angular/karma.conf.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angular/karma.conf.js.
  • Speedometer/resources/todomvc/architecture-examples/angular/package-lock.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angular/package-lock.json.
  • Speedometer/resources/todomvc/architecture-examples/angular/package.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angular/package.json.
  • Speedometer/resources/todomvc/architecture-examples/angular/protractor.conf.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angular/protractor.conf.js.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/app/app.component.html: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angular/src/app/app.component.html.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/app/app.component.spec.ts: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angular/src/app/app.component.spec.ts.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/app/app.component.ts: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angular/src/app/app.component.ts.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/app/app.module.ts: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angular/src/app/app.module.ts.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/app/todo-data.service.spec.ts: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angular/src/app/todo-data.service.spec.ts.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/app/todo-data.service.ts: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angular/src/app/todo-data.service.ts.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/app/todo.spec.ts: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angular/src/app/todo.spec.ts.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/app/todo.ts: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angular/src/app/todo.ts.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/assets/css/todomvc-app.css: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angular/src/assets/css/todomvc-app.css.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/assets/css/todomvc-common.css: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angular/src/assets/css/todomvc-common.css.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/environments/environment.prod.ts: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angular/src/environments/environment.prod.ts.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/environments/environment.ts: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angular/src/environments/environment.ts.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/favicon.ico: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angular/src/favicon.ico.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/index.html: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angular/src/index.html.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/main.ts: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angular/src/main.ts.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/polyfills.ts: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angular/src/polyfills.ts.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/styles.css: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angular/src/styles.css.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/test.ts: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angular/src/test.ts.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/tsconfig.app.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angular/src/tsconfig.app.json.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/tsconfig.spec.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angular/src/tsconfig.spec.json.
  • Speedometer/resources/todomvc/architecture-examples/angular/src/typings.d.ts: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angular/src/typings.d.ts.
  • Speedometer/resources/todomvc/architecture-examples/angular/tsconfig.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angular/tsconfig.json.
  • Speedometer/resources/todomvc/architecture-examples/angular/tslint.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angular/tslint.json.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/index.html: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angularjs/index.html.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/js/app.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angularjs/js/app.js.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/js/controllers/todoCtrl.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angularjs/js/controllers/todoCtrl.js.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/js/directives/todoEscape.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angularjs/js/directives/todoEscape.js.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/js/directives/todoFocus.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angularjs/js/directives/todoFocus.js.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/js/services/todoStorage.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angularjs/js/services/todoStorage.js.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular-resource/angular-resource.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angularjs/node_modules/angular-resource/angular-resource.js.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular-resource/angular-resource.min.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angularjs/node_modules/angular-resource/angular-resource.min.js.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular-resource/angular-resource.min.js.map: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angularjs/node_modules/angular-resource/angular-resource.min.js.map.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular-route/angular-route.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angularjs/node_modules/angular-route/angular-route.js.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular-route/angular-route.min.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angularjs/node_modules/angular-route/angular-route.min.js.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular-route/angular-route.min.js.map: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angularjs/node_modules/angular-route/angular-route.min.js.map.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular/angular.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angularjs/node_modules/angular/angular.js.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular/angular.min.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angularjs/node_modules/angular/angular.min.js.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/angular/angular.min.js.map: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angularjs/node_modules/angular/angular.min.js.map.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-app-css/index.css: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-app-css/index.css.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-app-css/package.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-app-css/package.json.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-app-css/readme.md: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-app-css/readme.md.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-common/base.css: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-common/base.css.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-common/base.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-common/base.js.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-common/package.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-common/package.json.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-common/readme.md: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angularjs/node_modules/todomvc-common/readme.md.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/package-lock.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angularjs/package-lock.json.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/package.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angularjs/package.json.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/readme.md: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angularjs/readme.md.
  • Speedometer/resources/todomvc/architecture-examples/angularjs/todomvc-index.html: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/angularjs/todomvc-index.html.
  • Speedometer/resources/todomvc/architecture-examples/backbone/index.html: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/backbone/index.html.
  • Speedometer/resources/todomvc/architecture-examples/backbone/js/app.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/backbone/js/app.js.
  • Speedometer/resources/todomvc/architecture-examples/backbone/js/backbone.sync.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/backbone/js/backbone.sync.js.
  • Speedometer/resources/todomvc/architecture-examples/backbone/js/collections/todos.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/backbone/js/collections/todos.js.
  • Speedometer/resources/todomvc/architecture-examples/backbone/js/models/todo.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/backbone/js/models/todo.js.
  • Speedometer/resources/todomvc/architecture-examples/backbone/js/routers/router.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/backbone/js/routers/router.js.
  • Speedometer/resources/todomvc/architecture-examples/backbone/js/views/app-view.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/backbone/js/views/app-view.js.
  • Speedometer/resources/todomvc/architecture-examples/backbone/js/views/todo-view.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/backbone/js/views/todo-view.js.
  • Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/backbone/backbone-min.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/backbone/node_modules/backbone/backbone-min.js.
  • Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/backbone/backbone-min.map: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/backbone/node_modules/backbone/backbone-min.map.
  • Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/backbone/backbone.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/backbone/node_modules/backbone/backbone.js.
  • Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/jquery/dist/jquery.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/backbone/node_modules/jquery/dist/jquery.js.
  • Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/jquery/dist/jquery.min.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/backbone/node_modules/jquery/dist/jquery.min.js.
  • Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/jquery/dist/jquery.min.map: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/backbone/node_modules/jquery/dist/jquery.min.map.
  • Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/todomvc-app-css/index.css: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/backbone/node_modules/todomvc-app-css/index.css.
  • Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/todomvc-common/base.css: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/backbone/node_modules/todomvc-common/base.css.
  • Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/todomvc-common/base.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/backbone/node_modules/todomvc-common/base.js.
  • Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/underscore/underscore-min.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/backbone/node_modules/underscore/underscore-min.js.
  • Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/underscore/underscore-min.map: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/backbone/node_modules/underscore/underscore-min.map.
  • Speedometer/resources/todomvc/architecture-examples/backbone/node_modules/underscore/underscore.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/backbone/node_modules/underscore/underscore.js.
  • Speedometer/resources/todomvc/architecture-examples/backbone/package-lock.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/backbone/package-lock.json.
  • Speedometer/resources/todomvc/architecture-examples/backbone/package.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/backbone/package.json.
  • Speedometer/resources/todomvc/architecture-examples/backbone/readme.md: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/backbone/readme.md.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/assets/todomvc.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/assets/todomvc.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/assets/vendor.css: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/assets/vendor.css.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/assets/vendor.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/assets/vendor.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/crossdomain.xml: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/crossdomain.xml.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/index.html: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/index.html.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/robots.txt: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/robots.txt.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/.bowerrc: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/.bowerrc.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/.editorconfig: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/.editorconfig.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/.ember-cli: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/.ember-cli.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/.gitignore: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/.gitignore.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/.jshintrc: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/.jshintrc.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/.travis.yml: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/.travis.yml.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/.watchmanconfig: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/.watchmanconfig.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/README.md: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/README.md.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/app/app.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/app/app.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/app/components/todo-item.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/app/components/todo-item.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/app/components/todo-list.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/app/components/todo-list.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/app/controllers/active.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/app/controllers/active.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/app/controllers/application.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/app/controllers/application.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/app/controllers/completed.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/app/controllers/completed.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/app/helpers/gt.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/app/helpers/gt.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/app/helpers/pluralize.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/app/helpers/pluralize.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/app/index.html: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/app/index.html.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/app/instance-initializers/global.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/app/instance-initializers/global.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/app/resolver.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/app/resolver.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/app/router.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/app/router.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/app/routes/application.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/app/routes/application.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/app/services/memory.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/app/services/memory.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/app/services/repo.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/app/services/repo.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/app/templates/active.hbs: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/app/templates/active.hbs.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/app/templates/application.hbs: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/app/templates/application.hbs.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/app/templates/completed.hbs: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/app/templates/completed.hbs.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/app/templates/components/todo-item.hbs: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/app/templates/components/todo-item.hbs.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/app/templates/components/todo-list.hbs: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/app/templates/components/todo-list.hbs.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/app/templates/index.hbs: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/app/templates/index.hbs.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/bower.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/bower.json.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/config/environment.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/config/environment.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/ember-cli-build.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/ember-cli-build.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/package.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/package.json.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/public/crossdomain.xml: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/public/crossdomain.xml.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/public/robots.txt: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/public/robots.txt.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/testem.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/testem.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/tests/.jshintrc: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/tests/.jshintrc.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/tests/helpers/destroy-app.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/tests/helpers/destroy-app.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/tests/helpers/module-for-acceptance.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/tests/helpers/module-for-acceptance.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/tests/helpers/resolver.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/tests/helpers/resolver.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/tests/helpers/start-app.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/tests/helpers/start-app.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/tests/index.html: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/tests/index.html.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/tests/test-helper.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/tests/test-helper.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/vendor/base.css: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/vendor/base.css.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/source/vendor/index.css: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/source/vendor/index.css.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/testem.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/testem.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs-debug/tests/index.html: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs-debug/tests/index.html.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/.bowerrc: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/.bowerrc.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/.editorconfig: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/.editorconfig.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/.ember-cli: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/.ember-cli.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/.gitignore: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/.gitignore.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/.jshintrc: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/.jshintrc.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/README.md: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/README.md.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/app/app.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/app/app.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/app/components/todo-item.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/app/components/todo-item.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/app/components/todo-list.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/app/components/todo-list.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/app/controllers/active.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/app/controllers/active.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/app/controllers/application.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/app/controllers/application.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/app/controllers/completed.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/app/controllers/completed.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/app/helpers/gt.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/app/helpers/gt.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/app/helpers/pluralize.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/app/helpers/pluralize.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/app/index.html: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/app/index.html.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/app/resolver.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/app/resolver.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/app/router.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/app/router.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/app/routes/application.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/app/routes/application.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/app/services/memory.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/app/services/memory.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/app/services/repo.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/app/services/repo.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/app/styles/.gitkeep: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/app/styles/.gitkeep.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/app/templates/active.hbs: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/app/templates/active.hbs.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/app/templates/application.hbs: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/app/templates/application.hbs.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/app/templates/completed.hbs: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/app/templates/completed.hbs.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/app/templates/components/todo-item.hbs: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/app/templates/components/todo-item.hbs.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/app/templates/components/todo-list.hbs: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/app/templates/components/todo-list.hbs.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/app/templates/index.hbs: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/app/templates/index.hbs.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/bower.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/bower.json.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/config/environment.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/config/environment.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/dist/assets/todomvc-5d3e8eb3d5b3740a33185edcb11eeb57.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/dist/assets/todomvc-5d3e8eb3d5b3740a33185edcb11eeb57.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/dist/assets/vendor-820919567eb7bd4d9fac358a90a5aac4.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/dist/assets/vendor-820919567eb7bd4d9fac358a90a5aac4.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/dist/assets/vendor-a45c44bc56b4692cca4a96b6916c0fde.css: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/dist/assets/vendor-a45c44bc56b4692cca4a96b6916c0fde.css.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/dist/crossdomain.xml: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/dist/crossdomain.xml.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/dist/index.html: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/dist/index.html.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/dist/robots.txt: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/dist/robots.txt.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/ember-cli-build.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/ember-cli-build.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/package-lock.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/package-lock.json.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/package.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/package.json.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/public/crossdomain.xml: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/public/crossdomain.xml.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/public/robots.txt: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/public/robots.txt.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/testem.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/testem.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/tests/helpers/destroy-app.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/tests/helpers/destroy-app.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/tests/helpers/module-for-acceptance.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/tests/helpers/module-for-acceptance.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/tests/helpers/resolver.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/tests/helpers/resolver.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/tests/helpers/start-app.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/tests/helpers/start-app.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/tests/index.html: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/tests/index.html.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/tests/test-helper.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/tests/test-helper.js.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/vendor/base.css: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/vendor/base.css.
  • Speedometer/resources/todomvc/architecture-examples/emberjs/vendor/index.css: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/emberjs/vendor/index.css.
  • Speedometer/resources/todomvc/architecture-examples/inferno/dist/bundle.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/inferno/dist/bundle.js.
  • Speedometer/resources/todomvc/architecture-examples/inferno/index.html: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/inferno/index.html.
  • Speedometer/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-app-css/index.css: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-app-css/index.css.
  • Speedometer/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-app-css/package.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-app-css/package.json.
  • Speedometer/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-app-css/readme.md: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-app-css/readme.md.
  • Speedometer/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-common/base.css: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-common/base.css.
  • Speedometer/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-common/base.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-common/base.js.
  • Speedometer/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-common/package.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-common/package.json.
  • Speedometer/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-common/readme.md: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/inferno/node_modules/todomvc-common/readme.md.
  • Speedometer/resources/todomvc/architecture-examples/inferno/package.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/inferno/package.json.
  • Speedometer/resources/todomvc/architecture-examples/inferno/src/base.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/inferno/src/base.js.
  • Speedometer/resources/todomvc/architecture-examples/inferno/src/index.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/inferno/src/index.js.
  • Speedometer/resources/todomvc/architecture-examples/inferno/src/item.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/inferno/src/item.js.
  • Speedometer/resources/todomvc/architecture-examples/inferno/src/model.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/inferno/src/model.js.
  • Speedometer/resources/todomvc/architecture-examples/inferno/src/share.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/inferno/src/share.js.
  • Speedometer/resources/todomvc/architecture-examples/inferno/webpack.config.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/inferno/webpack.config.js.
  • Speedometer/resources/todomvc/architecture-examples/jquery/css/app.css: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/jquery/css/app.css.
  • Speedometer/resources/todomvc/architecture-examples/jquery/index.html: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/jquery/index.html.
  • Speedometer/resources/todomvc/architecture-examples/jquery/js/app.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/jquery/js/app.js.
  • Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/director/LICENSE: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/jquery/node_modules/director/LICENSE.
  • Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/director/bower.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/jquery/node_modules/director/bower.json.
  • Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/director/dist/director.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/jquery/node_modules/director/dist/director.js.
  • Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/director/dist/director.min.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/jquery/node_modules/director/dist/director.min.js.
  • Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/director/dist/ender.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/jquery/node_modules/director/dist/ender.js.
  • Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/director/package.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/jquery/node_modules/director/package.json.
  • Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/handlebars/dist/handlebars.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/jquery/node_modules/handlebars/dist/handlebars.js.
  • Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/jquery/dist/jquery.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/jquery/node_modules/jquery/dist/jquery.js.
  • Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-app-css/index.css: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-app-css/index.css.
  • Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-app-css/package.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-app-css/package.json.
  • Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-app-css/readme.md: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-app-css/readme.md.
  • Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-common/base.css: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-common/base.css.
  • Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-common/base.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-common/base.js.
  • Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-common/package.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-common/package.json.
  • Speedometer/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-common/readme.md: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/jquery/node_modules/todomvc-common/readme.md.
  • Speedometer/resources/todomvc/architecture-examples/jquery/package.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/jquery/package.json.
  • Speedometer/resources/todomvc/architecture-examples/jquery/readme.md: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/jquery/readme.md.
  • Speedometer/resources/todomvc/architecture-examples/preact/.babelrc: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/preact/.babelrc.
  • Speedometer/resources/todomvc/architecture-examples/preact/README.md: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/preact/README.md.
  • Speedometer/resources/todomvc/architecture-examples/preact/dist/app.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/preact/dist/app.js.
  • Speedometer/resources/todomvc/architecture-examples/preact/dist/app.js.map: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/preact/dist/app.js.map.
  • Speedometer/resources/todomvc/architecture-examples/preact/dist/index.html: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/preact/dist/index.html.
  • Speedometer/resources/todomvc/architecture-examples/preact/dist/todomvc-common/base.css: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/preact/dist/todomvc-common/base.css.
  • Speedometer/resources/todomvc/architecture-examples/preact/dist/todomvc-common/base.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/preact/dist/todomvc-common/base.js.
  • Speedometer/resources/todomvc/architecture-examples/preact/dist/todomvc.css: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/preact/dist/todomvc.css.
  • Speedometer/resources/todomvc/architecture-examples/preact/package-lock.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/preact/package-lock.json.
  • Speedometer/resources/todomvc/architecture-examples/preact/package.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/preact/package.json.
  • Speedometer/resources/todomvc/architecture-examples/preact/rollup.config.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/preact/rollup.config.js.
  • Speedometer/resources/todomvc/architecture-examples/preact/src/app/footer.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/preact/src/app/footer.js.
  • Speedometer/resources/todomvc/architecture-examples/preact/src/app/index.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/preact/src/app/index.js.
  • Speedometer/resources/todomvc/architecture-examples/preact/src/app/item.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/preact/src/app/item.js.
  • Speedometer/resources/todomvc/architecture-examples/preact/src/app/model.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/preact/src/app/model.js.
  • Speedometer/resources/todomvc/architecture-examples/preact/src/app/util.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/preact/src/app/util.js.
  • Speedometer/resources/todomvc/architecture-examples/preact/src/index.html: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/preact/src/index.html.
  • Speedometer/resources/todomvc/architecture-examples/preact/src/index.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/preact/src/index.js.
  • Speedometer/resources/todomvc/architecture-examples/preact/webpack.config.babel.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/preact/webpack.config.babel.js.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/README.md: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react-redux/README.md.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/dist/asset-manifest.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react-redux/dist/asset-manifest.json.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/dist/index.html: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react-redux/dist/index.html.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/dist/service-worker.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react-redux/dist/service-worker.js.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/dist/static/css/main.21111742.css: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react-redux/dist/static/css/main.21111742.css.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/dist/static/css/main.21111742.css.map: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react-redux/dist/static/css/main.21111742.css.map.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/dist/static/js/main.18b409e1.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react-redux/dist/static/js/main.18b409e1.js.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/dist/static/js/main.18b409e1.js.map: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react-redux/dist/static/js/main.18b409e1.js.map.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/package-lock.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react-redux/package-lock.json.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/package.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react-redux/package.json.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/public/index.html: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react-redux/public/index.html.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/src/actions/index.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react-redux/src/actions/index.js.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/src/actions/index.spec.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react-redux/src/actions/index.spec.js.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/Footer.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react-redux/src/components/Footer.js.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/Footer.spec.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react-redux/src/components/Footer.spec.js.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/Header.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react-redux/src/components/Header.js.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/Header.spec.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react-redux/src/components/Header.spec.js.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/MainSection.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react-redux/src/components/MainSection.js.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/MainSection.spec.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react-redux/src/components/MainSection.spec.js.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/TodoItem.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react-redux/src/components/TodoItem.js.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/TodoItem.spec.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react-redux/src/components/TodoItem.spec.js.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/TodoTextInput.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react-redux/src/components/TodoTextInput.js.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/src/components/TodoTextInput.spec.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react-redux/src/components/TodoTextInput.spec.js.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/src/constants/ActionTypes.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react-redux/src/constants/ActionTypes.js.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/src/constants/TodoFilters.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react-redux/src/constants/TodoFilters.js.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/src/containers/App.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react-redux/src/containers/App.js.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/src/index.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react-redux/src/index.js.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/src/reducers/index.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react-redux/src/reducers/index.js.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/src/reducers/todos.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react-redux/src/reducers/todos.js.
  • Speedometer/resources/todomvc/architecture-examples/react-redux/src/reducers/todos.spec.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react-redux/src/reducers/todos.spec.js.
  • Speedometer/resources/todomvc/architecture-examples/react/README.md: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react/README.md.
  • Speedometer/resources/todomvc/architecture-examples/react/build.min.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react/build.min.js.
  • Speedometer/resources/todomvc/architecture-examples/react/index.html: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react/index.html.
  • Speedometer/resources/todomvc/architecture-examples/react/js/app.jsx: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react/js/app.jsx.
  • Speedometer/resources/todomvc/architecture-examples/react/license.md: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react/license.md.
  • Speedometer/resources/todomvc/architecture-examples/react/node_modules/classnames/LICENSE: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react/node_modules/classnames/LICENSE.
  • Speedometer/resources/todomvc/architecture-examples/react/node_modules/classnames/bind.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react/node_modules/classnames/bind.js.
  • Speedometer/resources/todomvc/architecture-examples/react/node_modules/classnames/bower.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react/node_modules/classnames/bower.json.
  • Speedometer/resources/todomvc/architecture-examples/react/node_modules/classnames/dedupe.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react/node_modules/classnames/dedupe.js.
  • Speedometer/resources/todomvc/architecture-examples/react/node_modules/classnames/index.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react/node_modules/classnames/index.js.
  • Speedometer/resources/todomvc/architecture-examples/react/node_modules/director/LICENSE: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react/node_modules/director/LICENSE.
  • Speedometer/resources/todomvc/architecture-examples/react/node_modules/director/bower.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react/node_modules/director/bower.json.
  • Speedometer/resources/todomvc/architecture-examples/react/node_modules/director/build/director.min.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react/node_modules/director/build/director.min.js.
  • Speedometer/resources/todomvc/architecture-examples/react/node_modules/react-dom/LICENSE: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react/node_modules/react-dom/LICENSE.
  • Speedometer/resources/todomvc/architecture-examples/react/node_modules/react-dom/dist/react-dom.min.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react/node_modules/react-dom/dist/react-dom.min.js.
  • Speedometer/resources/todomvc/architecture-examples/react/node_modules/react/LICENSE: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react/node_modules/react/LICENSE.
  • Speedometer/resources/todomvc/architecture-examples/react/node_modules/react/dist/react-with-addons.min.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react/node_modules/react/dist/react-with-addons.min.js.
  • Speedometer/resources/todomvc/architecture-examples/react/node_modules/react/dist/react.min.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react/node_modules/react/dist/react.min.js.
  • Speedometer/resources/todomvc/architecture-examples/react/node_modules/todomvc-app-css/index.css: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react/node_modules/todomvc-app-css/index.css.
  • Speedometer/resources/todomvc/architecture-examples/react/node_modules/todomvc-common/base.css: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react/node_modules/todomvc-common/base.css.
  • Speedometer/resources/todomvc/architecture-examples/react/node_modules/todomvc-common/base.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react/node_modules/todomvc-common/base.js.
  • Speedometer/resources/todomvc/architecture-examples/react/package-lock.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react/package-lock.json.
  • Speedometer/resources/todomvc/architecture-examples/react/package.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/react/package.json.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/.babelrc: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/.babelrc.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/.editorconfig: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/.editorconfig.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/.eslintignore: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/.eslintignore.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/.eslintrc.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/.eslintrc.js.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/README.md: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/README.md.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/build/build.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/build/build.js.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/build/check-versions.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/build/check-versions.js.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/build/dev-client.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/build/dev-client.js.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/build/dev-server.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/build/dev-server.js.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/build/utils.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/build/utils.js.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/build/vue-loader.conf.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/build/vue-loader.conf.js.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/build/webpack.base.conf.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/build/webpack.base.conf.js.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/build/webpack.dev.conf.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/build/webpack.dev.conf.js.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/build/webpack.prod.conf.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/build/webpack.prod.conf.js.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/build/webpack.test.conf.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/build/webpack.test.conf.js.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/config/dev.env.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/config/dev.env.js.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/config/index.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/config/index.js.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/config/prod.env.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/config/prod.env.js.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/dist/index.html: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/dist/index.html.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/dist/static/css/app.5b47040a23ec3fcb78037de398c53557.css: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/dist/static/css/app.5b47040a23ec3fcb78037de398c53557.css.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/dist/static/css/app.5b47040a23ec3fcb78037de398c53557.css.map: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/dist/static/css/app.5b47040a23ec3fcb78037de398c53557.css.map.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/dist/static/js/app.e6c010d57d53537f4ad2.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/dist/static/js/app.e6c010d57d53537f4ad2.js.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/dist/static/js/app.e6c010d57d53537f4ad2.js.map: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/dist/static/js/app.e6c010d57d53537f4ad2.js.map.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/dist/static/js/manifest.aa9978aa96ee948f2a4c.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/dist/static/js/manifest.aa9978aa96ee948f2a4c.js.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/dist/static/js/manifest.aa9978aa96ee948f2a4c.js.map: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/dist/static/js/manifest.aa9978aa96ee948f2a4c.js.map.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/dist/static/js/vendor.e7008001a8bed009bbf1.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/dist/static/js/vendor.e7008001a8bed009bbf1.js.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/dist/static/js/vendor.e7008001a8bed009bbf1.js.map: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/dist/static/js/vendor.e7008001a8bed009bbf1.js.map.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/index.html: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/index.html.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/package-lock.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/package-lock.json.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/package.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/package.json.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/src/App.vue: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/src/App.vue.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/src/components/Todos.vue: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/src/components/Todos.vue.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/src/components/todo.css: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/src/components/todo.css.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/src/main.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/src/main.js.
  • Speedometer/resources/todomvc/architecture-examples/vuejs-cli/yarn.lock: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/architecture-examples/vuejs-cli/yarn.lock.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/data/stats.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/app/js/data/stats.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/data/todos.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/app/js/data/todos.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/main.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/app/js/main.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/page/app.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/app/js/page/app.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/store.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/app/js/store.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/ui/main_selector.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/app/js/ui/main_selector.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/ui/new_item.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/app/js/ui/new_item.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/ui/stats.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/app/js/ui/stats.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/ui/todo_list.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/app/js/ui/todo_list.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/ui/toggle_all.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/app/js/ui/toggle_all.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/ui/with_filters.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/app/js/ui/with_filters.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/app/js/utils.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/app/js/utils.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/app/templates/stats.html: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/app/templates/stats.html.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/app/templates/todo.html: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/app/templates/todo.html.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/index.html: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/index.html.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/depot/README.md: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/depot/README.md.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/depot/depot.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/depot/depot.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/depot/depot.min.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/depot/depot.min.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/depot/package.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/depot/package.json.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/es5-shim/LICENSE: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/es5-shim/LICENSE.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/es5-shim/es5-sham.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/es5-shim/es5-sham.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/es5-shim/es5-sham.min.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/es5-shim/es5-sham.min.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/es5-shim/es5-shim.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/es5-shim/es5-shim.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/es5-shim/es5-shim.min.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/es5-shim/es5-shim.min.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/LICENSE: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/LICENSE.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/index.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/index.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/advice.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/advice.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/base.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/base.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/component.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/component.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/compose.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/compose.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/debug.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/debug.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/logger.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/logger.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/registry.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/registry.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/utils.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/flight/lib/utils.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/jquery/README.md: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/jquery/README.md.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/jquery/dist/jquery.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/jquery/dist/jquery.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/jquery/dist/jquery.min.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/jquery/dist/jquery.min.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/jquery/package.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/jquery/package.json.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/memorystorage/memorystorage.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/memorystorage/memorystorage.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs-text/LICENSE: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs-text/LICENSE.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs-text/README.md: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs-text/README.md.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs-text/bower.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs-text/bower.json.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs-text/package.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs-text/package.json.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs-text/text.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs-text/text.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs/README.md: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs/README.md.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs/package.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs/package.json.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs/require.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/requirejs/require.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-app-css/index.css: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-app-css/index.css.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-app-css/package.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-app-css/package.json.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-app-css/readme.md: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-app-css/readme.md.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-common/base.css: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-common/base.css.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-common/base.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-common/base.js.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-common/package.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-common/package.json.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-common/readme.md: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/node_modules/todomvc-common/readme.md.
  • Speedometer/resources/todomvc/dependency-examples/flight/flight/package.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/dependency-examples/flight/flight/package.json.
  • Speedometer/resources/todomvc/functional-prog-examples/elm/Todo.elm: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/functional-prog-examples/elm/Todo.elm.
  • Speedometer/resources/todomvc/functional-prog-examples/elm/Todo/Task.elm: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/functional-prog-examples/elm/Todo/Task.elm.
  • Speedometer/resources/todomvc/functional-prog-examples/elm/dist/elm.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/functional-prog-examples/elm/dist/elm.js.
  • Speedometer/resources/todomvc/functional-prog-examples/elm/index.html: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/functional-prog-examples/elm/index.html.
  • Speedometer/resources/todomvc/functional-prog-examples/elm/node_modules/todomvc-app-css/index.css: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/functional-prog-examples/elm/node_modules/todomvc-app-css/index.css.
  • Speedometer/resources/todomvc/functional-prog-examples/elm/node_modules/todomvc-common/base.css: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/functional-prog-examples/elm/node_modules/todomvc-common/base.css.
  • Speedometer/resources/todomvc/functional-prog-examples/elm/node_modules/todomvc-common/base.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/functional-prog-examples/elm/node_modules/todomvc-common/base.js.
  • Speedometer/resources/todomvc/functional-prog-examples/elm/package.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/functional-prog-examples/elm/package.json.
  • Speedometer/resources/todomvc/functional-prog-examples/elm/readme.md: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/functional-prog-examples/elm/readme.md.
  • Speedometer/resources/todomvc/labs/architecture-examples/react/bower.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/labs/architecture-examples/react/bower.json.
  • Speedometer/resources/todomvc/labs/architecture-examples/react/bower_components/director/LICENSE: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/labs/architecture-examples/react/bower_components/director/LICENSE.
  • Speedometer/resources/todomvc/labs/architecture-examples/react/bower_components/director/README.md: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/labs/architecture-examples/react/bower_components/director/README.md.
  • Speedometer/resources/todomvc/labs/architecture-examples/react/bower_components/director/build/director.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/labs/architecture-examples/react/bower_components/director/build/director.js.
  • Speedometer/resources/todomvc/labs/architecture-examples/react/bower_components/director/build/director.min.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/labs/architecture-examples/react/bower_components/director/build/director.min.js.
  • Speedometer/resources/todomvc/labs/architecture-examples/react/bower_components/director/build/ender.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/labs/architecture-examples/react/bower_components/director/build/ender.js.
  • Speedometer/resources/todomvc/labs/architecture-examples/react/bower_components/react/JSXTransformer.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/labs/architecture-examples/react/bower_components/react/JSXTransformer.js.
  • Speedometer/resources/todomvc/labs/architecture-examples/react/bower_components/react/bower.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/labs/architecture-examples/react/bower_components/react/bower.json.
  • Speedometer/resources/todomvc/labs/architecture-examples/react/bower_components/react/react.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/labs/architecture-examples/react/bower_components/react/react.js.
  • Speedometer/resources/todomvc/labs/architecture-examples/react/bower_components/react/react.min.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/labs/architecture-examples/react/bower_components/react/react.min.js.
  • Speedometer/resources/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/base.css: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/base.css.
  • Speedometer/resources/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/base.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/base.js.
  • Speedometer/resources/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/bg.png: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/bg.png.
  • Speedometer/resources/todomvc/labs/architecture-examples/react/index.html: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/labs/architecture-examples/react/index.html.
  • Speedometer/resources/todomvc/labs/architecture-examples/react/js/app.jsx: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/labs/architecture-examples/react/js/app.jsx.
  • Speedometer/resources/todomvc/labs/architecture-examples/react/js/footer.jsx: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/labs/architecture-examples/react/js/footer.jsx.
  • Speedometer/resources/todomvc/labs/architecture-examples/react/js/todoItem.jsx: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/labs/architecture-examples/react/js/todoItem.jsx.
  • Speedometer/resources/todomvc/labs/architecture-examples/react/js/utils.jsx: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/labs/architecture-examples/react/js/utils.jsx.
  • Speedometer/resources/todomvc/labs/architecture-examples/react/readme.md: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/labs/architecture-examples/react/readme.md.
  • Speedometer/resources/todomvc/learn.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/learn.json.
  • Speedometer/resources/todomvc/license.md: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/license.md.
  • Speedometer/resources/todomvc/readme.md: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/readme.md.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/.babelrc: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/.babelrc.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/.eslintignore: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/.eslintignore.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/README.md: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/README.md.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.app.930ad8b83126862d7445.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.app.930ad8b83126862d7445.js.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.app.930ad8b83126862d7445.js.map: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.app.930ad8b83126862d7445.js.map.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.manifest.e81199b00da2921d9c94.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.manifest.e81199b00da2921d9c94.js.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.manifest.e81199b00da2921d9c94.js.map: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.manifest.e81199b00da2921d9c94.js.map.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.vendor.577c6bc09319b27fed34.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.vendor.577c6bc09319b27fed34.js.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.vendor.577c6bc09319b27fed34.js.map: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/bundle.vendor.577c6bc09319b27fed34.js.map.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/index.html: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/index.html.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.app.930ad8b83126862d7445.css: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.app.930ad8b83126862d7445.css.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.app.930ad8b83126862d7445.css.map: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.app.930ad8b83126862d7445.css.map.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.vendor.577c6bc09319b27fed34.css: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.vendor.577c6bc09319b27fed34.css.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.vendor.577c6bc09319b27fed34.css.map: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/dist/styles.vendor.577c6bc09319b27fed34.css.map.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/package-lock.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/package-lock.json.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/package.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/package.json.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/app.css: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/app.css.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/app.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/app.js.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/bootstrap.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/bootstrap.js.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/controller.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/controller.js.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/controller.test.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/controller.test.js.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/helpers.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/helpers.js.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/index.html: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/index.html.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/memory.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/memory.js.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/model.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/model.js.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/store.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/store.js.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/template.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/template.js.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/todo.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/todo.js.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/view.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/src/view.js.
  • Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/webpack.config.babel.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015-babel-webpack/webpack.config.babel.js.
  • Speedometer/resources/todomvc/vanilla-examples/es2015/README.md: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015/README.md.
  • Speedometer/resources/todomvc/vanilla-examples/es2015/index.html: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015/index.html.
  • Speedometer/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-app-css/index.css: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-app-css/index.css.
  • Speedometer/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-app-css/package.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-app-css/package.json.
  • Speedometer/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-app-css/readme.md: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-app-css/readme.md.
  • Speedometer/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-common/base.css: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-common/base.css.
  • Speedometer/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-common/base.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-common/base.js.
  • Speedometer/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-common/package.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-common/package.json.
  • Speedometer/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-common/readme.md: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015/node_modules/todomvc-common/readme.md.
  • Speedometer/resources/todomvc/vanilla-examples/es2015/package.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015/package.json.
  • Speedometer/resources/todomvc/vanilla-examples/es2015/src/.jshintrc: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015/src/.jshintrc.
  • Speedometer/resources/todomvc/vanilla-examples/es2015/src/app.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015/src/app.js.
  • Speedometer/resources/todomvc/vanilla-examples/es2015/src/controller.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015/src/controller.js.
  • Speedometer/resources/todomvc/vanilla-examples/es2015/src/helpers.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015/src/helpers.js.
  • Speedometer/resources/todomvc/vanilla-examples/es2015/src/model.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015/src/model.js.
  • Speedometer/resources/todomvc/vanilla-examples/es2015/src/store.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015/src/store.js.
  • Speedometer/resources/todomvc/vanilla-examples/es2015/src/template.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015/src/template.js.
  • Speedometer/resources/todomvc/vanilla-examples/es2015/src/view.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/es2015/src/view.js.
  • Speedometer/resources/todomvc/vanilla-examples/vanillajs/index.html: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/vanillajs/index.html.
  • Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/app.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/vanillajs/js/app.js.
  • Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/controller.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/vanillajs/js/controller.js.
  • Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/helpers.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/vanillajs/js/helpers.js.
  • Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/model.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/vanillajs/js/model.js.
  • Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/store.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/vanillajs/js/store.js.
  • Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/template.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/vanillajs/js/template.js.
  • Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/view.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/vanillajs/js/view.js.
  • Speedometer/resources/todomvc/vanilla-examples/vanillajs/node_modules/todomvc-app-css/index.css: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/vanillajs/node_modules/todomvc-app-css/index.css.
  • Speedometer/resources/todomvc/vanilla-examples/vanillajs/node_modules/todomvc-common/base.css: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/vanillajs/node_modules/todomvc-common/base.css.
  • Speedometer/resources/todomvc/vanilla-examples/vanillajs/node_modules/todomvc-common/base.js: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/vanillajs/node_modules/todomvc-common/base.js.
  • Speedometer/resources/todomvc/vanilla-examples/vanillajs/package.json: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/vanillajs/package.json.
  • Speedometer/resources/todomvc/vanilla-examples/vanillajs/readme.md: Renamed from PerformanceTests/Speedometer2.0/resources/todomvc/vanilla-examples/vanillajs/readme.md.
3:45 PM Changeset in webkit [292789] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ Mac wk2 ] fast/forms/datetimelocal/datetimelocal-editable-components/datetimelocal-choose-value-from-picker.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=239257

Unreviewed test gardening.

3:30 PM Changeset in webkit [292788] by mmaxfield@apple.com
  • 7 edits in trunk

[WKTR] [DRT] Only enable WebGPU for the LayoutTests/http/tests/webgpu directory
https://bugs.webkit.org/show_bug.cgi?id=238779

Reviewed by Darin Adler.

Tools:

We have a set of hardcoded directories already; this adds to that.
WebGPU is only ready for LayoutTests to use; it isn't ready for any other WKTR/DRT usage.

  • DumpRenderTree/TestOptions.cpp:

(WTR::TestOptions::defaults):

  • TestRunnerShared/TestFeatures.cpp:

(WTR::shouldEnableWebGPU):
(WTR::hardcodedFeaturesBasedOnPathForTest):

  • WebKitTestRunner/TestOptions.cpp:

(WTR::TestOptions::defaults):

LayoutTests:

  • platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt:
  • platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt:
3:13 PM Changeset in webkit [292787] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebGPU

[WebGPU] Fix the watchOS build
https://bugs.webkit.org/show_bug.cgi?id=239256

Unreviewed.

  • WebGPU/Buffer.mm:

(WebGPU::computeRangeSize):

2:40 PM Changeset in webkit [292786] by Russell Epstein
  • 1 copy in tags/WebKit-7614.1.9.3

Tag WebKit-7614.1.9.3.

2:36 PM Changeset in webkit [292785] by Jonathan Bedard
  • 3 edits in trunk/Tools

[Merge-Queue] Prioritize oldest builds first
https://bugs.webkit.org/show_bug.cgi?id=239094
<rdar://problem/91595070 >]

Reviewed by Stephanie Lewis.

  • Tools/CISupport/ews-build/loadConfig.py:

(loadBuilderConfig):
(async_sort): Added.
(prioritizeBuilders): Prioritize the builder with the oldest request.

  • Tools/CISupport/ews-build/loadConfig_unittest.py:

(TestPrioritizeBuilders):
(TestPrioritizeBuilders.MockBuilder):
(TestPrioritizeBuilders.test_builders_over_testers):
(TestPrioritizeBuilders.test_starvation):

Canonical link: https://commits.webkit.org/249569@main

2:20 PM Changeset in webkit [292784] by Brandon
  • 5 edits
    1 add in trunk/Source/bmalloc

[libpas] Update macOS build to c++20 and add bmalloc api test cases
https://bugs.webkit.org/show_bug.cgi?id=239105

Reviewed by Yusuke Suzuki and Yusuke Suzuki.

Fix the macOS build, which could fail depending on the SDK.
Also, add several basic bmalloc api tests.

  • Source/bmalloc/libpas/CMakeLists.txt:
  • Source/bmalloc/libpas/libpas.xcodeproj/project.pbxproj:
  • Source/bmalloc/libpas/src/test/BmallocTests.cpp: Added.

(std::testBmallocAllocate):
(std::testBmallocDeallocate):
(addBmallocTests):

  • Source/bmalloc/libpas/src/test/PGMTests.cpp:
  • Source/bmalloc/libpas/src/test/TestHarness.cpp:

(main):

Canonical link: https://commits.webkit.org/249568@main

2:05 PM Changeset in webkit [292783] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ BigSur+ wk2 Release ] css3/masking/reference-clip-path-animate-transform-repaint.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=230504
Marking test for BigSur "+"

12:36 PM Changeset in webkit [292782] by jer.noble@apple.com
  • 34 edits in trunk/Source

Leak of MediaSourcePrivateAVFObjC and RemoteMediaSourceProxy
https://bugs.webkit.org/show_bug.cgi?id=239088
<rdar://90693094>

Reviewed by Eric Carlson.

Source/WebCore:

MediaSourcePrivateAVFObjC holds a strong reference to its MediaSourcePrivateClient, which is
a MediaSource when running in-process, but a RemoteMediaSourceProxy when running in multi-process.
In both cases, the MediaSourcePrivateClient holds a strong reference to its private object as well.
However, in the multi-process scenario, this cycle is never broken, causing a leak.

Rather than determine the correct point to break this retain-cycle, modify MediaSourcePrivateClient
to be a CanMakeWeakPtr abstract class (rather than a RefCounted one), and convert all cases where
that client's pointer is stored from a Ref/RefPtr to a WeakPtr. This means having to null-check
every time that pointer is used.

  • Modules/mediasource/MediaSource.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::loadResource):

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::load):
(WebCore::MediaPlayer::loadWithNextMediaEngine):

  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h:
  • platform/graphics/MediaSourcePrivateClient.h:
  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::load):

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::load):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::load):

  • platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:

(WebCore::MediaSourcePrivateAVFObjC::create):
(WebCore::MediaSourcePrivateAVFObjC::MediaSourcePrivateAVFObjC):
(WebCore::MediaSourcePrivateAVFObjC::duration const):
(WebCore::MediaSourcePrivateAVFObjC::buffered):
(WebCore::MediaSourcePrivateAVFObjC::seekToTime):
(WebCore::MediaSourcePrivateAVFObjC::failedToCreateRenderer):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::load):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:

(WebCore::MediaPlayerPrivateGStreamerMSE::load):
(WebCore::MediaPlayerPrivateGStreamerMSE::unblockDurationChanges):

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h:
  • platform/graphics/holepunch/MediaPlayerPrivateHolePunch.h:
  • platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:

(WebCore::MockMediaPlayerMediaSource::load):

  • platform/mock/mediasource/MockMediaPlayerMediaSource.h:
  • platform/mock/mediasource/MockMediaSourcePrivate.cpp:

(WebCore::MockMediaSourcePrivate::MockMediaSourcePrivate):
(WebCore::MockMediaSourcePrivate::duration):
(WebCore::MockMediaSourcePrivate::buffered):
(WebCore::MockMediaSourcePrivate::seekToTime):

  • platform/mock/mediasource/MockMediaSourcePrivate.h:

Source/WebKit:

Adopt changes to MediaSourcePrivateClient making it a CanMakeWeakPtr class.

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::loadMediaSource):

  • GPUProcess/media/RemoteMediaSourceProxy.h:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::load):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/MediaSourcePrivateRemote.cpp:

(WebKit::MediaSourcePrivateRemote::create):
(WebKit::MediaSourcePrivateRemote::MediaSourcePrivateRemote):
(WebKit::MediaSourcePrivateRemote::seekToTime):

  • WebProcess/GPU/media/MediaSourcePrivateRemote.h:
12:26 PM Changeset in webkit [292781] by Patrick Angle
  • 3 edits
    1 add in trunk/Source/WebInspectorUI

Web Inspector: Add engineering-build-only ability to dump the current known bound nodes tree in Inspector2 or layout tests
https://bugs.webkit.org/show_bug.cgi?id=239086

Reviewed by Devin Rousso.

  • UserInterface/Debug/DOMManager.js: Added.

(appendLine):
(appendChildren):
(get let):

  • To assist with debugging layout tests and patches to the DOMManager, add a utility getter to dump the current

node tree.

  • UserInterface/Main.html:
  • UserInterface/Test.html:
11:52 AM Changeset in webkit [292780] by commit-queue@webkit.org
  • 34 edits
    2 copies
    14 adds in trunk

[WebXR] Implement the WebXRFrame methods for getting joints' poses and radii
https://bugs.webkit.org/show_bug.cgi?id=238968

Patch by Ada Chan <adachan@apple.com> on 2022-04-12
Reviewed by Dean Jackson.

Source/WebCore:

Tests: http/wpt/webxr/xrFrame_fillJointRadii.html

http/wpt/webxr/xrFrame_fillJointRadii_missing_joint_pose.html
http/wpt/webxr/xrFrame_fillPoses.html
http/wpt/webxr/xrFrame_fillPoses_missing_joint_pose.html
http/wpt/webxr/xrFrame_getJointPose.html
http/wpt/webxr/xrFrame_getJointPose_missing_joint_pose.html
http/wpt/webxr/xrHand.html

  • Implement the methods in WebXRFrame for getting joints' poses and radii.
  • Add a new InputSourceHandJoint struct to represent joint data, and add

a vector of InputSourceHandJoint in PlatformXR::Device::FrameData::InputSource
to represent the joints data.

  • Implement logic for managing a vector of WebXRJointSpaces in WebXRHand and

updating it with new hand joints data from PlatformXR::Device::FrameData::InputSource.

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/webxr/WebXRFrame+HandInput.idl:
  • Modules/webxr/WebXRFrame.cpp:

(WebCore::WebXRFrame::populatePose):
There are valid cases when the WebXRSpace's effective origin can be null,
for example, a joint pose from a hand that has other missing joint poses.
Just return null and not throw an exception in that case.
(WebCore::WebXRFrame::getJointPose):
Populate the joint's pose, and create a WebXRJointPose with the pose's
transform and the joint's radius.
(WebCore::WebXRFrame::fillJointRadii):
Validate the inputs and fill in the radii array. Fill in with NaN
if the hand has missing joint poses.
(WebCore::WebXRFrame::fillPoses):
Validate the inputs and fill in the transforms array. Fill in with NaN
if the hand has missing joint poses.

  • Modules/webxr/WebXRFrame.h:
  • Modules/webxr/WebXRHand.cpp:

(WebCore::WebXRHand::WebXRHand):
Initialize the m_joints array.
(WebCore::WebXRHand::get):
(WebCore::WebXRHand::Iterator::next):
(WebCore::WebXRHand::session):
(WebCore::WebXRHand::updateFromInputSource):
Update m_joints array based on the latest hands data from InputSource.

  • Modules/webxr/WebXRHand.h:

(WebCore::WebXRHand::size):
(WebCore::WebXRHand::hasMissingPoses const):

  • Modules/webxr/WebXRInputSource.cpp:

(WebCore::WebXRInputSource::update):

  • Modules/webxr/WebXRJointPose.cpp:

(WebCore::WebXRJointPose::create):
(WebCore::WebXRJointPose::WebXRJointPose):
Handle joint radius.

  • Modules/webxr/WebXRJointPose.h:
  • Modules/webxr/WebXRJointPose.idl:
  • Modules/webxr/WebXRJointSpace.cpp:

(WebCore::WebXRJointSpace::create):
(WebCore::WebXRJointSpace::WebXRJointSpace):
Handle joint name and the actual pose data. Keep a weak ptr to the WebXRHand.
(WebCore::WebXRJointSpace::updateFromJoint):
(WebCore::WebXRJointSpace::handHasMissingPoses const):
(WebCore::WebXRJointSpace::session const):
(WebCore::WebXRJointSpace::nativeOrigin const):
Return null pose transforms if there are missing joint poses.

  • Modules/webxr/WebXRJointSpace.h:

(WebCore::WebXRJointSpace::jointName const):
(WebCore::WebXRJointSpace::radius const):

  • Modules/webxr/WebXRJointSpace.idl:
  • Modules/webxr/WebXRSession.cpp:

(WebCore::WebXRSession::isHandTrackingEnabled const):

  • Modules/webxr/WebXRSession.h:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/xr/PlatformXR.h:

(PlatformXR::Device::FrameData::InputSourceHandJoint::encode const):
(PlatformXR::Device::FrameData::InputSourceHandJoint::decode):
(PlatformXR::Device::FrameData::InputSource::encode const):
(PlatformXR::Device::FrameData::InputSource::decode):

  • testing/FakeXRInputSourceInit.h:
  • testing/FakeXRInputSourceInit.idl:

Allow test InputSource to be created with an array of joints.

  • testing/FakeXRJointStateInit.h: Copied from Source/WebCore/Modules/webxr/WebXRJointPose.idl.
  • testing/FakeXRJointStateInit.idl: Copied from Source/WebCore/Modules/webxr/WebXRJointPose.idl.

Define init dictionary for joint data.

  • testing/WebFakeXRInputController.cpp:

(WebCore::WebFakeXRInputController::WebFakeXRInputController):
(WebCore::WebFakeXRInputController::getFrameData):
(WebCore::WebFakeXRInputController::updateHandJoints):
Update m_handJoints based on joint init dictionaries.

  • testing/WebFakeXRInputController.h:
  • testing/WebFakeXRInputController.idl:
  • testing/WebXRTest.cpp:

(WebCore::parseFeatures):
(WebCore::WebXRTest::simulateDeviceConnection):
Allow test device to specify a list of enabled features that don't need
further explicit consent.

  • testing/WebXRTest.h:
  • testing/WebXRTest.idl:

Source/WebKit:

  • Shared/XR/XRDeviceProxy.cpp:

(WebKit::XRDeviceProxy::initializeTrackingAndRendering):
Initialize input sources on session start.

LayoutTests:

Add more constants for a valid joint value and device init dictionary
that represents a device with hand tracking support enabled.

Add new tests for testing hand input related methods in XRFrame.

  • http/wpt/webxr/resources/webxr_test_constants_single_view.js:
  • http/wpt/webxr/xrFrame_fillJointRadii-expected.txt: Added.
  • http/wpt/webxr/xrFrame_fillJointRadii.html: Added.
  • http/wpt/webxr/xrFrame_fillJointRadii_missing_joint_pose-expected.txt: Added.
  • http/wpt/webxr/xrFrame_fillJointRadii_missing_joint_pose.html: Added.
  • http/wpt/webxr/xrFrame_fillPoses-expected.txt: Added.
  • http/wpt/webxr/xrFrame_fillPoses.html: Added.
  • http/wpt/webxr/xrFrame_fillPoses_missing_joint_pose-expected.txt: Added.
  • http/wpt/webxr/xrFrame_fillPoses_missing_joint_pose.html: Added.
  • http/wpt/webxr/xrFrame_getJointPose-expected.txt: Added.
  • http/wpt/webxr/xrFrame_getJointPose.html: Added.
  • http/wpt/webxr/xrFrame_getJointPose_missing_joint_pose-expected.txt: Added.
  • http/wpt/webxr/xrFrame_getJointPose_missing_joint_pose.html: Added.
  • http/wpt/webxr/xrHand-expected.txt: Added.
  • http/wpt/webxr/xrHand.html: Added.
  • http/wpt/webxr/xrHandInput_gc.html:
  • platform/win/TestExpectations: Skip other folders with WebXR tests
11:08 AM Changeset in webkit [292779] by gnavamarino@apple.com
  • 5 edits in trunk/Source/WebCore

RejectedPromiseTracker can be recreated if we are in a worker / worklet whose execution is terminating
https://bugs.webkit.org/show_bug.cgi?id=239130

Reviewed by Chris Dumez.

We update ScriptExecutionContext::ensureRejectedPromiseTrackerSlow so that we wont
recreate the promise tracker if we are in a worker / worklet whose execution is terminating.

  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSDOMGlobalObject::promiseRejectionTracker):

  • bindings/js/JSExecState.cpp:

(WebCore::JSExecState::didLeaveScriptContext):

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::ensureRejectedPromiseTrackerSlow):

  • dom/ScriptExecutionContext.h:

(WebCore::ScriptExecutionContext::ensureRejectedPromiseTracker):

10:54 AM Changeset in webkit [292778] by commit-queue@webkit.org
  • 12 edits
    2 adds in trunk

Implement Change Array by copy proposal
https://bugs.webkit.org/show_bug.cgi?id=234604

Patch by Aditi Singh <asingh@igalia.com> on 2022-04-12
Reviewed by Alexey Shvayka.

JSTests:

  • stress/change-array-by-copy.js: Added.

(shouldBe):
(shouldThrow):
(shallowEqual):
(shouldThrow.Array.prototype.toSpliced.toReversed):

  • stress/typed-array-change-by-copy.js: Added.

(shouldBe):
(shouldThrow):
(shallowEqual):
(sequence.new.Uint8Array):

  • stress/unscopables.js:

Source/JavaScriptCore:

This patch implements proposal Change Array By Copy. The proposal provides additional
methods on Array.prototype and TypedArray.prototype to enable changes on the array by
returning a new copy of it with the change.
Since, a call to intrinsic functions: Array.prototype.sort(comparefn) and
%TypedArray%.prototype.sort(comparefn) was needed, LinkTimeConstants have
been added for the same.
LinkTimeConstants were added instead of:
function sort(comparefn) { return @arraySort.@call(this, cmp); }
because this introduces an extra function call, which is slower.
%%TypedArray%%.prototype.sort(comparefn) and Array.prototype.sort(comparefn) are
implemented differently to avoid eager initialisation for TypedArrayPrototype
because it is quite large and not commonly used on the web.

The proposal details can be found here:
https://github.com/tc39/proposal-change-array-by-copy

  • builtins/ArrayPrototype.js:

(toReversed):
(toSorted):
(toSpliced):
(with):

  • builtins/BuiltinNames.h:
  • builtins/TypedArrayPrototype.js:

(toReversed):
(toSorted):
(toSpliced):
(with):
(sort):

  • bytecode/LinkTimeConstant.h:
  • runtime/ArrayPrototype.cpp:

(JSC::ArrayPrototype::finishCreation):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildrenImpl):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::typedArrayProtoSort const):

  • runtime/JSTypedArrayViewPrototype.cpp:

(JSC::JSTypedArrayViewPrototype::finishCreation):

  • runtime/OptionsList.h:
10:44 AM Changeset in webkit [292777] by Karl Rackler
  • 2 edits in trunk/LayoutTests

REGRESSION (r292043): [ Mac ] fast/block/positioning/fixed-container-with-relative-parent.html is a flaky image failure

https://bugs.webkit.org/show_bug.cgi?id=239101

Unreviewed test gardening.

  • platform/mac/TestExpectations:
10:43 AM Changeset in webkit [292776] by youenn@apple.com
  • 3 edits in trunk/Source/WebKit

Remove getsockopt from WebProcess sandboxes
https://bugs.webkit.org/show_bug.cgi?id=239120
<rdar://74988599>

Reviewed by Anders Carlsson.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
10:04 AM Changeset in webkit [292775] by Angelos Oikonomopoulos
  • 5 edits in trunk/Tools

[JSC] Report test flakiness to resultsdb
https://bugs.webkit.org/show_bug.cgi?id=238806

Reviewed by Jonathan Bedard.

Include flakiness info in the report sent to results.webkit.org.
This is a prerequisite to using --treat-failing-as-flaky in
post-commit JSC bots, as otherwise we'd lose any flakiness info
for tests that made it over the specified threshold.

For completeness, this patch includes the flakiness information
for both passed and failing tests.

It also bumps the hard iteration limit to 50 (a cap to the value
specified in --treat-failing-as-flaky). While here, add some
self-checking code that verifies the numbers add up. This needs
some minor refactoring in the tests to not declare an error when
the results are incomplete on purpose.

  • Scripts/run-javascriptcore-tests:

(runJSCStressTests):
Propagate the flakiness information reported by run-jsc-stress
tests. Report known flakiness for both failing and passing tests.

  • Scripts/run-jsc-stress-tests:

Bump iterationsCeiling. Ask the evaluator to
treatIncompleteAsFailed and perform validition.

  • Scripts/webkitruby/jsc-stress-test/executor.rb:

Introduce and use acceptIncomplete for the test that needs it.

  • Scripts/webkitruby/jsc-stress-test/test-result-evaluator.rb:

Introduce and use treatIncompleteAsFailed. Report both passed and
failed tests as flaky when they have been (subsequent to user
request) executed multiple times.

10:02 AM Changeset in webkit [292774] by Tyler Wilcock
  • 10 edits
    3 adds in trunk

AX: Incorrect role on dynamic lists
https://bugs.webkit.org/show_bug.cgi?id=238831

Reviewed by Andres Gonzalez.

Source/WebCore:

AccessibilityList objects cache their role after running
AccessibilityNodeObject::determineAccessibilityRole, but we never
recomputed it when necessary.

With this patch, when the children of a list changes, we also
re-compute its role, since a list's role is dependent on its children.

Test: accessibility/list-with-dynamically-changing-content.html

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::handleChildrenChanged):
(WebCore::AXObjectCache::handleRoleChange):
(WebCore::AXObjectCache::handleAriaRoleChanged):
Renamed to handleRoleChange.

  • accessibility/AXObjectCache.h:

(WebCore::AXObjectCache::handleRoleChange):
(WebCore::AXObjectCache::handleAriaRoleChanged):
Renamed to handleRoleChange.

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::updateRole):
(WebCore::AccessibilityNodeObject::updateAccessibilityRole):
Renamed to updateRole.

  • accessibility/AccessibilityNodeObject.h:
  • accessibility/AccessibilityObject.h:

(WebCore::AccessibilityObject::updateRole):
(WebCore::AccessibilityObject::updateAccessibilityRole):
Renamed to updateRole.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::updateRoleAfterChildrenCreation):

  • accessibility/AccessibilityTable.cpp:

(WebCore::AccessibilityTable::addChildren):

LayoutTests:

  • accessibility/list-with-dynamically-changing-content-expected.txt: Added.
  • accessibility/list-with-dynamically-changing-content.html: Added.
  • platform/ios/accessibility/list-with-dynamically-changing-content-expected.txt: Added.
  • platform/ios/TestExpectations: Enable new test.
  • platform/win/TestExpectations: Skip new test.
9:03 AM Changeset in webkit [292773] by dbezhetskov
  • 67 edits
    1 move
    4 adds
    2 deletes in trunk

[WASM-GC] Introduce structs types
https://bugs.webkit.org/show_bug.cgi?id=237029

Reviewed by Keith Miller.

JSTests:

Added basic tests for struct types declaration.

  • wasm.yaml:
  • wasm/gc/structs.js: Added.

(module):
(testStructDeclaration):

  • wasm/wasm.json:

Source/JavaScriptCore:

Introduce struct types via extending existing Signature infrastructure.
Signature is a unique representation of Wasm function types and we use them
to compare signatures from different wasm modules. Signatures are held globally
in a hash set and have one point of access.

With GC proposal and new struct types we want to represent new types uniformly with existing
Signature infrastructure. So, in this patch we extend Signature class with two options -
FunctionSignature and StructType. FunctionSignature (can be named as FunctionType) is a
representation of signatures as it was before the patch and StructType is a new option which
is representing struct types from GC proposal. Generally speaking we replace Signature class
with new algebraic type TypeDefinition = Signature | StructType.

This representation of struct types allows us not to change WasmType representation and
uniformly store FunctionType (aka FunctionSignature) or StructType. New options for types,
for example arrays, also can be easily added. Also, we save memory because we reuse existing
uniqueness of signatures. Additionally we can compare different struct types as fast as we do it for
signatures.

As Signature class now doesn't only holds Signature it has been renamed into TypeDefinition.
All corresponding signature related things also have been renamed.

To access specific option two classes was introduced StructType and FunctionSignature, so TypeDefinition
can be casted to specific option and only via it option methods of that option can be called.
This is done with preserving the cache-locality optimization for allocation signatures.

  • CMakeLists.txt:
  • Sources.txt:
  • bytecode/BytecodeDumper.cpp:

(JSC::Wasm::BytecodeDumper::dumpBlock):

  • bytecode/BytecodeList.rb:
  • runtime/OptionsList.h:
  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::ControlData::branchTargetArity const):
(JSC::Wasm::AirIRGenerator::ControlData::branchTargetType const):
(JSC::Wasm::AirIRGenerator::emitCallPatchpoint):
(JSC::Wasm::AirIRGenerator::tmpsForSignature):
(JSC::Wasm::AirIRGenerator::AirIRGenerator):
(JSC::Wasm::AirIRGenerator::toB3ResultType):
(JSC::Wasm::AirIRGenerator::addArguments):
(JSC::Wasm::AirIRGenerator::addRefFunc):
(JSC::Wasm::AirIRGenerator::getGlobal):
(JSC::Wasm::AirIRGenerator::setGlobal):
(JSC::Wasm::AirIRGenerator::addCatch):
(JSC::Wasm::AirIRGenerator::addCatchToUnreachable):
(JSC::Wasm::AirIRGenerator::addReturn):
(JSC::Wasm::AirIRGenerator::addEndToUnreachable):
(JSC::Wasm::AirIRGenerator::addCall):
(JSC::Wasm::AirIRGenerator::addCallIndirect):
(JSC::Wasm::AirIRGenerator::addCallRef):
(JSC::Wasm::AirIRGenerator::emitIndirectCall):
(JSC::Wasm::parseAndCompileAir):

  • wasm/WasmAirIRGenerator.h:
  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::ControlData::ControlData):
(JSC::Wasm::B3IRGenerator::ControlData::hasNonVoidresult const):
(JSC::Wasm::B3IRGenerator::ControlData::branchTargetArity const):
(JSC::Wasm::B3IRGenerator::ControlData::branchTargetType const):
(JSC::Wasm::B3IRGenerator::toB3ResultType):
(JSC::Wasm::B3IRGenerator::addArguments):
(JSC::Wasm::B3IRGenerator::emitIndirectCall):
(JSC::Wasm::B3IRGenerator::getGlobal):
(JSC::Wasm::B3IRGenerator::setGlobal):
(JSC::Wasm::B3IRGenerator::addLoop):
(JSC::Wasm::B3IRGenerator::addElseToUnreachable):
(JSC::Wasm::B3IRGenerator::addCatch):
(JSC::Wasm::B3IRGenerator::addCatchToUnreachable):
(JSC::Wasm::B3IRGenerator::endBlock):
(JSC::Wasm::B3IRGenerator::addEndToUnreachable):
(JSC::Wasm::B3IRGenerator::createCallPatchpoint):
(JSC::Wasm::B3IRGenerator::addCall):
(JSC::Wasm::B3IRGenerator::addCallIndirect):
(JSC::Wasm::B3IRGenerator::addCallRef):
(JSC::Wasm::parseAndCompileB3):

  • wasm/WasmB3IRGenerator.h:
  • wasm/WasmBBQPlan.cpp:

(JSC::Wasm::BBQPlan::work):
(JSC::Wasm::BBQPlan::compileFunction):
(JSC::Wasm::BBQPlan::didCompleteCompilation):

  • wasm/WasmCallee.h:
  • wasm/WasmCallingConvention.h:

(JSC::Wasm::WasmCallingConvention::callInformationFor const):
(JSC::Wasm::JSCallingConvention::callInformationFor const):

  • wasm/WasmEmbedder.h:
  • wasm/WasmEntryPlan.cpp:

(JSC::Wasm::EntryPlan::prepare):

  • wasm/WasmFormat.h:

(JSC::Wasm::isExternref):
(JSC::Wasm::isFuncref):
(JSC::Wasm::funcrefType):
(JSC::Wasm::externrefType):
(JSC::Wasm::WasmToWasmImportableFunction::offsetOfSignatureIndex):

  • wasm/WasmFunctionCodeBlockGenerator.cpp:

(JSC::Wasm::FunctionCodeBlockGenerator::addSignature):

  • wasm/WasmFunctionCodeBlockGenerator.h:
  • wasm/WasmFunctionParser.h:

(JSC::Wasm::splitStack):
(JSC::Wasm::FunctionParser::signature const):
(JSC::Wasm::FunctionParser<Context>::FunctionParser):
(JSC::Wasm::FunctionParser<Context>::parse):
(JSC::Wasm::FunctionParser<Context>::unify):
(JSC::Wasm::FunctionParser<Context>::parseExpression):
(JSC::Wasm::FunctionParser<Context>::parseUnreachableExpression):

  • wasm/WasmGlobal.cpp:

(JSC::Wasm::Global::set):

  • wasm/WasmGlobal.h:
  • wasm/WasmInstance.cpp:

(JSC::Wasm::Instance::initElementSegment):

  • wasm/WasmLLIntGenerator.cpp:

(JSC::Wasm::LLIntGenerator::ControlType::loop):
(JSC::Wasm::LLIntGenerator::ControlType::block):
(JSC::Wasm::LLIntGenerator::ControlType::if_):
(JSC::Wasm::LLIntGenerator::ControlType::createTry):
(JSC::Wasm::LLIntGenerator::ControlType::createCatch):
(JSC::Wasm::LLIntGenerator::ControlType::branchTargetArity const):
(JSC::Wasm::LLIntGenerator::ControlType::branchTargetType const):
(JSC::Wasm::parseAndCompileBytecode):
(JSC::Wasm::LLIntGenerator::LLIntGenerator):
(JSC::Wasm::LLIntGenerator::callInformationForCaller):
(JSC::Wasm::LLIntGenerator::callInformationForCallee):
(JSC::Wasm::LLIntGenerator::addArguments):
(JSC::Wasm::LLIntGenerator::addElseToUnreachable):
(JSC::Wasm::LLIntGenerator::addCatch):
(JSC::Wasm::LLIntGenerator::addCatchToUnreachable):
(JSC::Wasm::LLIntGenerator::addReturn):
(JSC::Wasm::LLIntGenerator::addEndToUnreachable):
(JSC::Wasm::LLIntGenerator::endTopLevel):
(JSC::Wasm::LLIntGenerator::addCall):
(JSC::Wasm::LLIntGenerator::addCallIndirect):
(JSC::Wasm::LLIntGenerator::addCallRef):

  • wasm/WasmLLIntGenerator.h:
  • wasm/WasmLLIntPlan.cpp:

(JSC::Wasm::LLIntPlan::compileFunction):
(JSC::Wasm::LLIntPlan::didCompleteCompilation):

  • wasm/WasmLimits.h:
  • wasm/WasmModule.cpp:

(JSC::Wasm::Module::typeIndexFromFunctionIndexSpace const):
(JSC::Wasm::Module::signatureIndexFromFunctionIndexSpace const): Deleted.

  • wasm/WasmModule.h:
  • wasm/WasmModuleInformation.h:

(JSC::Wasm::ModuleInformation::functionIndexSpaceSize const):
(JSC::Wasm::ModuleInformation::isImportedFunctionFromFunctionIndexSpace const):
(JSC::Wasm::ModuleInformation::typeIndexFromFunctionIndexSpace const):
(JSC::Wasm::ModuleInformation::exceptionIndexSpaceSize const):
(JSC::Wasm::ModuleInformation::isImportedExceptionFromExceptionIndexSpace const):
(JSC::Wasm::ModuleInformation::typeIndexFromExceptionIndexSpace const):
(JSC::Wasm::ModuleInformation::importFunctionCount const):
(JSC::Wasm::ModuleInformation::internalFunctionCount const):
(JSC::Wasm::ModuleInformation::importExceptionCount const):
(JSC::Wasm::ModuleInformation::internalExceptionCount const):
(JSC::Wasm::ModuleInformation::typeCount const):
(JSC::Wasm::ModuleInformation::signatureIndexFromFunctionIndexSpace const): Deleted.
(JSC::Wasm::ModuleInformation::signatureIndexFromExceptionIndexSpace const): Deleted.

  • wasm/WasmOMGPlan.cpp:

(JSC::Wasm::OMGPlan::work):

  • wasm/WasmOSREntryPlan.cpp:

(JSC::Wasm::OSREntryPlan::work):

  • wasm/WasmOperations.cpp:

(JSC::Wasm::JSC_DEFINE_JIT_OPERATION):

  • wasm/WasmOperations.h:
  • wasm/WasmParser.h:

(JSC::Wasm::Parser<SuccessType>::Parser):
(JSC::Wasm::Parser<SuccessType>::parseBlockSignature):
(JSC::Wasm::Parser<SuccessType>::parseHeapType):
(JSC::Wasm::Parser<SuccessType>::parseValueType):

  • wasm/WasmSectionParser.cpp:

(JSC::Wasm::SectionParser::parseType):
(JSC::Wasm::SectionParser::parseImport):
(JSC::Wasm::SectionParser::parseFunction):
(JSC::Wasm::SectionParser::parseExport):
(JSC::Wasm::SectionParser::parseStart):
(JSC::Wasm::SectionParser::parseInitExpr):
(JSC::Wasm::SectionParser::parseFunctionType):
(JSC::Wasm::SectionParser::parseStructType):
(JSC::Wasm::SectionParser::parseGlobalType):
(JSC::Wasm::SectionParser::parseException):

  • wasm/WasmSectionParser.h:
  • wasm/WasmSignature.cpp: Removed.
  • wasm/WasmSignature.h: Removed.
  • wasm/WasmSlowPaths.cpp:

(JSC::LLInt::doWasmCallIndirect):
(JSC::LLInt::WASM_SLOW_PATH_DECL):
(JSC::LLInt::doWasmCallRef):

  • wasm/WasmStreamingParser.cpp:
  • wasm/WasmStreamingPlan.cpp:
  • wasm/WasmTable.cpp:

(JSC::Wasm::Table::clear):
(JSC::Wasm::FuncRefTable::FuncRefTable):

  • wasm/WasmTag.h:
  • wasm/WasmTypeDefinition.cpp: Added.

(JSC::Wasm::TypeDefinition::toString const):
(JSC::Wasm::TypeDefinition::dump const):
(JSC::Wasm::FunctionSignature::toString const):
(JSC::Wasm::FunctionSignature::dump const):
(JSC::Wasm::StructType::toString const):
(JSC::Wasm::StructType::dump const):
(JSC::Wasm::computeSignatureHash):
(JSC::Wasm::computeStructTypeHash):
(JSC::Wasm::TypeDefinition::hash const):
(JSC::Wasm::TypeDefinition::tryCreateFunctionSignature):
(JSC::Wasm::TypeDefinition::tryCreateStructType):
(JSC::Wasm::TypeInformation::TypeInformation):
(JSC::Wasm::FunctionParameterTypes::hash):
(JSC::Wasm::FunctionParameterTypes::equal):
(JSC::Wasm::FunctionParameterTypes::translate):
(JSC::Wasm::StructParameterTypes::hash):
(JSC::Wasm::StructParameterTypes::equal):
(JSC::Wasm::StructParameterTypes::translate):
(JSC::Wasm::TypeInformation::typeDefinitionForFunction):
(JSC::Wasm::TypeInformation::typeDefinitionForStruct):
(JSC::Wasm::TypeInformation::tryCleanup):

  • wasm/WasmTypeDefinition.h: Added.

(JSC::Wasm::FunctionSignature::FunctionSignature):
(JSC::Wasm::FunctionSignature::argumentCount const):
(JSC::Wasm::FunctionSignature::returnCount const):
(JSC::Wasm::FunctionSignature::returnType const):
(JSC::Wasm::FunctionSignature::returnsVoid const):
(JSC::Wasm::FunctionSignature::argumentType const):
(JSC::Wasm::FunctionSignature::getReturnType):
(JSC::Wasm::FunctionSignature::getArgumentType):
(JSC::Wasm::FunctionSignature::storage):
(JSC::Wasm::FunctionSignature::storage const):
(JSC::Wasm::StructField::operator== const):
(JSC::Wasm::StructField::operator!= const):
(JSC::Wasm::StructType::StructType):
(JSC::Wasm::StructType::fieldCount const):
(JSC::Wasm::StructType::field const):
(JSC::Wasm::StructType::getField):
(JSC::Wasm::StructType::storage):
(JSC::Wasm::StructType::storage const):
(JSC::Wasm::TypeDefinition::TypeDefinition):
(JSC::Wasm::TypeDefinition::payload):
(JSC::Wasm::TypeDefinition::allocatedFunctionSize):
(JSC::Wasm::TypeDefinition::allocatedStructSize):
(JSC::Wasm::TypeDefinition::is const):
(JSC::Wasm::TypeDefinition::as):
(JSC::Wasm::TypeDefinition::as const):
(JSC::Wasm::TypeDefinition::index const):
(JSC::Wasm::TypeDefinition::operator== const):
(JSC::Wasm::TypeHash::TypeHash):
(JSC::Wasm::TypeHash::operator== const):
(JSC::Wasm::TypeHash::equal):
(JSC::Wasm::TypeHash::hash):
(JSC::Wasm::TypeHash::isHashTableDeletedValue const):
(JSC::Wasm::TypeInformation::thunkFor const):

  • wasm/WasmTypeDefinitionInlines.h: Renamed from Source/JavaScriptCore/wasm/WasmSignatureInlines.h.

(JSC::Wasm::TypeInformation::singleton):
(JSC::Wasm::TypeInformation::get):
(JSC::Wasm::TypeInformation::getFunctionSignature):

  • wasm/generateWasmOpsHeader.py:
  • wasm/js/JSToWasm.cpp:

(JSC::Wasm::marshallJSResult):
(JSC::Wasm::createJSToWasmWrapper):

  • wasm/js/JSToWasm.h:
  • wasm/js/JSWebAssemblyException.cpp:

(JSC::JSWebAssemblyException::visitChildrenImpl):
(JSC::JSWebAssemblyException::getArg const):

  • wasm/js/JSWebAssemblyGlobal.cpp:

(JSC::JSWebAssemblyGlobal::type):

  • wasm/js/JSWebAssemblyHelpers.h:

(JSC::fromJSValue):

  • wasm/js/JSWebAssemblyModule.cpp:

(JSC::JSWebAssemblyModule::destroy):
(JSC::JSWebAssemblyModule::typeIndexFromFunctionIndexSpace const):
(JSC::JSWebAssemblyModule::generateWasmToJSStubs):
(JSC::JSWebAssemblyModule::signatureIndexFromFunctionIndexSpace const): Deleted.

  • wasm/js/JSWebAssemblyModule.h:
  • wasm/js/JSWebAssemblyTag.h:
  • wasm/js/WasmToJS.cpp:

(JSC::Wasm::wasmToJS):

  • wasm/js/WasmToJS.h:
  • wasm/js/WebAssemblyExceptionConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyFunction.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::WebAssemblyFunction::usesTagRegisters const):
(JSC::WebAssemblyFunction::jsCallEntrypointSlow):
(JSC::WebAssemblyFunction::create):
(JSC::WebAssemblyFunction::WebAssemblyFunction):

  • wasm/js/WebAssemblyFunction.h:
  • wasm/js/WebAssemblyFunctionBase.h:

(JSC::WebAssemblyFunctionBase::typeIndex const):
(JSC::WebAssemblyFunctionBase::signatureIndex const): Deleted.

  • wasm/js/WebAssemblyGlobalConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyGlobalPrototype.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::initializeImports):
(JSC::WebAssemblyModuleRecord::initializeExports):

  • wasm/js/WebAssemblyTagConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyWrapperFunction.cpp:

(JSC::WebAssemblyWrapperFunction::create):

  • wasm/js/WebAssemblyWrapperFunction.h:
  • wasm/wasm.json:
9:01 AM Changeset in webkit [292772] by youenn@apple.com
  • 4 edits in trunk/Tools

Add persistent notification click API test
https://bugs.webkit.org/show_bug.cgi?id=238995

Reviewed by Brady Eidson.

  • TestWebKitAPI/TestNotificationProvider.cpp:
  • TestWebKitAPI/TestNotificationProvider.h:
  • TestWebKitAPI/Tests/WebKitCocoa/PushAPI.mm:
8:28 AM Changeset in webkit [292771] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Add logging in case WebsiteDataStore is not found for persistent notification events
https://bugs.webkit.org/show_bug.cgi?id=239111

Reviewed by Chris Dumez.

  • UIProcess/Notifications/WebNotificationManagerProxy.cpp:

(WebKit::dispatchDidClickNotification):
(WebKit::WebNotificationManagerProxy::providerDidCloseNotifications):

7:48 AM Changeset in webkit [292770] by zan@falconsigh.net
  • 8 edits
    1 copy
    3 adds in trunk/Source/WebCore

[GTK][WPE] Move DMABuf-backed GraphicsContextGLANGLE functionality into a standalone derivation chain
https://bugs.webkit.org/show_bug.cgi?id=239037

Reviewed by Carlos Garcia Campos.

For the purposes of ANGLE-backed WebGL execution, the Linux-y ports are
for now leveraging DMABuf infrastructure through the libgbm dependency.
Right now this could be used for both the current in-WebProcess
execution as well as under-construction in-GPUProcess execution.

The former requires all the GBM bits and bolts that are then tied
together with a Nicosia::GCGLANGLELayer instance that takes care of
presenting the rendered-into DMABuf objects in TextureMapper. The latter
requires just the bits and bolts, but it runs those in the GPUProcess
and then takes the DMABuf objects and transports them over IPC to the
point of integration into the composition engine. At the moment that's
still the TextureMapper in WebProcess, but that can move in the future.

The GraphicsContextGLTextureMapperANGLE class has different parts of
GBM/DMABuf integration removed. Class is now additionally guarded with
the !USE(NICOSIA) flag so that it remains buildable on the Win port
which uses this class for ANGLE integration into the Nicosia-less
TextureMapper configuration.

These parts are now moved into the GraphicsContextGLGBM and
GraphicsContextGLGBMTextureMapper classes. The first one does all the
heavy work, and the second one just adds on top the TextureMapper
integration through the Nicosia::GCGLANGLELayer class.

In the GraphicsContextGLGBMTextureMapper implementation file, the
createWebProcessGraphicsContextGL() function returns an object of that
type, meaning it's the implementation that should be used on the
WebProcess side. The TextureMapper-less GraphicsContextGLGBM class is
the implementation that will be used inside the GPUProcess.

  • SourcesGTK.txt:
  • SourcesWPE.txt:
  • platform/TextureMapper.cmake:
  • platform/graphics/gbm/GraphicsContextGLGBM.cpp: Copied from Source/WebCore/platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp.

(WebCore::GraphicsContextGLANGLE::GraphicsContextGLANGLE):
(WebCore::GraphicsContextGLANGLE::~GraphicsContextGLANGLE):
(WebCore::GraphicsContextGLANGLE::platformDisplay const):
(WebCore::GraphicsContextGLANGLE::platformConfig const):
(WebCore::GraphicsContextGLANGLE::makeContextCurrent):
(WebCore::GraphicsContextGLANGLE::checkGPUStatus):
(WebCore::GraphicsContextGLANGLE::platformReleaseThreadResources):
(WebCore::GraphicsContextGLANGLE::readCompositedResults):
(WebCore::GraphicsContextGLGBM::create):
(WebCore::GraphicsContextGLGBM::GraphicsContextGLGBM):
(WebCore::GraphicsContextGLGBM::platformInitializeContext):
(WebCore::GraphicsContextGLGBM::platformInitialize):
(WebCore::GraphicsContextGLGBM::prepareTexture):
(WebCore::GraphicsContextGLGBM::layerContentsDisplayDelegate):
(WebCore::GraphicsContextGLGBM::copyTextureFromMedia):
(WebCore::GraphicsContextGLGBM::paintCompositedResultsToVideoFrame):
(WebCore::GraphicsContextGLGBM::setContextVisibility):
(WebCore::GraphicsContextGLGBM::reshapeDisplayBufferBacking):
(WebCore::GraphicsContextGLGBM::prepareForDisplay):
(WebCore::GraphicsContextGLGBM::Swapchain::Swapchain):
(WebCore::GraphicsContextGLGBM::Swapchain::~Swapchain):

  • platform/graphics/gbm/GraphicsContextGLGBM.h: Added.

(WebCore::GraphicsContextGLGBM::swapchain):

  • platform/graphics/gbm/GraphicsContextGLGBMTextureMapper.cpp: Added.

(WebCore::createWebProcessGraphicsContextGL):
(WebCore::GraphicsContextGLGBMTextureMapper::create):
(WebCore::GraphicsContextGLGBMTextureMapper::GraphicsContextGLGBMTextureMapper):
(WebCore::GraphicsContextGLGBMTextureMapper::layerContentsDisplayDelegate):
(WebCore::GraphicsContextGLGBMTextureMapper::platformInitialize):

  • platform/graphics/gbm/GraphicsContextGLGBMTextureMapper.h: Added.
  • platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.cpp:

(Nicosia::GCGLANGLELayer::swapBuffersIfNeeded):
(Nicosia::GCGLANGLELayer::GCGLANGLELayer):

  • platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.h:
  • platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp:

(WebCore::GraphicsContextGLANGLE::makeContextCurrent):
(WebCore::GraphicsContextGLTextureMapperANGLE::~GraphicsContextGLTextureMapperANGLE):
(WebCore::GraphicsContextGLTextureMapperANGLE::platformInitializeContext):
(WebCore::GraphicsContextGLTextureMapperANGLE::platformInitialize):
(WebCore::GraphicsContextGLTextureMapperANGLE::prepareTexture):
(WebCore::GraphicsContextGLTextureMapperANGLE::reshapeDisplayBufferBacking):
(WebCore::GraphicsContextGLTextureMapperANGLE::prepareForDisplay):
(WebCore::GraphicsContextGLTextureMapperANGLE::Swapchain::Swapchain): Deleted.
(WebCore::GraphicsContextGLTextureMapperANGLE::Swapchain::~Swapchain): Deleted.

  • platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.h:
7:06 AM Changeset in webkit [292769] by clopez@igalia.com
  • 2 edits in trunk/Tools

[GTK][WPE] generate-bundle: fix typo/bug in the wrapper shell code for the bundle after r292109.
https://bugs.webkit.org/show_bug.cgi?id=237107

There was a typo/bug in the shell code for the bundle that tried to check
if a path was absolute. Fix the issue and also improve the code a bit.

Unreviewed follow-up fix.

  • Scripts/webkitpy/binary_bundling/bundle.py:

(BinaryBundler.generate_wrapper_script):

2:43 AM Changeset in webkit [292768] by commit-queue@webkit.org
  • 7 edits in trunk/Source

FunctionDispatcher should not be RefCounted
https://bugs.webkit.org/show_bug.cgi?id=231940

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-04-12
Reviewed by Chris Dumez.

Source/WebKit:

Remove ThreadSafeRefCounted from FunctionDispatcher. Make all existing
function dispatchers refcounted.

No new tests, refactor.

  • NetworkProcess/cache/NetworkCacheData.h:
  • Platform/IPC/StreamConnectionWorkQueue.h:

Source/WTF:

Remove ThreadSafeRefCounted from FunctionDispatcher. There is nothing inherently
refcountable about FunctionDispatcher. It is better to put the refcount to the
abstraction that needs it.

This makes it possible to build FunctionDispatchers that are not refcounted. This
lets the reader infer more about the API when such a dispatcher is passed to a
function. The reader understands that the passed dispatcher would not be kept alive.

  • wtf/FunctionDispatcher.h:
  • wtf/RunLoop.h:

Export ~RunLoop. For some reason this is a requirement on G++, MSVC based compilers (?).
This has most likely something to do with the multiple inheritance moving to RunLoop
from FunctionDispatcher. ~FunctionDispacher was exported before, and still is.

  • wtf/WorkQueue.h:
12:51 AM Changeset in webkit [292767] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Reduce Baseline JIT code size in debug builds
https://bugs.webkit.org/show_bug.cgi?id=238928

Patch by Geza Lore <Geza Lore> on 2022-04-12
Reviewed by Saam Barati.

The Baseline JIT used to emit a substantial but identical sequence to
check pinned registers and the SP at the beginning of every bytecode.
This caused large code bloat and made it somewhat difficult to use
debug builds on resource constrained platforms. Trying to alleviate
this by emitting a small dispatcher after the slow path section (but
before the stack overflow check), which then tail-calls a shared
thunk. The opcodes then call this very small dispatcher. The source op
of a faulting bytecode is easily visible in the link register (or on
the stack on x86).

This saves 34% Baseline JIT code size (and 14% overall) on a debug
build with JetStream2. Also fixes all code-size related test failures
on the ARMv7 debug build.

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):
(JSC::JIT::emitConsistencyCheck):
(JSC::JIT::compileAndLinkWithoutFinalizing):
(JSC::JIT::link):

  • jit/JIT.h:

Apr 11, 2022:

11:49 PM Changeset in webkit [292766] by mmaxfield@apple.com
  • 3 edits in trunk/LayoutTests

Make fast/text/otsvg-canvas.html more robust
https://bugs.webkit.org/show_bug.cgi?id=239109
<rdar://problem/88838078>

Unreviewed test gardening.

Turns out loading fonts is asynchronous.

  • fast/text/otsvg-canvas.html:
  • platform/mac-wk1/TestExpectations:
11:34 PM Changeset in webkit [292765] by zan@falconsigh.net
  • 3 edits in trunk/Source/ThirdParty/ANGLE

[GTK][WPE] Build ANGLE with the EGL_NO_PLATFORM_SPECIFIC_TYPES define
https://bugs.webkit.org/show_bug.cgi?id=239039

Reviewed by Adrian Perez de Castro.

Specify the EGL_NO_PLATFORM_SPECIFIC_TYPES define when building ANGLE
subproject for the GTK and WPE ports. This should avoid searching for
platform-specific headers that might not be available at all during
build, e.g. the X11 headers which are used by default on UNIX platforms.

  • PlatformGTK.cmake:
  • PlatformWPE.cmake:
11:30 PM Changeset in webkit [292764] by zan@falconsigh.net
  • 2 edits in trunk/Source/WebKit

[WK2] Simplify IPC encoding, decoding of tuples
https://bugs.webkit.org/show_bug.cgi?id=239062

Reviewed by Darin Adler.

For encoding each element of a given tuple, an index sequence is used in
combination with a fold expression calling ArgumentCoder<T>::encode().

For decoding, std::tuple_cat() is used to concatenate a single-element
tuple containing the current element with the tuple of the remaining
decoded elements.

No real change in behavior, sequence of encoding and decoding remains
the same.

  • Platform/IPC/ArgumentCoders.h:

(IPC::TupleEncoder::encode):
(IPC::tupleFromTupleAndObject): Deleted.
(IPC::TupleDecoderImpl::decode): Deleted.
(IPC::TupleDecoderImpl<Type>::decode): Deleted.
(IPC::TupleDecoder::decode): Deleted.
(IPC::TupleDecoder<0>::decode): Deleted.

11:10 PM Changeset in webkit [292763] by Tyler Wilcock
  • 12 edits
    4 adds in trunk

AX: Update isolated tree in response to AXReadOnlyStatusChanged, AXRequiredStatusChanged, and AXPressedStateChanged notifications
https://bugs.webkit.org/show_bug.cgi?id=239047

Reviewed by Chris Fleizach.

Source/WebCore:

When these notifications come in for a live object, we need to update the
cached properties of the corresponding isolated object.

Tests: accessibility/aria-readonly-updates-after-dynamic-change.html,

accessibility/aria-required-updates-after-dynamic-change.html,
accessibility/mac/aria-pressed-button-attributes.html

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::updateIsolatedTree):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityIsAttributeSettable:]):
(-[WebAccessibilityObjectWrapper accessibilityIsRequired]):
Added both of these methods so the tests added in this patch can run on iOS.

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::updateNodeProperty):
Handle updates to AXPropertyName::IsRequired, AXPropertyName::CanSetValueAttribute,
and AXPropertyName::ReadOnlyValue.

Tools:

  • DumpRenderTree/ios/AccessibilityUIElementIOS.mm:

(AccessibilityUIElement::isAttributeSettable):
(AccessibilityUIElement::isRequired const):
Added both of these methods so that the tests added with this patch can run on iOS.

  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::isAttributeSettable):
(WTR::AccessibilityUIElement::isRequired const):
Added both of these methods so that the tests added with this patch can run on iOS.

LayoutTests:

  • accessibility/aria-readonly-updates-after-dynamic-change-expected.txt: Added.
  • accessibility/aria-readonly-updates-after-dynamic-change.html: Added.
  • accessibility/aria-required-updates-after-dynamic-change-expected.txt: Added.
  • accessibility/aria-required-updates-after-dynamic-change.html: Added.
  • accessibility/mac/aria-pressed-button-attributes-expected.txt:
  • accessibility/mac/aria-pressed-button-attributes.html:

Add testcases that dynamically change aria-pressed and expect the
right attributes.

  • platform/ios/TestExpectations: Enable new tests.
  • platform/win/TestExpectations: Skip new tests.
10:59 PM Changeset in webkit [292762] by zan@falconsigh.net
  • 2 edits in trunk

Unreviewed, removing one of my email addresses.

  • metadata/contributors.json:
10:47 PM Changeset in webkit [292761] by Diego Pino Garcia
  • 2 edits in trunk/Source/WebKit

[GLIB] Unreviewed, build fix for Debian Stable after r292251
https://bugs.webkit.org/show_bug.cgi?id=239102

  • UIProcess/gtk/WaylandCompositor.cpp:

(WebKit::WaylandCompositor::initializeEGL): Convert char* to String.

9:57 PM Changeset in webkit [292760] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebGPU

[WebGPU] Fix the tvOS build (again)
https://bugs.webkit.org/show_bug.cgi?id=239106
<rdar://problem/91351306>

Unreviewed.

Turns out PLATFORM(APPLETV) and PLATFORM(TVOS) are different things.

  • WebGPU/Texture.mm:

(WebGPU::Device::createTexture):
(WebGPU::Texture::createView):

8:43 PM Changeset in webkit [292759] by Antti Koivisto
  • 22 edits
    2 adds in trunk

[CSS Container Queries] Update container shorthand order
https://bugs.webkit.org/show_bug.cgi?id=239065

Reviewed by Alan Bujtas.

LayoutTests/imported/w3c:

Update from WPT repo.

  • resources/resource-files.json:
  • web-platform-tests/css/css-contain/container-queries/at-container-parsing-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/at-container-parsing.html:
  • web-platform-tests/css/css-contain/container-queries/container-computed-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-computed.html:
  • web-platform-tests/css/css-contain/container-queries/container-name-parsing-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-name-parsing.html:
  • web-platform-tests/css/css-contain/container-queries/container-parsing-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-parsing.html:
  • web-platform-tests/css/css-contain/container-queries/container-selection.html:
  • web-platform-tests/css/css-contain/container-queries/container-type-parsing.html:
  • web-platform-tests/css/css-contain/container-queries/crashtests/canvas-as-container-crash.html:
  • web-platform-tests/css/css-contain/container-queries/crashtests/chrome-bug-1289718-000-crash.html:
  • web-platform-tests/css/css-contain/container-queries/crashtests/chrome-bug-1289718-001-crash.html:
  • web-platform-tests/css/css-contain/container-queries/crashtests/chrome-quotes-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/crashtests/force-sibling-style-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/crashtests/w3c-import.log:

Source/WebCore:

The format is now 'name / type' instead of 'type / name'.

https://drafts.csswg.org/css-contain-3/#container-shorthand

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/StyleProperties.cpp:

(WebCore::isNoneValue):
(WebCore::isValueID):
(WebCore::StyleProperties::getPropertyValue const):

Also make "foo / none" serialize as "foo".

  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeContainerName):
(WebCore::CSSPropertyParser::consumeContainerShorthand):

8:34 PM Changeset in webkit [292758] by msaboff@apple.com
  • 3 edits in trunk/Source/ThirdParty/libwebrtc

REGRESSION (r292411): libwebrtc header files aren't installed in system content path
https://bugs.webkit.org/show_bug.cgi?id=239100

Reviewed by Mark Lam.

Restored System Content Path processing for absl and webrtc header files.

  • Configurations/libabsl.xcconfig:
  • Configurations/libwebrtc.xcconfig:
8:00 PM Changeset in webkit [292757] by mmaxfield@apple.com
  • 8 edits in trunk/Source

[WebGPU] Use checked arithmetic
https://bugs.webkit.org/show_bug.cgi?id=239058

Reviewed by Kimmo Kinnunen.

We have a bunch of places where overflow can occur.

Luckily, we can just detect overflow inside the validation functions, and not have
to do any inside the code that creates platform types (NSUInteger, etc.). This is
because if the validation code succeeds, then we are guaranteed that the cast to
NSUIntegers will succeed. This is because ranges in a resource are checked against
the size of the resource, and the size of the resource has been checked against
platform maximums, which are guaranteed to be smaller than the largest NSUInteger.

  • WebGPU/BindGroup.mm:

(WebGPU::Device::createBindGroup):

  • WebGPU/Buffer.mm:

(WebGPU::Buffer::validateGetMappedRange const):
(WebGPU::Buffer::getMappedRange):
(WebGPU::Buffer::validateMapAsync const):
(WebGPU::Buffer::mapAsync):

  • WebGPU/CommandEncoder.mm:

(WebGPU::CommandEncoder::validateCopyBufferToBuffer):
(WebGPU::CommandEncoder::copyBufferToTexture):
(WebGPU::CommandEncoder::copyTextureToBuffer):
(WebGPU::CommandEncoder::copyTextureToTexture):
(WebGPU::CommandEncoder::validateClearBuffer):
(WebGPU::CommandEncoder::clearBuffer):

  • WebGPU/Queue.mm:

(WebGPU::Queue::validateWriteBuffer const):
(WebGPU::Queue::writeTexture):

  • WebGPU/Texture.h:
  • WebGPU/Texture.mm:

(WebGPU::Texture::resolveTextureViewDescriptorDefaults const):
(WebGPU::Texture::validateCreateView const):
(WebGPU::Texture::createView):
(WebGPU::Texture::validateTextureCopyRange):
(WebGPU::Texture::validateLinearTextureData):

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

REGRESSION: Web content process crashes when triggering Live Text in recoveryOS
https://bugs.webkit.org/show_bug.cgi?id=239096
rdar://91592943

Reviewed by Tim Horton.

Make encoding or decoding RetainPtr<VKCImageAnalysis> a no-op when the VisionKitCore framework is unavailable
on Cocoa platforms, rather than crashing (due to PAL::getVKCImageAnalysisClass() returning nil).

  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:

(IPC::ArgumentCoder<RetainPtr<VKCImageAnalysis>>::encode):
(IPC::ArgumentCoder<RetainPtr<VKCImageAnalysis>>::decode):

6:38 PM Changeset in webkit [292755] by Jonathan Bedard
  • 3 edits in trunk/Tools

[Merge-Queue] Build before landing
https://bugs.webkit.org/show_bug.cgi?id=239068
<rdar://problem/91565146>

Reviewed by Ryan Haddad.

  • Tools/CISupport/ews-build/factories.py:

(MergeQueueFactory.init): Build WebKit before landing.

  • Tools/CISupport/ews-build/factories_unittest.py:

(TestExpectedBuildSteps):

Canonical link: https://commits.webkit.org/249539@main

6:34 PM Changeset in webkit [292754] by Patrick Angle
  • 13 edits in trunk

Web Inspector: preserve DOM.NodeId if a node is removed and re-added
https://bugs.webkit.org/show_bug.cgi?id=189687

Reviewed by Devin Rousso.

Source/WebCore:

Instead of unbinding and rebinding nodes upon removal/reinsertion to the DOM tree, we should only perform the
unbinding actions on a Node that is being destroyed.

This resolves an issue where console messages with DOM nodes would behave unexpectedly because the node for a
visible console message could have its children removed in DOMManager.prototype._unbind, even though the node
would still have its children when it is removed from the DOM tree (unless it is being destroyed, which is
handled by DOMManager.prototype.willDestroyDOMNode).

While not a cause of an issue here, it is worth noting (due to confusion it caused me while investigating) that
even after we stopped keeping RefPtr<Node> for nodes in r278785 the nodes themselves continued to be kept
alive as part of the RemoteObject mechanism because the inspector injected script holds on to nodes until the
RemoteObject is released.

  • inspector/agents/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::nodeLayoutContextTypeChanged):

  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::reset):
(WebCore::InspectorDOMAgent::bind):
(WebCore::InspectorDOMAgent::didCommitLoad):
(WebCore::InspectorDOMAgent::didInsertDOMNode):
(WebCore::InspectorDOMAgent::didRemoveDOMNode):
(WebCore::InspectorDOMAgent::pseudoElementDestroyed):
(WebCore::InspectorDOMAgent::unbind): Deleted.

  • We should no longer be unbinding and rebinding nodes on insertion/removal, since nodes should keep the same ID

for their lifetime, and we will clean up the binding upon the Node's destruction.

(WebCore::InspectorDOMAgent::willDestroyDOMNode):
(WebCore::InspectorDOMAgent::destroyedNodesTimerFired):

  • A Node in middle of being destroyed will no longer have a parent.
  • inspector/agents/InspectorDOMAgent.h:

Source/WebInspectorUI:

Instead of unbinding and rebinding nodes upon removal/reinsertion to the DOM tree, we should only perform the
unbinding actions on a Node that is being destroyed.

  • UserInterface/Controllers/DOMDebuggerManager.js:
  • UserInterface/Controllers/DOMManager.js:

(WI.DOMManager.prototype._pseudoElementAdded):

(WI.DOMManager.prototype.willDestroyDOMNode):
(WI.DOMManager.prototype._unbind):

  • To match the backend, we should only unbind nodes when they are destroyed, not removed.
  • UserInterface/Models/DOMNode.js:

(WI.DOMNode.prototype.newOrExistingFromPayload):

  • Reuse an existing orphaned DOMNode if it already exists. In the future, we want to stop sending entire node

payloads to the frontend in those situations.

(WI.DOMNode.prototype._insertChild):
(WI.DOMNode.prototype._setChildrenPayload):

LayoutTests:

Update test to reflect that DOM breakpoints are now able to be reattached to their original node upon insertion
following removal.

  • inspector/dom-debugger/dom-breakpoint-node-removed-ancestor.html:
  • inspector/dom-debugger/dom-breakpoint-node-removed-ancestor-expected.txt:
  • inspector/dom-debugger/dom-breakpoint-node-removed-direct-expected.txt:
  • inspector/dom-debugger/resources/dom-breakpoint-utilities.js:

(TestPage.registerInitializer.InspectorTest.DOMBreakpoint.createBreakpoint):

  • Add an event handler to log the setting of the domNode for breakpoints. In order to prevent spurious output

when removing breakpoints, instrument the removal of breakpoints to remove the testing event handler before the
node is changed.

6:32 PM Changeset in webkit [292753] by don.olmstead@sony.com
  • 4 edits in trunk/Source

Fix PlayStation build after r292696
https://bugs.webkit.org/show_bug.cgi?id=239098

Unreviewed build fix.

Source/WebDriver:

  • playstation/WebDriverServicePlayStation.cpp:

(WebDriver::WebDriverService::platformCapabilities):

Source/WTF:

  • wtf/playstation/LanguagePlayStation.cpp:

(WTF::platformUserPreferredLanguages):

6:30 PM Changeset in webkit [292752] by Alan Bujtas
  • 7 edits in trunk/Source/WebCore

[IFC][Integration] LayoutIntegration::LineLayout should not expose InlineContent
https://bugs.webkit.org/show_bug.cgi?id=239059

Reviewed by Antti Koivisto.

Implement inkOverflowTop/inkOverflowBottom for inline iterator (LineBox) so that we can
keep InlineContent internal to LayoutIntegration::LineLayout.

  • layout/integration/InlineIteratorLineBox.h:

(WebCore::InlineIterator::LineBox::inkOverflowTop const):
(WebCore::InlineIterator::LineBox::inkOverflowBottom const):

  • layout/integration/InlineIteratorLineBoxLegacyPath.h:

(WebCore::InlineIterator::LineBoxIteratorLegacyPath::inkOverflowTop const):
(WebCore::InlineIterator::LineBoxIteratorLegacyPath::inkOverflowBottom const):

  • layout/integration/InlineIteratorLineBoxModernPath.h:

(WebCore::InlineIterator::LineBoxIteratorModernPath::inkOverflowTop const):
(WebCore::InlineIterator::LineBoxIteratorModernPath::inkOverflowBottom const):

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::hasVisualOverflow const):

  • layout/integration/LayoutIntegrationLineLayout.h:

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

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutModernLines):

6:16 PM Changeset in webkit [292751] by Matteo Flores
  • 2 edits in trunk/LayoutTests

[ Mac wk2 Debug ] accessibility/ancestor-computation.html is a constant timeout https://bugs.webkit.org/show_bug.cgi?id=239099 Unreviewed test gardening. * platform/mac-wk2/TestExpectations:

6:15 PM Changeset in webkit [292750] by Chris Dumez
  • 2 edits in trunk/Tools

REGRESSION:(r292696) lldb_webkit_unittest.TestSummaryProviders.serial_test_WTFStringImpl_SummaryProvider_null_string is a constant failure
https://bugs.webkit.org/show_bug.cgi?id=239087

Reviewed by Jonathan Bedard.

Revert change to aNullString made in r292696 as the the following test relies on this String being empty:
lldb_webkit_unittest.TestSummaryProviders.serial_test_WTFStringImpl_SummaryProvider_null_string

  • lldb/lldbWebKitTester/main.cpp:

(testSummaryProviders):

5:43 PM Changeset in webkit [292749] by Alan Bujtas
  • 5 edits in trunk

[ iOS iPhone 12 ] fast/hidpi & fast/layers/hidpi tests are flaky text/image failing
https://bugs.webkit.org/show_bug.cgi?id=232384
<rdar://problem/84714121>

Reviewed by Wenson Hsieh.

Tools:

Rotation (initiated by UiController::simulateRotationLikeSafari) may confuse UIScreen and produce unexpected scale value.
This patch ensures that we set the scale value back to the default (2) in between test runs.
(Currently we only set this value in TestController::platformInitialize/dumpRenderTree.)

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebViewToConsistentState):

  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformResetStateToConsistentValues):

LayoutTests:

  • platform/ios/TestExpectations:
5:40 PM Changeset in webkit [292748] by mmaxfield@apple.com
  • 5 edits in trunk/Source/WebGPU

[WebGPU] WebGPU strings are UTF-8, not Latin-1
https://bugs.webkit.org/show_bug.cgi?id=239057

Reviewed by Kimmo Kinnunen.

Replace String::fromLatin1() with String::fromUTF8().

  • WebGPU/APIConversions.h:

(WebGPU::fromAPI):

  • WebGPU/Adapter.mm:

(WebGPU::Adapter::requestDevice):

  • WebGPU/ComputePipeline.mm:

(WebGPU::createConstantValues):
(WebGPU::Device::createComputePipeline):

  • WebGPU/ShaderModule.mm:

(WebGPU::earlyCompileShaderModule):
(WebGPU::Device::createShaderModule):

5:30 PM Changeset in webkit [292747] by mmaxfield@apple.com
  • 8 edits in trunk/Source/WebGPU

[WebGPU] Make sure asynchronous things are asynchronous
https://bugs.webkit.org/show_bug.cgi?id=239056

Reviewed by Kimmo Kinnunen.

This isn't strictly necessary, because these asynchronous callbacks get hooked up
to promises in the browser which only call their callbacks at microtask boundaries.
However, for native code that uses WebGPU.framework, it's probably better to make
sure the asynchronous callbacks are actually asynchronous.

  • WebGPU/Adapter.mm:

(WebGPU::Adapter::requestDevice):

  • WebGPU/Buffer.mm:

(WebGPU::Buffer::mapAsync):

  • WebGPU/ComputePipeline.mm:

(WebGPU::Device::createComputePipelineAsync):

  • WebGPU/Device.mm:

(WebGPU::Device::loseTheDevice):
(WebGPU::Device::popErrorScope):

  • WebGPU/Instance.mm:

(WebGPU::Instance::requestAdapter):

  • WebGPU/RenderPipeline.mm:

(WebGPU::Device::createRenderPipelineAsync):

  • WebGPU/ShaderModule.mm:

(WebGPU::ShaderModule::getCompilationInfo):

5:23 PM Changeset in webkit [292746] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r290770): Styles: creating a new property scrolls the input to the top of the panel
https://bugs.webkit.org/show_bug.cgi?id=237747
<rdar://problem/90130669>

Reviewed by Patrick Angle.

Remove unnecessary scrollIntoViewIfNeeded call. I added the scrollIntoViewIfNeeded call in 2017 (r222959) because,
at the time, focusing on an input field didn't scroll it into the viewport. It was possible to tab into an element
outside of the viewport and WebKit wouldn't scroll it make it visible. This is no longer the case.

  • UserInterface/Views/SpreadsheetSelectorField.js:

(WI.SpreadsheetSelectorField.prototype.startEditing):
Call focus() to scroll to the edited element.

  • UserInterface/Views/SpreadsheetTextField.js:

(WI.SpreadsheetTextField.prototype.startEditing):

5:19 PM Changeset in webkit [292745] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore/PAL

[WebGPU] Unspecified texture size values should be set to 1, not 0
https://bugs.webkit.org/show_bug.cgi?id=239052

Reviewed by Kimmo Kinnunen.

If content says "Please create a texture of size [32, 32]" then we need to pad that
to [32, 32, 1] rather than [32, 32, 0].

Test: http/tests/webgpu/webgpu/api/validation/createTexture.html

  • pal/graphics/WebGPU/Impl/WebGPUConvertToBackingContext.cpp:

(PAL::WebGPU::ConvertToBackingContext::convertToBacking):

5:14 PM Changeset in webkit [292744] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebGPU

[WebGPU] Implement missing validity checks
https://bugs.webkit.org/show_bug.cgi?id=238722

Reviewed by Kimmo Kinnunen.

Now that WebGPU objects have a notion of validity, we can implement all the
FIXMEs for validity checks.

  • WebGPU/Buffer.mm:

(WebGPU::validateCreateBuffer):
(WebGPU::Buffer::validateMapAsync const):

  • WebGPU/CommandEncoder.h:

(WebGPU::CommandEncoder::makeInvalid):

  • WebGPU/CommandEncoder.mm:

(WebGPU::CommandEncoder::validateCopyBufferToBuffer):
(WebGPU::validateImageCopyBuffer):
(WebGPU::CommandEncoder::validateClearBuffer):
(WebGPU::CommandEncoder::validateFinish const):
(WebGPU::CommandEncoder::finish):
(WebGPU::CommandEncoder::popDebugGroup):
(WebGPU::validateCopyBufferToBuffer): Deleted.
(WebGPU::validateClearBuffer): Deleted.

  • WebGPU/ComputePassEncoder.h:

(WebGPU::ComputePassEncoder::makeInvalid):

  • WebGPU/ComputePassEncoder.mm:

(WebGPU::ComputePassEncoder::popDebugGroup):

  • WebGPU/ObjectBase.h:

(WebGPU::ObjectBase::isValidToUseWith const):
(WebGPU::ObjectBase::device const):

  • WebGPU/Queue.h:

(WebGPU::Queue::device const):

  • WebGPU/Queue.mm:

(WebGPU::Queue::validateSubmit const):
(WebGPU::Queue::submit):
(WebGPU::Queue::validateWriteBuffer const):

  • WebGPU/RenderBundleEncoder.h:

(WebGPU::RenderBundleEncoder::makeInvalid):

  • WebGPU/RenderBundleEncoder.mm:

(WebGPU::RenderBundleEncoder::popDebugGroup):

  • WebGPU/RenderPassEncoder.h:

(WebGPU::RenderPassEncoder::makeInvalid):

  • WebGPU/RenderPassEncoder.mm:

(WebGPU::RenderPassEncoder::popDebugGroup):

  • WebGPU/Sampler.mm:

(WebGPU::validateCreateSampler):

  • WebGPU/Texture.mm:

(WebGPU::Device::validateCreateTexture):
(WebGPU::Device::createTexture):
(WebGPU::Texture::validateCreateView const):
(WebGPU::Texture::createView):
(WebGPU::Texture::validateImageCopyTexture):

5:10 PM Changeset in webkit [292743] by Kyle Piddington
  • 2 edits in trunk/Source/ThirdParty/ANGLE

This WebGL example crashes
https://bugs.webkit.org/show_bug.cgi?id=238953

Null-check subnodes while performing a deep copy for
loops, and branches. These nodes can be null in some cases

Reviewed by Dean Jackson.

  • src/compiler/translator/IntermNode.cpp:

(sh::TIntermBranch::TIntermBranch):
(sh::TIntermLoop::TIntermLoop):

5:07 PM Changeset in webkit [292742] by mmaxfield@apple.com
  • 6 edits
    1 copy
    1 add in trunk/Source/WebCore/PAL

[WebGPU] Implement correct ownership for WGPUQueues
https://bugs.webkit.org/show_bug.cgi?id=239050

Reviewed by Kimmo Kinnunen.

WGPUQueues and WGPUDevices have a somewhat interesting relationship: neither is
reference-counted, and the WGPUDevice owns its WGPUQueue. This means that, if client
code wants to extend the lifetime of a WGPUQueue, it has to do this by extending the
lifetime of its owning WGPUDevice. Both objects are Javascript objects, so there has to
be some mechanism for a queue to extend the lifetime of its owning device. And yet, a
device owns a queue, so a queue can't have a queue have a Ref<> to its owning device,
because that would be a circular depndency.

Here's the old ownership graph:

J A V A S C R I P T

------------------------------------------------

| |
| |
V |

PAL::WebGPU::DeviceImpl |

| \ |
| ----- |
| \ V
| -----> PAL::WebGPU::QueueImpl
| |
| |
V |

WGPUDevice |

\ |

------------- |

\ V

------------> WGPUQueue

You can see that there's a problem here: WGPUQueue has 2 owners, but it's not a
reference-counted object.

The solution is to add a new node into the ownership graph, like this:

J A V A S C R I P T

------------------------------------------------

| |
| |
V |

PAL::WebGPU::DeviceImpl |

\ \ |

\ ----- |

\ \ V

\ -----> PAL::WebGPU::QueueImpl

\ /

\ /

\ /

V V
PAL::WebGPU::DeviceHolder
/

/

/

/

V

WGPUDevice

\

-------------

\

------------> WGPUQueue

This way, both WGPUDevice and WGPUQueue have a single owner, there are no cycles,
and there is a path from PAL::WebGPU::QueueImpl to WGPUDevice.

  • PAL.xcodeproj/project.pbxproj:
  • pal/graphics/WebGPU/Impl/WebGPUDeviceHolderImpl.cpp: Added.

(PAL::WebGPU::DeviceHolderImpl::DeviceHolderImpl):
(PAL::WebGPU::DeviceHolderImpl::~DeviceHolderImpl):

  • pal/graphics/WebGPU/Impl/WebGPUDeviceHolderImpl.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUQueueImpl.h.
  • pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.cpp:

(PAL::WebGPU::DeviceImpl::DeviceImpl):
(PAL::WebGPU::DeviceImpl::destroy):
(PAL::WebGPU::DeviceImpl::createBuffer):
(PAL::WebGPU::DeviceImpl::createTexture):
(PAL::WebGPU::DeviceImpl::createSampler):
(PAL::WebGPU::DeviceImpl::createBindGroupLayout):
(PAL::WebGPU::DeviceImpl::createPipelineLayout):
(PAL::WebGPU::DeviceImpl::createBindGroup):
(PAL::WebGPU::DeviceImpl::createShaderModule):
(PAL::WebGPU::DeviceImpl::createComputePipeline):
(PAL::WebGPU::DeviceImpl::createRenderPipeline):
(PAL::WebGPU::DeviceImpl::createComputePipelineAsync):
(PAL::WebGPU::DeviceImpl::createRenderPipelineAsync):
(PAL::WebGPU::DeviceImpl::createCommandEncoder):
(PAL::WebGPU::DeviceImpl::createRenderBundleEncoder):
(PAL::WebGPU::DeviceImpl::createQuerySet):
(PAL::WebGPU::DeviceImpl::pushErrorScope):
(PAL::WebGPU::DeviceImpl::popErrorScope):
(PAL::WebGPU::DeviceImpl::setLabelInternal):
(PAL::WebGPU::DeviceImpl::~DeviceImpl): Deleted.

  • pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.h:
  • pal/graphics/WebGPU/Impl/WebGPUQueueImpl.cpp:

(PAL::WebGPU::QueueImpl::QueueImpl):
(PAL::WebGPU::QueueImpl::submit):
(PAL::WebGPU::QueueImpl::onSubmittedWorkDone):
(PAL::WebGPU::QueueImpl::writeBuffer):
(PAL::WebGPU::QueueImpl::writeTexture):
(PAL::WebGPU::QueueImpl::setLabelInternal):
(PAL::WebGPU::QueueImpl::~QueueImpl): Deleted.

  • pal/graphics/WebGPU/Impl/WebGPUQueueImpl.h:
5:04 PM Changeset in webkit [292741] by mmaxfield@apple.com
  • 17 edits in trunk/Source

[WebGPU] Hook up device.queue to the IDL
https://bugs.webkit.org/show_bug.cgi?id=239043

Reviewed by Kimmo Kinnunen.

Source/WebCore:

It seems when I imported the WebGPU IDLs, I somehow skipped GPUDevice.queue.
I was probably unsure about the ownership model. Now that the ownership model
is straightened out, this can be implemented.

This is needed to run any of the CTS tests.

  • Modules/WebGPU/GPUDevice.cpp:

(WebCore::GPUDevice::queue const):

  • Modules/WebGPU/GPUDevice.h:

(WebCore::GPUDevice::m_queue):
(WebCore::GPUDevice::m_backing): Deleted.

  • Modules/WebGPU/GPUDevice.idl:

Source/WebCore/PAL:

  • pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.cpp:

(PAL::WebGPU::DeviceImpl::DeviceImpl):
(PAL::WebGPU::DeviceImpl::queue):

  • pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.h:
  • pal/graphics/WebGPU/WebGPUDevice.h:

Source/WebKit:

  • GPUProcess/graphics/WebGPU/RemoteAdapter.cpp:

(WebKit::RemoteAdapter::requestDevice):

  • GPUProcess/graphics/WebGPU/RemoteAdapter.h:
  • GPUProcess/graphics/WebGPU/RemoteAdapter.messages.in:
  • GPUProcess/graphics/WebGPU/RemoteDevice.cpp:

(WebKit::RemoteDevice::RemoteDevice):
(WebKit::RemoteDevice::queue):

  • GPUProcess/graphics/WebGPU/RemoteDevice.h:
  • WebProcess/GPU/graphics/WebGPU/RemoteAdapterProxy.cpp:

(WebKit::WebGPU::RemoteAdapterProxy::requestDevice):

  • WebProcess/GPU/graphics/WebGPU/RemoteDeviceProxy.cpp:

(WebKit::WebGPU::RemoteDeviceProxy::RemoteDeviceProxy):
(WebKit::WebGPU::RemoteDeviceProxy::queue):

  • WebProcess/GPU/graphics/WebGPU/RemoteDeviceProxy.h:
4:48 PM Changeset in webkit [292740] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GStreamer] Debugs logs from VideoSinkCommon are missing
https://bugs.webkit.org/show_bug.cgi?id=239049

Patch by Philippe Normand <pnormand@igalia.com> on 2022-04-11
Reviewed by Adrian Perez de Castro.

When this new module was added, the logging support was lost due to missing logging category.

  • platform/graphics/gstreamer/GStreamerVideoSinkCommon.cpp:

(webKitVideoSinkSetMediaPlayerPrivate):

4:45 PM Changeset in webkit [292739] by Truitt Savell
  • 2 edits in trunk/LayoutTests

REGRESSION (249023-249029@main): [ Monterey ] http/wpt/cache-storage/cache-storage-networkprocess-crash.html is a flaky CRASH with ASSERTION FAILED: m_pageMap.isEmpty()
https://bugs.webkit.org/show_bug.cgi?id=239095

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
4:45 PM Changeset in webkit [292738] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Use WebKit::blockedError instead of ResourceLoader::blockedError in WebLoaderStrategy::scheduleLoadFromNetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=239089
<rdar://91295875>

Patch by Alex Christensen <achristensen@webkit.org> on 2022-04-11
Reviewed by Chris Dumez.

The latter dereferences the frame loader which can be null.

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):

4:39 PM Changeset in webkit [292737] by Simon Fraser
  • 2 edits in trunk/Source/WebKit

Crash under ShareableBitmap::makeCGImageCopy()
https://bugs.webkit.org/show_bug.cgi?id=239085
<rdar://91073153>

Reviewed by Wenson Hsieh.

ShareableBitmap::create() can return null, so check it before calling makeCGImageCopy()
on the result.

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::applyBackingStoreToLayer):

4:31 PM Changeset in webkit [292736] by Russell Epstein
  • 1 copy in branches/safari-614.1.10-branch

New branch.

4:28 PM Changeset in webkit [292735] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore/PAL

Sort PAL.xcodeproj.
https://bugs.webkit.org/show_bug.cgi?id=239050

Reviewed by Kimmo Kinnunen.

  • PAL.xcodeproj/project.pbxproj:
4:21 PM Changeset in webkit [292734] by Russell Epstein
  • 9 edits in trunk/Source

Versioning.

WebKit-7614.1.11

4:20 PM Changeset in webkit [292733] by Matteo Flores
  • 3 edits in trunk/LayoutTests

[ Mac ] http/tests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-live-broadcast.html is a flaky text failure https://bugs.webkit.org/show_bug.cgi?id=239091 Unreviewed test gardening. * platform/mac-wk1/TestExpectations: * platform/mac/TestExpectations:

4:05 PM Changeset in webkit [292732] by Nikos Mouchtaris
  • 10 edits in trunk

calc(): Propogate nan for min, max, clamp, and hypot
https://bugs.webkit.org/show_bug.cgi?id=238974

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-values/calc-catch-divide-by-0-expected.txt:
  • web-platform-tests/css/css-values/calc-infinity-nan-serialize-angle-expected.txt:
  • web-platform-tests/css/css-values/calc-infinity-nan-serialize-length-expected.txt:
  • web-platform-tests/css/css-values/calc-infinity-nan-serialize-time-expected.txt:

Source/WebCore:

If min, max, clamp, and hypot have a NaN value we need to propagate the NaN. This has to
do with the "infectious" NaN behavior the spec mentions. This patch also removes some
unnecessary code in CSSCalcPrimitiveValueNode::invert() and has clamp() properly serialize.
May want to separate them and expand clamp() serialization testing so it would have caught
this issue.

  • css/calc/CSSCalcOperationNode.cpp:

(WebCore::CSSCalcOperationNode::combineChildren):
(WebCore::CSSCalcOperationNode::simplifyNode):
(WebCore::CSSCalcOperationNode::evaluateOperator):

  • css/calc/CSSCalcOperationNode.h:
  • css/calc/CSSCalcPrimitiveValueNode.cpp:

(WebCore::CSSCalcPrimitiveValueNode::invert):

3:56 PM Changeset in webkit [292731] by Sam Sneddon
  • 2 edits in trunk/Tools

webkitpy.w3c.test_exporter assumes all exceptions are HTTPError
https://bugs.webkit.org/show_bug.cgi?id=238737

Reviewed by Jonathan Bedard.

This currently isn't at all easy to test, as our existing mocks for much
of this don't make it easy to throw arbitrary exceptions from given
functions.

  • Scripts/webkitpy/w3c/test_exporter.py:

(WebPlatformTestExporter.create_wpt_pull_request):

3:48 PM Changeset in webkit [292730] by Devin Rousso
  • 11 edits in trunk/Source/WebCore

[Modern Media Controls] remove unnecessary LayoutTraits methods
https://bugs.webkit.org/show_bug.cgi?id=239018
<rdar://problem/91324687>

Reviewed by Eric Carlson.

  • Modules/modern-media-controls/controls/layout-traits.js:

(LayoutTraits.prototype.knobStyleForScrubber): Deleted.
(LayoutTraits.prototype.playPauseButtonScaleFactor): Deleted.

  • Modules/modern-media-controls/controls/ios-layout-traits.js:

(IOSLayoutTraits.prototype.knobStyleForScrubber): Deleted.
(IOSLayoutTraits.prototype.playPauseButtonScaleFactor): Deleted.

  • Modules/modern-media-controls/controls/macos-layout-traits.js:

(MacOSLayoutTraits.prototype.knobStyleForScrubber): Deleted.
(MacOSLayoutTraits.prototype.playPauseButtonScaleFactor): Deleted.

  • Modules/modern-media-controls/controls/watchos-layout-traits.js:

(WatchOSLayoutTraits.prototype.knobStyleForScrubber): Deleted.
(WatchOSLayoutTraits.prototype.playPauseButtonScaleFactor): Deleted.

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

(MacOSFullscreenMediaControls):

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

(MacOSInlineMediaControls):

  • Modules/modern-media-controls/controls/play-pause-button.js:

(PlayPauseButton):

  • Modules/modern-media-controls/controls/time-control.js:

(TimeControl):
Remove these functions as they are much more controllable by having the MediaControls
subclass set the related property directly. Having them be on LayoutTraits also makes it
more difficult to handle situations where the state of the MediaControls influences the
value given to the property (e.g. whether to use the video or audio layout).

  • Modules/modern-media-controls/controls/buttons-container.js:

(ButtonsContainer):
Expose the default value of leftMargin, rightMargin, and buttonMargin so that if the
MediaControls wants to reset one of the above overrides, it doesn't need a magic number.

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

(Slider.prototype.get knobStyle): Added.
(Slider.prototype.set knobStyle): Added.
Provide a way to change the knobStyle after construction in case the MediaControls state
changes.

3:14 PM Changeset in webkit [292729] by Matt Woodrow
  • 2 edits in trunk/Source/WebCore

Use unaccelerated rendering for ImageBitmapRenderingContext's placeholder image.
https://bugs.webkit.org/show_bug.cgi?id=238846

Reviewed by Simon Fraser.

This is a blank immutable image used a placeholder until a real ImageBitmap is provided, so there's
no need to allocate to allocate an accelerated IOSurface.

  • html/canvas/ImageBitmapRenderingContext.cpp:

(WebCore::ImageBitmapRenderingContext::isAccelerated const):
(WebCore::ImageBitmapRenderingContext::setOutputBitmap):

3:03 PM Changeset in webkit [292728] by mmaxfield@apple.com
  • 14 edits in trunk/Source/WebGPU

[WebGPU] Implement missing validity checks
https://bugs.webkit.org/show_bug.cgi?id=238722

Reviewed by Kimmo Kinnunen.

Now that WebGPU objects have a notion of validity, we can implement all the
FIXMEs for validity checks.

  • WebGPU/Buffer.mm:

(WebGPU::validateCreateBuffer):
(WebGPU::Buffer::validateMapAsync const):

  • WebGPU/CommandEncoder.h:

(WebGPU::CommandEncoder::makeInvalid):

  • WebGPU/CommandEncoder.mm:

(WebGPU::CommandEncoder::validateCopyBufferToBuffer):
(WebGPU::validateImageCopyBuffer):
(WebGPU::CommandEncoder::validateClearBuffer):
(WebGPU::CommandEncoder::validateFinish const):
(WebGPU::CommandEncoder::finish):
(WebGPU::CommandEncoder::popDebugGroup):
(WebGPU::validateCopyBufferToBuffer): Deleted.
(WebGPU::validateClearBuffer): Deleted.

  • WebGPU/ComputePassEncoder.h:

(WebGPU::ComputePassEncoder::makeInvalid):

  • WebGPU/ComputePassEncoder.mm:

(WebGPU::ComputePassEncoder::popDebugGroup):

  • WebGPU/ObjectBase.h:

(WebGPU::ObjectBase::isValidToUseWith const):
(WebGPU::ObjectBase::device const):

  • WebGPU/Queue.h:

(WebGPU::Queue::device const):

  • WebGPU/Queue.mm:

(WebGPU::Queue::validateSubmit const):
(WebGPU::Queue::submit):
(WebGPU::Queue::validateWriteBuffer const):

  • WebGPU/RenderBundleEncoder.h:

(WebGPU::RenderBundleEncoder::makeInvalid):

  • WebGPU/RenderBundleEncoder.mm:

(WebGPU::RenderBundleEncoder::popDebugGroup):

  • WebGPU/RenderPassEncoder.h:

(WebGPU::RenderPassEncoder::makeInvalid):

  • WebGPU/RenderPassEncoder.mm:

(WebGPU::RenderPassEncoder::popDebugGroup):

  • WebGPU/Sampler.mm:

(WebGPU::validateCreateSampler):

  • WebGPU/Texture.mm:

(WebGPU::Device::validateCreateTexture):
(WebGPU::Device::createTexture):
(WebGPU::Texture::validateCreateView const):
(WebGPU::Texture::createView):
(WebGPU::Texture::validateImageCopyTexture):

2:59 PM Changeset in webkit [292727] by Matteo Flores
  • 2 edits in trunk/LayoutTests

REBASLINE: [ Monterey wk2 ] 4 http/tests/inspector/paymentrequest/* tests are constant text failures https://bugs.webkit.org/show_bug.cgi?id=238908 Unreviewed test gardening. * platform/mac-wk2/TestExpectations: Fixed expectations due to wk2 expectation

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

[iOS] Ignore find interaction deprecation warnings
https://bugs.webkit.org/show_bug.cgi?id=239084

Unreviewed, build fix.

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _setFindInteractionEnabled:]):

2:42 PM Changeset in webkit [292725] by jer.noble@apple.com
  • 7 edits in trunk

REGRESSION(r292051-r292022): [ iOS ] media/video-object-fit.html is a constant image failure
https://bugs.webkit.org/show_bug.cgi?id=238634
<rdar://problem/91125776>

Reviewed by Eric Carlson.

Source/WebCore:

Depending on whether setVideoFullscreenGravity() or updateVideoLayerGravity() is called first,
the wrong video gravity will be set. Rather than have two places where video gravity is set,
just have setVideoFullscreenGravity() set an ivar, and then call updateVideoLayerGravity(),
which will set the correct gravity based on whether fullscreen is active or not.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenLayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenGravity):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoLayerGravity):

Source/WebKit:

Use an std::<optional> bool rather than bool to cache values sent to WebContent, so that
when a new value is pushed in, it's sent to WebContent the first time regardless of the default
value.

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:

LayoutTests:

  • platform/ios-wk2/TestExpectations:
2:33 PM Changeset in webkit [292724] by Alan Coon
  • 9 edits in branches/safari-613.2.6.1-branch/Source

Versioning.

WebKit-7613.2.6.1.1

2:22 PM Changeset in webkit [292723] by Matteo Flores
  • 2 edits in trunk/LayoutTests

webgl/2.0.0/conformance2/glsl3/bool-type-cast-bug-uint-ivec-uvec.html crashes https://bugs.webkit.org/show_bug.cgi?id=237840 Unreviewed test gardening. * platform/mac/TestExpectations:

2:16 PM Changeset in webkit [292722] by youenn@apple.com
  • 17 edits
    1 copy
    6 adds in trunk

Expose more ServiceWorker interfaces to workers
https://bugs.webkit.org/show_bug.cgi?id=238992

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/notifications/idlharness.https.any.worker-expected.txt:
  • web-platform-tests/push-api/idlharness.https.any.worker-expected.txt:
  • web-platform-tests/service-workers/idlharness.https.any.sharedworker-expected.txt:
  • web-platform-tests/service-workers/idlharness.https.any.worker-expected.txt:

Source/WebCore:

Expose ServiceWorker, ServiceWorkerContainer and ServiceWorkerRegistration interfaces.
Update task posting to support workers and shared workers.

Tests: http/wpt/service-workers/serviceworker-in-dedicatedworker.https.html

http/wpt/service-workers/serviceworker-in-sharedworker.https.html

  • workers/Worker.cpp:
  • workers/Worker.h:
  • workers/service/SWClientConnection.cpp:
  • workers/service/ServiceWorker.idl:
  • workers/service/ServiceWorkerContainer.idl:
  • workers/service/ServiceWorkerRegistration.idl:
  • workers/service/context/SWContextManager.cpp:
  • workers/service/context/SWContextManager.h:
  • workers/shared/context/SharedWorkerContextManager.cpp:
  • workers/shared/context/SharedWorkerContextManager.h:

LayoutTests:

  • http/wpt/service-workers/resources/serviceworker-in-sharedworker.js: Added.
  • http/wpt/service-workers/resources/serviceworker-in-worker.js: Added.
  • http/wpt/service-workers/serviceworker-in-dedicatedworker.https-expected.txt: Added.
  • http/wpt/service-workers/serviceworker-in-dedicatedworker.https.html: Added.
  • http/wpt/service-workers/serviceworker-in-sharedworker.https-expected.txt: Added.
  • http/wpt/service-workers/serviceworker-in-sharedworker.https.html: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/notifications/idlharness.https.any.worker-expected.txt:
1:59 PM Changeset in webkit [292721] by sihui_liu@apple.com
  • 4 edits in trunk

Fix size computation in WebCore::StorageMap
https://bugs.webkit.org/show_bug.cgi?id=239024
rdar://88249235

Reviewed by Chris Dumez.

Source/WebCore:

We use currentSize to track size for StorageMap. There are a few issues in current implementation that can make
currentSize incorrect and may lead to overflow:

  1. When computing size of key, StorageMap uses parameter key instead of stored key. The problem is that

two Strings can be evaluated to equal while their sizeInBytes() value is different, when one String is 8-bit and
the other is 16-bit. That means removeItem() may decrease currentSize by wrong number (e.g setItem() with an
8-bit key, converting the key to 16-bit, removeItem() with the key). To fix this, StorageMap now always uses
stored key for computation.

  1. When map.take(key) or map.get(key) returns null string, StorageMap takes it as the key does not exist and

will not correctly update currentSize, but user of WebCore::StorageMap may store null string as value. To fix
this, StorageMap now check if key exists with find() function.

  1. StorageMap only uses CheckedUint32 in setItem(), but removeItem() and importItem() may cause overflow in

currentSize as mentioned above, and the error will not be caught until setItem() is called. To fix this,
StorageMap now uses CheckedUint32 in all places that update currentSize.

New test: WKWebView.LocalStorageNoSizeOverflow

  • storage/StorageMap.cpp:

(WebCore::StorageMap::setItem):
(WebCore::StorageMap::removeItem):
(WebCore::StorageMap::importItems):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/LocalStoragePersistence.mm:

(TEST):

1:49 PM Changeset in webkit [292720] by Matteo Flores
  • 2 edits in trunk/LayoutTests

REBASLINE: [ Monterey wk2 ] 4 http/tests/inspector/paymentrequest/* tests are constant text failures https://bugs.webkit.org/show_bug.cgi?id=238908 Unreviewed test gardening. * TestExpectations:

1:19 PM Changeset in webkit [292719] by Russell Epstein
  • 1 copy in branches/safari-613.2.6.3-branch

New branch.

1:19 PM Changeset in webkit [292718] by Russell Epstein
  • 1 copy in branches/safari-613.2.6.2-branch

New branch.

1:19 PM Changeset in webkit [292717] by Russell Epstein
  • 1 copy in branches/safari-613.2.6.1-branch

New branch.

1:19 PM Changeset in webkit [292716] by Russell Epstein
  • 1 copy in branches/safari-613.2.6.0-branch

New branch.

1:18 PM Changeset in webkit [292715] by Wenson Hsieh
  • 4 edits in trunk/Source/WebKit

REGRESSION (r289785): [iOS] Unable to double-click to select a word in a received email
https://bugs.webkit.org/show_bug.cgi?id=239055
rdar://90736710

Reviewed by Tim Horton.

Following r289785, double-clicking text in Mail message viewer on iOS (or more generally, any web view in an app
that does not have the "UIApplicationSupportsIndirectInputEvents" application plist key set to YES) produces a
selection that is immediately removed. This is because after double clicking, the synthetic click gesture fires
and immediately clears the selection.

In Safari (an application that sets UIApplicationSupportsIndirectInputEvents), the non-pointer gesture
recognizers (e.g. synthetic taps) don't fire because the type of the UITouch is UITouchTypeIndirectPointer,
which allows us to return NO from -gestureRecognizer:shouldReceiveTouch: for anything that is not the mouse
gesture recognizer's current mouse touch.

For apps that lack this plist key, the touch type remains UITouchTypeDirect to avoid breaking compatibility,
even for events that are generated via a pointing device (i.e. trackpad). This means that we no longer route
these events solely to the mouse gesture recognizer. To fix this, use -_isPointerTouch instead of
-[UITouch type] here. Unlike the latter, the former isn't affected by the "supports indirect input" plist key.

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView gestureRecognizer:shouldReceiveTouch:]):

  • UIProcess/ios/WKMouseGestureRecognizer.mm:

(-[WKMouseGestureRecognizer _shouldReceiveTouch:forEvent:recognizerView:]):

Also fix a similar bug here, where the check against UITouchTypeIndirectPointer instead of -_isPointerEvent
causes apps without the UIApplicationSupportsIndirectInputEvents key to lose the ability to listen for mousedown
and mouseup events when the user clicks via trackpad on iPad.

1:10 PM Changeset in webkit [292714] by ysuzuki@apple.com
  • 14 edits in trunk/Source

[JSC] Reduce use of unnecessary cryptographicallyRandom numbers
https://bugs.webkit.org/show_bug.cgi?id=239026

Reviewed by Saam Barati.

Source/JavaScriptCore:

This patch removes cryptographically random calls in some of super hot critical path.
MarkedBlock's use is very hot and it appears on Speedometer2 artrace. But this is just
a random shuffling of freelist, and WeakRandom is enough for that. This patch replaces
them with WeakRandom. It offers 0.3% improvement in Speedometer2.

  • assembler/AbstractMacroAssembler.cpp:

(JSC::AbstractMacroAssemblerBase::initializeRandom):
(WTF::printInternal):

  • assembler/AbstractMacroAssembler.h:

(JSC::AbstractMacroAssemblerBase::random):
(JSC::AbstractMacroAssembler::AbstractMacroAssembler):
(JSC::AbstractMacroAssembler::random): Deleted.

  • b3/air/AirCode.cpp:

(JSC::B3::Air::Code::Code):

  • b3/air/AirCode.h:

(JSC::B3::Air::Code::weakRandom): Deleted.

  • heap/MarkedBlockInlines.h:

(JSC::MarkedBlock::Handle::specializedSweep):

  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:

(JSC::VM::heapRandom):

Source/WebCore:

We use createVersion4UUIDStringWeak since there is no need to use cryptographically random numbers for KeyframeEffect names.

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::copyPropertiesFromSource):
(WebCore::KeyframeEffect::updateBlendingKeyframes):
(WebCore::KeyframeEffect::computeCSSTransitionBlendingKeyframes):

Source/WTF:

We add createVersion4UUIDStringWeak, which can generate UUID with WeakRandom numbers.

  • wtf/UUID.cpp:

(WTF::convertRandomUInt128ToUUIDVersion4):
(WTF::generateCryptographicallyRandomUUIDVersion4):
(WTF::generateWeakRandomUUIDVersion4):
(WTF::UUID::UUID):
(WTF::createVersion4UUIDStringWeak):

  • wtf/UUID.h:
  • wtf/WeakRandom.h:
1:04 PM Changeset in webkit [292713] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, use std::forward instead of WTFMove since it becomes template typename Vector&&
https://bugs.webkit.org/show_bug.cgi?id=239025

  • bytecode/ObjectPropertyConditionSet.h:

(JSC::ObjectPropertyConditionSet::create):

12:02 PM Changeset in webkit [292712] by Wenson Hsieh
  • 5 edits in trunk

[Mail Compose] Preserve attachment identifiers when cloning attachment-backed images
https://bugs.webkit.org/show_bug.cgi?id=239040
rdar://91527065

Reviewed by Aditya Keerthi.

Source/WebCore:

Override HTMLImageElement's cloneElementWithoutAttributesAndChildren method so that it additionally clones the
attachment element underneath the original image element, if it exists. This ensures that an image element that
is copied from existing attachment-backed images using cloneNode will contain an attachment in its shadow
root that points to the same _WKAttachment in the embedding client.

Test: WKAttachmentTests.CloneImageWithAttachment

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::cloneElementWithoutAttributesAndChildren):

  • html/HTMLImageElement.h:

Tools:

Add an API test to exercise the change.

  • TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:

(TestWebKitAPI::TEST):

9:47 AM Changeset in webkit [292711] by Russell Epstein
  • 9 edits in branches/safari-614.1.9-branch/Source

Versioning.

WebKit-7614.1.9.3

9:18 AM Changeset in webkit [292710] by J Pascoe
  • 4 edits in trunk/Source/WebKit

[WebAuthn] Ensure requestPin callback on main thread
https://bugs.webkit.org/show_bug.cgi?id=238962
rdar://problem/91446051

Reviewed by Brent Fulgham.

This callback gets called by a non-main thread when making calls via
ASA. This patch uses ensureOnMainThread to ensure the completion handler
is called on the main thread. It also upgrades the callback asserts to
RELEASE_ASSERTs to avoid this issue in the future.

  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(WebKit::LocalAuthenticator::getAssertion):

  • UIProcess/WebAuthentication/Cocoa/WebAuthenticationPanelClient.mm:

(WebKit::WebAuthenticationPanelClient::requestPin const):

  • UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp:

(WebKit::CtapAuthenticator::continueGetNextAssertionAfterResponseReceived):
(WebKit::CtapAuthenticator::continueRequestPinAfterGetKeyAgreement):

9:13 AM Changeset in webkit [292709] by Russell Epstein
  • 1 copy in tags/WebKit-7614.1.9.2

Tag WebKit-7614.1.9.2.

8:32 AM Changeset in webkit [292708] by Andres Gonzalez
  • 2 edits
    3 adds
    2 deletes in trunk/LayoutTests

Rewrite accessibility/table-modification-crash.html to test that the AX tree reflects the changes made to the table rows.
https://bugs.webkit.org/show_bug.cgi?id=239013
<rdar://problem/91498453>

Reviewed by Darin Adler.

Renamed and rewrote this test to actually test more than just that it
doesn't crash. Now we check that the AX tree reflects the changes of
adding and removing table rows.

  • accessibility/table-add-remove-row-expected.txt: Added.
  • accessibility/table-add-remove-row.html: Added.
  • accessibility/table-modification-crash-expected.txt: Removed.
  • accessibility/table-modification-crash.html: Removed.
  • platform/glib/accessibility/table-add-remove-row-expected.txt:
  • platform/win/TestExpectations:
6:43 AM Changeset in webkit [292707] by Andres Gonzalez
  • 3 edits in trunk/Tools

TestRunner’s calls to [WebAccessibilityObjectWrapper accessibilityArrayAttributeCount:] need to be dispatch to the AX secondary thread.
https://bugs.webkit.org/show_bug.cgi?id=239010
<rdar://problem/91493569>

Reviewed by Chris Fleizach.

Added AccessibilityUIElement::arrayAttributeCount to dispatch to the AX
secondary thread calls to the platform wrapper's
accessibilityArrayAttributeCount. Replaced the instances to the
platform wrapper's method with the calls to this new method.

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::arrayAttributeCount const):
(WTR::AccessibilityUIElement::selectedChildrenCount const):
(WTR::AccessibilityUIElement::rowCount):
(WTR::AccessibilityUIElement::columnCount):

5:53 AM Changeset in webkit [292706] by Nikolas Zimmermann
  • 18 edits in trunk/Source/WebCore

[LBSE] Activate SVG transform support through layers
https://bugs.webkit.org/show_bug.cgi?id=237711

Reviewed by Rob Buis.

Activate transforms for SVG layers.

Use the flag to keep track of the presence of SVG transformations
on a renderer. CSS/HTML renderers can rely only on the RenderStyle
to determine if transformations are applied, whereas SVG has to
consult additional sources, such as the SVG 'transform' attribute.

A SVG renderer with the 'HasSVGTransform' flag set should behave
like any SVG/HTML renderer that has CSS transformations applied.

With this patch applied SVG transform and CSS transforms can
be applied to <g> / <rect> elements in LBSE.

Covered by existing tests, no change in behaviour.

  • platform/graphics/transforms/TransformationMatrix.cpp:

(WebCore::TransformationMatrix::multiplyAffineTransform):

  • platform/graphics/transforms/TransformationMatrix.h:
  • rendering/RenderBox.cpp:

(WebCore::RenderBox::updateLayerTransform): Deleted.

  • rendering/RenderBox.h:
  • rendering/RenderLayer.cpp:

(WebCore::canCreateStackingContext):
(WebCore::RenderLayer::currentTransform const):

  • rendering/RenderLayerModelObject.cpp:

(WebCore::RenderLayerModelObject::updateLayerTransform):
(WebCore::RenderLayerModelObject::applySVGTransform const):

  • rendering/RenderLayerModelObject.h:
  • rendering/RenderObject.cpp:

(WebCore::RenderObject::setHasSVGTransform):

  • rendering/RenderObject.h:

(WebCore::RenderObject::hasSVGTransform const):
(WebCore::RenderObject::hasTransform const):

  • rendering/svg/RenderSVGContainer.cpp:

(WebCore::SVGLayerTransformUpdater::SVGLayerTransformUpdater):
(WebCore::SVGLayerTransformUpdater::~SVGLayerTransformUpdater):
(WebCore::RenderSVGContainer::layout):

  • rendering/svg/RenderSVGContainer.h:

(WebCore::RenderSVGContainer::updateLayerInformation): Deleted.

  • rendering/svg/RenderSVGModelObject.cpp:

(WebCore::RenderSVGModelObject::updateFromStyle):

  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::updateFromStyle):

  • rendering/svg/RenderSVGShape.cpp:

(WebCore::RenderSVGShape::layout):
(WebCore::RenderSVGShape::applyTransform const):

  • rendering/svg/RenderSVGShape.h:
  • rendering/svg/RenderSVGTransformableContainer.cpp:

(WebCore::RenderSVGTransformableContainer::updateFromStyle):
(WebCore::RenderSVGTransformableContainer::applyTransform const):

  • svg/SVGGraphicsElement.cpp:

(WebCore::SVGGraphicsElement::animatedLocalTransform const):

1:29 AM Changeset in webkit [292705] by youenn@apple.com
  • 3 edits in trunk/Tools

Split TestWebKitAPI.GPUProcess.ExitsUnderMemoryPressureWebRTCCase in more tests
https://bugs.webkit.org/show_bug.cgi?id=238927

Reviewed by Eric Carlson.

Split the tests in sub tests (microphone, camera, camera+video codec).

  • TestWebKitAPI/Tests/WebKit/getUserMedia.html:
  • TestWebKitAPI/Tests/WebKitCocoa/GPUProcess.mm:

(TEST):

1:20 AM WebKitGTK/2.36.x edited by Philippe Normand
(diff)
12:51 AM Changeset in webkit [292704] by commit-queue@webkit.org
  • 6 edits in trunk/Tools/buildstream

[Flatpak SDK] Almost-easter eggs update
https://bugs.webkit.org/show_bug.cgi?id=239048

Patch by Philippe Normand <pnormand@igalia.com> on 2022-04-11
Reviewed by Adrian Perez de Castro.

  • elements/sdk/clangd.bst: Bump to version 14.
  • elements/sdk/gst-plugins-bad.bst: Enable the new libva plugin, going to be useful as

replacement for gstreamer-vaapi.

  • elements/sdk/libwpe.bst: Bump to version 1.12.
  • elements/sdk/rr.bst: Bump to latest master version.
  • elements/sdk/wpebackend-fdo.bst: Bump to version 1.12.

Apr 10, 2022:

11:17 PM Changeset in webkit [292703] by Chris Dumez
  • 2 edits in trunk/Tools

Unreviewed, fix use of ASCIILiteral for a literal containing non-ASCII characters after r292251.

  • TestWebKitAPI/Tests/WebCore/ParsedContentType.cpp:

(TestWebKitAPI::TEST):

11:13 PM Changeset in webkit [292702] by Chris Dumez
  • 2 edits in trunk/Tools

Unreviewed, fix use of ASCIILiteral for a literal containing non-ASCII characters after r292251.

  • TestWebKitAPI/Tests/WebCore/PublicSuffix.cpp:

(TestWebKitAPI::TEST_F):

10:29 PM Changeset in webkit [292701] by Chris Dumez
  • 6 edits in trunk/Source

Unreviewed Windows build fix after r292696.

Source/WebCore:

  • platform/win/LoggingWin.cpp:

(WebCore::logLevelString):

Source/WebCore/PAL:

  • pal/win/LoggingWin.cpp:

(PAL::logLevelString):

Source/WebKit:

  • Platform/win/LoggingWin.cpp:

(WebKit::logLevelString):

10:27 PM Changeset in webkit [292700] by Chris Dumez
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed WatchOS build fix.

  • runtime/MathCommon.cpp:

(JSC::fdlibmPow):

10:23 PM Changeset in webkit [292699] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Unreviewed Windows build fix after r292696.

  • wtf/win/LoggingWin.cpp:

(WTF::logLevelString):

10:21 PM Changeset in webkit [292698] by Chris Dumez
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed WatchOS build fix.

  • runtime/MathCommon.cpp:

(JSC::fdlibmPow):

9:57 PM Changeset in webkit [292697] by ysuzuki@apple.com
  • 42 edits
    4 adds in trunk

[JSC] DFG / FTL should be aware of JSString's String replacement
https://bugs.webkit.org/show_bug.cgi?id=238918

Reviewed by Saam Barati.

JSTests:

  • stress/resolve-rope-get-by-val.js: Added.

(shouldBe):
(test):

  • stress/resolve-rope-string-char-at.js: Added.

(shouldBe):
(test):

  • stress/resolve-rope-string-char-code-at.js: Added.

(shouldBe):
(test):

  • stress/resolve-rope-string-code-point-at.js: Added.

(shouldBe):
(test):

Source/JavaScriptCore:

After r289359, String in JSString* can be replaced even after it is resolved. When atomizing String inside JSString*,
we may replace the existing one to new AtomStringImpl if different AtomStringImpl is already registered in the
AtomStringTable. However, DFG / FTL GetIndexedPropertyStorage assumes that StringImpl* in JSString* never changes after
resolving. And this is wrong.

This patch decouples String handling in GetIndexedPropertyStorage as ResolveRope DFG node. GetIndexedPropertyStorage no
longer handles JSString and it is now tailored to object cases. ResolveRope does not expose StringImpl::m_data pointer,
and instead it keeps resolved JSString*. After this change,

GetByVal(String:@0, Untyped:@1, GetIndexedProperty(String:@0))

is changed to

GetByVal(ResolveRope(String:@0), Untyped:@1)

Also, we revisit all the value(...) callsites (by changing function name) and ensure that we have no code assuming String
cannot be changed after resolving.

A/B test ensured that this is perf-neutral.

  • b3/B3Generate.cpp:

(JSC::B3::generateToAir):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitEqualityOpImpl):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGNode.h:

(JSC::DFG::Node::hasStorageChild const):
(JSC::DFG::Node::storageChildIndex):

  • dfg/DFGNodeType.h:
  • dfg/DFGOperations.cpp:

(JSC::DFG::JSC_DEFINE_JIT_OPERATION):

  • dfg/DFGOperations.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileGetCharCodeAt):
(JSC::DFG::SpeculativeJIT::compileGetByValOnString):

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::compileStringCodePointAt):

  • dfg/DFGTypeCheckHoistingPhase.cpp:

(JSC::DFG::TypeCheckHoistingPhase::identifyRedundantStructureChecks):
(JSC::DFG::TypeCheckHoistingPhase::identifyRedundantArrayChecks):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLCompile.cpp:

(JSC::FTL::compile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileGetIndexedPropertyStorage):
(JSC::FTL::DFG::LowerDFGToB3::compileResolveRope):
(JSC::FTL::DFG::LowerDFGToB3::compileStringCharAtImpl):
(JSC::FTL::DFG::LowerDFGToB3::compileStringCharCodeAt):
(JSC::FTL::DFG::LowerDFGToB3::compileStringCodePointAt):

  • jsc.cpp:

(JSC_DEFINE_HOST_FUNCTION):

  • runtime/HashMapImplInlines.h:

(JSC::jsMapHashImpl):

  • runtime/InternalFunction.cpp:

(JSC::InternalFunction::name):
(JSC::InternalFunction::displayName):
(JSC::InternalFunction::calculatedDisplayName):

  • runtime/InternalFunction.h:
  • runtime/JSBoundFunction.h:
  • runtime/JSCJSValueInlines.h:

(JSC::toPreferredPrimitiveType):

  • runtime/JSModuleLoader.cpp:

(JSC::JSModuleLoader::importModule):

  • runtime/JSONObject.cpp:

(JSC::Stringifier::appendStringifiedValue):

  • runtime/JSPropertyNameEnumerator.cpp:

(JSC::JSPropertyNameEnumerator::computeNext):

  • runtime/JSRemoteFunction.h:
  • runtime/Operations.h:

(JSC::jsString):
(JSC::compareBigIntToOtherPrimitive):
(JSC::compareBigInt32ToOtherPrimitive):

  • runtime/RegExpMatchesArray.h:

(JSC::createRegExpMatchesArray):

  • runtime/StringPrototype.cpp:

(JSC::JSC_DEFINE_JIT_OPERATION):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/SymbolConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • tools/JSDollarVM.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

Source/WebCore:

  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::reportViolationForUnsafeEval):

9:40 PM Changeset in webkit [292696] by Chris Dumez
  • 131 edits in trunk

Finish porting code base to String::fromLatin1() and make String(const char*) private
https://bugs.webkit.org/show_bug.cgi?id=238977

Reviewed by Darin Adler.

Source/WebCore:

  • Modules/mediastream/gstreamer/GStreamerDataChannelHandler.cpp:

(WebCore::GStreamerDataChannelHandler::createDataChannelEvent):

  • Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp:

(WebCore::fetchDescription):
(WebCore::GStreamerMediaEndpoint::storeRemoteMLineInfo):
(WebCore::GStreamerMediaEndpoint::addRemoteStream):
(WebCore::GStreamerMediaEndpoint::createSessionDescriptionSucceeded):
(WebCore::GStreamerMediaEndpoint::collectTransceivers):

  • Modules/mediastream/gstreamer/GStreamerRtpTransceiverBackend.cpp:

(WebCore::GStreamerRtpTransceiverBackend::mid):

  • Modules/mediastream/gstreamer/GStreamerStatsCollector.cpp:

(WebCore::fillRTCStats):
(WebCore::fillRTCRTPStreamStats):
(WebCore::fillOutboundRTPStreamStats):

  • Modules/mediastream/gstreamer/GStreamerWebRTCUtils.cpp:

(WebCore::toRTCEncodingParameters):

  • platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp:

(WebCore::AudioTrackPrivateGStreamer::updateConfigurationFromCaps):

  • platform/graphics/gstreamer/eme/GStreamerEMEUtilities.h:

(WebCore::ProtectionSystemEvents::ProtectionSystemEvents):

  • platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:

(WebCore::SourceBufferPrivateGStreamer::platformMaximumBufferSize const):

  • platform/graphics/opengl/ExtensionsGLOpenGLCommon.cpp:

(WebCore::ExtensionsGLOpenGLCommon::ExtensionsGLOpenGLCommon):

  • platform/graphics/opengl/ExtensionsGLOpenGLES.cpp:

(WebCore::ExtensionsGLOpenGLES::getExtensions):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:

(WebCore::GraphicsContextGLOpenGL::getString):

Source/WebDriver:

  • Session.cpp:

(WebDriver::Session::pageLoadStrategyString const):

  • WebDriverService.cpp:

(WebDriver::WebDriverService::run):
(WebDriver::WebDriverService::findSessionOrCompleteWithError):
(WebDriver::WebDriverService::processCapabilities const):
(WebDriver::WebDriverService::newSession):
(WebDriver::WebDriverService::connectToBrowser):
(WebDriver::processPauseAction):
(WebDriver::processNullAction):
(WebDriver::processKeyAction):
(WebDriver::processPointerMoveAction):
(WebDriver::processPointerAction):
(WebDriver::processWheelAction):
(WebDriver::processPointerParameters):
(WebDriver::processInputActionSequence):
(WebDriver::WebDriverService::performActions):

  • gtk/WebDriverServiceGtk.cpp:

(WebDriver::WebDriverService::platformCapabilities):
(WebDriver::WebDriverService::platformParseCapabilities const):

  • wpe/WebDriverServiceWPE.cpp:

(WebDriver::WebDriverService::platformCapabilities):
(WebDriver::WebDriverService::platformParseCapabilities const):

Source/WTF:

  • wtf/text/WTFString.h:
  • wtf/unix/LanguageUnix.cpp:

(WTF::platformLanguage):

  • wtf/unix/LoggingUnix.cpp:

(WTF::logLevelString):

Tools:

  • TestWebKitAPI/Tests/WTF/CrossThreadCopier.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/FileSystem.cpp:

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WTF/HexNumber.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/StringBuilder.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/StringImpl.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/StringOperators.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/StringView.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/URL.cpp:

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WTF/Vector.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/WTFString.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebCore/FileMonitor.cpp:
  • TestWebKitAPI/Tests/WebCore/HTTPHeaderField.cpp:

(TEST):

  • TestWebKitAPI/Tests/WebCore/KeyedCoding.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/PublicSuffix.cpp:

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebCore/PushDatabase.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/SharedBuffer.cpp:

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebCore/URLParserTextEncoding.cpp:

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebCore/cocoa/DatabaseTrackerTest.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm:

(testIdentity2):

  • TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:

(TestWebKitAPI::signUnlinkableTokenAndSendSecretToken):

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:
  • TestWebKitAPI/Tests/mac/ContextMenuCanCopyURL.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/WebViewCanPasteURL.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/WillPerformClientRedirectToURLCrash.mm:

(-[WebKit1TestDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:]):

  • TestWebKitAPI/cocoa/HTTPServer.mm:

(TestWebKitAPI::Connection::webSocketHandshake):
(TestWebKitAPI::HTTPServer::testCertificate):
(TestWebKitAPI::HTTPServer::testPrivateKey):

9:25 PM Changeset in webkit [292695] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

[WinCairo] Child process happens to remain alive even after IPC::Connection is disconnected
https://bugs.webkit.org/show_bug.cgi?id=204221

Reviewed by Don Olmstead.

After running layout tests, I observed some processes of
WebKitWebProcess.exe and WebKitNetworkProcess.exe were still
alive. These child processed should exit if the named pipe of
IPC::Connection is broken.

  • Platform/IPC/win/ConnectionWin.cpp:

(IPC::Connection::readEventHandler): Call connectionDidClose() in the case of ERROR_BROKEN_PIPE.

9:22 PM Changeset in webkit [292694] by commit-queue@webkit.org
  • 18 edits in trunk/Source/WebCore

Unreviewed, reverting r292690.
https://bugs.webkit.org/show_bug.cgi?id=239060

fast/multicol tests are randomly failing

Reverted changeset:

"[LBSE] Activate SVG transform support through layers"
https://bugs.webkit.org/show_bug.cgi?id=237711
https://commits.webkit.org/r292690

6:32 PM Changeset in webkit [292693] by Chris Dumez
  • 5 edits in trunk/Source/WebCore

Update listMarkerTextForNodeAndPosition() to return a StringView instead of a String
https://bugs.webkit.org/show_bug.cgi?id=239022
<rdar://problem/91509602>

Reviewed by Darin Adler.

Update listMarkerTextForNodeAndPosition() to return a StringView instead of a String. listMarkerTextForNodeAndPosition()
has a StringView internally and none it its call sites actually need a String. The call sites either use StringBuilder
or want a NSString*. This avoids unnecessary String allocations.

  • accessibility/AccessibilityObject.cpp:

(WebCore::listMarkerTextForNode):
(WebCore::AccessibilityObject::listMarkerTextForNodeAndPosition):

  • accessibility/AccessibilityObject.h:
  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm:

(AXAttributedStringAppendText):
(-[WebAccessibilityObjectWrapperBase contentForSimpleRange:attributed:]):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange:spellCheck:]):

4:54 PM Changeset in webkit [292692] by Chris Dumez
  • 10 edits in trunk/Source/WebCore

Avoid redundant calls to findHTTPHeaderName()
https://bugs.webkit.org/show_bug.cgi?id=239021

Reviewed by Darin Adler.

Some call sites of HTTPHeaderMap::add() / set() or ResourceResponse::addHTTPHeaderField() / setHTTPHeaderField()
have already called findHTTPHeaderName() and determined that this wasn't a common header. As a result, we were
doing redundant findHTTPHeaderName() checks inside those functions. To avoid this, add overloads that take in
a header that we already know is uncommon.

  • Modules/fetch/FetchHeaders.cpp:

(WebCore::appendToHeaderMap):
(WebCore::FetchHeaders::filterAndFill):

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::resourceResponse const):

  • Modules/websockets/WebSocketHandshake.cpp:

(WebCore::WebSocketHandshake::readHTTPHeaders):

  • platform/network/CacheValidation.cpp:

(WebCore::updateResponseHeadersAfterRevalidation):

  • platform/network/HTTPHeaderMap.cpp:

(WebCore::HTTPHeaderMap::setUncommonHeader):
(WebCore::HTTPHeaderMap::add):
(WebCore::HTTPHeaderMap::addUncommonHeader):

  • platform/network/HTTPHeaderMap.h:
  • platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::setHTTPHeaderField):
(WebCore::ResourceResponseBase::setUncommonHTTPHeaderField):
(WebCore::ResourceResponseBase::addHTTPHeaderField):
(WebCore::ResourceResponseBase::addUncommonHTTPHeaderField):

  • platform/network/ResourceResponseBase.h:
  • workers/service/ServiceWorkerJob.cpp:

(WebCore::ServiceWorkerJob::fetchScriptWithContext):

4:52 PM Changeset in webkit [292691] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[Line clamp] Move line clamp only code from RenderBlockFlow to RenderDeprecatedFlexibleBox
https://bugs.webkit.org/show_bug.cgi?id=239041

Reviewed by Antti Koivisto.

  • rendering/RenderBlockFlow.cpp:

(WebCore::shouldIncludeLinesForParentLineCount): Deleted.
(WebCore::RenderBlockFlow::clearTruncation): Deleted.

  • rendering/RenderBlockFlow.h:
  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::shouldIncludeLinesForParentLineCount):
(WebCore::clearTruncation):
(WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
(WebCore::RenderDeprecatedFlexibleBox::clearLineClamp):

3:51 PM Changeset in webkit [292690] by Nikolas Zimmermann
  • 18 edits in trunk/Source/WebCore

[LBSE] Activate SVG transform support through layers
https://bugs.webkit.org/show_bug.cgi?id=237711

Reviewed by Rob Buis.

Activate transforms for SVG layers.

Use the flag to keep track of the presence of SVG transformations
on a renderer. CSS/HTML renderers can rely only on the RenderStyle
to determine if transformations are applied, whereas SVG has to
consult additional sources, such as the SVG 'transform' attribute.

A SVG renderer with the 'HasSVGTransform' flag set should behave
like any SVG/HTML renderer that has CSS transformations applied.

With this patch applied SVG transform and CSS transforms can
be applied to <g> / <rect> elements in LBSE. However, the order
of the matrix multiplication is not correct yet for SVG -- that
will be adressed in a follow-up patch.

Covered by existing tests, no change in behaviour.

  • platform/graphics/transforms/TransformationMatrix.cpp:

(WebCore::TransformationMatrix::multiplyAffineTransform):

  • platform/graphics/transforms/TransformationMatrix.h:
  • rendering/RenderBox.cpp:

(WebCore::RenderBox::updateLayerTransform): Deleted.

  • rendering/RenderBox.h:
  • rendering/RenderLayer.cpp:

(WebCore::canCreateStackingContext):
(WebCore::RenderLayer::currentTransform const):

  • rendering/RenderLayerModelObject.cpp:

(WebCore::RenderLayerModelObject::updateLayerTransform):
(WebCore::RenderLayerModelObject::applySVGTransform const):

  • rendering/RenderLayerModelObject.h:
  • rendering/RenderObject.cpp:

(WebCore::RenderObject::setHasSVGTransform):

  • rendering/RenderObject.h:

(WebCore::RenderObject::hasSVGTransform const):
(WebCore::RenderObject::hasTransform const):

  • rendering/svg/RenderSVGContainer.cpp:

(WebCore::SVGLayerTransformUpdater::SVGLayerTransformUpdater):
(WebCore::SVGLayerTransformUpdater::~SVGLayerTransformUpdater):
(WebCore::RenderSVGContainer::layout):

  • rendering/svg/RenderSVGContainer.h:

(WebCore::RenderSVGContainer::updateLayerInformation): Deleted.

  • rendering/svg/RenderSVGModelObject.cpp:

(WebCore::RenderSVGModelObject::updateFromStyle):

  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::updateFromStyle):

  • rendering/svg/RenderSVGShape.cpp:

(WebCore::RenderSVGShape::layout):
(WebCore::RenderSVGShape::applyTransform const):

  • rendering/svg/RenderSVGShape.h:
  • rendering/svg/RenderSVGTransformableContainer.cpp:

(WebCore::RenderSVGTransformableContainer::updateFromStyle):
(WebCore::RenderSVGTransformableContainer::applyTransform const):

  • svg/SVGGraphicsElement.cpp:

(WebCore::SVGGraphicsElement::animatedLocalTransform const):

3:01 PM BuildingCairoOnWindows edited by Fujii Hironori
(diff)
2:56 PM Changeset in webkit [292689] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

Line clamp specific line-count code should be in RenderDeprecatedFlexibleBox
https://bugs.webkit.org/show_bug.cgi?id=239029

Reviewed by Antti Koivisto.

Moving the line-clamp specific code to RenderDeprecatedFlexibleBox enables us to
make RenderBlockFlow::lineCount "children inline" only.

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::lineCountFor):
(WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):

2:29 PM BuildingCairoOnWindows edited by Fujii Hironori
(diff)
2:20 PM BuildingCairoOnWindows edited by Fujii Hironori
(diff)
2:09 PM BuildingCairoOnWindows edited by Fujii Hironori
(diff)
9:50 AM Changeset in webkit [292688] by commit-queue@webkit.org
  • 8 edits
    4 deletes in trunk/Tools/buildstream

[Flatpak SDK] Pre-easter eggs update
https://bugs.webkit.org/show_bug.cgi?id=239007

Patch by Philippe Normand <pnormand@igalia.com> on 2022-04-10
Reviewed by Adrian Perez de Castro.

  • elements/freedesktop-sdk.bst: Bump junction.
  • elements/qt5/qtbase.bst: Remove reference to removed gtk3 recipe.
  • elements/sdk-platform.bst: Replace duplicate recipes with their upstream version.
  • elements/sdk/adwaita-icon-theme.bst: Remove reference to removed gtk3 recipe.
  • elements/sdk/bubblewrap.bst: Removed.
  • elements/sdk/ffmpeg.bst: Bump to version 5, inspired from upstream version of the recipe.
  • elements/sdk/gst-plugins-base.bst: Remove reference to removed gtk3 recipe.
  • elements/sdk/gst-plugins-good.bst: Remove reference to removed gtk3 recipe.
  • elements/sdk/gtk+-3.bst: Removed.
  • patches/fdo-0001-shared-mime-info-Backport-meson-0.60-build-fix.patch: Removed.
  • patches/gtk-gcc11-build-fix.patch: Removed.
9:47 AM Changeset in webkit [292687] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak] clangd wrapper improvements
https://bugs.webkit.org/show_bug.cgi?id=239032

Patch by Philippe Normand <pnormand@igalia.com> on 2022-04-10
Reviewed by Adrian Perez de Castro.

The path of the compile_commands.json is now implied from the webkit-clangd command-line
arguments, defaulting to the GTK/Release configuration.

The path mappings were incorrect, the src part being /app/webkit/{Debug,Release}, which are
invalid paths in the sandbox. They should instead point to
/app/webkit/WebKitBuild/{Debug,Release}.

Finally, there should be no need to add a path mapping for /usr/include because clangd is
launched in the sandbox runtime, where /usr/include/ is already bind-mounded by
flatpak/bwrap.

  • flatpak/webkit-clangd:
3:26 AM WebKitGTK/2.36.x edited by Adrian Perez de Castro
(diff)
12:29 AM Changeset in webkit [292686] by Tyler Wilcock
  • 7 edits in trunk

Fix accessibility/aria-invalid.html in isolated tree mode
https://bugs.webkit.org/show_bug.cgi?id=238978

Reviewed by Chris Fleizach.

Source/WebCore:

With this patch, we update the isolated tree when the aria-invalid
attribute changes.

Fixes accessibility/aria-invalid.html in isolated tree mode.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::updateIsolatedTree):

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::updateNodeProperty):
Drive-by re-ordering of case AXPropertyName::IdentifierAttribute such that this
function handles properties in alphabetical order.

LayoutTests:

  • accessibility/aria-invalid-expected.txt:
  • accessibility/aria-invalid.html:

Rewrite to call debug only once at the end of the test. Also made
this test use accessibleElementById instead of
accessibilityController.focusedElement.

  • resources/accessibility-helper.js:

Add new expect function, which is like the more ubiquitous
shouldBe from js-test.js, but returns the output as a string instead
of calling debug to output to a console DOM element.

Note: See TracTimeline for information about the timeline view.