Skip to content
  • andersca@apple.com's avatar
    Crash when terminating a process that has not been fully launched · d8a9a51a
    andersca@apple.com authored
    https://bugs.webkit.org/show_bug.cgi?id=115962
    <rdar://problem/13660916>
    
    Reviewed by Andreas Kling.
    
    Source/WebKit2:
    
    Handle terminating a process that has not been fully launched.
    
    * UIProcess/Launcher/ProcessLauncher.cpp:
    (WebKit::ProcessLauncher::didFinishLaunchingProcess):
    If we have been invalidated, dispose the connection identifier.
    
    * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
    (WebKit::ProcessLauncher::terminateProcess):
    If we're still launching the process, invalidate so the client won't get an unexpected
    didFinishLaunching callback.
    
    * UIProcess/WebProcessProxy.cpp:
    (WebKit::WebProcessProxy::requestTermination):
    Check if webConnection() is null before calling it. (It will be null if the process isn't fully launched).
    
    Tools:
    
    Add TerminateTwice, a test that terminates a page, then reloads it and terminates it again
    before the process has had a chance to be fully launched.
    
    * TestWebKitAPI/GNUmakefile.am:
    * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
    * TestWebKitAPI/Tests/WebKit2/TerminateTwice.cpp: Added.
    (TestWebKitAPI):
    (TestWebKitAPI::didFinishLoadForFrame):
    (TestWebKitAPI::TEST):
    * TestWebKitAPI/Tests/WebKit2/WebKit2.pro:
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149933 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    d8a9a51a