Changeset 161976 in webkit


Ignore:
Timestamp:
Jan 14, 2014 9:30:21 AM (10 years ago)
Author:
Carlos Garcia Campos
Message:

[GTK] Test /webkit2/WebKitWebContext/languages crashes with network process enabled
https://bugs.webkit.org/show_bug.cgi?id=126130

Reviewed by Anders Carlsson.

We need to notify the network process when the user preferred
languages have changed to update the SoupSession accordingly.

  • NetworkProcess/NetworkProcess.h: Add

userPreferredLanguagesChanged when using soup network backend.

  • NetworkProcess/NetworkProcess.messages.in: Add

UserPreferredLanguagesChanged message when using soup network
backend.

  • NetworkProcess/soup/NetworkProcessSoup.cpp:

(WebKit::NetworkProcess::userPreferredLanguagesChanged): Update
the SoupSession to use the given languages.
(WebKit::NetworkProcess::platformInitializeNetworkProcess): Call
userPreferredLanguagesChanged() when initialization parameters
contain languages.
(WebKit::NetworkProcess::allowSpecificHTTPSCertificateForHost):
Remove unnedded WebCore prefix.
(WebKit::NetworkProcess::clearCacheForAllOrigins): Simplify using
a single line.

  • Shared/Network/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode): Encode the
languages vector.
(WebKit::NetworkProcessCreationParameters::decode): Decode the
languages vector.

  • Shared/Network/NetworkProcessCreationParameters.h:
  • UIProcess/WebContext.cpp:

(WebKit::WebContext::languageChanged): Send a message also to the
network process.

  • UIProcess/soup/WebContextSoup.cpp:

(WebKit::WebContext::platformInitializeNetworkProcess): Set
languages initial parameter.

