Title: [279509] trunk/Source/WebKit
- Revision
- 279509
- Author
- beid...@apple.com
- Date
- 2021-07-02 10:57:12 -0700 (Fri, 02 Jul 2021)
Log Message
WebPageProxy::setAppHighlightsVisibility might send message from a background thread, ASSERTing
<rdar://80056481> and https://bugs.webkit.org/show_bug.cgi?id=227607
Reviewed by Chris Dumez.
* UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::setAppHighlightsVisibility):
(WebKit::WebPageProxy::setUpHighlightsObserver): The callback we get here is often on a background thread.
So bounce it to main.
Modified Paths
Diff
Modified: trunk/Source/WebKit/ChangeLog (279508 => 279509)
--- trunk/Source/WebKit/ChangeLog 2021-07-02 17:55:45 UTC (rev 279508)
+++ trunk/Source/WebKit/ChangeLog 2021-07-02 17:57:12 UTC (rev 279509)
@@ -1,3 +1,15 @@
+2021-07-02 Brady Eidson <beid...@apple.com>
+
+ WebPageProxy::setAppHighlightsVisibility might send message from a background thread, ASSERTing
+ <rdar://80056481> and https://bugs.webkit.org/show_bug.cgi?id=227607
+
+ Reviewed by Chris Dumez.
+
+ * UIProcess/Cocoa/WebPageProxyCocoa.mm:
+ (WebKit::WebPageProxy::setAppHighlightsVisibility):
+ (WebKit::WebPageProxy::setUpHighlightsObserver): The callback we get here is often on a background thread.
+ So bounce it to main.
+
2021-07-02 Philippe Normand <pnorm...@igalia.com>
[GTK] Add new revision variable in pkgconfig file
Modified: trunk/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm (279508 => 279509)
--- trunk/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm 2021-07-02 17:55:45 UTC (rev 279508)
+++ trunk/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm 2021-07-02 17:57:12 UTC (rev 279509)
@@ -587,6 +587,8 @@
void WebPageProxy::setAppHighlightsVisibility(WebCore::HighlightVisibility appHighlightsVisibility)
{
+ RELEASE_ASSERT(isMainRunLoop());
+
if (!hasRunningProcess())
return;
@@ -604,9 +606,16 @@
{
if (m_appHighlightsObserver)
return;
+
+ auto weakThis = makeWeakPtr(*this);
auto updateAppHighlightsVisibility = ^(BOOL isVisible) {
- setAppHighlightsVisibility(isVisible ? WebCore::HighlightVisibility::Visible : WebCore::HighlightVisibility::Hidden);
+ ensureOnMainRunLoop([weakThis, isVisible] {
+ if (!weakThis)
+ return;
+ weakThis->setAppHighlightsVisibility(isVisible ? WebCore::HighlightVisibility::Visible : WebCore::HighlightVisibility::Hidden);
+ });
};
+
m_appHighlightsObserver = adoptNS([allocSYNotesActivationObserverInstance() initWithHandler:updateAppHighlightsVisibility]);
}
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes