⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 126918 in webkit


Ignore:
Timestamp:
Aug 28, 2012, 1:10:07 PM (14 years ago)
Author:
ap@apple.com
Message:

[WK2] Expose process model as API
https://bugs.webkit.org/show_bug.cgi?id=95228

Reviewed by Jon Honeycutt.

  • UIProcess/API/C/WKAPICast.h: (WebKit::toProcessModel): (WebKit::toAPI): Convert ProcessModel values.
  • UIProcess/API/C/WKContext.cpp: (WKContextSetProcessModel): (WKContextGetProcessModel):
  • UIProcess/API/C/WKContext.h:
  • UIProcess/WebContext.cpp: (WebKit::WebContext::setProcessModel):
  • UIProcess/WebContext.h: Added a setter and a getter. Setting process model is only allowed when there are no processes yet - that's checked with a CRASH to guarantee that clients using production builds of WebKit2 don't misstep.
Location:
trunk/Source/WebKit2
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r126914 r126918  
     12012-08-28  Alexey Proskuryakov  <ap@apple.com>
     2
     3        [WK2] Expose process model as API
     4        https://bugs.webkit.org/show_bug.cgi?id=95228
     5
     6        Reviewed by Jon Honeycutt.
     7
     8        * UIProcess/API/C/WKAPICast.h:
     9        (WebKit::toProcessModel):
     10        (WebKit::toAPI):
     11        Convert ProcessModel values.
     12
     13        * UIProcess/API/C/WKContext.cpp:
     14        (WKContextSetProcessModel):
     15        (WKContextGetProcessModel):
     16        * UIProcess/API/C/WKContext.h:
     17        * UIProcess/WebContext.cpp: (WebKit::WebContext::setProcessModel):
     18        * UIProcess/WebContext.h:
     19        Added a setter and a getter. Setting process model is only allowed when there are
     20        no processes yet - that's checked with a CRASH to guarantee that clients using
     21        production builds of WebKit2 don't misstep.
     22
    1232012-08-28  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
    224
  • trunk/Source/WebKit2/UIProcess/API/C/WKAPICast.h

    r122270 r126918  
    3131#include "FontSmoothingLevel.h"
    3232#include "HTTPCookieAcceptPolicy.h"
     33#include "ProcessModel.h"
    3334#include "ResourceCachesToClear.h"
    3435#include "WebGrammarDetail.h"
     
    175176}
    176177
     178inline ProcessModel toProcessModel(WKProcessModel wkProcessModel)
     179{
     180    switch (wkProcessModel) {
     181    case kWKProcessModelSharedSecondaryProcess:
     182        return ProcessModelSharedSecondaryProcess;
     183    case kWKProcessModelMultipleSecondaryProcesses:
     184        return ProcessModelMultipleSecondaryProcesses;
     185    }
     186
     187    ASSERT_NOT_REACHED();
     188    return ProcessModelSharedSecondaryProcess;
     189}
     190
     191inline WKProcessModel toAPI(ProcessModel processModel)
     192{
     193    switch (processModel) {
     194    case ProcessModelSharedSecondaryProcess:
     195        return kWKProcessModelSharedSecondaryProcess;
     196    case ProcessModelMultipleSecondaryProcesses:
     197        return kWKProcessModelMultipleSecondaryProcesses;
     198    }
     199   
     200    return kWKProcessModelSharedSecondaryProcess;
     201}
     202
    177203inline FontSmoothingLevel toFontSmoothingLevel(WKFontSmoothingLevel wkLevel)
    178204{
  • trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp

    r125363 r126918  
    121121}
    122122
     123void WKContextSetProcessModel(WKContextRef contextRef, WKProcessModel processModel)
     124{
     125    toImpl(contextRef)->setProcessModel(toProcessModel(processModel));
     126}
     127
     128WKProcessModel WKContextGetProcessModel(WKContextRef contextRef)
     129{
     130    return toAPI(toImpl(contextRef)->processModel());
     131}
     132
    123133void WKContextSetAlwaysUsesComplexTextCodePath(WKContextRef contextRef, bool alwaysUseComplexTextCodePath)
    124134{
  • trunk/Source/WebKit2/UIProcess/API/C/WKContext.h

    r124092 r126918  
    124124enum { kWKContextConnectionClientCurrentVersion = 0 };
    125125
     126enum {
     127    kWKProcessModelSharedSecondaryProcess = 0,
     128    kWKProcessModelMultipleSecondaryProcesses = 1
     129};
     130typedef uint32_t WKProcessModel;
     131
    126132WK_EXPORT WKTypeID WKContextGetTypeID();
    127133
     
    143149WK_EXPORT void WKContextSetCacheModel(WKContextRef context, WKCacheModel cacheModel);
    144150WK_EXPORT WKCacheModel WKContextGetCacheModel(WKContextRef context);
     151
     152WK_EXPORT void WKContextSetProcessModel(WKContextRef context, WKProcessModel processModel);
     153WK_EXPORT WKProcessModel WKContextGetProcessModel(WKContextRef context);
    145154
    146155WK_EXPORT void WKContextStartMemorySampler(WKContextRef context, WKDoubleRef interval);
  • trunk/Source/WebKit2/UIProcess/WebContext.cpp

    r126914 r126918  
    256256}
    257257
     258void WebContext::setProcessModel(ProcessModel processModel)
     259{
     260    // Guard against API misuse.
     261    if (!m_processes.isEmpty())
     262        CRASH();
     263
     264    m_processModel = processModel;
     265}
     266
    258267WebProcessProxy* WebContext::deprecatedSharedProcess()
    259268{
  • trunk/Source/WebKit2/UIProcess/WebContext.h

    r125602 r126918  
    9090    void initializeDownloadClient(const WKContextDownloadClient*);
    9191
     92    void setProcessModel(ProcessModel); // Can only be called when there are no processes running.
    9293    ProcessModel processModel() const { return m_processModel; }
    9394
Note: See TracChangeset for help on using the changeset viewer.