[webkit-changes] [WebKit/WebKit] 0420e9: [macOS] background tab suspension - 3.5% MBA8, 2 me...

2023-04-21 Thread Miguel Salinas
  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

2023-04-17 Thread Miguel Salinas
  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

2023-04-04 Thread Miguel Salinas
  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 ...

2023-03-31 Thread Miguel Salinas
  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...

2023-03-30 Thread Miguel Salinas
  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...

2023-03-27 Thread Miguel Salinas
  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

2023-03-23 Thread Miguel Salinas
  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

2023-03-20 Thread Miguel Salinas
  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...

2023-03-10 Thread Miguel Salinas
  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...

2023-03-10 Thread Miguel Salinas
  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

2023-03-10 Thread Miguel Salinas
  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

2023-03-08 Thread Miguel Salinas
  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...

2023-03-08 Thread Miguel Salinas
  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

2023-03-08 Thread Miguel Salinas
  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...

2023-03-07 Thread Miguel Salinas
  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

2023-03-07 Thread Miguel Salinas
  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

2023-03-03 Thread Miguel Salinas
  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

2023-03-03 Thread Miguel Salinas
  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...

2023-03-02 Thread Miguel Salinas
  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

2023-02-20 Thread Miguel Salinas
  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...

2023-02-17 Thread Miguel Salinas
  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

2023-02-14 Thread Miguel Salinas
  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...

2023-01-24 Thread Miguel Salinas
  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...

2023-01-20 Thread Miguel Salinas
  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...

2023-01-06 Thread Miguel Salinas
  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...

2022-12-14 Thread Miguel Salinas
  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

2022-12-14 Thread Miguel Salinas
  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...

2022-12-14 Thread Miguel Salinas
  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

2022-12-09 Thread Miguel Salinas
  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

2022-12-07 Thread Miguel Salinas
  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

2022-12-07 Thread Miguel Salinas
  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...

2022-11-29 Thread Miguel Salinas
  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...

2022-11-16 Thread Miguel Salinas
  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...

2022-11-16 Thread Miguel Salinas
  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...

2022-11-15 Thread Miguel Salinas
  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...

2022-11-08 Thread Miguel Salinas
  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 ...

2022-11-04 Thread Miguel Salinas
  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...

2022-11-03 Thread Miguel Salinas
  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...

2022-10-28 Thread Miguel Salinas
  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

2022-10-27 Thread Miguel Salinas
  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...

2022-10-19 Thread Miguel Salinas
  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

2022-10-18 Thread Miguel Salinas
  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...

2022-10-13 Thread Miguel Salinas
  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...

2022-10-05 Thread Miguel Salinas
  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

2022-09-26 Thread Miguel Salinas
  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 ...

2022-09-23 Thread Miguel Salinas
  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

2022-09-22 Thread Miguel Salinas
  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