Changeset 272195 in webkit


Ignore:
Timestamp:
Feb 2, 2021 12:50:27 AM (3 years ago)
Author:
Carlos Garcia Campos
Message:

[GTK][WPE] Migrate WebKitTestServer to libsoup 2.48 API
https://bugs.webkit.org/show_bug.cgi?id=219160
<rdar://problem/71620310>

Reviewed by Michael Catanzaro.

Source/WTF:

  • wtf/Platform.h: Bump libsoup minimum required version to 2.54.

Tools:

  • TestWebKitAPI/Tests/WebKitGLib/TestAuthentication.cpp:

(serverCallback):

  • TestWebKitAPI/Tests/WebKitGLib/TestCookieManager.cpp:

(serverCallback):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp:

(serverCallback):

  • TestWebKitAPI/glib/WebKitGLib/WebKitTestServer.cpp:

(WebKitTestServer::WebKitTestServer):
(WebKitTestServer::run):
(WebKitTestServer::port const):

  • TestWebKitAPI/glib/WebKitGLib/WebKitTestServer.h:
Location:
trunk
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WTF/ChangeLog

    r272192 r272195  
     12021-02-02  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        [GTK][WPE] Migrate WebKitTestServer to libsoup 2.48 API
     4        https://bugs.webkit.org/show_bug.cgi?id=219160
     5        <rdar://problem/71620310>
     6
     7        Reviewed by Michael Catanzaro.
     8
     9        * wtf/Platform.h: Bump libsoup minimum required version to 2.54.
     10
    1112021-02-01  Mark Lam  <mark.lam@apple.com>
    212
  • trunk/Source/WTF/wtf/Platform.h

    r271231 r272195  
    9797
    9898#if USE(SOUP)
    99 #define SOUP_VERSION_MIN_REQUIRED SOUP_VERSION_2_42
     99#define SOUP_VERSION_MIN_REQUIRED SOUP_VERSION_2_54
    100100#endif
    101101
  • trunk/Tools/ChangeLog

    r272189 r272195  
     12021-02-02  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        [GTK][WPE] Migrate WebKitTestServer to libsoup 2.48 API
     4        https://bugs.webkit.org/show_bug.cgi?id=219160
     5        <rdar://problem/71620310>
     6
     7        Reviewed by Michael Catanzaro.
     8
     9        * TestWebKitAPI/Tests/WebKitGLib/TestAuthentication.cpp:
     10        (serverCallback):
     11        * TestWebKitAPI/Tests/WebKitGLib/TestCookieManager.cpp:
     12        (serverCallback):
     13        * TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp:
     14        (serverCallback):
     15        * TestWebKitAPI/glib/WebKitGLib/WebKitTestServer.cpp:
     16        (WebKitTestServer::WebKitTestServer):
     17        (WebKitTestServer::run):
     18        (WebKitTestServer::port const):
     19        * TestWebKitAPI/glib/WebKitGLib/WebKitTestServer.h:
     20
    1212021-02-01  Ryan Haddad  <ryanhaddad@apple.com>
    222
  • trunk/Tools/TestWebKitAPI/Tests/WebKitGLib/TestAuthentication.cpp

    r268258 r272195  
    376376static void serverCallback(SoupServer* server, SoupMessage* message, const char* path, GHashTable*, SoupClientContext* context, void*)
    377377{
     378    unsigned port = g_inet_socket_address_get_port(G_INET_SOCKET_ADDRESS((soup_client_context_get_local_address(context))));
    378379    if (message->method == SOUP_METHOD_CONNECT) {
    379         g_assert_cmpuint(soup_server_get_port(server), ==, gProxyServerPort);
     380        g_assert_cmpuint(port, ==, gProxyServerPort);
    380381        auto tunnel = makeUnique<Tunnel>(server, message);
    381382        auto* tunnelPtr = tunnel.get();
     
    400401        bool isProxy = g_str_has_prefix(path, "/proxy");
    401402        if (isProxy)
    402             g_assert_cmpuint(soup_server_get_port(server), ==, gProxyServerPort);
     403            g_assert_cmpuint(port, ==, gProxyServerPort);
    403404
    404405        const char* authorization = soup_message_headers_get_one(message->request_headers, "Authorization");
  • trunk/Tools/TestWebKitAPI/Tests/WebKitGLib/TestCookieManager.cpp

    r263964 r272195  
    717717
    718718    if (g_str_equal(path, "/index.html")) {
    719         char* indexHtml = g_strdup_printf(kIndexHtmlFormat, soup_server_get_port(server));
     719        char* indexHtml = g_strdup_printf(kIndexHtmlFormat, kServer->port());
    720720        soup_message_headers_replace(message->response_headers, "Set-Cookie", header_str);
    721721        soup_message_body_append(message->response_body, SOUP_MEMORY_TAKE, indexHtml, strlen(indexHtml));
  • trunk/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp

    r267534 r272195  
    387387}
    388388
    389 static void serverCallback(SoupServer* server, SoupMessage* message, const char* path, GHashTable*, SoupClientContext*, gpointer)
     389static void serverCallback(SoupServer* server, SoupMessage* message, const char* path, GHashTable*, SoupClientContext* context, gpointer)
    390390{
    391391    if (message->method != SOUP_METHOD_GET) {
     
    405405        soup_message_set_status(message, SOUP_STATUS_OK);
    406406    } else if (g_str_equal(path, "/echoPort")) {
    407         char* port = g_strdup_printf("%u", soup_server_get_port(server));
     407        char* port = g_strdup_printf("%u", g_inet_socket_address_get_port(G_INET_SOCKET_ADDRESS((soup_client_context_get_local_address(context)))));
    408408        soup_message_body_append(message->response_body, SOUP_MEMORY_TAKE, port, strlen(port));
    409409        soup_message_body_complete(message->response_body);
  • trunk/Tools/TestWebKitAPI/glib/WebKitGLib/WebKitTestServer.cpp

    r271794 r272195  
    2424#include <wtf/Threading.h>
    2525#include <wtf/glib/GUniquePtr.h>
     26#include <wtf/threads/BinarySemaphore.h>
    2627
    2728WebKitTestServer::WebKitTestServer(ServerOptions options)
     
    3233    }
    3334
    34     GUniquePtr<char> sslCertificateFile;
    35     GUniquePtr<char> sslKeyFile;
     35    m_soupServer = adoptGRef(soup_server_new("server-header", "WebKitTestServer ", nullptr));
     36
    3637    if (options & ServerHTTPS) {
    3738        CString resourcesDir = Test::getResourcesDir();
    38         sslCertificateFile.reset(g_build_filename(resourcesDir.data(), "test-cert.pem", NULL));
    39         sslKeyFile.reset(g_build_filename(resourcesDir.data(), "test-key.pem", NULL));
     39        GUniquePtr<char> sslCertificateFile(g_build_filename(resourcesDir.data(), "test-cert.pem", nullptr));
     40        GUniquePtr<char> sslKeyFile(g_build_filename(resourcesDir.data(), "test-key.pem", nullptr));
     41        g_assert_true(soup_server_set_ssl_cert_file(m_soupServer.get(), sslCertificateFile.get(), sslKeyFile.get(), nullptr));
    4042    }
    41 
    42     GRefPtr<SoupAddress> address = adoptGRef(soup_address_new("127.0.0.1", SOUP_ADDRESS_ANY_PORT));
    43     soup_address_resolve_sync(address.get(), 0);
    44 
    45     m_soupServer = adoptGRef(soup_server_new(SOUP_SERVER_INTERFACE, address.get(),
    46         SOUP_SERVER_ASYNC_CONTEXT, m_queue ? m_queue->runLoop().mainContext() : nullptr,
    47         SOUP_SERVER_SSL_CERT_FILE, sslCertificateFile.get(),
    48         SOUP_SERVER_SSL_KEY_FILE, sslKeyFile.get(), nullptr));
    49     m_baseURI = options & ServerHTTPS ? soup_uri_new("https://127.0.0.1/") : soup_uri_new("http://127.0.0.1/");
    50     soup_uri_set_port(m_baseURI, soup_server_get_port(m_soupServer.get()));
    5143}
    5244
     
    6052void WebKitTestServer::run(SoupServerCallback serverCallback)
    6153{
     54    soup_server_add_handler(m_soupServer.get(), nullptr, serverCallback, nullptr, nullptr);
     55
     56    unsigned options = SOUP_SERVER_LISTEN_IPV4_ONLY;
     57    if (soup_server_is_https(m_soupServer.get()))
     58        options |= SOUP_SERVER_LISTEN_HTTPS;
     59
    6260    if (m_queue) {
    63         m_queue->dispatch([this, serverCallback] {
    64             soup_server_run_async(m_soupServer.get());
    65             soup_server_add_handler(m_soupServer.get(), nullptr, serverCallback, nullptr, nullptr);
     61        BinarySemaphore semaphore;
     62        m_queue->dispatch([&] {
     63            g_assert_true(soup_server_listen_local(m_soupServer.get(), SOUP_ADDRESS_ANY_PORT, static_cast<SoupServerListenOptions>(options), nullptr));
     64            semaphore.signal();
    6665        });
    67     } else {
    68         soup_server_run_async(m_soupServer.get());
    69         soup_server_add_handler(m_soupServer.get(), nullptr, serverCallback, nullptr, nullptr);
    70     }
     66        semaphore.wait();
     67    } else
     68        g_assert_true(soup_server_listen_local(m_soupServer.get(), SOUP_ADDRESS_ANY_PORT, static_cast<SoupServerListenOptions>(options), nullptr));
     69
     70    GSList* uris = soup_server_get_uris(m_soupServer.get());
     71    g_assert_nonnull(uris);
     72    m_baseURI = soup_uri_copy(static_cast<SoupURI*>(uris->data));
     73    g_slist_free_full(uris, reinterpret_cast<GDestroyNotify>(soup_uri_free));
    7174}
    7275
     
    114117    return uriString.get();
    115118}
     119
     120unsigned WebKitTestServer::port() const
     121{
     122    return soup_uri_get_port(m_baseURI);
     123}
  • trunk/Tools/TestWebKitAPI/glib/WebKitGLib/WebKitTestServer.h

    r271794 r272195  
    3939
    4040    SoupURI* baseURI() const { return m_baseURI; }
     41    unsigned port() const;
    4142    CString getURIForPath(const char* path) const;
    4243    void run(SoupServerCallback);
Note: See TracChangeset for help on using the changeset viewer.