WebKit Bugzilla
Attachment 346295 Details for
Bug 188236
: [iOS] Make sure cookies get sync'd to disk before the network process gets suspended
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-188236-20180801135030.patch (text/plain), 3.72 KB, created by
Chris Dumez
on 2018-08-01 13:50:31 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Chris Dumez
Created:
2018-08-01 13:50:31 PDT
Size:
3.72 KB
patch
obsolete
>Subversion Revision: 234460 >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index 7b97a4fcc8f735414c08c33fea1b3c86d16ced06..9f6fb1a9386aced714178e5a960fd5d3da3c2834 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,20 @@ >+2018-08-01 Chris Dumez <cdumez@apple.com> >+ >+ [iOS] Make sure cookies get sync'd to disk before the network process gets suspended >+ https://bugs.webkit.org/show_bug.cgi?id=188236 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Make sure cookies get sync'd to disk before the network process gets suspended on iOS, >+ to avoid loosing them. >+ >+ * NetworkProcess/NetworkProcess.cpp: >+ (WebKit::NetworkProcess::actualPrepareToSuspend): >+ * NetworkProcess/NetworkProcess.h: >+ * NetworkProcess/cocoa/NetworkProcessCocoa.mm: >+ (WebKit::NetworkProcess::syncAllCookies): >+ (WebKit::NetworkProcess::platformSyncAllCookies): >+ > 2018-08-01 Commit Queue <commit-queue@webkit.org> > > Unreviewed, rolling out r234443 and r234445. >diff --git a/Source/WebKit/NetworkProcess/NetworkProcess.cpp b/Source/WebKit/NetworkProcess/NetworkProcess.cpp >index 7c0cdd41fc1d2c59b73fc46be337e57a6a150e8b..10ecf97ed72a046c463fadd15215287721671bf3 100644 >--- a/Source/WebKit/NetworkProcess/NetworkProcess.cpp >+++ b/Source/WebKit/NetworkProcess/NetworkProcess.cpp >@@ -846,6 +846,10 @@ void NetworkProcess::actualPrepareToSuspend(ShouldAcknowledgeWhenReadyToSuspend > })); > } > >+#if PLATFORM(COCOA) >+ platformSyncAllCookies([delayedTaskCounter] { }); >+#endif >+ > for (auto& connection : m_webProcessConnections) > connection->cleanupForSuspension([delayedTaskCounter] { }); > } >diff --git a/Source/WebKit/NetworkProcess/NetworkProcess.h b/Source/WebKit/NetworkProcess/NetworkProcess.h >index c9e9da2b0eeb56a1dba7df87061af7de05f3020d..96f31718b42c1b991c1cef5130ce17ec3af1a186 100644 >--- a/Source/WebKit/NetworkProcess/NetworkProcess.h >+++ b/Source/WebKit/NetworkProcess/NetworkProcess.h >@@ -250,6 +250,7 @@ private: > > #if PLATFORM(COCOA) > static void setSharedHTTPCookieStorage(const Vector<uint8_t>& identifier); >+ void platformSyncAllCookies(WTF::CompletionHandler<void()>&&); > #endif > > void registerURLSchemeAsSecure(const String&) const; >diff --git a/Source/WebKit/NetworkProcess/cocoa/NetworkProcessCocoa.mm b/Source/WebKit/NetworkProcess/cocoa/NetworkProcessCocoa.mm >index 5bc74986539f5479e61c85507a69fa4a69e9e998..b957c4fa2f33be1ce7f53f722f87766b433d88d4 100644 >--- a/Source/WebKit/NetworkProcess/cocoa/NetworkProcessCocoa.mm >+++ b/Source/WebKit/NetworkProcess/cocoa/NetworkProcessCocoa.mm >@@ -207,20 +207,24 @@ void NetworkProcess::setStorageAccessAPIEnabled(bool enabled) > > void NetworkProcess::syncAllCookies() > { >+ platformSyncAllCookies([this] { >+ didSyncAllCookies(); >+ }); >+} >+ >+void NetworkProcess::platformSyncAllCookies(WTF::CompletionHandler<void()>&& completionHander) { > ASSERT(hasProcessPrivilege(ProcessPrivilege::CanAccessRawCookies)); > #pragma clang diagnostic push > #pragma clang diagnostic ignored "-Wdeprecated-declarations" > > #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400) || (PLATFORM(IOS) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 120000) >- RefPtr<CallbackAggregator> callbackAggregator = CallbackAggregator::create([this] { >- didSyncAllCookies(); >- }); >+ RefPtr<CallbackAggregator> callbackAggregator = CallbackAggregator::create(WTFMove(completionHander)); > WebCore::NetworkStorageSession::forEach([&] (auto& networkStorageSession) { > [networkStorageSession.nsCookieStorage() _saveCookies:[callbackAggregator] { }]; > }); > #else > _CFHTTPCookieStorageFlushCookieStores(); >- didSyncAllCookies(); >+ completionHander(); > #endif > > #pragma clang diagnostic pop
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 188236
:
346295
|
346296