Changeset 171167 in webkit


Ignore:
Timestamp:
Jul 16, 2014 7:26:41 PM (10 years ago)
Author:
ap@apple.com
Message:

A test that hangs at cleanup stage confuses webkitpy hugely
https://bugs.webkit.org/show_bug.cgi?id=122475
<rdar://problem/17184354>

Reviewed by Anders Carlsson.

Source/WebKit2:
Reset m_pageLoadState when the process exits cleanly - otherwise messages from a
new process for the same WebPageProxy would hit assertions.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::processDidCrash):
(WebKit::WebPageProxy::resetStateAfterProcessExited):

Tools:
Terminate WebContent process if it freezes between tests. Ideally, we should report
this somehow, but this is better than blaming the wrong test.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::terminateWebContentProcess):

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::invoke):
Location:
trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r171164 r171167  
     12014-07-16  Alexey Proskuryakov  <ap@apple.com>
     2
     3        A test that hangs at cleanup stage confuses webkitpy hugely
     4        https://bugs.webkit.org/show_bug.cgi?id=122475
     5        <rdar://problem/17184354>
     6
     7        Reviewed by Anders Carlsson.
     8
     9        Reset m_pageLoadState when the process exits cleanly - otherwise messages from a
     10        new process for the same WebPageProxy would hit assertions.
     11
     12        * UIProcess/WebPageProxy.cpp:
     13        (WebKit::WebPageProxy::processDidCrash):
     14        (WebKit::WebPageProxy::resetStateAfterProcessExited):
     15
    1162014-07-16  David Kilzer  <ddkilzer@apple.com>
    217
  • trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp

    r171154 r171167  
    42764276    resetStateAfterProcessExited();
    42774277
    4278     // FIXME: Should we do this when the process exits cleanly, instead of just upon crashing?
    4279     auto transaction = m_pageLoadState.transaction();
    4280     m_pageLoadState.reset(transaction);
    4281 
    42824278    m_loaderClient->processDidCrash(this);
    42834279}
     
    44344430    m_pageClient.dismissDictionaryLookupPanel();
    44354431#endif
     4432
     4433    auto transaction = m_pageLoadState.transaction();
     4434    m_pageLoadState.reset(transaction);
    44364435}
    44374436
  • trunk/Tools/ChangeLog

    r171142 r171167  
     12014-07-16  Alexey Proskuryakov  <ap@apple.com>
     2
     3        A test that hangs at cleanup stage confuses webkitpy hugely
     4        https://bugs.webkit.org/show_bug.cgi?id=122475
     5        <rdar://problem/17184354>
     6
     7        Reviewed by Anders Carlsson.
     8
     9        Terminate WebContent process if it freezes between tests. Ideally, we should report
     10        this somehow, but this is better than blaming the wrong test.
     11
     12        * WebKitTestRunner/TestController.cpp:
     13        (WTR::TestController::terminateWebContentProcess):
     14        * WebKitTestRunner/TestController.h:
     15        * WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::invoke):
     16
    1172014-07-16  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
    218
  • trunk/Tools/WebKitTestRunner/TestController.cpp

    r171072 r171167  
    669669}
    670670
     671void TestController::terminateWebContentProcess()
     672{
     673    WKPageTerminate(m_mainWebView->page());
     674}
    671675
    672676void TestController::updateWebViewSizeForTest(const TestInvocation& test)
  • trunk/Tools/WebKitTestRunner/TestController.h

    r169845 r171167  
    9898    void resetPreferencesToConsistentValues();
    9999
     100    void terminateWebContentProcess();
     101
    100102    WorkQueueManager& workQueueManager() { return m_workQueueManager; }
    101103
  • trunk/Tools/WebKitTestRunner/TestInvocation.cpp

    r169845 r171167  
    203203        dumpWebProcessUnresponsiveness();
    204204    else if (!TestController::shared().resetStateToConsistentValues()) {
    205         m_errorMessage = "Timed out loading about:blank before the next test";
    206         dumpWebProcessUnresponsiveness();
     205        // The process froze while loading about:blank, let's start a fresh one.
     206        // It would be nice to report that the previous test froze after dumping results, but we have no way to do that.
     207        TestController::shared().terminateWebContentProcess();
     208        TestController::shared().resetStateToConsistentValues();
    207209    }
    208210}
Note: See TracChangeset for help on using the changeset viewer.