Title: [233876] trunk/Source/WebKit
- Revision
- 233876
- Author
- timothy_hor...@apple.com
- Date
- 2018-07-16 18:10:01 -0700 (Mon, 16 Jul 2018)
Log Message
Black flash in content area when returning to Mail
https://bugs.webkit.org/show_bug.cgi?id=187719
<rdar://problem/42165340>
Reviewed by Wenson Hsieh.
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::applicationDidFinishSnapshottingAfterEnteringBackground):
This still reproduces sometimes even after r233723, because:
If a pending commit arrives after ApplicationDidEnterBackground (when we
ask the web content process to freeze the layer tree), and after
ApplicationDidFinishSnapshottingAfterEnteringBackground (when we hide
WKContentView), but before the process sleeps, it will cause WKContentView
to be unhidden (potentially including layers with empty surfaces as contents).
Nothing will re-hide WKContentView. Instead, we should wait for the next
*pending* commit, which will necessarily not come until after the application
returns to the foreground because of the strict IPC ordering between
the message that freezes the layer tree and the "next commit" mechanism.
Modified Paths
Diff
Modified: trunk/Source/WebKit/ChangeLog (233875 => 233876)
--- trunk/Source/WebKit/ChangeLog 2018-07-17 01:03:20 UTC (rev 233875)
+++ trunk/Source/WebKit/ChangeLog 2018-07-17 01:10:01 UTC (rev 233876)
@@ -1,3 +1,25 @@
+2018-07-16 Tim Horton <timothy_hor...@apple.com>
+
+ Black flash in content area when returning to Mail
+ https://bugs.webkit.org/show_bug.cgi?id=187719
+ <rdar://problem/42165340>
+
+ Reviewed by Wenson Hsieh.
+
+ * UIProcess/ios/WebPageProxyIOS.mm:
+ (WebKit::WebPageProxy::applicationDidFinishSnapshottingAfterEnteringBackground):
+ This still reproduces sometimes even after r233723, because:
+
+ If a pending commit arrives after ApplicationDidEnterBackground (when we
+ ask the web content process to freeze the layer tree), and after
+ ApplicationDidFinishSnapshottingAfterEnteringBackground (when we hide
+ WKContentView), but before the process sleeps, it will cause WKContentView
+ to be unhidden (potentially including layers with empty surfaces as contents).
+ Nothing will re-hide WKContentView. Instead, we should wait for the next
+ *pending* commit, which will necessarily not come until after the application
+ returns to the foreground because of the strict IPC ordering between
+ the message that freezes the layer tree and the "next commit" mechanism.
+
2018-07-16 Said Abou-Hallawa <sabouhall...@apple.com>
[iOS] When bringing MobileSafari to the foreground, images, which are pending decoding, won't be drawn into the immediate-paint transaction
Modified: trunk/Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm (233875 => 233876)
--- trunk/Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm 2018-07-17 01:03:20 UTC (rev 233875)
+++ trunk/Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm 2018-07-17 01:10:01 UTC (rev 233876)
@@ -657,7 +657,7 @@
{
if (m_drawingArea) {
m_drawingArea->prepareForAppSuspension();
- m_drawingArea->hideContentUntilAnyUpdate();
+ m_drawingArea->hideContentUntilPendingUpdate();
}
m_process->send(Messages::WebPage::ApplicationDidFinishSnapshottingAfterEnteringBackground(), m_pageID);
}
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes