Changeset 242611 in webkit


Ignore:
Timestamp:
Mar 7, 2019 1:50:35 PM (5 years ago)
Author:
Chris Dumez
Message:

Regression(r242580) WebKit.NetworkProcessCrashWithPendingConnection API is crashing on iOS debug
https://bugs.webkit.org/show_bug.cgi?id=195416

Reviewed by Antti Koivisto.

Drop ASSERT_NOT_REACHED() in WebPage::didCompletePageTransition() when the tree is still frozen due to
LayerTreeFreezeReason::ProcessSuspended. As demonstrated by this API test, nothing prevents a load from
completing and WebPage::didCompletePageTransition() to get called *after* WebProcess::prepareToSuspend()
has been called. From the logging during the test, I can tell that WebProcess::processDidResume() gets
called later on and the LayerTreeFreezeReason::ProcessSuspended freezing reason gets dropped, as expected.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didCompletePageTransition):

Location:
trunk/Source/WebKit
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r242610 r242611  
     12019-03-07  Chris Dumez  <cdumez@apple.com>
     2
     3        Regression(r242580) WebKit.NetworkProcessCrashWithPendingConnection API is crashing on iOS debug
     4        https://bugs.webkit.org/show_bug.cgi?id=195416
     5
     6        Reviewed by Antti Koivisto.
     7
     8        Drop ASSERT_NOT_REACHED() in WebPage::didCompletePageTransition() when the tree is still frozen due to
     9        LayerTreeFreezeReason::ProcessSuspended. As demonstrated by this API test, nothing prevents a load from
     10        completing and WebPage::didCompletePageTransition() to get called *after* WebProcess::prepareToSuspend()
     11        has been called. From the logging during the test, I can tell that WebProcess::processDidResume() gets
     12        called later on and the LayerTreeFreezeReason::ProcessSuspended freezing reason gets dropped, as expected.
     13
     14        * WebProcess/WebPage/WebPage.cpp:
     15        (WebKit::WebPage::didCompletePageTransition):
     16
    1172019-03-07  Chris Dumez  <cdumez@apple.com>
    218
  • trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp

    r242587 r242611  
    31453145    unfreezeLayerTree(LayerTreeFreezeReason::PageTransition);
    31463146
    3147     if (m_LayerTreeFreezeReasons.contains(LayerTreeFreezeReason::ProcessSuspended)) {
    3148         RELEASE_LOG_ERROR(ProcessSuspension, "%p - WebPage (PageID=%" PRIu64 ") - LayerTreeFreezeReason::ProcessSuspended was set when removing LayerTreeFreezeReason::PageTransition; current reasons are %d",
    3149             this, m_pageID, m_LayerTreeFreezeReasons.toRaw());
    3150         ASSERT_NOT_REACHED();
    3151     }
    3152 
    31533147    RELEASE_LOG_IF_ALLOWED("%p - WebPage - Did complete page transition", this);
    31543148
Note: See TracChangeset for help on using the changeset viewer.