void WebProcess::platformTerminate() { SoupSession* session = WebCore::ResourceHandle::defaultSession(); SoupCache* cache = SOUP_CACHE(soup_session_get_feature(session, SOUP_TYPE_CACHE)); soup_cache_flush(cache); soup_cache_dump(cache); }
WK_EXPORT int NetworkProcessMain(int argc, char* argv[]) { if (argc != 2) return 1; #if PLATFORM(EFL) if (!ecore_init()) return 1; if (!ecore_main_loop_glib_integrate()) return 1; #endif InitializeWebKit2(); #if USE(SOUP) SoupSession* session = ResourceHandle::defaultSession(); #if PLATFORM(EFL) // Only for EFL because GTK port uses the default resolver, which uses GIO's proxy resolver. const char* httpProxy = getenv("http_proxy"); if (httpProxy) { const char* noProxy = getenv("no_proxy"); GRefPtr<SoupProxyURIResolver> resolver = adoptGRef(soupProxyResolverWkNew(httpProxy, noProxy)); soup_session_add_feature(session, SOUP_SESSION_FEATURE(resolver.get())); } #endif #endif int socket = atoi(argv[1]); WebKit::ChildProcessInitializationParameters parameters; parameters.connectionIdentifier = int(socket); NetworkProcess::shared().initialize(parameters); #if USE(SOUP) // Despite using system CAs to validate certificates we're // accepting invalid certificates by default. New API will be // added later to let client accept/discard invalid certificates. g_object_set(session, SOUP_SESSION_SSL_USE_SYSTEM_CA_FILE, TRUE, SOUP_SESSION_SSL_STRICT, FALSE, NULL); #endif RunLoop::run(); #if USE(SOUP) if (SoupSessionFeature* soupCache = soup_session_get_feature(session, SOUP_TYPE_CACHE)) { soup_cache_flush(SOUP_CACHE(soupCache)); soup_cache_dump(SOUP_CACHE(soupCache)); } #endif return 0; }
void platformFinalize() override { if (SoupCache* soupCache = SoupNetworkSession::defaultSession().cache()) { soup_cache_flush(soupCache); soup_cache_dump(soupCache); } edje_shutdown(); ecore_evas_shutdown(); #ifdef HAVE_ECORE_X ecore_x_shutdown(); #endif ecore_shutdown(); eina_shutdown(); }
WK_EXPORT int WebProcessMainNix(int argc, char* argv[]) { // WebProcess should be launched with an option. if (argc != 2) return 1; #ifdef WTF_USE_SOUP #if !GLIB_CHECK_VERSION(2, 35, 0) g_type_init(); #endif #endif InitializeWebKit2(); #ifdef WTF_USE_SOUP SoupSession* session = WebCore::ResourceHandle::defaultSession(); g_object_set(G_OBJECT(session), "ssl-use-system-ca-file", true, NULL); const char* httpProxy = getenv("http_proxy"); if (httpProxy) { const char* noProxy = getenv("no_proxy"); SoupProxyURIResolver* resolverNix = soupProxyResolverWkNew(httpProxy, noProxy); soup_session_add_feature(session, SOUP_SESSION_FEATURE(resolverNix)); g_object_unref(resolverNix); } #endif int socket = atoi(argv[1]); ChildProcessInitializationParameters parameters; parameters.connectionIdentifier = socket; WebProcess::shared().initialize(parameters); RunLoop::run(); #ifdef WTF_USE_SOUP if (SoupSessionFeature* soupCache = soup_session_get_feature(session, SOUP_TYPE_CACHE)) { soup_cache_flush(SOUP_CACHE(soupCache)); soup_cache_dump(SOUP_CACHE(soupCache)); } #endif return 0; }
WK_EXPORT int WebProcessMainGtk(int argc, char* argv[]) { ASSERT(argc == 2); #ifndef NDEBUG if (g_getenv("WEBKIT2_PAUSE_WEB_PROCESS_ON_LAUNCH")) sleep(30); #endif gtk_init(&argc, &argv); bindtextdomain(GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR); bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8"); JSC::initializeThreading(); WTF::initializeMainThread(); RunLoop::initializeMainRunLoop(); int socket = atoi(argv[1]); ChildProcessInitializationParameters parameters; parameters.connectionIdentifier = socket; WebProcess::shared().initialize(parameters); // Despite using system CAs to validate certificates we're // accepting invalid certificates by default. New API will be // added later to let client accept/discard invalid certificates. SoupSession* session = WebCore::ResourceHandle::defaultSession(); g_object_set(session, SOUP_SESSION_SSL_USE_SYSTEM_CA_FILE, TRUE, SOUP_SESSION_SSL_STRICT, FALSE, NULL); GOwnPtr<char> soupCacheDirectory(g_build_filename(g_get_user_cache_dir(), g_get_prgname(), NULL)); GRefPtr<SoupCache> soupCache = adoptGRef(soup_cache_new(soupCacheDirectory.get(), SOUP_CACHE_SINGLE_USER)); soup_session_add_feature(session, SOUP_SESSION_FEATURE(soupCache.get())); soup_cache_load(soupCache.get()); RunLoop::run(); soup_cache_flush(soupCache.get()); soup_cache_dump(soupCache.get()); return 0; }
WK_EXPORT int WebProcessMainGtk(int argc, char* argv[]) { ASSERT(argc == 2); #ifndef NDEBUG if (g_getenv("WEBKIT2_PAUSE_WEB_PROCESS_ON_LAUNCH")) sleep(30); #endif gtk_init(&argc, &argv); bindtextdomain(GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR); bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8"); InitializeWebKit2(); int socket = atoi(argv[1]); ChildProcessInitializationParameters parameters; parameters.connectionIdentifier = socket; WebProcess::shared().initialize(parameters); // Despite using system CAs to validate certificates we're // accepting invalid certificates by default. New API will be // added later to let client accept/discard invalid certificates. SoupSession* session = WebCore::ResourceHandle::defaultSession(); g_object_set(session, SOUP_SESSION_SSL_USE_SYSTEM_CA_FILE, TRUE, SOUP_SESSION_SSL_STRICT, FALSE, NULL); RunLoop::run(); if (SoupSessionFeature* soupCache = soup_session_get_feature(session, SOUP_TYPE_CACHE)) { soup_cache_flush(SOUP_CACHE(soupCache)); soup_cache_dump(SOUP_CACHE(soupCache)); } return 0; }
WK_EXPORT int WebProcessMainEfl(int argc, char* argv[]) { // WebProcess should be launched with an option. if (argc != 2) return 1; if (!eina_init()) return 1; if (!ecore_init()) { // Could not init ecore. eina_shutdown(); return 1; } #ifdef HAVE_ECORE_X XSetExtensionErrorHandler(dummyExtensionErrorHandler); if (!ecore_x_init(0)) { // Could not init ecore_x. // PlatformScreenEfl and systemBeep() functions // depend on ecore_x functionality. ecore_shutdown(); eina_shutdown(); return 1; } #endif #if !GLIB_CHECK_VERSION(2, 35, 0) g_type_init(); #endif if (!ecore_main_loop_glib_integrate()) return 1; JSC::initializeThreading(); WTF::initializeMainThread(); RunLoop::initializeMainRunLoop(); SoupSession* session = WebCore::ResourceHandle::defaultSession(); const char* httpProxy = getenv("http_proxy"); if (httpProxy) { const char* noProxy = getenv("no_proxy"); SoupProxyURIResolver* resolverEfl = soupProxyResolverWkNew(httpProxy, noProxy); soup_session_add_feature(session, SOUP_SESSION_FEATURE(resolverEfl)); g_object_unref(resolverEfl); } // Set SOUP cache. String soupCacheDirectory = String::fromUTF8(efreet_cache_home_get()) + "/WebKitEfl"; SoupCache* soupCache = soup_cache_new(soupCacheDirectory.utf8().data(), SOUP_CACHE_SINGLE_USER); soup_session_add_feature(session, SOUP_SESSION_FEATURE(soupCache)); soup_cache_load(soupCache); int socket = atoi(argv[1]); ChildProcessInitializationParameters parameters; parameters.connectionIdentifier = socket; WebProcess::shared().initialize(parameters); RunLoop::run(); soup_cache_flush(soupCache); soup_cache_dump(soupCache); g_object_unref(soupCache); ecore_x_shutdown(); ecore_shutdown(); eina_shutdown(); return 0; }
WK_EXPORT int WebProcessMainEfl(int argc, char* argv[]) { // WebProcess should be launched with an option. if (argc != 2) return 1; if (!eina_init()) return 1; if (!ecore_init()) { // Could not init ecore. eina_shutdown(); return 1; } #ifdef HAVE_ECORE_X XSetExtensionErrorHandler(dummyExtensionErrorHandler); if (!ecore_x_init(0)) { // Could not init ecore_x. // PlatformScreenEfl and systemBeep() functions // depend on ecore_x functionality. ecore_shutdown(); eina_shutdown(); return 1; } #endif if (!ecore_evas_init()) { #ifdef HAVE_ECORE_X ecore_x_shutdown(); #endif ecore_shutdown(); eina_shutdown(); return 1; } if (!edje_init()) { ecore_evas_shutdown(); #ifdef HAVE_ECORE_X ecore_x_shutdown(); #endif ecore_shutdown(); eina_shutdown(); return 1; } #if !GLIB_CHECK_VERSION(2, 35, 0) g_type_init(); #endif if (!ecore_main_loop_glib_integrate()) return 1; InitializeWebKit2(); SoupSession* session = WebCore::ResourceHandle::defaultSession(); const char* httpProxy = getenv("http_proxy"); if (httpProxy) { const char* noProxy = getenv("no_proxy"); SoupProxyURIResolver* resolverEfl = soupProxyResolverWkNew(httpProxy, noProxy); soup_session_add_feature(session, SOUP_SESSION_FEATURE(resolverEfl)); g_object_unref(resolverEfl); } int socket = atoi(argv[1]); ChildProcessInitializationParameters parameters; parameters.connectionIdentifier = socket; WebProcess::shared().initialize(parameters); RunLoop::run(); if (SoupSessionFeature* soupCache = soup_session_get_feature(session, SOUP_TYPE_CACHE)) { soup_cache_flush(SOUP_CACHE(soupCache)); soup_cache_dump(SOUP_CACHE(soupCache)); } edje_shutdown(); ecore_evas_shutdown(); #ifdef HAVE_ECORE_X ecore_x_shutdown(); #endif ecore_shutdown(); eina_shutdown(); return 0; }