Changeset 192761 in webkit


Ignore:
Timestamp:
Nov 24, 2015 12:01:35 AM (8 years ago)
Author:
Carlos Garcia Campos
Message:

[GTK] Use the network process unconditionally
https://bugs.webkit.org/show_bug.cgi?id=151541

Reviewed by Alex Christensen.

Source/WebKit2:

Make the shared secondary process model become multiple secondary
process model with a limit of 1 web process. Use the same options
when creating a context with legacy configuration (unit tests and
inspector proxy).

  • NetworkProcess/gtk/NetworkProcessMainGtk.cpp:
  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::createWithLegacyOptions):

  • UIProcess/API/gtk/WebKitWebContext.cpp:

(webkitWebContextConstructed):
(webkit_web_context_set_process_model):
(webkit_web_context_get_process_model):
(webkit_web_context_set_web_process_count_limit):
(webkit_web_context_get_web_process_count_limit):
(toWebKitProcessModel): Deleted.

  • UIProcess/gtk/WebInspectorProxyGtk.cpp:
  • UIProcess/gtk/WebProcessPoolGtk.cpp:

(WebKit::WebProcessPool::setIgnoreTLSErrors):
(WebKit::WebProcessPool::platformInitializeWebProcess):

Tools:

Fix TestInspectorServer test. Do not assume we already have the
title we want when the page has been loaded, since the title is
changed afterwards. So, check if the title has already been set,
and if not wait for it.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestInspectorServer.cpp:

(openRemoteDebuggingSession):

