Sometimes WKWebView is blank after resuming the app, until you scroll
authortimothy_horton@apple.com <timothy_horton@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 25 Jul 2014 01:11:24 +0000 (01:11 +0000)
committertimothy_horton@apple.com <timothy_horton@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 25 Jul 2014 01:11:24 +0000 (01:11 +0000)
https://bugs.webkit.org/show_bug.cgi?id=135275
<rdar://problem/17803170>

Reviewed by Benjamin Poulain.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::dispatchViewStateChange):
If the UI process is waiting for a didUpdateViewState, we need to *always*
get a reply from the Web Process, so dispatchViewStateChange should *always*
send SetViewState even if nothing changed (so that we get the reply).

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@171570 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKit2/ChangeLog
Source/WebKit2/UIProcess/WebPageProxy.cpp

index 92ce8a54a870724fb205486c07a1c02fbb26f940..86af060d13659ccbb4790be9fdb4dbb1758f90ca 100644 (file)
@@ -1,3 +1,17 @@
+2014-07-24  Tim Horton  <timothy_horton@apple.com>
+
+        Sometimes WKWebView is blank after resuming the app, until you scroll
+        https://bugs.webkit.org/show_bug.cgi?id=135275
+        <rdar://problem/17803170>
+
+        Reviewed by Benjamin Poulain.
+
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::dispatchViewStateChange):
+        If the UI process is waiting for a didUpdateViewState, we need to *always*
+        get a reply from the Web Process, so dispatchViewStateChange should *always*
+        send SetViewState even if nothing changed (so that we get the reply).
+
 2014-07-24  Simon Fraser  <simon.fraser@apple.com>
 
         [iOS WK2] Header bar on nytimes articles lands in the wrong place after rubberbanding
 2014-07-24  Simon Fraser  <simon.fraser@apple.com>
 
         [iOS WK2] Header bar on nytimes articles lands in the wrong place after rubberbanding
index 65f7ac6f1936ee411f7f57919d19ed38a3c90adb..426e70520c8714da9e3516f306f5b85631851e5e 100644 (file)
@@ -1188,7 +1188,7 @@ void WebPageProxy::dispatchViewStateChange()
     if (m_viewWasEverInWindow && (changed & ViewState::IsInWindow) && isInWindow())
         m_viewStateChangeWantsReply = true;
 
     if (m_viewWasEverInWindow && (changed & ViewState::IsInWindow) && isInWindow())
         m_viewStateChangeWantsReply = true;
 
-    if (changed)
+    if (changed || m_viewStateChangeWantsReply)
         m_process->send(Messages::WebPage::SetViewState(m_viewState, m_viewStateChangeWantsReply), m_pageID);
 
     // This must happen after the SetViewState message is sent, to ensure the page visibility event can fire.
         m_process->send(Messages::WebPage::SetViewState(m_viewState, m_viewStateChangeWantsReply), m_pageID);
 
     // This must happen after the SetViewState message is sent, to ensure the page visibility event can fire.