Changeset 125978 in webkit


Ignore:
Timestamp:
Aug 19, 2012 11:34:24 AM (12 years ago)
Author:
commit-queue@webkit.org
Message:

Unreviewed, rolling out r125972.
http://trac.webkit.org/changeset/125972
https://bugs.webkit.org/show_bug.cgi?id=94431

Breaks AppleMac builds (Requested by pfeldman on #webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-08-19

  • UIProcess/API/gtk/WebKitWebContext.cpp:
  • UIProcess/API/gtk/WebKitWebContext.h:
  • UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
  • UIProcess/API/gtk/tests/TestWebKitWebContext.cpp:

(beforeAll):
(afterAll):

  • UIProcess/API/gtk/tests/WebViewTest.cpp:

(WebViewTest::WebViewTest):

  • UIProcess/API/gtk/tests/WebViewTest.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::userPreferredLanguagesChanged):

  • WebProcess/gtk/WebProcessGtk.cpp:

(WebKit::WebProcess::platformInitializeWebProcess):
(WebKit::WebProcess::platformTerminate):

Location:
trunk/Source/WebKit2
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r125974 r125978  
     12012-08-19  Sheriff Bot  <webkit.review.bot@gmail.com>
     2
     3        Unreviewed, rolling out r125972.
     4        http://trac.webkit.org/changeset/125972
     5        https://bugs.webkit.org/show_bug.cgi?id=94431
     6
     7        Breaks AppleMac builds (Requested by pfeldman on #webkit).
     8
     9        * UIProcess/API/gtk/WebKitWebContext.cpp:
     10        * UIProcess/API/gtk/WebKitWebContext.h:
     11        * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
     12        * UIProcess/API/gtk/tests/TestWebKitWebContext.cpp:
     13        (beforeAll):
     14        (afterAll):
     15        * UIProcess/API/gtk/tests/WebViewTest.cpp:
     16        (WebViewTest::WebViewTest):
     17        * UIProcess/API/gtk/tests/WebViewTest.h:
     18        * WebProcess/WebProcess.cpp:
     19        (WebKit::WebProcess::userPreferredLanguagesChanged):
     20        * WebProcess/gtk/WebProcessGtk.cpp:
     21        (WebKit::WebProcess::platformInitializeWebProcess):
     22        (WebKit::WebProcess::platformTerminate):
     23
    1242012-08-19  Christophe Dumez  <christophe.dumez@intel.com>
    225
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp

    r125972 r125978  
    3333#include "WebKitWebContextPrivate.h"
    3434#include <WebCore/FileSystem.h>
    35 #include <WebCore/Language.h>
    3635#include <wtf/HashMap.h>
    3736#include <wtf/OwnPtr.h>
     
    520519}
    521520
    522 /**
    523  * webkit_web_context_set_preferred_languages:
    524  * @context: a #WebKitWebContext
    525  * @languages: (element-type utf8): a #GList of language identifiers
    526  *
    527  * Set the list of preferred languages, sorted from most desirable
    528  * to least desirable. The list will be used to build the "Accept-Language"
    529  * header that will be included in the network requests started by
    530  * the #WebKitWebContext.
    531  */
    532 void webkit_web_context_set_preferred_languages(WebKitWebContext* context, GList* languageList)
    533 {
    534     g_return_if_fail(WEBKIT_IS_WEB_CONTEXT(context));
    535 
    536     if (!languageList)
    537         return;
    538 
    539     Vector<String> languages;
    540     for (GList* iter = languageList; iter; iter = g_list_next(iter))
    541         languages.append(String::fromUTF8(static_cast<char*>(iter->data)).lower().replace("_", "-"));
    542 
    543     WebCore::overrideUserPreferredLanguages(languages);
    544     WebCore::languageDidChange();
    545 }
    546 
    547521WebKitDownload* webkitWebContextGetOrCreateDownload(WKDownloadRef wkDownload)
    548522{
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.h

    r125972 r125978  
    147147                                                     const gchar                   *languages);
    148148
    149 WEBKIT_API void
    150 webkit_web_context_set_preferred_languages          (WebKitWebContext              *context,
    151                                                      GList                         *languages);
    152 
    153149G_END_DECLS
    154150
  • trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt

    r125972 r125978  
    3838webkit_web_context_get_spell_checking_languages
    3939webkit_web_context_set_spell_checking_languages
    40 webkit_web_context_set_preferred_languages
    4140
    4241<SUBSECTION URI Scheme>
  • trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebContext.cpp

    r125972 r125978  
    2121
    2222#include "LoadTrackingTest.h"
    23 #include "WebKitTestServer.h"
    2423#include <gtk/gtk.h>
    2524#include <webkit2/webkit2.h>
     
    2827#include <wtf/gobject/GRefPtr.h>
    2928#include <wtf/text/StringHash.h>
    30 
    31 static WebKitTestServer* kServer;
    3229
    3330static void testWebContextDefault(Test* test, gconstpointer)
     
    169166    }
    170167
     168    static void resourceGetDataCallback(GObject* object, GAsyncResult* result, gpointer userData)
     169    {
     170        size_t dataSize;
     171        GOwnPtr<GError> error;
     172        unsigned char* data = webkit_web_resource_get_data_finish(WEBKIT_WEB_RESOURCE(object), result, &dataSize, &error.outPtr());
     173        g_assert(data);
     174
     175        URISchemeTest* test = static_cast<URISchemeTest*>(userData);
     176        test->m_resourceData.set(reinterpret_cast<char*>(data));
     177        test->m_resourceDataSize = dataSize;
     178        g_main_loop_quit(test->m_mainLoop);
     179    }
     180
     181    const char* mainResourceData(size_t& mainResourceDataSize)
     182    {
     183        m_resourceDataSize = 0;
     184        m_resourceData.clear();
     185        WebKitWebResource* resource = webkit_web_view_get_main_resource(m_webView);
     186        g_assert(resource);
     187
     188        webkit_web_resource_get_data(resource, 0, resourceGetDataCallback, this);
     189        g_main_loop_run(m_mainLoop);
     190
     191        mainResourceDataSize = m_resourceDataSize;
     192        return m_resourceData.get();
     193    }
     194
     195    GOwnPtr<char> m_resourceData;
     196    size_t m_resourceDataSize;
    171197    GRefPtr<WebKitURISchemeRequest> m_uriSchemeRequest;
    172198    HashMap<String, URISchemeHandler> m_handlersMap;
     
    241267}
    242268
    243 static void testWebContextLanguages(WebViewTest* test, gconstpointer)
    244 {
    245     static const char* expectedDefaultLanguage = "en";
    246     test->loadURI(kServer->getURIForPath("/").data());
    247     test->waitUntilLoadFinished();
    248     size_t mainResourceDataSize = 0;
    249     const char* mainResourceData = test->mainResourceData(mainResourceDataSize);
    250     g_assert_cmpuint(mainResourceDataSize, ==, strlen(expectedDefaultLanguage));
    251     g_assert(!strncmp(mainResourceData, expectedDefaultLanguage, mainResourceDataSize));
    252 
    253     GList* languages = g_list_prepend(0, const_cast<gpointer>(static_cast<const void*>("dE")));
    254     languages = g_list_prepend(languages, const_cast<gpointer>(static_cast<const void*>("ES_es")));
    255     languages = g_list_prepend(languages, const_cast<gpointer>(static_cast<const void*>("en")));
    256     webkit_web_context_set_preferred_languages(webkit_web_context_get_default(), languages);
    257     g_list_free(languages);
    258 
    259     static const char* expectedLanguages = "en, es-es;q=0.90, de;q=0.80";
    260     test->loadURI(kServer->getURIForPath("/").data());
    261     test->waitUntilLoadFinished();
    262     mainResourceDataSize = 0;
    263     mainResourceData = test->mainResourceData(mainResourceDataSize);
    264     g_assert_cmpuint(mainResourceDataSize, ==, strlen(expectedLanguages));
    265     g_assert(!strncmp(mainResourceData, expectedLanguages, mainResourceDataSize));
    266 }
    267 
    268 static void serverCallback(SoupServer* server, SoupMessage* message, const char* path, GHashTable*, SoupClientContext*, gpointer)
    269 {
    270     if (message->method != SOUP_METHOD_GET) {
    271         soup_message_set_status(message, SOUP_STATUS_NOT_IMPLEMENTED);
    272         return;
    273     }
    274 
    275     soup_message_set_status(message, SOUP_STATUS_OK);
    276     const char* acceptLanguage = soup_message_headers_get_one(message->request_headers, "Accept-Language");
    277     soup_message_body_append(message->response_body, SOUP_MEMORY_COPY, acceptLanguage, strlen(acceptLanguage));
    278     soup_message_body_complete(message->response_body);
    279 }
    280 
    281269void beforeAll()
    282270{
    283     kServer = new WebKitTestServer();
    284     kServer->run(serverCallback);
    285 
    286271    Test::add("WebKitWebContext", "default-context", testWebContextDefault);
    287272    PluginsTest::add("WebKitWebContext", "get-plugins", testWebContextGetPlugins);
    288273    URISchemeTest::add("WebKitWebContext", "uri-scheme", testWebContextURIScheme);
    289274    Test::add("WebKitWebContext", "spell-checker", testWebContextSpellChecker);
    290     WebViewTest::add("WebKitWebContext", "languages", testWebContextLanguages);
    291275}
    292276
    293277void afterAll()
    294278{
    295     delete kServer;
    296 }
     279}
  • trunk/Source/WebKit2/UIProcess/API/gtk/tests/WebViewTest.cpp

    r125972 r125978  
    3030    , m_parentWindow(0)
    3131    , m_javascriptResult(0)
    32     , m_resourceDataSize(0)
    3332{
    3433    assertObjectIsDeletedWhenTestFinishes(G_OBJECT(m_webView));
     
    199198}
    200199
    201 static void resourceGetDataCallback(GObject* object, GAsyncResult* result, gpointer userData)
    202 {
    203     size_t dataSize;
    204     GOwnPtr<GError> error;
    205     unsigned char* data = webkit_web_resource_get_data_finish(WEBKIT_WEB_RESOURCE(object), result, &dataSize, &error.outPtr());
    206     g_assert(data);
    207 
    208     WebViewTest* test = static_cast<WebViewTest*>(userData);
    209     test->m_resourceData.set(reinterpret_cast<char*>(data));
    210     test->m_resourceDataSize = dataSize;
    211     g_main_loop_quit(test->m_mainLoop);
    212 }
    213 
    214 const char* WebViewTest::mainResourceData(size_t& mainResourceDataSize)
    215 {
    216     m_resourceDataSize = 0;
    217     m_resourceData.clear();
    218     WebKitWebResource* resource = webkit_web_view_get_main_resource(m_webView);
    219     g_assert(resource);
    220 
    221     webkit_web_resource_get_data(resource, 0, resourceGetDataCallback, this);
    222     g_main_loop_run(m_mainLoop);
    223 
    224     mainResourceDataSize = m_resourceDataSize;
    225     return m_resourceData.get();
    226 }
    227 
    228200void WebViewTest::mouseMoveTo(int x, int y, unsigned int mouseModifiers)
    229201{
  • trunk/Source/WebKit2/UIProcess/API/gtk/tests/WebViewTest.h

    r125972 r125978  
    4949    void showInWindowAndWaitUntilMapped(GtkWindowType = GTK_WINDOW_POPUP);
    5050    void resizeView(int width, int height);
    51     const char* mainResourceData(size_t& mainResourceDataSize);
    5251
    5352    void mouseMoveTo(int x, int y, unsigned int mouseModifiers = 0);
     
    7170    WebKitJavascriptResult* m_javascriptResult;
    7271    GError** m_javascriptError;
    73     GOwnPtr<char> m_resourceData;
    74     size_t m_resourceDataSize;
    7572
    7673private:
  • trunk/Source/WebKit2/WebProcess/WebProcess.cpp

    r125972 r125978  
    316316{
    317317    overrideUserPreferredLanguages(languages);
    318     languageDidChange();
    319318}
    320319
  • trunk/Source/WebKit2/WebProcess/gtk/WebProcessGtk.cpp

    r125972 r125978  
    3232#include "WebProcessCreationParameters.h"
    3333#include <WebCore/FileSystem.h>
    34 #include <WebCore/Language.h>
    3534#include <WebCore/MemoryCache.h>
    3635#include <WebCore/NotImplemented.h>
     
    4039#include <wtf/gobject/GOwnPtr.h>
    4140#include <wtf/gobject/GRefPtr.h>
    42 #include <wtf/text/CString.h>
    43 #include <wtf/text/StringBuilder.h>
    4441
    4542#if !OS(WINDOWS)
     
    117114}
    118115
    119 // This function is based on Epiphany code in ephy-embed-prefs.c.
    120 static CString buildAcceptLanguages(Vector<String> languages)
     116void WebProcess::platformInitializeWebProcess(const WebProcessCreationParameters&, CoreIPC::ArgumentDecoder*)
    121117{
    122     // Ignore "C" locale.
    123     size_t position = languages.find("c");
    124     if (position != notFound)
    125         languages.remove(position);
    126 
    127     // Fallback to "en" if the list is empty.
    128     if (languages.isEmpty())
    129         return "en";
    130 
    131     // Calculate deltas for the quality values.
    132     int delta;
    133     if (languages.size() < 10)
    134         delta = 10;
    135     else if (languages.size() < 20)
    136         delta = 5;
    137     else
    138         delta = 1;
    139 
    140     // Set quality values for each language.
    141     StringBuilder builder;
    142     for (size_t i = 0; i < languages.size(); ++i) {
    143         if (i)
    144             builder.append(", ");
    145 
    146         builder.append(languages[i]);
    147 
    148         int quality = 100 - i * delta;
    149         if (quality > 0 && quality < 100) {
    150             char buffer[8];
    151             g_ascii_formatd(buffer, 8, "%.2f", quality / 100.0);
    152             builder.append(String::format(";q=%s", buffer));
    153         }
    154     }
    155 
    156     return builder.toString().utf8();
    157 }
    158 
    159 static void setSoupSessionAcceptLanguage(Vector<String> languages)
    160 {
    161     g_object_set(WebCore::ResourceHandle::defaultSession(), "accept-language", buildAcceptLanguages(languages).data(), NULL);
    162 }
    163 
    164 static void languageChanged(void*)
    165 {
    166     setSoupSessionAcceptLanguage(WebCore::userPreferredLanguages());
    167 }
    168 
    169 void WebProcess::platformInitializeWebProcess(const WebProcessCreationParameters& parameters, CoreIPC::ArgumentDecoder*)
    170 {
    171     if (!parameters.languages.isEmpty())
    172         setSoupSessionAcceptLanguage(parameters.languages);
    173 
    174     WebCore::addLanguageChangeObserver(this, languageChanged);
     118    notImplemented();
    175119}
    176120
     
    181125    soup_cache_flush(cache);
    182126    soup_cache_dump(cache);
    183 
    184     WebCore::removeLanguageChangeObserver(this);
    185127}
    186128
Note: See TracChangeset for help on using the changeset viewer.