WebKit Bugzilla
Attachment 369608 Details for
Bug 197801
: A service worker instance should be terminated when its SWServer is destroyed
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-197801-20190510153333.patch (text/plain), 3.23 KB, created by
youenn fablet
on 2019-05-10 15:33:34 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
youenn fablet
Created:
2019-05-10 15:33:34 PDT
Size:
3.23 KB
patch
obsolete
>Subversion Revision: 245178 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 3809f2a85a4f4e9befec877147e7843599528367..456caefff399927b540bf42aba3ca5fe575e484b 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,18 @@ >+2019-05-10 Youenn Fablet <youenn@apple.com> >+ >+ A service worker instance should be terminated when its SWServer is destroyed >+ https://bugs.webkit.org/show_bug.cgi?id=197801 >+ <rdar://problem/50587270> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ On session destruction, the SWServer is destroyed. >+ At that time, it should terminate all its running service workers. >+ Covered by updated API test. >+ >+ * workers/service/server/SWServer.cpp: >+ (WebCore::SWServer::~SWServer): >+ > 2019-05-10 Youenn Fablet <youenn@apple.com> > > A service worker process should app nap when all its clients app nap >diff --git a/Source/WebCore/workers/service/server/SWServer.cpp b/Source/WebCore/workers/service/server/SWServer.cpp >index 9d2d3074352f6ce433652a5d1f3c2f239af8fc4c..97b30c15bc90b5fb8b40cdd1cf23b7a0dfe8510f 100644 >--- a/Source/WebCore/workers/service/server/SWServer.cpp >+++ b/Source/WebCore/workers/service/server/SWServer.cpp >@@ -69,6 +69,14 @@ SWServer::~SWServer() > auto connections = WTFMove(m_connections); > connections.clear(); > >+ Vector<SWServerWorker*> runningWorkers; >+ for (auto& worker : m_runningOrTerminatingWorkers.values()) { >+ if (worker->isRunning()) >+ runningWorkers.append(worker.ptr()); >+ } >+ for (auto& runningWorker : runningWorkers) >+ terminateWorker(*runningWorker); >+ > allServers().remove(this); > } > >diff --git a/Tools/ChangeLog b/Tools/ChangeLog >index 2d52e1ee44e1058b29bef26e1e7b5351761fce97..bf482369c7e6c3da610a512b14865caeb8926738 100644 >--- a/Tools/ChangeLog >+++ b/Tools/ChangeLog >@@ -1,3 +1,13 @@ >+2019-05-10 Youenn Fablet <youenn@apple.com> >+ >+ A service worker instance should be terminated when its SWServer is destroyed >+ https://bugs.webkit.org/show_bug.cgi?id=197801 >+ <rdar://problem/50587270> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm: >+ > 2019-05-10 Youenn Fablet <youenn@apple.com> > > A service worker process should app nap when all its clients app nap >diff --git a/Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm b/Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm >index 4cd1b3328ad06f8dffe9534f1d36f286a0417df9..3dd4d7bcc26724a721158b4b5fd3b7faaf79626d 100644 >--- a/Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm >+++ b/Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm >@@ -32,6 +32,7 @@ > #import <WebKit/WKURLSchemeHandler.h> > #import <WebKit/WKURLSchemeTaskPrivate.h> > #import <WebKit/WKWebViewConfigurationPrivate.h> >+#import <WebKit/WKWebViewPrivate.h> > #import <WebKit/WKWebsiteDataStorePrivate.h> > #import <WebKit/WKWebsiteDataStoreRef.h> > #import <WebKit/WebKit.h> >@@ -1502,6 +1503,7 @@ TEST(ServiceWorkers, NonDefaultSessionID) > TestWebKitAPI::Util::run(&done); > done = false; > >+ [webView _close]; > webView = nullptr; > > EXPECT_TRUE([[NSFileManager defaultManager] fileExistsAtPath:serviceWorkersPath.path]);
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 197801
: 369608