Location:
trunk
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r192756 r192761  
     12015-11-23  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        [GTK] Use the network process unconditionally
     4        https://bugs.webkit.org/show_bug.cgi?id=151541
     5
     6        Reviewed by Alex Christensen.
     7
     8        Make the shared secondary process model become multiple secondary
     9        process model with a limit of 1 web process. Use the same options
     10        when creating a context with legacy configuration (unit tests and
     11        inspector proxy).
     12
     13        * NetworkProcess/gtk/NetworkProcessMainGtk.cpp:
     14        * UIProcess/API/APIProcessPoolConfiguration.cpp:
     15        (API::ProcessPoolConfiguration::createWithLegacyOptions):
     16        * UIProcess/API/gtk/WebKitWebContext.cpp:
     17        (webkitWebContextConstructed):
     18        (webkit_web_context_set_process_model):
     19        (webkit_web_context_get_process_model):
     20        (webkit_web_context_set_web_process_count_limit):
     21        (webkit_web_context_get_web_process_count_limit):
     22        (toWebKitProcessModel): Deleted.
     23        * UIProcess/gtk/WebInspectorProxyGtk.cpp:
     24        * UIProcess/gtk/WebProcessPoolGtk.cpp:
     25        (WebKit::WebProcessPool::setIgnoreTLSErrors):
     26        (WebKit::WebProcessPool::platformInitializeWebProcess):
     27
    1282015-11-23  Brian Burg  <bburg@apple.com>
    229
  • trunk/Source/WebKit2/NetworkProcess/gtk/NetworkProcessMainGtk.cpp

    r192697 r192761  
    4444        return true;
    4545    }
    46 
    47     void platformFinalize() override
    48     {
    49 #if !ENABLE(NETWORK_CACHE)
    50         if (SoupCache* soupCache = SoupNetworkSession::defaultSession().cache()) {
    51             soup_cache_flush(soupCache);
    52             soup_cache_dump(soupCache);
    53         }
    54 #endif
    55     }
    5646};
    5747
  • trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.cpp

    r192673 r192761  
    4242
    4343    configuration->m_shouldHaveLegacyDataStore = true;
     44#if PLATFORM(GTK)
     45    // FIXME: Remove this ifdef once all ports have switched to use always NetworkProcess.
     46    // See https://bugs.webkit.org/show_bug.cgi?id=151418.
     47    configuration->m_processModel = WebKit::ProcessModelMultipleSecondaryProcesses;
     48    configuration->m_maximumProcessCount = 1;
     49    configuration->m_useNetworkProcess = true;
     50#else
    4451    configuration->m_processModel = WebKit::ProcessModelSharedSecondaryProcess;
    4552    configuration->m_useNetworkProcess = false;
     53#endif
    4654    configuration->m_cacheModel = WebKit::CacheModelDocumentViewer;
    4755
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp

    r192673 r192761  
    180180    CString faviconDatabaseDirectory;
    181181    WebKitTLSErrorsPolicy tlsErrorsPolicy;
     182    WebKitProcessModel processModel;
     183    unsigned processCountLimit;
    182184
    183185    HashMap<uint64_t, WebKitWebView*> webViews;
     
    193195
    194196WEBKIT_DEFINE_TYPE(WebKitWebContext, webkit_web_context, G_TYPE_OBJECT)
    195 
    196 static inline WebKit::ProcessModel toProcessModel(WebKitProcessModel webKitProcessModel)
    197 {
    198     switch (webKitProcessModel) {
    199     case WEBKIT_PROCESS_MODEL_SHARED_SECONDARY_PROCESS:
    200         return ProcessModelSharedSecondaryProcess;
    201     case WEBKIT_PROCESS_MODEL_MULTIPLE_SECONDARY_PROCESSES:
    202         return ProcessModelMultipleSecondaryProcesses;
    203     default:
    204         ASSERT_NOT_REACHED();
    205         return ProcessModelSharedSecondaryProcess;
    206     }
    207 }
    208 
    209 static inline WebKitProcessModel toWebKitProcessModel(WebKit::ProcessModel processModel)
    210 {
    211     switch (processModel) {
    212     case ProcessModelSharedSecondaryProcess:
    213         return WEBKIT_PROCESS_MODEL_SHARED_SECONDARY_PROCESS;
    214     case ProcessModelMultipleSecondaryProcesses:
    215         return WEBKIT_PROCESS_MODEL_MULTIPLE_SECONDARY_PROCESSES;
    216     default:
    217         ASSERT_NOT_REACHED();
    218         return WEBKIT_PROCESS_MODEL_SHARED_SECONDARY_PROCESS;
    219     }
    220 }
    221197
    222198static const char* injectedBundleDirectory()
     
    286262    API::ProcessPoolConfiguration configuration;
    287263    configuration.setInjectedBundlePath(WebCore::filenameToString(bundleFilename.get()));
    288     configuration.setProcessModel(ProcessModelSharedSecondaryProcess);
    289     configuration.setUseNetworkProcess(false);
     264    configuration.setMaximumProcessCount(1);
    290265
    291266    WebKitWebContext* webContext = WEBKIT_WEB_CONTEXT(object);
     
    11701145    g_return_if_fail(WEBKIT_IS_WEB_CONTEXT(context));
    11711146
    1172     ProcessModel newProcessModel(toProcessModel(processModel));
    1173 
    1174     if (newProcessModel == context->priv->context->processModel())
     1147    if (processModel == context->priv->processModel)
    11751148        return;
    11761149
    1177     context->priv->context->setUsesNetworkProcess(newProcessModel == ProcessModelMultipleSecondaryProcesses);
    1178     context->priv->context->setProcessModel(newProcessModel);
     1150    context->priv->processModel = processModel;
     1151    switch (context->priv->processModel) {
     1152    case WEBKIT_PROCESS_MODEL_SHARED_SECONDARY_PROCESS:
     1153        context->priv->context->setMaximumNumberOfProcesses(1);
     1154        break;
     1155    case WEBKIT_PROCESS_MODEL_MULTIPLE_SECONDARY_PROCESSES:
     1156        context->priv->context->setMaximumNumberOfProcesses(context->priv->processCountLimit);
     1157        break;
     1158    }
    11791159}
    11801160
     
    11941174    g_return_val_if_fail(WEBKIT_IS_WEB_CONTEXT(context), WEBKIT_PROCESS_MODEL_SHARED_SECONDARY_PROCESS);
    11951175
    1196     return toWebKitProcessModel(context->priv->context->processModel());
     1176    return context->priv->processModel;
    11971177}
    11981178
     
    12151195    g_return_if_fail(WEBKIT_IS_WEB_CONTEXT(context));
    12161196
    1217     if (limit == context->priv->context->configuration().maximumProcessCount())
     1197    if (context->priv->processCountLimit == limit)
    12181198        return;
    12191199
    1220     context->priv->context->setMaximumNumberOfProcesses(limit);
     1200    context->priv->processCountLimit = limit;
     1201    if (context->priv->processModel != WEBKIT_PROCESS_MODEL_SHARED_SECONDARY_PROCESS)
     1202        context->priv->context->setMaximumNumberOfProcesses(limit);
    12211203}
    12221204
     
    12351217    g_return_val_if_fail(WEBKIT_IS_WEB_CONTEXT(context), 0);
    12361218
    1237     return context->priv->context->configuration().maximumProcessCount();
     1219    return context->priv->processCountLimit;
    12381220}
    12391221
  • trunk/Source/WebKit2/UIProcess/gtk/WebInspectorProxyGtk.cpp

    r191284 r192761  
    3232#include "WebKitWebViewBasePrivate.h"
    3333#include "WebPageGroup.h"
     34#include "WebProcessPool.h"
    3435#include "WebProcessProxy.h"
    3536#include <WebCore/FileSystem.h>
  • trunk/Source/WebKit2/UIProcess/gtk/WebProcessPoolGtk.cpp

    r192697 r192761  
    9696    }
    9797
    98     if (!usesNetworkProcess()) {
    99         parameters.urlSchemesRegisteredForCustomProtocols = supplement<WebSoupCustomProtocolRequestManager>()->registeredSchemesForCustomProtocols();
    100 
    101         supplement<WebCookieManagerProxy>()->getCookiePersistentStorage(parameters.cookiePersistentStoragePath, parameters.cookiePersistentStorageType);
    102         parameters.cookieAcceptPolicy = m_initialHTTPCookieAcceptPolicy;
    103 
    104         parameters.ignoreTLSErrors = m_ignoreTLSErrors;
    105         parameters.diskCacheDirectory = m_configuration->diskCacheDirectory();
    106     }
    107 
    10898    parameters.memoryCacheDisabled = m_memoryCacheDisabled || cacheModel() == CacheModelDocumentViewer;
    10999}
     
    147137{
    148138    m_ignoreTLSErrors = ignoreTLSErrors;
    149     if (usesNetworkProcess() && networkProcess()) {
     139    if (networkProcess())
    150140        networkProcess()->send(Messages::NetworkProcess::SetIgnoreTLSErrors(m_ignoreTLSErrors), 0);
    151         return;
    152     }
    153     sendToAllProcesses(Messages::WebProcess::SetIgnoreTLSErrors(m_ignoreTLSErrors));
    154141}
    155142
  • trunk/Tools/ChangeLog

    r192747 r192761  
     12015-11-23  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        [GTK] Use the network process unconditionally
     4        https://bugs.webkit.org/show_bug.cgi?id=151541
     5
     6        Reviewed by Alex Christensen.
     7
     8        Fix TestInspectorServer test. Do not assume we already have the
     9        title we want when the page has been loaded, since the title is
     10        changed afterwards. So, check if the title has already been set,
     11        and if not wait for it.
     12
     13        * TestWebKitAPI/Tests/WebKit2Gtk/TestInspectorServer.cpp:
     14        (openRemoteDebuggingSession):
     15
    1162015-11-23  Alex Christensen  <achristensen@webkit.org>
    217
  • trunk/Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestInspectorServer.cpp

    r185502 r192761  
    238238    test->waitUntilLoadFinished();
    239239
    240     javascriptResult = test->runJavaScriptAndWaitUntilFinished("document.title", &error.outPtr());
    241     g_assert(javascriptResult);
    242     g_assert(!error.get());
    243 
    244     GUniquePtr<char> title(WebViewTest::javascriptResultToCString(javascriptResult));
    245     g_assert_cmpstr(title.get(), ==, "127.0.0.1");
     240    const char* title = webkit_web_view_get_title(test->m_webView);
     241    if (!title || !*title)
     242        test->waitUntilTitleChanged();
     243    g_assert_cmpstr(webkit_web_view_get_title(test->m_webView), ==, "127.0.0.1");
    246244}
    247245
Note: See TracChangeset for help on using the changeset viewer.