Location:
trunk/Source/WebKit2
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r161974 r161976  
     12014-01-14  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        [GTK] Test /webkit2/WebKitWebContext/languages crashes with network process enabled
     4        https://bugs.webkit.org/show_bug.cgi?id=126130
     5
     6        Reviewed by Anders Carlsson.
     7
     8        We need to notify the network process when the user preferred
     9        languages have changed to update the SoupSession accordingly.
     10
     11        * NetworkProcess/NetworkProcess.h: Add
     12        userPreferredLanguagesChanged when using soup network backend.
     13        * NetworkProcess/NetworkProcess.messages.in: Add
     14        UserPreferredLanguagesChanged message when using soup network
     15        backend.
     16        * NetworkProcess/soup/NetworkProcessSoup.cpp:
     17        (WebKit::NetworkProcess::userPreferredLanguagesChanged): Update
     18        the SoupSession to use the given languages.
     19        (WebKit::NetworkProcess::platformInitializeNetworkProcess): Call
     20        userPreferredLanguagesChanged() when initialization parameters
     21        contain languages.
     22        (WebKit::NetworkProcess::allowSpecificHTTPSCertificateForHost):
     23        Remove unnedded WebCore prefix.
     24        (WebKit::NetworkProcess::clearCacheForAllOrigins): Simplify using
     25        a single line.
     26        * Shared/Network/NetworkProcessCreationParameters.cpp:
     27        (WebKit::NetworkProcessCreationParameters::encode): Encode the
     28        languages vector.
     29        (WebKit::NetworkProcessCreationParameters::decode): Decode the
     30        languages vector.
     31        * Shared/Network/NetworkProcessCreationParameters.h:
     32        * UIProcess/WebContext.cpp:
     33        (WebKit::WebContext::languageChanged): Send a message also to the
     34        network process.
     35        * UIProcess/soup/WebContextSoup.cpp:
     36        (WebKit::WebContext::platformInitializeNetworkProcess): Set
     37        languages initial parameter.
     38
    1392014-01-14  Carlos Garcia Campos  <cgarcia@igalia.com>
    240
  • trunk/Source/WebKit2/NetworkProcess/NetworkProcess.h

    r161307 r161976  
    116116#if USE(SOUP)
    117117    void setIgnoreTLSErrors(bool);
     118    void userPreferredLanguagesChanged(const Vector<String>&);
    118119#endif
    119120
  • trunk/Source/WebKit2/NetworkProcess/NetworkProcess.messages.in

    r160487 r161976  
    3232#if USE(SOUP)
    3333    SetIgnoreTLSErrors(bool ignoreTLSErrors)
     34    UserPreferredLanguagesChanged(Vector<String> languages)
    3435#endif
    3536
  • trunk/Source/WebKit2/NetworkProcess/soup/NetworkProcessSoup.cpp

    r161890 r161976  
    2929#include "NetworkProcess.h"
    3030
    31 #include "CertificateInfo.h"
    3231#include "NetworkProcessCreationParameters.h"
    3332#include "ResourceCachesToClear.h"
    3433#include "WebCookieManager.h"
     34#include <WebCore/CertificateInfo.h>
    3535#include <WebCore/FileSystem.h>
    3636#include <WebCore/NotImplemented.h>
     
    7676}
    7777
     78void NetworkProcess::userPreferredLanguagesChanged(const Vector<String>& languages)
     79{
     80    SoupNetworkSession::defaultSession().setAcceptLanguages(languages);
     81}
     82
    7883void NetworkProcess::platformInitializeNetworkProcess(const NetworkProcessCreationParameters& parameters)
    7984{
     
    8893    }
    8994    supplement<WebCookieManager>()->setHTTPCookieAcceptPolicy(parameters.cookieAcceptPolicy);
     95
     96    if (!parameters.languages.isEmpty())
     97        userPreferredLanguagesChanged(parameters.languages);
    9098
    9199    setIgnoreTLSErrors(parameters.ignoreTLSErrors);
     
    122130void NetworkProcess::allowSpecificHTTPSCertificateForHost(const CertificateInfo& certificateInfo, const String& host)
    123131{
    124     WebCore::ResourceHandle::setClientCertificate(host, certificateInfo.certificate());
     132    ResourceHandle::setClientCertificate(host, certificateInfo.certificate());
    125133}
    126134
  • trunk/Source/WebKit2/Shared/Network/NetworkProcessCreationParameters.cpp

    r161148 r161976  
    6060    encoder.encodeEnum(cookieAcceptPolicy);
    6161    encoder << ignoreTLSErrors;
     62    encoder << languages;
    6263#endif
    6364}
     
    103104    if (!decoder.decode(result.ignoreTLSErrors))
    104105        return false;
     106    if (!decoder.decode(result.languages))
     107        return false;
    105108#endif
    106109
  • trunk/Source/WebKit2/Shared/Network/NetworkProcessCreationParameters.h

    r161148 r161976  
    7878    HTTPCookieAcceptPolicy cookieAcceptPolicy;
    7979    bool ignoreTLSErrors;
     80    Vector<String> languages;
    8081#endif
    8182};
  • trunk/Source/WebKit2/UIProcess/WebContext.cpp

    r161559 r161976  
    324324{
    325325    sendToAllProcesses(Messages::WebProcess::UserPreferredLanguagesChanged(userPreferredLanguages()));
     326#if USE(SOUP) && ENABLE(NETWORK_PROCESS)
     327    if (m_usesNetworkProcess && m_networkProcess)
     328        m_networkProcess->send(Messages::NetworkProcess::UserPreferredLanguagesChanged(userPreferredLanguages()), 0);
     329#endif
    326330}
    327331
  • trunk/Source/WebKit2/UIProcess/soup/WebContextSoup.cpp

    r161112 r161976  
    3030#include "NetworkProcessCreationParameters.h"
    3131#include "WebCookieManagerProxy.h"
     32#include <WebCore/Language.h>
    3233
    3334namespace WebKit {
     
    3839    parameters.cookieAcceptPolicy = m_initialHTTPCookieAcceptPolicy;
    3940    parameters.ignoreTLSErrors = m_ignoreTLSErrors;
     41    parameters.languages = WebCore::userPreferredLanguages();
    4042}
    4143
Note: See TracChangeset for help on using the changeset viewer.