WebKit Bugzilla
Attachment 357711 Details for
Bug 192873
: [PSON] SuspendedPageProxy fails to release its process assertion if the WebPage fails to enter PageCache
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-192873-20181219132634.patch (text/plain), 3.67 KB, created by
Chris Dumez
on 2018-12-19 13:26:35 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Chris Dumez
Created:
2018-12-19 13:26:35 PST
Size:
3.67 KB
patch
obsolete
>Subversion Revision: 239387 >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index e116f47f9961f4aa606d5910ca34e40df60df6be..01b3412f8429269a1f327a98d5861ff75ebd5beb 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,20 @@ >+2018-12-19 Chris Dumez <cdumez@apple.com> >+ >+ [PSON] SuspendedPageProxy fails to release its process assertion if the WebPage fails to enter PageCache >+ https://bugs.webkit.org/show_bug.cgi?id=192873 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ SuspendedPageProxy fails to release its process assertion if the WebPage fails to enter PageCache, preventing >+ the process from suspending on iOS. >+ >+ * UIProcess/SuspendedPageProxy.cpp: >+ (WebKit::SuspendedPageProxy::didProcessRequestToSuspend): >+ (WebKit::SuspendedPageProxy::didReceiveMessage): >+ (WebKit::SuspendedPageProxy::didSuspend): Deleted. >+ (WebKit::SuspendedPageProxy::didFailToSuspend): Deleted. >+ * UIProcess/SuspendedPageProxy.h: >+ > 2018-12-19 Megan Gardner <megan_gardner@apple.com> > > Allow clients to set the navigator platform >diff --git a/Source/WebKit/UIProcess/SuspendedPageProxy.cpp b/Source/WebKit/UIProcess/SuspendedPageProxy.cpp >index 61a0af9ac4c4cd07949b9ca9b0d8af6b20cc2c8a..1141d9e652caf84e9efb6d278b5fd0a60f2b642b 100644 >--- a/Source/WebKit/UIProcess/SuspendedPageProxy.cpp >+++ b/Source/WebKit/UIProcess/SuspendedPageProxy.cpp >@@ -138,12 +138,13 @@ void SuspendedPageProxy::unsuspend() > m_process->send(Messages::WebPage::SetIsSuspended(false), m_page.pageID()); > } > >-void SuspendedPageProxy::didSuspend() >+void SuspendedPageProxy::didProcessRequestToSuspend(SuspensionState newSuspensionState) > { >+ ASSERT(newSuspensionState == SuspensionState::Suspended || newSuspensionState == SuspensionState::FailedToSuspend) > LOG(ProcessSwapping, "SuspendedPageProxy %s from process %i finished transition to suspended", loggingString(), m_process->processIdentifier()); > > ASSERT(m_suspensionState == SuspensionState::Suspending); >- m_suspensionState = SuspensionState::Suspended; >+ m_suspensionState = newSuspensionState; > > #if PLATFORM(IOS_FAMILY) > m_suspensionToken = nullptr; >@@ -153,26 +154,17 @@ void SuspendedPageProxy::didSuspend() > m_readyToUnsuspendHandler(this); > } > >-void SuspendedPageProxy::didFailToSuspend() >-{ >- ASSERT(m_suspensionState == SuspensionState::Suspending); >- m_suspensionState = SuspensionState::FailedToSuspend; >- >- if (m_readyToUnsuspendHandler) >- m_readyToUnsuspendHandler(this); >-} >- > void SuspendedPageProxy::didReceiveMessage(IPC::Connection&, IPC::Decoder& decoder) > { > ASSERT(decoder.messageReceiverName() == Messages::WebPageProxy::messageReceiverName()); > > if (decoder.messageName() == Messages::WebPageProxy::DidSuspendAfterProcessSwap::name()) { >- didSuspend(); >+ didProcessRequestToSuspend(SuspensionState::Suspended); > return; > } > > if (decoder.messageName() == Messages::WebPageProxy::DidFailToSuspendAfterProcessSwap::name()) { >- didFailToSuspend(); >+ didProcessRequestToSuspend(SuspensionState::FailedToSuspend); > return; > } > >diff --git a/Source/WebKit/UIProcess/SuspendedPageProxy.h b/Source/WebKit/UIProcess/SuspendedPageProxy.h >index 1b56d06af6681da2b636b994f875bd19e24b05b9..dbba7868a80a0f84cbb36b6b1c23990aa89b8e30 100644 >--- a/Source/WebKit/UIProcess/SuspendedPageProxy.h >+++ b/Source/WebKit/UIProcess/SuspendedPageProxy.h >@@ -57,8 +57,7 @@ public: > #endif > > private: >- void didSuspend(); >- void didFailToSuspend(); >+ void didProcessRequestToSuspend(SuspensionState); > > // IPC::MessageReceiver > void didReceiveMessage(IPC::Connection&, IPC::Decoder&) final;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 192873
:
357711
|
357714
|
357715