<html>
    <head>
      <base href="https://bugs.webkit.org/">
    </head>
    <body><span class="vcard"><a class="email" href="mailto:ajuma@chromium.org" title="Ali Juma <ajuma@chromium.org>"> <span class="fn">Ali Juma</span></a>
</span> changed
          <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Safari page goes blank after suspending and resuming with an alert open"
   href="https://bugs.webkit.org/show_bug.cgi?id=146825">bug 146825</a>
          <br>
             <table border="1" cellspacing="0" cellpadding="8">
          <tr>
            <th>What</th>
            <th>Removed</th>
            <th>Added</th>
          </tr>

         <tr>
           <td style="text-align:right;">CC</td>
           <td>
                
           </td>
           <td>ajuma@chromium.org, bfulgham@webkit.org, simon.fraser@apple.com, thorton@apple.com, zalan@apple.com
           </td>
         </tr>

         <tr>
           <td style="text-align:right;">Component</td>
           <td>WebKit2
           </td>
           <td>Layout and Rendering
           </td>
         </tr></table>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Safari page goes blank after suspending and resuming with an alert open"
   href="https://bugs.webkit.org/show_bug.cgi?id=146825#c2">Comment # 2</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Safari page goes blank after suspending and resuming with an alert open"
   href="https://bugs.webkit.org/show_bug.cgi?id=146825">bug 146825</a>
              from <span class="vcard"><a class="email" href="mailto:ajuma@chromium.org" title="Ali Juma <ajuma@chromium.org>"> <span class="fn">Ali Juma</span></a>
</span></b>
        <pre>What's happening is that when Safari is resumed, the WebProcess is blocked on a sync IPC (see  WebChromeClient::runJavaScriptAlert) waiting for the alert to be dismissed. In the UIProcess, the RemoteLayerTreeDrawingAreaProxy detaches the root layer after Safari goes into the background (see hideContentUntilPendingUpdate), so when Safari is resumed the UIProcess has no layer tree to draw from until the next composited layer flush. And the WebProcess is blocked until the alert is dismissed, so we can't flush until that happens.

Having a way to persist the snapshot that's taken when the app goes into the background (so that it continues to be displayed until the alert is dismissed) might be a way to fix this, but not sure if it's worth the complexity for this edge case.</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>