WebKit Bugzilla
Attachment 371524 Details for
Bug 198622
: Crash using WKHTTPCookieStore when you use WKWebView and UIWebView in the same app
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-198622-20190606134815.patch (text/plain), 2.63 KB, created by
Geoffrey Garen
on 2019-06-06 13:48:16 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Geoffrey Garen
Created:
2019-06-06 13:48:16 PDT
Size:
2.63 KB
patch
obsolete
>Index: Source/WebKit/ChangeLog >=================================================================== >--- Source/WebKit/ChangeLog (revision 246169) >+++ Source/WebKit/ChangeLog (working copy) >@@ -1,3 +1,24 @@ >+2019-06-06 Geoffrey Garen <ggaren@apple.com> >+ >+ Crash using WKHTTPCookieStore when you use WKWebView and UIWebView in the same app >+ https://bugs.webkit.org/show_bug.cgi?id=198622 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Today in a WWDC lab, I saw some crash reports from an app that mixed >+ WKWebView and UIWebView. The proximate cause of the crash is that >+ WKHTTPCookieStore queues a callOnMainThread function, and then >+ UIWebView dequeues it on the WebThread. >+ >+ No test because this crash depends on mixing WKWebView and UIWebView and >+ getting (un)lucky on the timing. >+ >+ * UIProcess/API/APIHTTPCookieStore.cpp: >+ (API::HTTPCookieStore::cookies): >+ (API::HTTPCookieStore::setCookies): >+ (API::HTTPCookieStore::deleteCookie): Avoid using callOnMainThread >+ becuase it is prohibited in the UI process. >+ > 2019-06-06 Antoine Quint <graouts@apple.com> > > Remove duplicated websiteDataStoreParameters code from WebsitePoliciesData::applyToDocumentLoader() >Index: Source/WebKit/UIProcess/API/APIHTTPCookieStore.cpp >=================================================================== >--- Source/WebKit/UIProcess/API/APIHTTPCookieStore.cpp (revision 246095) >+++ Source/WebKit/UIProcess/API/APIHTTPCookieStore.cpp (working copy) >@@ -62,7 +62,7 @@ void HTTPCookieStore::cookies(Completion > allCookies = getAllDefaultUIProcessCookieStoreCookies(); > allCookies.appendVector(m_owningDataStore->pendingCookies()); > >- callOnMainThread([completionHandler = WTFMove(completionHandler), allCookies] () mutable { >+ RunLoop::main().dispatch([completionHandler = WTFMove(completionHandler), allCookies] () mutable { > completionHandler(allCookies); > }); > return; >@@ -86,7 +86,7 @@ void HTTPCookieStore::setCookies(const V > m_owningDataStore->addPendingCookie(cookie); > } > >- callOnMainThread(WTFMove(completionHandler)); >+ RunLoop::main().dispatch(WTFMove(completionHandler)); > return; > } > >@@ -105,7 +105,7 @@ void HTTPCookieStore::deleteCookie(const > else > m_owningDataStore->removePendingCookie(cookie); > >- callOnMainThread([completionHandler = WTFMove(completionHandler)] () mutable { >+ RunLoop::main().dispatch([completionHandler = WTFMove(completionHandler)] () mutable { > completionHandler(); > }); > return;
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 198622
: 371524