Title: [242133] branches/safari-607-branch/Source/WebKit
- Revision
- 242133
- Author
- bshaf...@apple.com
- Date
- 2019-02-27 10:49:14 -0800 (Wed, 27 Feb 2019)
Log Message
Cherry-pick r242098. rdar://problem/48429674
[iOS] REGRESSION(r238490?): Safari sometimes shows blank page until a cross site navigation or re-opening the tab
https://bugs.webkit.org/show_bug.cgi?id=195037
<rdar://problem/48154508>
Reviewed by Antti Koivisto.
Restore the pre-r238490 behavior of WebPage::didCompletePageTransition clearing LayerTreeFreezeReason::ProcessSuspended
as this has been an issue when I was able to reproduce the issue locally.
Also added release logging to help diagnose the issue in the future.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::freezeLayerTree):
(WebKit::WebPage::unfreezeLayerTree):
(WebKit::WebPage::didCompletePageTransition):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::freezeAllLayerTrees):
(WebKit::WebProcess::unfreezeAllLayerTrees):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@242098 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Modified Paths
Diff
Modified: branches/safari-607-branch/Source/WebKit/ChangeLog (242132 => 242133)
--- branches/safari-607-branch/Source/WebKit/ChangeLog 2019-02-27 18:47:49 UTC (rev 242132)
+++ branches/safari-607-branch/Source/WebKit/ChangeLog 2019-02-27 18:49:14 UTC (rev 242133)
@@ -1,3 +1,50 @@
+2019-02-27 Babak Shafiei <bshaf...@apple.com>
+
+ Cherry-pick r242098. rdar://problem/48429674
+
+ [iOS] REGRESSION(r238490?): Safari sometimes shows blank page until a cross site navigation or re-opening the tab
+ https://bugs.webkit.org/show_bug.cgi?id=195037
+ <rdar://problem/48154508>
+
+ Reviewed by Antti Koivisto.
+
+ Restore the pre-r238490 behavior of WebPage::didCompletePageTransition clearing LayerTreeFreezeReason::ProcessSuspended
+ as this has been an issue when I was able to reproduce the issue locally.
+
+ Also added release logging to help diagnose the issue in the future.
+
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::freezeLayerTree):
+ (WebKit::WebPage::unfreezeLayerTree):
+ (WebKit::WebPage::didCompletePageTransition):
+ * WebProcess/WebProcess.cpp:
+ (WebKit::WebProcess::freezeAllLayerTrees):
+ (WebKit::WebProcess::unfreezeAllLayerTrees):
+
+
+ git-svn-id: https://svn.webkit.org/repository/webkit/trunk@242098 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+ 2019-02-26 Ryosuke Niwa <rn...@webkit.org>
+
+ [iOS] REGRESSION(r238490?): Safari sometimes shows blank page until a cross site navigation or re-opening the tab
+ https://bugs.webkit.org/show_bug.cgi?id=195037
+ <rdar://problem/48154508>
+
+ Reviewed by Antti Koivisto.
+
+ Restore the pre-r238490 behavior of WebPage::didCompletePageTransition clearing LayerTreeFreezeReason::ProcessSuspended
+ as this has been an issue when I was able to reproduce the issue locally.
+
+ Also added release logging to help diagnose the issue in the future.
+
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::freezeLayerTree):
+ (WebKit::WebPage::unfreezeLayerTree):
+ (WebKit::WebPage::didCompletePageTransition):
+ * WebProcess/WebProcess.cpp:
+ (WebKit::WebProcess::freezeAllLayerTrees):
+ (WebKit::WebProcess::unfreezeAllLayerTrees):
+
2019-02-24 Babak Shafiei <bshaf...@apple.com>
Cherry-pick r241963. rdar://problem/48350367
Modified: branches/safari-607-branch/Source/WebKit/WebProcess/WebPage/WebPage.cpp (242132 => 242133)
--- branches/safari-607-branch/Source/WebKit/WebProcess/WebPage/WebPage.cpp 2019-02-27 18:47:49 UTC (rev 242132)
+++ branches/safari-607-branch/Source/WebKit/WebProcess/WebPage/WebPage.cpp 2019-02-27 18:49:14 UTC (rev 242133)
@@ -2387,6 +2387,8 @@
void WebPage::freezeLayerTree(LayerTreeFreezeReason reason)
{
+ RELEASE_LOG(ProcessSuspension, "%p - WebPage (PageID=%llu) - Adding a reason %d to freeze layer tree; current reasons are %d",
+ this, m_pageID, static_cast<unsigned>(reason), m_LayerTreeFreezeReasons.toRaw());
m_LayerTreeFreezeReasons.add(reason);
updateDrawingAreaLayerTreeFreezeState();
}
@@ -2393,6 +2395,8 @@
void WebPage::unfreezeLayerTree(LayerTreeFreezeReason reason)
{
+ RELEASE_LOG(ProcessSuspension, "%p - WebPage (PageID=%llu) - Removing a reason %d to freeze layer tree; current reasons are %d",
+ this, m_pageID, static_cast<unsigned>(reason), m_LayerTreeFreezeReasons.toRaw());
m_LayerTreeFreezeReasons.remove(reason);
updateDrawingAreaLayerTreeFreezeState();
}
@@ -3098,6 +3102,15 @@
{
unfreezeLayerTree(LayerTreeFreezeReason::PageTransition);
+ if (m_LayerTreeFreezeReasons.contains(LayerTreeFreezeReason::ProcessSuspended)) {
+ RELEASE_LOG_ERROR(ProcessSuspension, "%p - WebPage (PageID=%llu) - LayerTreeFreezeReason::ProcessSuspended was set when removing LayerTreeFreezeReason::PageTransition; current reasons are %d",
+ this, m_pageID, m_LayerTreeFreezeReasons.toRaw());
+ }
+
+ // FIXME: In iOS, we sometimes never unset ProcessSuspended. See <rdar://problem/48154508>.
+ unfreezeLayerTree(LayerTreeFreezeReason::ProcessSuspended);
+ RELEASE_LOG_IF_ALLOWED("%p - WebPage - Did complete page transition", this);
+
bool isInitialEmptyDocument = !m_mainFrame;
if (!isInitialEmptyDocument)
unfreezeLayerTree(LayerTreeFreezeReason::ProcessSwap);
Modified: branches/safari-607-branch/Source/WebKit/WebProcess/WebProcess.cpp (242132 => 242133)
--- branches/safari-607-branch/Source/WebKit/WebProcess/WebProcess.cpp 2019-02-27 18:47:49 UTC (rev 242132)
+++ branches/safari-607-branch/Source/WebKit/WebProcess/WebProcess.cpp 2019-02-27 18:49:14 UTC (rev 242133)
@@ -1528,6 +1528,7 @@
void WebProcess::freezeAllLayerTrees()
{
+ RELEASE_LOG(ProcessSuspension, "WebProcess %i is freezing all layer trees", getpid());
for (auto& page : m_pageMap.values())
page->freezeLayerTree(WebPage::LayerTreeFreezeReason::ProcessSuspended);
}
@@ -1534,6 +1535,7 @@
void WebProcess::unfreezeAllLayerTrees()
{
+ RELEASE_LOG(ProcessSuspension, "WebProcess %i is unfreezing all layer trees", getpid());
for (auto& page : m_pageMap.values())
page->unfreezeLayerTree(WebPage::LayerTreeFreezeReason::ProcessSuspended);
}
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes