2010-07-08 Luiz Agostini <luiz@webkit.org>, Kenneth Rohde Christiansen <kenneth...
authorkenneth@webkit.org <kenneth@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 8 Jul 2010 16:01:42 +0000 (16:01 +0000)
committerkenneth@webkit.org <kenneth@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 8 Jul 2010 16:01:42 +0000 (16:01 +0000)
commit64a8a157972d32ca3a6c21516a7807f62bb61b40
tree7fadc5a88cad77690b29b960aa48f9f4129dcec2
parent81b1fc1661f993259af16da506c732ab20031839
2010-07-08  Luiz Agostini  <luiz@webkit.org>, Kenneth Rohde Christiansen <kenneth@webkit.org>

        Reviewed by Antti Koivisto.

        [Qt] Improve QtWebkit2 secondary process launching procedure
        https://bugs.webkit.org/show_bug.cgi?id=41853

        Changing secondary process launching procedure to make sure that the method
        ProcessLauncher::didFinishLaunchingProcess will only be called after secondary
        process has been launched and the connection has been stablished between the
        UIProcess and WebProcess.

        This solves the timing issues ocasionaly observed when launching MiniBrowser.

        QLocalServer object and related code has been removed from the class Connection.
        Server instances of the Connection class now get the QLocalSocket via ProcessLauncher.

        * Platform/CoreIPC/Connection.h:
        * Platform/CoreIPC/qt/ConnectionQt.cpp:
        (CoreIPC::Connection::platformInitialize):
        (CoreIPC::Connection::platformInvalidate):
        (CoreIPC::Connection::open):

        Using QProcess* as PlatformProcessIdentifier.

        * Platform/PlatformProcessIdentifier.h:

        A new singleton class named ProcessLauncherHelper was created to handle the QLocalServer
        object used to receive connections. This class launches the process and waits for it to connect
        before calling ProcessLauncher::didFinishLaunchingProcess.

        * UIProcess/Launcher/ProcessLauncher.h:
        * UIProcess/Launcher/qt/ProcessLauncherQt.cpp:
        (WebKit::ProcessLauncherHelper::launch):
        (WebKit::ProcessLauncherHelper::takePendingConnection):
        (WebKit::ProcessLauncherHelper::ProcessLauncherHelper):
        (WebKit::ProcessLauncherHelper::instance):
        (WebKit::ProcessLauncherHelper::newConnection):
        (WebKit::ProcessLauncher::launchProcess):
        (WebKit::ProcessLauncher::terminateProcess):
        (_qt_takePendingConnection):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@62790 268f45cc-cd09-0410-ab3c-d52691b4dbfc
WebKit2/ChangeLog
WebKit2/Platform/CoreIPC/Connection.h
WebKit2/Platform/CoreIPC/qt/ConnectionQt.cpp
WebKit2/Platform/PlatformProcessIdentifier.h
WebKit2/UIProcess/Launcher/ProcessLauncher.h
WebKit2/UIProcess/Launcher/qt/ProcessLauncherQt.cpp