Q_DECL_EXPORT int WebProcessMainQt(QGuiApplication* app) { #if ENABLE(SUID_SANDBOX_LINUX) pid_t helper = chrootMe(); if (helper == -1) { fprintf(stderr, "Asking for chroot failed.\n"); return -1; } #endif initializeProxy(); InitializeWebKit2(); // Create the connection. if (app->arguments().size() <= 1) { qDebug() << "Error: wrong number of arguments."; return 1; } #if OS(DARWIN) QString serviceName = app->arguments().value(1); // Get the server port. mach_port_t identifier; kern_return_t kr = bootstrap_look_up2(bootstrap_port, serviceName.toUtf8().data(), &identifier, 0, 0); if (kr) { printf("bootstrap_look_up2 result: %x", kr); return 2; } #else bool wasNumber = false; qulonglong id = app->arguments().at(1).toULongLong(&wasNumber, 10); if (!wasNumber) { qDebug() << "Error: connection identifier wrong."; return 1; } CoreIPC::Connection::Identifier identifier; #if OS(WINDOWS) // Convert to HANDLE identifier = reinterpret_cast<CoreIPC::Connection::Identifier>(id); #else // Convert to int identifier = static_cast<CoreIPC::Connection::Identifier>(id); #endif #endif WebKit::ChildProcessInitializationParameters parameters; parameters.connectionIdentifier = identifier; WebKit::WebProcess::shared().initialize(parameters); RunLoop::run(); // FIXME: Do more cleanup here. delete app; return 0; }
Q_DECL_EXPORT int WebProcessMainQt(QGuiApplication* app) { #ifndef NDEBUG if (qgetenv("QT_WEBKIT2_DEBUG") == "1") { qDebug() << "Waiting 3 seconds for debugger"; sleep(3); } #endif initializeProxy(); srandom(time(0)); JSC::initializeThreading(); WTF::initializeMainThread(); RunLoop::initializeMainRunLoop(); // Create the connection. if (app->arguments().size() <= 1) { qDebug() << "Error: wrong number of arguments."; return 1; } #if OS(DARWIN) QString serviceName = app->arguments().value(1); // Get the server port. mach_port_t identifier; kern_return_t kr = bootstrap_look_up2(bootstrap_port, serviceName.toUtf8().data(), &identifier, 0, 0); if (kr) { printf("bootstrap_look_up2 result: %x", kr); return 2; } #else bool wasNumber = false; int identifier = app->arguments().at(1).toInt(&wasNumber, 10); if (!wasNumber) { qDebug() << "Error: connection identifier wrong."; return 1; } #endif #if USE(ACCELERATED_COMPOSITING) WebGraphicsLayer::initFactory(); #endif WebKit::WebProcess::shared().initialize(identifier, RunLoop::main()); RunLoop::run(); // FIXME: Do more cleanup here. delete app; return 0; }
Q_DECL_EXPORT int WebProcessMainQt(QGuiApplication* app) { initializeProxy(); JSC::initializeThreading(); WTF::initializeMainThread(); RunLoop::initializeMainRunLoop(); #if USE(QTKIT) InitWebCoreSystemInterfaceForWK2(); #endif // Create the connection. if (app->arguments().size() <= 1) { qDebug() << "Error: wrong number of arguments."; return 1; } #if OS(DARWIN) QString serviceName = app->arguments().value(1); // Get the server port. mach_port_t identifier; kern_return_t kr = bootstrap_look_up2(bootstrap_port, serviceName.toUtf8().data(), &identifier, 0, 0); if (kr) { printf("bootstrap_look_up2 result: %x", kr); return 2; } #else bool wasNumber = false; qulonglong id = app->arguments().at(1).toULongLong(&wasNumber, 10); if (!wasNumber) { qDebug() << "Error: connection identifier wrong."; return 1; } CoreIPC::Connection::Identifier identifier; #if OS(WINDOWS) // Convert to HANDLE identifier = reinterpret_cast<CoreIPC::Connection::Identifier>(id); #else // Convert to int identifier = static_cast<CoreIPC::Connection::Identifier>(id); #endif #endif WebKit::WebProcess::shared().initialize(identifier, RunLoop::main()); RunLoop::run(); // FIXME: Do more cleanup here. delete app; return 0; }
Q_DECL_EXPORT int WebProcessMainQt(int argc, char** argv) { // Has to be done before QApplication is constructed in case // QApplication itself produces debug output. QByteArray suppressOutput = qgetenv("QT_WEBKIT_SUPPRESS_WEB_PROCESS_OUTPUT"); if (!suppressOutput.isEmpty() && suppressOutput != "0") qInstallMsgHandler(messageHandler); QApplication::setGraphicsSystem(QLatin1String("raster")); QApplication* app = new QApplication(argc, argv); #ifndef NDEBUG if (!qgetenv("WEBKIT2_PAUSE_WEB_PROCESS_ON_LAUNCH").isEmpty()) { qDebug() << "Waiting 3 seconds for debugger"; sleep(3); } #endif #if USE(MEEGOTOUCH) new MComponentData(argc, argv); #endif initializeProxy(); srandom(time(0)); JSC::initializeThreading(); WTF::initializeMainThread(); RunLoop::initializeMainRunLoop(); // Create the connection. if (app->arguments().size() <= 1) { qDebug() << "Error: wrong number of arguments."; return 1; } bool wasNumber = false; int identifier = app->arguments().at(1).toInt(&wasNumber, 10); if (!wasNumber) { qDebug() << "Error: connection identifier wrong."; return 1; } WebKit::WebProcess::shared().initialize(identifier, RunLoop::main()); RunLoop::run(); // FIXME: Do more cleanup here. return 0; }
Q_DECL_EXPORT int WebProcessMainQt(int argc, char** argv) { // Has to be done before QApplication is constructed in case // QApplication itself produces debug output. QByteArray suppressOutput = qgetenv("QT_WEBKIT_SUPPRESS_WEB_PROCESS_OUTPUT"); if (!suppressOutput.isEmpty() && suppressOutput != "0") qInstallMsgHandler(messageHandler); QApplication::setGraphicsSystem(QLatin1String("raster")); QApplication* app = new QApplication(argc, argv); #ifndef NDEBUG if (!qgetenv("WEBKIT2_PAUSE_WEB_PROCESS_ON_LAUNCH").isEmpty()) { qDebug() << "Waiting 3 seconds for debugger"; sleep(3); } #endif initializeProxy(); srandom(time(0)); JSC::initializeThreading(); WTF::initializeMainThread(); RunLoop::initializeMainRunLoop(); // Create the connection. if (app->arguments().size() <= 1) { qDebug() << "Error: wrong number of arguments."; return 1; } #if OS(DARWIN) QString serviceName = app->arguments().value(1); // Get the server port. mach_port_t identifier; kern_return_t kr = bootstrap_look_up2(bootstrap_port, serviceName.toUtf8().data(), &identifier, 0, 0); if (kr) { printf("bootstrap_look_up2 result: %x", kr); return 2; } #else bool wasNumber = false; int identifier = app->arguments().at(1).toInt(&wasNumber, 10); if (!wasNumber) { qDebug() << "Error: connection identifier wrong."; return 1; } #endif #if USE(ACCELERATED_COMPOSITING) WebGraphicsLayer::initFactory(); #endif WebKit::WebProcess::shared().initialize(identifier, RunLoop::main()); RunLoop::run(); // FIXME: Do more cleanup here. return 0; }