[webkit-changes] [WebKit/WebKit] 0420e9: [macOS] background tab suspension - 3.5% MBA8, 2 me...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 0420e99f106002c9da9e4803154ae715289a3087 https://github.com/WebKit/WebKit/commit/0420e99f106002c9da9e4803154ae715289a3087 Author: Miguel Salinas Date: 2023-04-21 (Fri, 21 Apr 2023) Changed paths: M Source/WebKit/UIProcess/ProcessThrottler.cpp M Source/WebKit/UIProcess/ProcessThrottler.h M Source/WebKit/UIProcess/WebPageProxy.cpp M Source/WebKit/UIProcess/WebPageProxy.h M Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm Log Message: --- [macOS] background tab suspension - 3.5% MBA8,2 membuster regression https://bugs.webkit.org/show_bug.cgi?id=255226 rdar://106969950 Reviewed by Chris Dumez. Membuster sends a low memory signal to web content processes to measure the memory impact of our low memory handler. When runningboard throttling is enabled on MBA8,2 the web content process never gets scheduled due to the machine only having 2 cores and the web content process having a priority of darwin_bg. This fix holds the foreground assertion for 8 minutes after the last foreground activity is released to ensure we have enough time to handle the low memory signal in membuster. I also tried having the web content process take an assertion on itself for the duration of the low memory handler but that did not fix the regression. * Source/WebKit/UIProcess/ProcessThrottler.cpp: (WebKit::ProcessThrottlerTimedActivity::ProcessThrottlerTimedActivity): (WebKit::ProcessThrottlerTimedActivity::operator=): (WebKit::ProcessThrottlerTimedActivity::activityTimedOut): (WebKit::ProcessThrottlerTimedActivity::updateTimer): (WebKit::ProcessThrottler::TimedActivity::TimedActivity): Deleted. (WebKit::ProcessThrottler::TimedActivity::operator=): Deleted. (WebKit::ProcessThrottler::TimedActivity::activityTimedOut): Deleted. (WebKit::ProcessThrottler::TimedActivity::updateTimer): Deleted. * Source/WebKit/UIProcess/ProcessThrottler.h: * Source/WebKit/UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::ProcessActivityState::ProcessActivityState): (WebKit::WebPageProxy::ProcessActivityState::takeVisibleActivity): (WebKit::WebPageProxy::ProcessActivityState::takeAudibleActivity): (WebKit::WebPageProxy::ProcessActivityState::takeCapturingActivity): (WebKit::WebPageProxy::ProcessActivityState::reset): (WebKit::WebPageProxy::ProcessActivityState::dropVisibleActivity): (WebKit::WebPageProxy::ProcessActivityState::dropAudibleActivity): (WebKit::WebPageProxy::ProcessActivityState::dropCapturingActivity): (WebKit::WebPageProxy::ProcessActivityState::hasValidVisibleActivity const): (WebKit::WebPageProxy::ProcessActivityState::hasValidAudibleActivity const): (WebKit::WebPageProxy::ProcessActivityState::hasValidCapturingActivity const): (WebKit::WebPageProxy::ProcessActivityState::takeOpeningAppLinkActivity): (WebKit::WebPageProxy::ProcessActivityState::dropOpeningAppLinkActivity): (WebKit::WebPageProxy::ProcessActivityState::hasValidOpeningAppLinkActivity const): (WebKit::WebPageProxy::close): (WebKit::WebPageProxy::updateThrottleState): (WebKit::WebPageProxy::clearAudibleActivity): (WebKit::WebPageProxy::waitForDidUpdateActivityState): (WebKit::WebPageProxy::resetStateAfterProcessExited): * Source/WebKit/UIProcess/WebPageProxy.h: * Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::willOpenAppLink): Canonical link: https://commits.webkit.org/263264@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] cd1990: [iOS] Network process unresponsive due to suspension
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: cd1990281851f02d502f18377b4355dcd1e5f2bf https://github.com/WebKit/WebKit/commit/cd1990281851f02d502f18377b4355dcd1e5f2bf Author: Miguel Salinas Date: 2023-04-17 (Mon, 17 Apr 2023) Changed paths: M Source/WebKit/UIProcess/ProcessThrottler.h M Source/WebKit/UIProcess/WebProcessProxy.cpp Log Message: --- [iOS] Network process unresponsive due to suspension https://bugs.webkit.org/show_bug.cgi?id=255417 rdar://105621258 Reviewed by Chris Dumez. If a WebContent process is a standalone worker process with a foreground assertion/activity (e.g. a worker for a foreground view) and then a page gets added to the process it will never take an assertion on the network process as it should. We need to make sure we call WebProcessProxy::didChangeThrottleState() when a standalone worker process becomes a web content process with a page. WebProcessProxy::didChangeThrottleState() checks isStandaloneServiceWorkerProcess() and drops all network assertions if it returns true. * Source/WebKit/UIProcess/ProcessThrottler.h: (WebKit::ProcessThrottler::currentState): * Source/WebKit/UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::addExistingWebPage): Canonical link: https://commits.webkit.org/263031@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] cf8a67: [macOS] Stop ProcessThrottler for dead processes
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: cf8a678029615e2ea281f759ff40b543fa94a67d https://github.com/WebKit/WebKit/commit/cf8a678029615e2ea281f759ff40b543fa94a67d Author: Miguel Salinas Date: 2023-04-04 (Tue, 04 Apr 2023) Changed paths: M Source/WebKit/UIProcess/ProcessThrottler.cpp M Source/WebKit/UIProcess/ProcessThrottler.h M Source/WebKit/UIProcess/WebProcessProxy.cpp Log Message: --- [macOS] Stop ProcessThrottler for dead processes https://bugs.webkit.org/show_bug.cgi?id=254838 rdar://106070798 Reviewed by Chris Dumez. We have a bug report where the ProcessThrottler continues to take assertions on a process after it's been terminated. Usually when a process is terminated, its corresponding WebProcessProxy and ProcessThrottler are destroyed so this isn't an issue. However, when a process is killed by our background CPU usage monitor the WebProcessProxy and ProcessThrottler are not destroyed until we lazily relaunch the process. This fix tells the ProcessThrottler that we've disconnected from our process so that it stops trying to take process assertions. * Source/WebKit/UIProcess/ProcessThrottler.cpp: (WebKit::ProcessThrottler::didDisconnectFromProcess): * Source/WebKit/UIProcess/ProcessThrottler.h: * Source/WebKit/UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::shutDown): Canonical link: https://commits.webkit.org/262582@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 9a7153: [macOS] TestWebKitAPI.WebKit.MediaBufferingPolicy ...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 9a7153a9741eecce79f2752a91812bc5585f58dc https://github.com/WebKit/WebKit/commit/9a7153a9741eecce79f2752a91812bc5585f58dc Author: Miguel Salinas Date: 2023-03-31 (Fri, 31 Mar 2023) Changed paths: M Tools/TestWebKitAPI/Tests/WebKitCocoa/MediaBufferingPolicy.mm Log Message: --- [macOS] TestWebKitAPI.WebKit.MediaBufferingPolicy is a constant failure https://bugs.webkit.org/show_bug.cgi?id=253658 rdar://problem/106508946 Reviewed by Jer Noble. macOS shouldn't purge media playback resources on page suspension. This behavior was changed in 261354@main. This is just aligning the test case * Tools/TestWebKitAPI/Tests/WebKitCocoa/MediaBufferingPolicy.mm: (TEST): Canonical link: https://commits.webkit.org/262438@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 857e02: [macOS] Fix TestWebKitAPI.WebKit.ResponsivenessTim...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 857e02522abcceb9cb46dd2f9ac2e79a0a899c39 https://github.com/WebKit/WebKit/commit/857e02522abcceb9cb46dd2f9ac2e79a0a899c39 Author: Miguel Salinas Date: 2023-03-30 (Thu, 30 Mar 2023) Changed paths: M Source/WebKit/UIProcess/ProcessThrottler.h Log Message: --- [macOS] Fix TestWebKitAPI.WebKit.ResponsivenessTimerCrash timeout https://bugs.webkit.org/show_bug.cgi?id=253660 rdar://problem/106509558 Reviewed by Chris Dumez. The ProcessThrottler is effectively disabled until didConnectToProcess() is called. m_processIdentifier is 0 until didConnectToProcess(). Some OS versions never call didConnectToProcess(). We should not return true for isSuspended() when the ProcessThrottler is effectively disabled. * Source/WebKit/UIProcess/ProcessThrottler.h: (WebKit::ProcessThrottler::isSuspended const): Canonical link: https://commits.webkit.org/262381@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] ee0988: [macOS] Disable background webcontent suspension b...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: ee0988b18d7348a73ce7db08beafbaf92788a627 https://github.com/WebKit/WebKit/commit/ee0988b18d7348a73ce7db08beafbaf92788a627 Author: Miguel Salinas Date: 2023-03-27 (Mon, 27 Mar 2023) Changed paths: M Source/WebKit/Shared/WebPreferencesDefaultValues.cpp Log Message: --- [macOS] Disable background webcontent suspension by default https://bugs.webkit.org/show_bug.cgi?id=254535 rdar://107233385 Reviewed by Chris Dumez. We have discovered some regressions when webcontent process suspension is enabled such as some foreground pages suspending. We need to disable this feature by default until these bugs are fixed. * Source/WebKit/Shared/WebPreferencesDefaultValues.cpp: (WebKit::defaultRunningBoardThrottlingEnabled): Canonical link: https://commits.webkit.org/262174@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] c655ab: [macOS] Prevent WebContent Process from Jetsam
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: c655abc1dd4a00c5e635e85d94ef66050108bfd1 https://github.com/WebKit/WebKit/commit/c655abc1dd4a00c5e635e85d94ef66050108bfd1 Author: Miguel Salinas Date: 2023-03-23 (Thu, 23 Mar 2023) Changed paths: M Source/WTF/wtf/PlatformUse.h M Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp M Source/WebKit/UIProcess/AuxiliaryProcessProxy.h M Source/WebKit/UIProcess/Cocoa/ProcessAssertionCocoa.mm M Source/WebKit/UIProcess/ProcessAssertion.cpp M Source/WebKit/UIProcess/ProcessAssertion.h M Source/WebKit/UIProcess/ProcessThrottler.cpp Log Message: --- [macOS] Prevent WebContent Process from Jetsam https://bugs.webkit.org/show_bug.cgi?id=254338 rdar://106721207 Reviewed by Chris Dumez. We need to hold a new runningboard process assertion "BoostedJetsam" to maintain a jetsam band of at least 40 at all times, including suspension to prevent process from being killed on macOS. * Source/WTF/wtf/PlatformUse.h: * Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp: (WebKit::AuxiliaryProcessProxy::didFinishLaunching): * Source/WebKit/UIProcess/AuxiliaryProcessProxy.h: * Source/WebKit/UIProcess/Cocoa/ProcessAssertionCocoa.mm: (WebKit::runningBoardNameForAssertionType): (WebKit::runningBoardDomainForAssertionType): * Source/WebKit/UIProcess/ProcessAssertion.cpp: (WebKit::processAssertionTypeDescription): * Source/WebKit/UIProcess/ProcessAssertion.h: * Source/WebKit/UIProcess/ProcessThrottler.cpp: (WebKit::ProcessThrottler::assertionName const): Canonical link: https://commits.webkit.org/262025@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] a5486e: [Cocoa] Setting to drop all assertions immediately
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: a5486e6679b8f6ca940f78aa8ec427f5607fc64c https://github.com/WebKit/WebKit/commit/a5486e6679b8f6ca940f78aa8ec427f5607fc64c Author: Miguel Salinas Date: 2023-03-20 (Mon, 20 Mar 2023) Changed paths: M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml M Source/WebKit/Shared/WebPreferencesDefaultValues.cpp M Source/WebKit/Shared/WebPreferencesDefaultValues.h M Source/WebKit/UIProcess/ProcessThrottler.cpp M Source/WebKit/UIProcess/ProcessThrottler.h M Source/WebKit/UIProcess/WebProcessProxy.cpp M Source/WebKit/UIProcess/WebProcessProxy.h Log Message: --- [Cocoa] Setting to drop all assertions immediately https://bugs.webkit.org/show_bug.cgi?id=253910 rdar://problem/106722788 Reviewed by Chris Dumez. Having an option to quickly remove all assertions would really help with testing background process suspension * Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml: * Source/WebKit/Shared/WebPreferencesDefaultValues.cpp: (WebKit::defaultShouldDropSuspendedAssertionAfterDelay): (WebKit::defaultShouldTakeSuspendedAssertions): Deleted. * Source/WebKit/Shared/WebPreferencesDefaultValues.h: * Source/WebKit/UIProcess/ProcessThrottler.cpp: (WebKit::ProcessThrottler::ProcessThrottler): (WebKit::ProcessThrottler::setThrottleState): (WebKit::ProcessThrottler::dropSuspendedAssertionTimerFired): (WebKit::ProcessThrottler::delaySuspension): (WebKit::ProcessThrottler::removeAllAssertionsTimerFired): Deleted. * Source/WebKit/UIProcess/ProcessThrottler.h: (WebKit::ProcessThrottler::setShouldDropSuspendedAssertionAfterDelay): * Source/WebKit/UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::shouldDropSuspendedAssertionAfterDelay const): (WebKit::WebProcessProxy::addExistingWebPage): (WebKit::WebProcessProxy::didFinishLaunching): * Source/WebKit/UIProcess/WebProcessProxy.h: Canonical link: https://commits.webkit.org/261886@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] ce1e33: [macOS] Assertion failure in nonVisibleProcessMemo...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: ce1e3347d86074ecd22a82046fb8add9833ed3a8 https://github.com/WebKit/WebKit/commit/ce1e3347d86074ecd22a82046fb8add9833ed3a8 Author: Miguel Salinas Date: 2023-03-10 (Fri, 10 Mar 2023) Changed paths: M Source/WebKit/WebProcess/WebProcess.cpp Log Message: --- [macOS] Assertion failure in nonVisibleProcessMemoryCleanupTimerFired https://bugs.webkit.org/show_bug.cgi?id=253743 rdar://problem/106579817 Reviewed by Chris Dumez. Using nonVisibleProcessMemoryCleanupTimer is not a good idea for clearing memory after suspension. If the page is still in the window then nonVisibleProcessMemoryCleanupTimerFired will hit an assertion. It also does not account for resuming processes before the timer fires. Disable the behavior for now to fix the assert failure while a better solution is developed. * Source/WebKit/WebProcess/WebProcess.cpp: (WebKit::WebProcess::prepareToSuspend): Canonical link: https://commits.webkit.org/261537@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 5dc074: ProcessThrottler Assertion Failure in removeAllAss...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 5dc074b0535acc6a22b3436a4bd3ebbf7059ccb3 https://github.com/WebKit/WebKit/commit/5dc074b0535acc6a22b3436a4bd3ebbf7059ccb3 Author: Miguel Salinas Date: 2023-03-10 (Fri, 10 Mar 2023) Changed paths: M Source/WebKit/UIProcess/ProcessThrottler.cpp Log Message: --- ProcessThrottler Assertion Failure in removeAllAssertionsTimerFired https://bugs.webkit.org/show_bug.cgi?id=253728 rdar://106291850 Reviewed by Chris Dumez. We should only start the timer to remove all assertions after actually taking a Suspended assertion and we should stop it whenever we take a different process assertion. * Source/WebKit/UIProcess/ProcessThrottler.cpp: (WebKit::ProcessThrottler::setThrottleState): (WebKit::ProcessThrottler::updateThrottleStateIfNeeded): Canonical link: https://commits.webkit.org/261533@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] e4a4e0: [macOS] Reenable background process suspension
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: e4a4e00c30d93abcf8fae7005f30ae66824b6b9b https://github.com/WebKit/WebKit/commit/e4a4e00c30d93abcf8fae7005f30ae66824b6b9b Author: Miguel Salinas Date: 2023-03-10 (Fri, 10 Mar 2023) Changed paths: M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml Log Message: --- [macOS] Reenable background process suspension https://bugs.webkit.org/show_bug.cgi?id=253609 rdar://problem/106454956 Reviewed by Chris Dumez. The plt and memory regressions from enabling background process suspension have been fixed in https://bugs.webkit.org/show_bug.cgi?id=253527 so we can turn it back on now. * Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml: Canonical link: https://commits.webkit.org/261519@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] e84169: Cherry-pick 1f3dcbd1984c. rdar://problem/106388234
Branch: refs/heads/safari-7616.1.6-branch Home: https://github.com/WebKit/WebKit Commit: e8416983605977c476c78404d51b1a411cacb795 https://github.com/WebKit/WebKit/commit/e8416983605977c476c78404d51b1a411cacb795 Author: Miguel Salinas Date: 2023-03-08 (Wed, 08 Mar 2023) Changed paths: M Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp M Source/WebKit/UIProcess/ProcessThrottler.h Log Message: --- Cherry-pick 1f3dcbd1984c. rdar://problem/106388234 [Cocoa] Stop responsiveness checks on suspended web content processes https://bugs.webkit.org/show_bug.cgi?id=253544 rdar://problem/106388234 Reviewed by Chris Dumez. We shouldn't be checking if suspended processes are responsive * Source/WebKit/UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::sendPrepareToSuspend): (WebKit::WebProcessProxy::sendProcessDidResume): Canonical link: https://commits.webkit.org/261382@main Canonical link: https://commits.webkit.org/261247.12@safari-7616.1.6-branch ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 1f3dcb: [Cocoa] Stop responsiveness checks on suspended we...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 1f3dcbd1984c9e5548efef4d638f87d4dbfc3c66 https://github.com/WebKit/WebKit/commit/1f3dcbd1984c9e5548efef4d638f87d4dbfc3c66 Author: Miguel Salinas Date: 2023-03-08 (Wed, 08 Mar 2023) Changed paths: M Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp M Source/WebKit/UIProcess/ProcessThrottler.h Log Message: --- [Cocoa] Stop responsiveness checks on suspended web content processes https://bugs.webkit.org/show_bug.cgi?id=253544 rdar://problem/106388234 Reviewed by Chris Dumez. We shouldn't be checking if suspended processes are responsive * Source/WebKit/UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::sendPrepareToSuspend): (WebKit::WebProcessProxy::sendProcessDidResume): Canonical link: https://commits.webkit.org/261382@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] fe549c: Cherry-pick 3e3affb5f89d. rdar://problem/106376732
Branch: refs/heads/safari-7616.1.6-branch Home: https://github.com/WebKit/WebKit Commit: fe549c04ef2e8595d67ba0194b6b7e05fc44131d https://github.com/WebKit/WebKit/commit/fe549c04ef2e8595d67ba0194b6b7e05fc44131d Author: Miguel Salinas Date: 2023-03-08 (Wed, 08 Mar 2023) Changed paths: M Source/WebKit/WebProcess/WebProcess.cpp Log Message: --- Cherry-pick 3e3affb5f89d. rdar://problem/106376732 [macOS] Use cleanup timer when suspending web content process https://bugs.webkit.org/show_bug.cgi?id=253527 rdar://problem/106376732 Reviewed by Chris Dumez. We should use the m_nonVisibleProcessMemoryCleanupTimer to cleanup unnecessary memory on suspension instead of immediately cleaning up. This fixes a plt regression for warm runs where we make heavy use of the WebProcess cache. We should also consider doing this on iOS. * Source/WebKit/WebProcess/WebProcess.cpp: (WebKit::WebProcess::prepareToSuspend): Canonical link: https://commits.webkit.org/261354@main Canonical link: https://commits.webkit.org/261247.11@safari-7616.1.6-branch ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 3e3aff: [macOS] Use cleanup timer when suspending web cont...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 3e3affb5f89da96db5089433656cfbe4aa5903d6 https://github.com/WebKit/WebKit/commit/3e3affb5f89da96db5089433656cfbe4aa5903d6 Author: Miguel Salinas Date: 2023-03-07 (Tue, 07 Mar 2023) Changed paths: M Source/WebKit/WebProcess/WebProcess.cpp Log Message: --- [macOS] Use cleanup timer when suspending web content process https://bugs.webkit.org/show_bug.cgi?id=253527 rdar://problem/106376732 Reviewed by Chris Dumez. We should use the m_nonVisibleProcessMemoryCleanupTimer to cleanup unnecessary memory on suspension instead of immediately cleaning up. This fixes a plt regression for warm runs where we make heavy use of the WebProcess cache. We should also consider doing this on iOS. * Source/WebKit/WebProcess/WebProcess.cpp: (WebKit::WebProcess::prepareToSuspend): Canonical link: https://commits.webkit.org/261354@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 0a878e: [macOS] PLT + memory regression
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 0a878e3045840889ec0d153e62587daf69c3779d https://github.com/WebKit/WebKit/commit/0a878e3045840889ec0d153e62587daf69c3779d Author: Miguel Salinas Date: 2023-03-07 (Tue, 07 Mar 2023) Changed paths: M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml Log Message: --- [macOS] PLT + memory regression https://bugs.webkit.org/show_bug.cgi?id=253484 rdar://106289927 Reviewed by Tim Horton and Chris Dumez. Disabling RunningBoard throttling on trunk to fix bots. * Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml: Canonical link: https://commits.webkit.org/261330@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] fc172b: [Cocoa] API to set process throttling limits
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: fc172b284b323e8f3669ecd67964fa4f5a1c917e https://github.com/WebKit/WebKit/commit/fc172b284b323e8f3669ecd67964fa4f5a1c917e Author: Miguel Salinas Date: 2023-03-03 (Fri, 03 Mar 2023) Changed paths: M Source/WebKit/UIProcess/API/Cocoa/WKPreferences.h M Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm Log Message: --- [Cocoa] API to set process throttling limits https://bugs.webkit.org/show_bug.cgi?id=253352 rdar://103084383 Reviewed by Chris Dumez. API to set background process throttle limits * Source/WebKit/UIProcess/API/Cocoa/WKPreferences.h: * Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm: (-[WKPreferences setInactiveSchedulingPolicy:]): (-[WKPreferences inactiveSchedulingPolicy]): Canonical link: https://commits.webkit.org/261186@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 84c958: [macOS] Use link check for runningboard throttling
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 84c958474338a8adeea63096637ef24b5a7f354d https://github.com/WebKit/WebKit/commit/84c958474338a8adeea63096637ef24b5a7f354d Author: Miguel Salinas Date: 2023-03-03 (Fri, 03 Mar 2023) Changed paths: M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml M Source/WTF/wtf/cocoa/RuntimeApplicationChecksCocoa.h M Source/WebKit/Shared/WebPreferencesDefaultValues.cpp M Source/WebKit/Shared/WebPreferencesDefaultValues.h Log Message: --- [macOS] Use link check for runningboard throttling https://bugs.webkit.org/show_bug.cgi?id=253290 rdar://106175040 Reviewed by Alex Christensen. We should use a link check for runningboard based throttling and suspension on macOS * Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml: * Source/WTF/wtf/cocoa/RuntimeApplicationChecksCocoa.h: * Source/WebKit/Shared/WebPreferencesDefaultValues.cpp: (WebKit::defaultRunningBoardThrottlingEnabled): (WebKit::defaultShouldTakeSuspendedAssertions): * Source/WebKit/Shared/WebPreferencesDefaultValues.h: Canonical link: https://commits.webkit.org/261171@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 5199b3: [macOS] Reset process throttler activities on proc...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 5199b3ad9634eb65dc6bc19363594a9e8919e84b https://github.com/WebKit/WebKit/commit/5199b3ad9634eb65dc6bc19363594a9e8919e84b Author: Miguel Salinas Date: 2023-03-02 (Thu, 02 Mar 2023) Changed paths: M Source/WebKit/UIProcess/WebPageProxy.cpp M Source/WebKit/UIProcess/WebPageProxy.h Log Message: --- [macOS] Reset process throttler activities on process exit https://bugs.webkit.org/show_bug.cgi?id=253168 rdar://103840631 Reviewed by Chris Dumez. On iOS we drop all activities the page is holding whenever the page closes or the backing process exits. We need to do this on macOS as well otherwise we hold stale activites. * Source/WebKit/UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::close): (WebKit::WebPageProxy::resetStateAfterProcessExited): * Source/WebKit/UIProcess/WebPageProxy.h: Canonical link: https://commits.webkit.org/261112@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 3af129: [Cocoa] Fix reduntant calls to didChangeThrottleState
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 3af1290ef050a074b922d7908a86fd7c8ea91cfd https://github.com/WebKit/WebKit/commit/3af1290ef050a074b922d7908a86fd7c8ea91cfd Author: Miguel Salinas Date: 2023-02-20 (Mon, 20 Feb 2023) Changed paths: M Source/WebKit/UIProcess/ProcessThrottler.cpp Log Message: --- [Cocoa] Fix reduntant calls to didChangeThrottleState https://bugs.webkit.org/show_bug.cgi?id=252618 rdar://105692966 Reviewed by Chris Dumez. We should not call didChangeThrottleState when the assertion will not actually change. * Source/WebKit/UIProcess/ProcessThrottler.cpp: (WebKit::ProcessThrottler::setThrottleState): Canonical link: https://commits.webkit.org/260583@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 06fe36: [Cocoa] Prevent active background page processes f...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 06fe365b16021e6ae0c4a3b66e5e8351de765902 https://github.com/WebKit/WebKit/commit/06fe365b16021e6ae0c4a3b66e5e8351de765902 Author: Miguel Salinas Date: 2023-02-17 (Fri, 17 Feb 2023) Changed paths: M Source/WebKit/UIProcess/ProcessThrottler.cpp M Source/WebKit/UIProcess/ProcessThrottler.h M Source/WebKit/UIProcess/WebPageProxy.cpp Log Message: --- [Cocoa] Prevent active background page processes from suspending https://bugs.webkit.org/show_bug.cgi?id=252415 rdar://105413250 Reviewed by Chris Dumez. When a page is backgrounded we try to suspend its process if possible. When the internal setting "Take WebKit:Suspended assertion..." is disabled, this will cause the UI process to drop all of its process assertions on the web content process, effectively making it un-schedulable. This means that pages which may still be active will completely stop. This wasn't an issue before since the web content process would still be schedulable because it was holding the WebKit:Suspended assertion (this is very confusing since the WebKit:Suspended process assertion actually _prevents_ suspension). Instead of dropping all process assertions immediately upon being backgrounded, we should give the page/process some time to be scheduled and if it performs any observable work (e.g. changing document title text, sending a local notification, etc.) we should delay suspending the process. * Source/WebKit/UIProcess/ProcessThrottler.cpp: (WebKit::ProcessThrottler::ProcessThrottler): (WebKit::ProcessThrottler::assertionTypeForState): (WebKit::ProcessThrottler::setThrottleState): (WebKit::ProcessThrottler::updateThrottleStateIfNeeded): (WebKit::ProcessThrottler::removeAllAssertionsTimerFired): (WebKit::ProcessThrottler::setShouldTakeSuspendedAssertion): (WebKit::ProcessThrottler::delaySuspension): * Source/WebKit/UIProcess/ProcessThrottler.h: * Source/WebKit/UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didReceiveTitleForFrame): (WebKit::WebPageProxy::showNotification): Canonical link: https://commits.webkit.org/260482@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 5d5cb5: [macOS] Don't kill processes on suspension
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 5d5cb596befeb8dc6f42a9f882995089571d876b https://github.com/WebKit/WebKit/commit/5d5cb596befeb8dc6f42a9f882995089571d876b Author: Miguel Salinas Date: 2023-02-14 (Tue, 14 Feb 2023) Changed paths: M Source/WebKit/WebProcess/WebProcess.cpp Log Message: --- [macOS] Don't kill processes on suspension https://bugs.webkit.org/show_bug.cgi?id=252189 rdar://103470090 Reviewed by Chris Dumez. When the UI process tells a web content process to prepare to suspend we run the low memory handler to reclaim memory. The low memory handler kills processes that are deemed "unnecessary". This is too aggressive for when we are just suspending a process. We only call prepareToSuspend on macOS when process suspension is enabled. * Source/WebKit/WebProcess/WebProcess.cpp: (WebKit::WebProcess::initializeWebProcess): Canonical link: https://commits.webkit.org/260292@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 766490: [macOS] TestWebKitAPI.ServiceWorkers API test fail...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 76649060e74759fd21a4c39cfc30883e21835271 https://github.com/WebKit/WebKit/commit/76649060e74759fd21a4c39cfc30883e21835271 Author: Miguel Salinas Date: 2023-01-24 (Tue, 24 Jan 2023) Changed paths: M Source/WebKit/UIProcess/WebProcessProxy.cpp M Source/WebKit/UIProcess/WebProcessProxy.h Log Message: --- [macOS] TestWebKitAPI.ServiceWorkers API test failures https://bugs.webkit.org/show_bug.cgi?id=251032 rdar://104436315 Reviewed by Youenn Fablet. Prevent ProcessThrottler from changing WebProcessProxy's throttle state when testing WebProcessProxy's throttle state. * Source/WebKit/UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::setThrottleStateForTesting): (WebKit::WebProcessProxy::didChangeThrottleState): * Source/WebKit/UIProcess/WebProcessProxy.h: (WebKit::WebProcessProxy::setThrottleStateForTesting): Deleted. Canonical link: https://commits.webkit.org/259303@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 2663e6: [iOS] Fix release assertion in WebKit::ProcessThro...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 2663e6d98e20416821cc0c1bac5df85235e42342 https://github.com/WebKit/WebKit/commit/2663e6d98e20416821cc0c1bac5df85235e42342 Author: Miguel Salinas Date: 2023-01-20 (Fri, 20 Jan 2023) Changed paths: M Source/WebKit/UIProcess/ProcessThrottler.cpp Log Message: --- [iOS] Fix release assertion in WebKit::ProcessThrottler::didConnectToProcess https://bugs.webkit.org/show_bug.cgi?id=250789 Reviewed by Chris Dumez. This assertion needs to be updated after adding the option to drop the 'Suspended' assertion. * Source/WebKit/UIProcess/ProcessThrottler.cpp: (WebKit::ProcessThrottler::didConnectToProcess): Canonical link: https://commits.webkit.org/259137@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 0b0d57: [iOS] Use link check as default value for suspende...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 0b0d579cbc179cb7d309bae71aadca5c294c7af4 https://github.com/WebKit/WebKit/commit/0b0d579cbc179cb7d309bae71aadca5c294c7af4 Author: Miguel Salinas Date: 2023-01-06 (Fri, 06 Jan 2023) Changed paths: M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml M Source/WebKit/Shared/WebPreferencesDefaultValues.cpp M Source/WebKit/Shared/WebPreferencesDefaultValues.h M Source/WebKit/UIProcess/ProcessThrottler.cpp Log Message: --- [iOS] Use link check as default value for suspended assertion preference https://bugs.webkit.org/show_bug.cgi?id=250031 rdar://problem/103839882 Reviewed by Chris Dumez. Instead of using the link check as a hard block for dropping the suspended assertion, we should just set the default value for the preference. This makes it easier to test on different OS versions. * Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml: * Source/WebKit/Shared/WebPreferencesDefaultValues.cpp: (WebKit::defaultShouldTakeSuspendedAssertions): * Source/WebKit/Shared/WebPreferencesDefaultValues.h: * Source/WebKit/UIProcess/ProcessThrottler.cpp: (WebKit::ProcessThrottler::setShouldTakeSuspendedAssertion): Canonical link: https://commits.webkit.org/258556@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] dc1997: [Cocoa] Use a link check for background web conten...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: dc19977ced76d65c66f5903b23d85e391500e454 https://github.com/WebKit/WebKit/commit/dc19977ced76d65c66f5903b23d85e391500e454 Author: Miguel Salinas Date: 2022-12-14 (Wed, 14 Dec 2022) Changed paths: M Source/WTF/wtf/cocoa/RuntimeApplicationChecksCocoa.h M Source/WebKit/UIProcess/ProcessThrottler.cpp Log Message: --- [Cocoa] Use a link check for background web content suspension https://bugs.webkit.org/show_bug.cgi?id=249157 rdar://problem/103258911 Reviewed by Chris Dumez. Add a link check for fully suspending background web content processes. * Source/WTF/wtf/cocoa/RuntimeApplicationChecksCocoa.h: * Source/WebKit/UIProcess/ProcessThrottler.cpp: (WebKit::ProcessThrottler::setShouldTakeSuspendedAssertion): Canonical link: https://commits.webkit.org/257878@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] ede746: Cherry-pick a8076cd43460. rdar://problem/103277903
Branch: refs/heads/safari-7615.1.15-branch Home: https://github.com/WebKit/WebKit Commit: ede746697144a8262812484a30012a4d9cd344a5 https://github.com/WebKit/WebKit/commit/ede746697144a8262812484a30012a4d9cd344a5 Author: Kimmo Kinnunen Date: 2022-12-14 (Wed, 14 Dec 2022) Changed paths: M LayoutTests/TestExpectations A LayoutTests/webgl/webgl-fail-platform-context-creation-no-crash-expected.txt A LayoutTests/webgl/webgl-fail-platform-context-creation-no-crash.html M Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml M Source/WebCore/html/canvas/WebGLContextAttributes.idl M Source/WebCore/platform/graphics/GraphicsContextGLAttributes.h M Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.cpp M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in M Tools/WebKitTestRunner/TestOptions.cpp Log Message: --- Cherry-pick a8076cd43460. rdar://problem/103277903 RemoteGraphicsContextGL crashes if platform graphics context creation fails https://bugs.webkit.org/show_bug.cgi?id=249214 rdar://103277903 Reviewed by Matt Woodrow. Creating GraphicsContextGL would fail if ANGLE shared library is not present. This is as intended, on macOS this happens in recovery OS. GPUP RemoteGraphicsContextGL would access nullptr when the unusable context would be destroyed. Guard for the nullptr context. Move the IPC stream connection opening in the functions that execute on stream work queue and start receiving messages from the stream only when the context creation succeeds. This way the payload functions do not need the nullptr guard, which they do not have. * Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml: * Source/WebCore/html/canvas/WebGLContextAttributes.idl: * Source/WebCore/platform/graphics/GraphicsContextGLAttributes.h: * Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp: (WebCore::GraphicsContextGLANGLE::initialize): * Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.cpp: (WebKit::RemoteGraphicsContextGL::initialize): (WebKit::RemoteGraphicsContextGL::stopListeningForIPC): (WebKit::RemoteGraphicsContextGL::workQueueInitialize): (WebKit::RemoteGraphicsContextGL::workQueueUninitialize): * Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in: * Tools/WebKitTestRunner/TestOptions.cpp: (WTR::TestOptions::defaults): Canonical link: https://commits.webkit.org/257843@main Canonical link: https://commits.webkit.org/257698.4@safari-7615.1.15-branch Commit: 0300a46661c56c6087eff3660a27a98b00a5b085 https://github.com/WebKit/WebKit/commit/0300a46661c56c6087eff3660a27a98b00a5b085 Author: Miguel Salinas Date: 2022-12-14 (Wed, 14 Dec 2022) Changed paths: M Source/WebKit/UIProcess/ProcessThrottler.cpp Log Message: --- Cherry-pick 9bdfab144ce0. rdar://problem/103276264 [iOS] Fix crash in ProcessThrottler::sendPrepareToSuspendIPC https://bugs.webkit.org/show_bug.cgi?id=249220 rdar://103276264 Reviewed by Chris Dumez. After 257628@main we call `ProcessThrottler::updateThrottleStateIfNeeded` every time we call `ProcessThrottler::setShouldTakeSuspendedAssertion`. Instead, we should only take or drop the Suspended assertion when actually needed in `ProcessThrottler::setShouldTakeSuspendedAssertion`. * Source/WebKit/UIProcess/ProcessThrottler.cpp: (WebKit::ProcessThrottler::setShouldTakeSuspendedAssertion): Canonical link: https://commits.webkit.org/257850@main Canonical link: https://commits.webkit.org/257698.5@safari-7615.1.15-branch Compare: https://github.com/WebKit/WebKit/compare/7dd03fcb7285...0300a46661c5 ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 9bdfab: [iOS] Fix crash in ProcessThrottler::sendPrepareTo...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 9bdfab144ce088159138cc60fe84bd20f293576a https://github.com/WebKit/WebKit/commit/9bdfab144ce088159138cc60fe84bd20f293576a Author: Miguel Salinas Date: 2022-12-14 (Wed, 14 Dec 2022) Changed paths: M Source/WebKit/UIProcess/ProcessThrottler.cpp Log Message: --- [iOS] Fix crash in ProcessThrottler::sendPrepareToSuspendIPC https://bugs.webkit.org/show_bug.cgi?id=249220 rdar://103276264 Reviewed by Chris Dumez. After 257628@main we call `ProcessThrottler::updateThrottleStateIfNeeded` every time we call `ProcessThrottler::setShouldTakeSuspendedAssertion`. Instead, we should only take or drop the Suspended assertion when actually needed in `ProcessThrottler::setShouldTakeSuspendedAssertion`. * Source/WebKit/UIProcess/ProcessThrottler.cpp: (WebKit::ProcessThrottler::setShouldTakeSuspendedAssertion): Canonical link: https://commits.webkit.org/257850@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] d08338: Prevent suspension for extension background pages
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: d08338ef7145c7a3444b67ebdc3c4b72d63cab56 https://github.com/WebKit/WebKit/commit/d08338ef7145c7a3444b67ebdc3c4b72d63cab56 Author: Miguel Salinas Date: 2022-12-09 (Fri, 09 Dec 2022) Changed paths: M Source/WebKit/UIProcess/ProcessThrottler.cpp M Source/WebKit/UIProcess/WebProcessProxy.cpp M Source/WebKit/UIProcess/WebProcessProxy.h Log Message: --- Prevent suspension for extension background pages https://bugs.webkit.org/show_bug.cgi?id=247707 rdar://problem/102167829 Reviewed by Chris Dumez. Web content processes for web extension background pages are currently being fully suspended when the WebKit:Suspended assertion is disabled. We should disable full suspension when _setPageVisibilityBasedProcessSuppressionEnabled is set to false as in web extension background pages. * Source/WebKit/UIProcess/ProcessThrottler.cpp: (WebKit::ProcessThrottler::setShouldTakeSuspendedAssertion): * Source/WebKit/UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::shouldTakeSuspendedAssertion): (WebKit::WebProcessProxy::addExistingWebPage): (WebKit::WebProcessProxy::didFinishLaunching): * Source/WebKit/UIProcess/WebProcessProxy.h: Canonical link: https://commits.webkit.org/257628@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 25e4ba: Update my status to committer
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 25e4ba57755485bba18543fb06bd32f3be31e585 https://github.com/WebKit/WebKit/commit/25e4ba57755485bba18543fb06bd32f3be31e585 Author: Miguel Salinas Date: 2022-12-07 (Wed, 07 Dec 2022) Changed paths: M metadata/contributors.json Log Message: --- Update my status to committer https://bugs.webkit.org/show_bug.cgi?id=248890 rdar://103083150 Reviewed by Jonathan Bedard. Update my status to committer in contributors.json. * metadata/contributors.json: Canonical link: https://commits.webkit.org/257497@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] b4a103: [iOS] 256753@main breaks YouTube sign in
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: b4a103a50310f45f40a0d2514601e502f231c732 https://github.com/WebKit/WebKit/commit/b4a103a50310f45f40a0d2514601e502f231c732 Author: Miguel Salinas Date: 2022-12-07 (Wed, 07 Dec 2022) Changed paths: M Source/WebKit/UIProcess/ProcessThrottler.cpp Log Message: --- [iOS] 256753@main breaks YouTube sign in https://bugs.webkit.org/show_bug.cgi?id=248825 rdar://102994291 Reviewed by Chris Dumez. 256753@main breaks YouTube Sign in. Reverting source changes but not test changes. * Source/WebKit/UIProcess/ProcessThrottler.cpp: (WebKit::ProcessThrottler::setThrottleState): Canonical link: https://commits.webkit.org/257477@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] e33ada: [macOS] Fix SuspendServiceWorkerProcessBasedOnClie...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: e33ada3ec1ab3c0501d7aee485dcb38008f010ae https://github.com/WebKit/WebKit/commit/e33ada3ec1ab3c0501d7aee485dcb38008f010ae Author: Miguel Salinas Date: 2022-11-29 (Tue, 29 Nov 2022) Changed paths: M Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm Log Message: --- [macOS] Fix SuspendServiceWorkerProcessBasedOnClientProcessesWithoutSeparateServiceWorkerProcess test when RunningBoard is enabled. https://bugs.webkit.org/show_bug.cgi?id=247894 rdar://102320977 Reviewed by Darin Adler and Timothy Hatcher. This test assumes that all webcontent processes associated with the service worker have a suspended assertion. However, we currently 'leak' a foreground assertion on every webcontent process by default when we build with RunningBoard enabled. We should manually take a suspended assertion on web content processes associated with this service worker instead of assuming they already have a suspended assertion. * Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm: Canonical link: https://commits.webkit.org/257141@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] c38857: Fix race in SuspendServiceWorkerProcessBasedOnClie...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: c38857287101c28627eedc50ec964f3582448b80 https://github.com/WebKit/WebKit/commit/c38857287101c28627eedc50ec964f3582448b80 Author: Miguel Salinas Date: 2022-11-16 (Wed, 16 Nov 2022) Changed paths: M Source/WebKit/UIProcess/ProcessThrottler.cpp M Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm Log Message: --- Fix race in SuspendServiceWorkerProcessBasedOnClientProcessesWithoutSeparateServiceWorkerProcess https://bugs.webkit.org/show_bug.cgi?id=247894 rdar://102320977 Reviewed by Chris Dumez. There is a race condition in SuspendServiceWorkerProcessBasedOnClientProcessesWithoutSeparateServiceWorkerProcess where the process may overwrite its throttle state after launching. * Source/WebKit/UIProcess/ProcessThrottler.cpp: (WebKit::ProcessThrottler::setThrottleState): * Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm: Canonical link: https://commits.webkit.org/256753@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 8a344c: Fix debug assertion failure in IndentOutdentComman...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 8a344c3387b2bfe58dc8c8a94b1683187effef2e https://github.com/WebKit/WebKit/commit/8a344c3387b2bfe58dc8c8a94b1683187effef2e Author: Miguel Salinas Date: 2022-11-16 (Wed, 16 Nov 2022) Changed paths: A LayoutTests/editing/execCommand/indent-user-select-all-blockquotes-expected.txt A LayoutTests/editing/execCommand/indent-user-select-all-blockquotes.html M Source/WebCore/editing/IndentOutdentCommand.cpp Log Message: --- Fix debug assertion failure in IndentOutdentCommand::indentIntoBlockquote https://bugs.webkit.org/show_bug.cgi?id=240377 rdar://93236442 Reviewed by Ryosuke Niwa. When indenting an element into a new uneditable blockquote we end up replacing the element with an empty blockquote instead of indenting. This also fails an assert in debug builds. We should just bail out instead of trying to indent if the blockquote is not editable. * LayoutTests/editing/execCommand/indent-user-select-all-blockquotes-expected.txt: Added. * LayoutTests/editing/execCommand/indent-user-select-all-blockquotes.html: Added. * Source/WebCore/editing/IndentOutdentCommand.cpp: (WebCore::IndentOutdentCommand::indentIntoBlockquote): Canonical link: https://commits.webkit.org/256749@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 60d208: [macOS] Disable RunningBoard Management in info.pl...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 60d2086f9b7043ac24841f29e39f8e5ac4e13283 https://github.com/WebKit/WebKit/commit/60d2086f9b7043ac24841f29e39f8e5ac4e13283 Author: Miguel Salinas Date: 2022-11-15 (Tue, 15 Nov 2022) Changed paths: M Source/WebKit/Scripts/update-info-plist-for-runningboard.sh Log Message: --- [macOS] Disable RunningBoard Management in info.plist for Open Source https://bugs.webkit.org/show_bug.cgi?id=247963 rdar://problem/102393706 Reviewed by Chris Dumez. Open Source builds have RunningBoard process management disabled due to entitlement issues. We need to also disable RunningBoard management in each process's info.plist or else processes may become suspended indefinitely. This is blocking our Open Source macOS 13 bots. * Source/WebKit/Scripts/update-info-plist-for-runningboard.sh: Canonical link: https://commits.webkit.org/256719@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] b9ff9a: Fix flaky test crash in indexeddb/crash-on-getdata...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: b9ff9a4dad90a09931d0e1530a866c15cd812e80 https://github.com/WebKit/WebKit/commit/b9ff9a4dad90a09931d0e1530a866c15cd812e80 Author: Miguel Salinas Date: 2022-11-08 (Tue, 08 Nov 2022) Changed paths: M LayoutTests/platform/ios/TestExpectations M LayoutTests/platform/mac-wk2/TestExpectations M Source/WebCore/Modules/indexeddb/IDBOpenDBRequest.cpp M Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.cpp M Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.h M Source/WebCore/Modules/indexeddb/client/IDBConnectionToServer.cpp M Source/WebCore/Modules/indexeddb/client/IDBConnectionToServer.h M Source/WebCore/Modules/indexeddb/client/IDBConnectionToServerDelegate.h M Source/WebCore/Modules/indexeddb/server/IDBServer.cpp M Source/WebCore/Modules/indexeddb/server/IDBServer.h M Source/WebCore/loader/EmptyClients.cpp M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.messages.in M Source/WebKit/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp M Source/WebKit/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h M Source/WebKitLegacy/Storage/InProcessIDBServer.cpp M Source/WebKitLegacy/Storage/InProcessIDBServer.h Log Message: --- Fix flaky test crash in indexeddb/crash-on-getdatabases.html https://bugs.webkit.org/show_bug.cgi?id=247499 rdar://101970988 Reviewed by Sihui Liu. We are sending invalid IDBResourceIdentifiers with AbortOpenAndUpgradeNeeded IPC messages to the indexeddb server. * Source/WebCore/Modules/indexeddb/IDBOpenDBRequest.cpp: (WebCore::IDBOpenDBRequest::requestCompleted): * Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.cpp: (WebCore::IDBClient::IDBConnectionProxy::abortOpenAndUpgradeNeeded): * Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.h: * Source/WebCore/Modules/indexeddb/client/IDBConnectionToServer.cpp: (WebCore::IDBClient::IDBConnectionToServer::abortOpenAndUpgradeNeeded): * Source/WebCore/Modules/indexeddb/client/IDBConnectionToServer.h: * Source/WebCore/Modules/indexeddb/client/IDBConnectionToServerDelegate.h: * Source/WebCore/Modules/indexeddb/server/IDBServer.cpp: (WebCore::IDBServer::IDBServer::abortOpenAndUpgradeNeeded): * Source/WebCore/Modules/indexeddb/server/IDBServer.h: * Source/WebCore/loader/EmptyClients.cpp: * Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp: (WebKit::NetworkStorageManager::abortOpenAndUpgradeNeeded): * Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h: * Source/WebKit/NetworkProcess/storage/NetworkStorageManager.messages.in: * Source/WebKit/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp: (WebKit::WebIDBConnectionToServer::abortOpenAndUpgradeNeeded): * Source/WebKit/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h: * Source/WebKitLegacy/Storage/InProcessIDBServer.cpp: (InProcessIDBServer::abortOpenAndUpgradeNeeded): * Source/WebKitLegacy/Storage/InProcessIDBServer.h: * LayoutTests/platform/ios/TestExpectations: * LayoutTests/platform/mac-wk2/TestExpectations: Canonical link: https://commits.webkit.org/256464@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 397782: Unblock open source macOS 13 testers by disabling ...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 397782f247609cea4e6485153ab9997fb355a1df https://github.com/WebKit/WebKit/commit/397782f247609cea4e6485153ab9997fb355a1df Author: Miguel Salinas Date: 2022-11-04 (Fri, 04 Nov 2022) Changed paths: M Source/WTF/wtf/PlatformUse.h Log Message: --- Unblock open source macOS 13 testers by disabling runningboard on open source builds https://bugs.webkit.org/show_bug.cgi?id=247379 rdar://101879177 Reviewed by Chris Dumez. Ad-hoc signing is not able to sign processes with the runningboard entitlement. This is prohibiting our tester bots from being able to test macOS open source builds. https://github.com/WebKit/WebKit/pull/6103 * Source/WTF/wtf/PlatformUse.h: Canonical link: https://commits.webkit.org/256337@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] d2d79f: Unconditionally add runningboard entitlement on ma...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: d2d79fd33df3272eadd30ea9c415389caa0e566f https://github.com/WebKit/WebKit/commit/d2d79fd33df3272eadd30ea9c415389caa0e566f Author: Miguel Salinas Date: 2022-11-03 (Thu, 03 Nov 2022) Changed paths: M Source/WebKit/Scripts/process-entitlements.sh Log Message: --- Unconditionally add runningboard entitlement on macOS 13 https://bugs.webkit.org/show_bug.cgi?id=247379 rdar://101879177 Reviewed by Chris Dumez. We should always sign processes with the runningboard entitlement on macOS13 * Source/WebKit/Scripts/process-entitlements.sh: Canonical link: https://commits.webkit.org/256301@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 4a1a50: nullptr crash in WebCore::IDBTransaction::dispatch...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 4a1a50028375e15290414aa3f750adf95e9fe6ee https://github.com/WebKit/WebKit/commit/4a1a50028375e15290414aa3f750adf95e9fe6ee Author: Miguel Salinas Date: 2022-10-28 (Fri, 28 Oct 2022) Changed paths: A LayoutTests/storage/indexeddb/crash-on-getdatabases-expected.txt A LayoutTests/storage/indexeddb/crash-on-getdatabases.html A LayoutTests/storage/indexeddb/resources/crash-on-getdatabases.js M Source/WebCore/Modules/indexeddb/IDBTransaction.cpp Log Message: --- nullptr crash in WebCore::IDBTransaction::dispatchEvent https://bugs.webkit.org/show_bug.cgi?id=246706 rdar://94637046 Reviewed by Sihui Liu. We should check if m_openDBRequest is null in IDBTransaction::dispatchEvent. The repro is flaky but does reproduce for me ~1/3 of the time. I tried to reduce the test case but it either stopped reproducing or reproduced significantly less frequently. * LayoutTests/storage/indexeddb/crash-on-getdatabases-expected.txt: Added. * LayoutTests/storage/indexeddb/crash-on-getdatabases.html: Added. * LayoutTests/storage/indexeddb/resources/crash-on-getdatabases.js: Added. (async testDoesNotCrash): * Source/WebCore/Modules/indexeddb/IDBTransaction.cpp: (WebCore::IDBTransaction::dispatchEvent): Canonical link: https://commits.webkit.org/256112@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] f8166f: [macOS] Use RunningBoard to manage process priorities
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: f8166f50d036560b0a2553800d1de26b6302b83d https://github.com/WebKit/WebKit/commit/f8166f50d036560b0a2553800d1de26b6302b83d Author: Miguel Salinas Date: 2022-10-27 (Thu, 27 Oct 2022) Changed paths: M Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml M Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp M Source/WebKit/UIProcess/AuxiliaryProcessProxy.h M Source/WebKit/UIProcess/Cocoa/LegacyDownloadClient.mm M Source/WebKit/UIProcess/Cocoa/NavigationState.h M Source/WebKit/UIProcess/Cocoa/NavigationState.mm M Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp M Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp M Source/WebKit/UIProcess/PageClient.h M Source/WebKit/UIProcess/ProcessAssertion.h M Source/WebKit/UIProcess/ProvisionalPageProxy.cpp M Source/WebKit/UIProcess/ProvisionalPageProxy.h M Source/WebKit/UIProcess/SuspendedPageProxy.cpp M Source/WebKit/UIProcess/SuspendedPageProxy.h M Source/WebKit/UIProcess/WebPageProxy.cpp M Source/WebKit/UIProcess/WebPageProxy.h M Source/WebKit/UIProcess/WebProcessPool.cpp M Source/WebKit/UIProcess/WebProcessProxy.cpp M Source/WebKit/UIProcess/WebProcessProxy.h M Source/WebKit/UIProcess/mac/PageClientImplMac.h Log Message: --- [macOS] Use RunningBoard to manage process priorities https://bugs.webkit.org/show_bug.cgi?id=245752 rdar://100477336 Reviewed by Chris Dumez. Now that we have integrated RunningBoard with WebKit we should start using it to manage our process priorities. This change enables the iOS assertion behavior on macOS behind a runtime flag. A previous version of this patch mistakenly enabled the ProcessThrottler to send PrepareToSuspend IPC messages to auxiliary processes even if runningboard supression was disabled. This caused a large performance regression which is now fixed. * Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml: * Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp: (WebKit::AuxiliaryProcessProxy::didFinishLaunching): (WebKit::AuxiliaryProcessProxy::setRunningBoardThrottlingEnabled): * Source/WebKit/UIProcess/AuxiliaryProcessProxy.h: * Source/WebKit/UIProcess/Cocoa/LegacyDownloadClient.mm: (WebKit::LegacyDownloadClient::takeActivityToken): * Source/WebKit/UIProcess/Cocoa/NavigationState.h: * Source/WebKit/UIProcess/Cocoa/NavigationState.mm: (WebKit::NavigationState::NavigationState): (WebKit::NavigationState::didChangeIsLoading): (WebKit::NavigationState::didSwapWebProcesses): * Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp: (WebKit::GPUProcessProxy::didFinishLaunching): * Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::didFinishLaunching): * Source/WebKit/UIProcess/PageClient.h: * Source/WebKit/UIProcess/ProcessAssertion.h: * Source/WebKit/UIProcess/ProvisionalPageProxy.cpp: (WebKit::ProvisionalPageProxy::ProvisionalPageProxy): * Source/WebKit/UIProcess/ProvisionalPageProxy.h: * Source/WebKit/UIProcess/SuspendedPageProxy.cpp: (WebKit::SuspendedPageProxy::SuspendedPageProxy): (WebKit::SuspendedPageProxy::didProcessRequestToSuspend): * Source/WebKit/UIProcess/SuspendedPageProxy.h: * Source/WebKit/UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::updateThrottleState): (WebKit::WebPageProxy::waitForDidUpdateActivityState): (WebKit::WebPageProxy::runJavaScriptInFrameInScriptWorld): * Source/WebKit/UIProcess/WebPageProxy.h: * Source/WebKit/UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::createWebPage): * Source/WebKit/UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::didFinishLaunching): * Source/WebKit/UIProcess/mac/PageClientImplMac.h: Canonical link: https://commits.webkit.org/256072@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 47dbe9: Revert [255693@main] [macOS] Use RunningBoard to m...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 47dbe9986cc1cc4bf48cce4f3e7ac2d255dca91f https://github.com/WebKit/WebKit/commit/47dbe9986cc1cc4bf48cce4f3e7ac2d255dca91f Author: Miguel Salinas Date: 2022-10-19 (Wed, 19 Oct 2022) Changed paths: M Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml M Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp M Source/WebKit/UIProcess/AuxiliaryProcessProxy.h M Source/WebKit/UIProcess/Cocoa/LegacyDownloadClient.mm M Source/WebKit/UIProcess/Cocoa/NavigationState.h M Source/WebKit/UIProcess/Cocoa/NavigationState.mm M Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp M Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp M Source/WebKit/UIProcess/PageClient.h M Source/WebKit/UIProcess/ProcessAssertion.h M Source/WebKit/UIProcess/ProvisionalPageProxy.cpp M Source/WebKit/UIProcess/ProvisionalPageProxy.h M Source/WebKit/UIProcess/SuspendedPageProxy.cpp M Source/WebKit/UIProcess/SuspendedPageProxy.h M Source/WebKit/UIProcess/WebPageProxy.cpp M Source/WebKit/UIProcess/WebPageProxy.h M Source/WebKit/UIProcess/WebProcessPool.cpp M Source/WebKit/UIProcess/WebProcessProxy.cpp M Source/WebKit/UIProcess/WebProcessProxy.h M Source/WebKit/UIProcess/mac/PageClientImplMac.h M Source/WebKit/UIProcess/mac/WebProcessProxyMac.mm Log Message: --- Revert [255693@main] [macOS] Use RunningBoard to manage process priorities https://bugs.webkit.org/show_bug.cgi?id=245752 rdar://100477336 Reviewed by Ben Nham. Reverting commit due to PLT regression. * Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml: * Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp: (WebKit::AuxiliaryProcessProxy::didFinishLaunching): * Source/WebKit/UIProcess/AuxiliaryProcessProxy.h: * Source/WebKit/UIProcess/Cocoa/LegacyDownloadClient.mm: (WebKit::LegacyDownloadClient::takeActivityToken): * Source/WebKit/UIProcess/Cocoa/NavigationState.h: * Source/WebKit/UIProcess/Cocoa/NavigationState.mm: (WebKit::NavigationState::NavigationState): (WebKit::NavigationState::didChangeIsLoading): (WebKit::NavigationState::didSwapWebProcesses): * Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp: (WebKit::GPUProcessProxy::didFinishLaunching): * Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::didFinishLaunching): * Source/WebKit/UIProcess/PageClient.h: * Source/WebKit/UIProcess/ProcessAssertion.h: * Source/WebKit/UIProcess/ProvisionalPageProxy.cpp: (WebKit::ProvisionalPageProxy::ProvisionalPageProxy): * Source/WebKit/UIProcess/ProvisionalPageProxy.h: * Source/WebKit/UIProcess/SuspendedPageProxy.cpp: (WebKit::SuspendedPageProxy::SuspendedPageProxy): (WebKit::SuspendedPageProxy::didProcessRequestToSuspend): * Source/WebKit/UIProcess/SuspendedPageProxy.h: * Source/WebKit/UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::updateThrottleState): (WebKit::WebPageProxy::waitForDidUpdateActivityState): (WebKit::WebPageProxy::runJavaScriptInFrameInScriptWorld): * Source/WebKit/UIProcess/WebPageProxy.h: * Source/WebKit/UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::createWebPage): * Source/WebKit/UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::didFinishLaunching): * Source/WebKit/UIProcess/WebProcessProxy.h: * Source/WebKit/UIProcess/mac/PageClientImplMac.h: * Source/WebKit/UIProcess/mac/WebProcessProxyMac.mm: (WebKit::WebProcessProxy::enableProcessSuspension): Deleted. Canonical link: https://commits.webkit.org/255749@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 159f6e: [macOS] Use RunningBoard to manage process priorities
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 159f6eaa6475b105dafe04437a583c5caf1e3060 https://github.com/WebKit/WebKit/commit/159f6eaa6475b105dafe04437a583c5caf1e3060 Author: Miguel Salinas Date: 2022-10-18 (Tue, 18 Oct 2022) Changed paths: M Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml M Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp M Source/WebKit/UIProcess/AuxiliaryProcessProxy.h M Source/WebKit/UIProcess/Cocoa/LegacyDownloadClient.mm M Source/WebKit/UIProcess/Cocoa/NavigationState.h M Source/WebKit/UIProcess/Cocoa/NavigationState.mm M Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp M Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp M Source/WebKit/UIProcess/PageClient.h M Source/WebKit/UIProcess/ProcessAssertion.h M Source/WebKit/UIProcess/ProvisionalPageProxy.cpp M Source/WebKit/UIProcess/ProvisionalPageProxy.h M Source/WebKit/UIProcess/SuspendedPageProxy.cpp M Source/WebKit/UIProcess/SuspendedPageProxy.h M Source/WebKit/UIProcess/WebPageProxy.cpp M Source/WebKit/UIProcess/WebPageProxy.h M Source/WebKit/UIProcess/WebProcessPool.cpp M Source/WebKit/UIProcess/WebProcessProxy.cpp M Source/WebKit/UIProcess/WebProcessProxy.h M Source/WebKit/UIProcess/mac/PageClientImplMac.h M Source/WebKit/UIProcess/mac/WebProcessProxyMac.mm Log Message: --- [macOS] Use RunningBoard to manage process priorities https://bugs.webkit.org/show_bug.cgi?id=245752 rdar://100477336 Reviewed by Chris Dumez. Now that we have integrated RunningBoard with WebKit we should start using it to manage our process priorities. This change enables the iOS assertion behavior on macOS behind a runtime flag. * Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml: * Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp: (WebKit::AuxiliaryProcessProxy::didFinishLaunching): * Source/WebKit/UIProcess/AuxiliaryProcessProxy.h: * Source/WebKit/UIProcess/Cocoa/LegacyDownloadClient.mm: (WebKit::LegacyDownloadClient::takeActivityToken): * Source/WebKit/UIProcess/Cocoa/NavigationState.h: * Source/WebKit/UIProcess/Cocoa/NavigationState.mm: (WebKit::NavigationState::NavigationState): (WebKit::NavigationState::didChangeIsLoading): (WebKit::NavigationState::didSwapWebProcesses): * Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp: (WebKit::GPUProcessProxy::didFinishLaunching): * Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::didFinishLaunching): * Source/WebKit/UIProcess/PageClient.h: * Source/WebKit/UIProcess/ProcessAssertion.h: * Source/WebKit/UIProcess/ProvisionalPageProxy.cpp: (WebKit::ProvisionalPageProxy::ProvisionalPageProxy): * Source/WebKit/UIProcess/ProvisionalPageProxy.h: * Source/WebKit/UIProcess/SuspendedPageProxy.cpp: (WebKit::SuspendedPageProxy::SuspendedPageProxy): (WebKit::SuspendedPageProxy::didProcessRequestToSuspend): * Source/WebKit/UIProcess/SuspendedPageProxy.h: * Source/WebKit/UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::updateThrottleState): (WebKit::WebPageProxy::waitForDidUpdateActivityState): (WebKit::WebPageProxy::runJavaScriptInFrameInScriptWorld): * Source/WebKit/UIProcess/WebPageProxy.h: * Source/WebKit/UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::createWebPage): * Source/WebKit/UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::didFinishLaunching): (WebKit::WebProcessProxy::enableProcessSuspension): * Source/WebKit/UIProcess/WebProcessProxy.h: * Source/WebKit/UIProcess/mac/PageClientImplMac.h: Canonical link: https://commits.webkit.org/255693@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 4bd642: Background WebContent Processes should fully suspe...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 4bd642c8073d7a9880db59403458169ccd72183e https://github.com/WebKit/WebKit/commit/4bd642c8073d7a9880db59403458169ccd72183e Author: Miguel Salinas Date: 2022-10-13 (Thu, 13 Oct 2022) Changed paths: M Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml M Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h M Source/WebKit/UIProcess/API/Cocoa/WKWebViewTesting.mm M Source/WebKit/UIProcess/ProcessThrottler.cpp M Source/WebKit/UIProcess/ProcessThrottler.h M Source/WebKit/UIProcess/ProcessThrottlerClient.h M Source/WebKit/UIProcess/WebProcessPool.cpp M Source/WebKit/UIProcess/WebProcessProxy.cpp M Source/WebKit/UIProcess/WebProcessProxy.h M Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm Log Message: --- Background WebContent Processes should fully suspend behind runtime flag https://bugs.webkit.org/show_bug.cgi?id=246304 rdar://101001791 Reviewed by Chris Dumez. Add a runtime flag "FullySuspendBackgroundTabs" which allows ProcessThrottler to drop all RunningBoard assertions and consequently suspend the throttled background WebContent process. * Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml: * Source/WebKit/UIProcess/API/Cocoa/WKWebViewTesting.mm: (-[WKWebView _setAssertionTypeForTesting:]): * Source/WebKit/UIProcess/ProcessThrottler.cpp: (WebKit::ProcessThrottler::addActivity): (WebKit::ProcessThrottler::removeActivity): (WebKit::ProcessThrottler::expectedThrottleState): (WebKit::ProcessThrottler::updateThrottleStateNow): (WebKit::ProcessThrottler::assertionTypeForState): (WebKit::ProcessThrottler::setThrottleState): (WebKit::ProcessThrottler::updateThrottleStateIfNeeded): (WebKit::ProcessThrottler::didConnectToProcess): (WebKit::ProcessThrottler::prepareToSuspendTimeoutTimerFired): (WebKit::ProcessThrottler::processReadyToSuspend): (WebKit::ProcessThrottler::sendPrepareToSuspendIPC): (WebKit::ProcessThrottler::enableFullSuspension): (WebKit::ProcessThrottler::expectedAssertionType): Deleted. (WebKit::ProcessThrottler::updateAssertionTypeNow): Deleted. (WebKit::ProcessThrottler::setAssertionType): Deleted. (WebKit::ProcessThrottler::updateAssertionIfNeeded): Deleted. * Source/WebKit/UIProcess/ProcessThrottler.h: * Source/WebKit/UIProcess/ProcessThrottlerClient.h: (WebKit::ProcessThrottlerClient::didChangeThrottleState): (WebKit::ProcessThrottlerClient::didSetAssertionType): Deleted. * Source/WebKit/UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::createWebPage): * Source/WebKit/UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::didChangeThrottleState): (WebKit::WebProcessProxy::didSetAssertionType): Deleted. * Source/WebKit/UIProcess/WebProcessProxy.h: (WebKit::WebProcessProxy::setAssertionTypeForTesting): Canonical link: https://commits.webkit.org/255498@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] b9d866: [macOS] Stop leaking a boost on GPU and Network pr...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: b9d8665c0eb74482853d722b74533bd5d06a875d https://github.com/WebKit/WebKit/commit/b9d8665c0eb74482853d722b74533bd5d06a875d Author: Miguel Salinas Date: 2022-10-05 (Wed, 05 Oct 2022) Changed paths: M Source/WebKit/GPUProcess/EntryPoint/Cocoa/XPCService/GPUServiceEntryPoint.mm M Source/WebKit/NetworkProcess/EntryPoint/Cocoa/XPCService/NetworkService/Info-OSX.plist M Source/WebKit/NetworkProcess/EntryPoint/Cocoa/XPCService/NetworkServiceEntryPoint.mm M Source/WebKit/Shared/AuxiliaryProcess.cpp M Source/WebKit/Shared/AuxiliaryProcess.h M Source/WebKit/Shared/Cocoa/AuxiliaryProcessCocoa.mm M Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h M Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm M Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm M Source/WebKit/UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm M Source/WebKit/WebProcess/EntryPoint/Cocoa/XPCService/WebContentServiceEntryPoint.mm Log Message: --- [macOS] Stop leaking a boost on GPU and Network processes https://bugs.webkit.org/show_bug.cgi?id=245796 rdar://100526100 Reviewed by Chris Dumez. We are currently leaking a boost on the GPU process and Network process to grant high CPU and I/O priorities. This is not needed at all for the GPU process since it runs as TASK_APPTYPE_APP_DEFAULT. We should have the Network process run at TASK_APPTYPE_APP_DEFAULT as well (which it already does on iOS) and remove its boost. * Source/WebKit/GPUProcess/EntryPoint/Cocoa/XPCService/GPUServiceEntryPoint.mm: (GPU_SERVICE_INITIALIZER): * Source/WebKit/NetworkProcess/EntryPoint/Cocoa/XPCService/NetworkService/Info-OSX.plist: * Source/WebKit/NetworkProcess/EntryPoint/Cocoa/XPCService/NetworkServiceEntryPoint.mm: (NETWORK_SERVICE_INITIALIZER): * Source/WebKit/Shared/AuxiliaryProcess.cpp: (WebKit::AuxiliaryProcess::initialize): * Source/WebKit/Shared/AuxiliaryProcess.h: * Source/WebKit/Shared/Cocoa/AuxiliaryProcessCocoa.mm: (WebKit::AuxiliaryProcess::platformStopRunLoop): * Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h: (WebKit::XPCServiceInitializer): * Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm: (WebKit::XPCServiceExit): * Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm: (WebKit::XPCServiceEventHandler): * Source/WebKit/UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm: (WebKit::ProcessLauncher::launchProcess): (WebKit::shouldLeakBoost): Deleted. * Source/WebKit/WebProcess/EntryPoint/Cocoa/XPCService/WebContentServiceEntryPoint.mm: (WEBCONTENT_SERVICE_INITIALIZER): Canonical link: https://commits.webkit.org/255198@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 633346: [macOS] Adopt RunningBoard process assertions
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 6333464afab0d8b4e7bd9ea5bac1132a3bacd1ca https://github.com/WebKit/WebKit/commit/6333464afab0d8b4e7bd9ea5bac1132a3bacd1ca Author: Miguel Salinas Date: 2022-09-26 (Mon, 26 Sep 2022) Changed paths: M Source/WTF/wtf/PlatformUse.h M Source/WebKit/Configurations/WebKit.xcconfig M Source/WebKit/Scripts/process-entitlements.sh A Source/WebKit/Scripts/update-info-plist-for-runningboard.sh M Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h M Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm M Source/WebKit/SourcesCocoa.txt M Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp M Source/WebKit/UIProcess/AuxiliaryProcessProxy.h A Source/WebKit/UIProcess/Cocoa/ProcessAssertionCocoa.mm M Source/WebKit/UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm M Source/WebKit/UIProcess/ProcessAssertion.cpp M Source/WebKit/UIProcess/ProcessAssertion.h R Source/WebKit/UIProcess/ios/ProcessAssertionIOS.mm M Source/WebKit/WebKit.xcodeproj/project.pbxproj Log Message: --- [macOS] Adopt RunningBoard process assertions https://bugs.webkit.org/show_bug.cgi?id=244998 rdar://99753987 Reviewed by Chris Dumez. Adopt RunningBoard process assertions on macOS and stop leaking an os_transaction in order to keep our XPC services alive. This paves the way for suspendable processes on macOS since we now receive SIGKILL on application exit instead of SIGTERM. This previously caused a page load time regression due to removing the leaked boost on the network and GPU processes. * Source/WTF/wtf/PlatformUse.h: * Source/WebKit/Configurations/WebKit.xcconfig: * Source/WebKit/Scripts/process-entitlements.sh: * Source/WebKit/Scripts/update-info-plist-for-runningboard.sh: Added. * Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h: (WebKit::XPCServiceInitializer): * Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm: (WebKit::XPCServiceExit): * Source/WebKit/SourcesCocoa.txt: * Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp: (WebKit::AuxiliaryProcessProxy::didFinishLaunching): * Source/WebKit/UIProcess/AuxiliaryProcessProxy.h: * Source/WebKit/UIProcess/Cocoa/ProcessAssertionCocoa.mm: Renamed from Source/WebKit/UIProcess/ios/ProcessAssertionIOS.mm. (assertionsWorkQueue): (processHasActiveRunTimeLimitation): (+[WKProcessAssertionBackgroundTaskManager shared]): (-[WKProcessAssertionBackgroundTaskManager init]): (-[WKProcessAssertionBackgroundTaskManager dealloc]): (-[WKProcessAssertionBackgroundTaskManager addAssertionNeedingBackgroundTask:]): (-[WKProcessAssertionBackgroundTaskManager removeAssertionNeedingBackgroundTask:]): (-[WKProcessAssertionBackgroundTaskManager _notifyAssertionsOfImminentSuspension]): (-[WKProcessAssertionBackgroundTaskManager _scheduleReleaseTask]): (-[WKProcessAssertionBackgroundTaskManager _cancelPendingReleaseTask]): (-[WKProcessAssertionBackgroundTaskManager _hasBackgroundTask]): (-[WKProcessAssertionBackgroundTaskManager _updateBackgroundTask]): (-[WKProcessAssertionBackgroundTaskManager assertionWillInvalidate:]): (-[WKProcessAssertionBackgroundTaskManager assertion:didInvalidateWithError:]): (-[WKProcessAssertionBackgroundTaskManager _handleBackgroundTaskExpiration]): (-[WKProcessAssertionBackgroundTaskManager _handleBackgroundTaskExpirationOnMainThread]): (-[WKProcessAssertionBackgroundTaskManager _releaseBackgroundTask]): (-[WKProcessAssertionBackgroundTaskManager setProcessStateMonitorEnabled:]): (-[WKRBSAssertionDelegate dealloc]): (-[WKRBSAssertionDelegate assertionWillInvalidate:]): (-[WKRBSAssertionDelegate assertion:didInvalidateWithError:]): (WebKit::runningBoardNameForAssertionType): (WebKit::runningBoardDomainForAssertionType): (WebKit::ProcessAssertion::ProcessAssertion): (WebKit::ProcessAssertion::remainingRunTimeInSeconds): (WebKit::ProcessAssertion::acquireAsync): (WebKit::ProcessAssertion::acquireSync): (WebKit::ProcessAssertion::~ProcessAssertion): (WebKit::ProcessAssertion::processAssertionWillBeInvalidated): (WebKit::ProcessAssertion::processAssertionWasInvalidated): (WebKit::ProcessAssertion::isValid const): (WebKit::ProcessAndUIAssertion::ProcessAndUIAssertion): (WebKit::ProcessAndUIAssertion::~ProcessAndUIAssertion): (WebKit::ProcessAndUIAssertion::updateRunInBackgroundCount): (WebKit::ProcessAndUIAssertion::setProcessStateMonitorEnabled): (WebKit::ProcessAndUIAssertion::uiAssertionWillExpireImminently): (WebKit::ProcessAndUIAssertion::processAssertionWasInvalidated): * Source/WebKit/UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm: (WebKit::shouldLeakBoost): * Source/WebKit/UIProcess/ProcessAssertion.cpp: * Source/WebKit/UIProcess/ProcessAssertion.h: * Source/WebKit/WebKit.xcodeproj/project.pbxproj: Canonical link: https://commits.webkit.org/254879@main
[webkit-changes] [WebKit/WebKit] ba9eae: [macOS] RunningBoard assertions regress page load ...
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: ba9eae07bb2ea60139a0f1c951dbf7792a089fbd https://github.com/WebKit/WebKit/commit/ba9eae07bb2ea60139a0f1c951dbf7792a089fbd Author: Miguel Salinas Date: 2022-09-23 (Fri, 23 Sep 2022) Changed paths: M Source/WTF/wtf/PlatformUse.h M Source/WebKit/Configurations/WebKit.xcconfig M Source/WebKit/Scripts/process-entitlements.sh R Source/WebKit/Scripts/update-info-plist-for-runningboard.sh M Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h M Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm M Source/WebKit/SourcesCocoa.txt M Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp M Source/WebKit/UIProcess/AuxiliaryProcessProxy.h R Source/WebKit/UIProcess/Cocoa/ProcessAssertionCocoa.mm M Source/WebKit/UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm M Source/WebKit/UIProcess/ProcessAssertion.cpp M Source/WebKit/UIProcess/ProcessAssertion.h A Source/WebKit/UIProcess/ios/ProcessAssertionIOS.mm M Source/WebKit/WebKit.xcodeproj/project.pbxproj Log Message: --- [macOS] RunningBoard assertions regress page load time https://bugs.webkit.org/show_bug.cgi?id=245605 rdar://100342604 Revert 1f756e6601a3cfd67cb7a240fa4ee53e03dbcb98 Reviewed by Chris Dumez. * Source/WTF/wtf/PlatformUse.h: * Source/WebKit/Configurations/WebKit.xcconfig: * Source/WebKit/Scripts/process-entitlements.sh: * Source/WebKit/Scripts/update-info-plist-for-runningboard.sh: Removed. * Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h: (WebKit::XPCServiceInitializer): * Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm: (WebKit::XPCServiceExit): * Source/WebKit/SourcesCocoa.txt: * Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp: (WebKit::AuxiliaryProcessProxy::didFinishLaunching): * Source/WebKit/UIProcess/AuxiliaryProcessProxy.h: * Source/WebKit/UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm: (WebKit::shouldLeakBoost): * Source/WebKit/UIProcess/ProcessAssertion.cpp: * Source/WebKit/UIProcess/ProcessAssertion.h: * Source/WebKit/UIProcess/ios/ProcessAssertionIOS.mm: Renamed from Source/WebKit/UIProcess/Cocoa/ProcessAssertionCocoa.mm. (assertionsWorkQueue): (processHasActiveRunTimeLimitation): (+[WKProcessAssertionBackgroundTaskManager shared]): (-[WKProcessAssertionBackgroundTaskManager init]): (-[WKProcessAssertionBackgroundTaskManager dealloc]): (-[WKProcessAssertionBackgroundTaskManager addAssertionNeedingBackgroundTask:]): (-[WKProcessAssertionBackgroundTaskManager removeAssertionNeedingBackgroundTask:]): (-[WKProcessAssertionBackgroundTaskManager _notifyAssertionsOfImminentSuspension]): (-[WKProcessAssertionBackgroundTaskManager _scheduleReleaseTask]): (-[WKProcessAssertionBackgroundTaskManager _cancelPendingReleaseTask]): (-[WKProcessAssertionBackgroundTaskManager _hasBackgroundTask]): (-[WKProcessAssertionBackgroundTaskManager _updateBackgroundTask]): (-[WKProcessAssertionBackgroundTaskManager assertionWillInvalidate:]): (-[WKProcessAssertionBackgroundTaskManager assertion:didInvalidateWithError:]): (-[WKProcessAssertionBackgroundTaskManager _handleBackgroundTaskExpiration]): (-[WKProcessAssertionBackgroundTaskManager _handleBackgroundTaskExpirationOnMainThread]): (-[WKProcessAssertionBackgroundTaskManager _releaseBackgroundTask]): (-[WKProcessAssertionBackgroundTaskManager setProcessStateMonitorEnabled:]): (-[WKRBSAssertionDelegate dealloc]): (-[WKRBSAssertionDelegate assertionWillInvalidate:]): (-[WKRBSAssertionDelegate assertion:didInvalidateWithError:]): (WebKit::runningBoardNameForAssertionType): (WebKit::runningBoardDomainForAssertionType): (WebKit::ProcessAssertion::ProcessAssertion): (WebKit::ProcessAssertion::remainingRunTimeInSeconds): (WebKit::ProcessAssertion::acquireAsync): (WebKit::ProcessAssertion::acquireSync): (WebKit::ProcessAssertion::~ProcessAssertion): (WebKit::ProcessAssertion::processAssertionWillBeInvalidated): (WebKit::ProcessAssertion::processAssertionWasInvalidated): (WebKit::ProcessAssertion::isValid const): (WebKit::ProcessAndUIAssertion::updateRunInBackgroundCount): (WebKit::ProcessAndUIAssertion::ProcessAndUIAssertion): (WebKit::ProcessAndUIAssertion::setProcessStateMonitorEnabled): (WebKit::ProcessAndUIAssertion::~ProcessAndUIAssertion): (WebKit::ProcessAndUIAssertion::uiAssertionWillExpireImminently): (WebKit::ProcessAndUIAssertion::processAssertionWasInvalidated): * Source/WebKit/WebKit.xcodeproj/project.pbxproj: Canonical link: https://commits.webkit.org/254812@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [WebKit/WebKit] 1f756e: [macOS] Adopt RunningBoard process assertions
Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 1f756e6601a3cfd67cb7a240fa4ee53e03dbcb98 https://github.com/WebKit/WebKit/commit/1f756e6601a3cfd67cb7a240fa4ee53e03dbcb98 Author: Miguel Salinas Date: 2022-09-22 (Thu, 22 Sep 2022) Changed paths: M Source/WTF/wtf/PlatformUse.h M Source/WebKit/Configurations/WebKit.xcconfig M Source/WebKit/Scripts/process-entitlements.sh A Source/WebKit/Scripts/update-info-plist-for-runningboard.sh M Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h M Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm M Source/WebKit/SourcesCocoa.txt M Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp M Source/WebKit/UIProcess/AuxiliaryProcessProxy.h A Source/WebKit/UIProcess/Cocoa/ProcessAssertionCocoa.mm M Source/WebKit/UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm M Source/WebKit/UIProcess/ProcessAssertion.cpp M Source/WebKit/UIProcess/ProcessAssertion.h R Source/WebKit/UIProcess/ios/ProcessAssertionIOS.mm M Source/WebKit/WebKit.xcodeproj/project.pbxproj Log Message: --- [macOS] Adopt RunningBoard process assertions https://bugs.webkit.org/show_bug.cgi?id=244998 rdar://99753987 Reviewed by Chris Dumez. Adopt RunningBoard process assertions on macOS and stop leaking an os_transaction in order to keep our XPC services alive. This paves the way for suspendable processes on macOS since we now receive SIGKILL on application exit instead of SIGTERM. * Source/WTF/wtf/PlatformUse.h: * Source/WebKit/Configurations/WebKit.xcconfig: * Source/WebKit/Scripts/process-entitlements.sh: * Source/WebKit/Scripts/update-info-plist-for-runningboard.sh: Added. * Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h: (WebKit::XPCServiceInitializer): * Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm: (WebKit::XPCServiceExit): * Source/WebKit/SourcesCocoa.txt: * Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp: (WebKit::AuxiliaryProcessProxy::didFinishLaunching): * Source/WebKit/UIProcess/AuxiliaryProcessProxy.h: * Source/WebKit/UIProcess/Cocoa/ProcessAssertionCocoa.mm: Renamed from Source/WebKit/UIProcess/ios/ProcessAssertionIOS.mm. (assertionsWorkQueue): (processHasActiveRunTimeLimitation): (+[WKProcessAssertionBackgroundTaskManager shared]): (-[WKProcessAssertionBackgroundTaskManager init]): (-[WKProcessAssertionBackgroundTaskManager dealloc]): (-[WKProcessAssertionBackgroundTaskManager addAssertionNeedingBackgroundTask:]): (-[WKProcessAssertionBackgroundTaskManager removeAssertionNeedingBackgroundTask:]): (-[WKProcessAssertionBackgroundTaskManager _notifyAssertionsOfImminentSuspension]): (-[WKProcessAssertionBackgroundTaskManager _scheduleReleaseTask]): (-[WKProcessAssertionBackgroundTaskManager _cancelPendingReleaseTask]): (-[WKProcessAssertionBackgroundTaskManager _hasBackgroundTask]): (-[WKProcessAssertionBackgroundTaskManager _updateBackgroundTask]): (-[WKProcessAssertionBackgroundTaskManager assertionWillInvalidate:]): (-[WKProcessAssertionBackgroundTaskManager assertion:didInvalidateWithError:]): (-[WKProcessAssertionBackgroundTaskManager _handleBackgroundTaskExpiration]): (-[WKProcessAssertionBackgroundTaskManager _handleBackgroundTaskExpirationOnMainThread]): (-[WKProcessAssertionBackgroundTaskManager _releaseBackgroundTask]): (-[WKProcessAssertionBackgroundTaskManager setProcessStateMonitorEnabled:]): (-[WKRBSAssertionDelegate dealloc]): (-[WKRBSAssertionDelegate assertionWillInvalidate:]): (-[WKRBSAssertionDelegate assertion:didInvalidateWithError:]): (WebKit::runningBoardNameForAssertionType): (WebKit::runningBoardDomainForAssertionType): (WebKit::ProcessAssertion::ProcessAssertion): (WebKit::ProcessAssertion::remainingRunTimeInSeconds): (WebKit::ProcessAssertion::acquireAsync): (WebKit::ProcessAssertion::acquireSync): (WebKit::ProcessAssertion::~ProcessAssertion): (WebKit::ProcessAssertion::processAssertionWillBeInvalidated): (WebKit::ProcessAssertion::processAssertionWasInvalidated): (WebKit::ProcessAssertion::isValid const): (WebKit::ProcessAndUIAssertion::ProcessAndUIAssertion): (WebKit::ProcessAndUIAssertion::~ProcessAndUIAssertion): (WebKit::ProcessAndUIAssertion::updateRunInBackgroundCount): (WebKit::ProcessAndUIAssertion::setProcessStateMonitorEnabled): (WebKit::ProcessAndUIAssertion::uiAssertionWillExpireImminently): (WebKit::ProcessAndUIAssertion::processAssertionWasInvalidated): * Source/WebKit/UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm: (WebKit::shouldLeakBoost): * Source/WebKit/UIProcess/ProcessAssertion.cpp: * Source/WebKit/UIProcess/ProcessAssertion.h: * Source/WebKit/WebKit.xcodeproj/project.pbxproj: Canonical link: https://commits.webkit.org/254759@main ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes