Changeset 141583 in webkit


Ignore:
Timestamp:
Feb 1, 2013 5:08:17 AM (11 years ago)
Author:
mikhail.pozdnyakov@intel.com
Message:

[EFL][WK2] EwkContext should be based on C WK2 API
https://bugs.webkit.org/show_bug.cgi?id=107666

Reviewed by Andreas Kling.

EwkContext should be based on C WK2 API so that API layering is not violated.

  • UIProcess/API/efl/EwkView.cpp:

(EwkView::EwkView):

  • UIProcess/API/efl/ewk_context.cpp:

(EwkContext::EwkContext):
(EwkContext::create):
(EwkContext::cookieManager):
(EwkContext::ensureFaviconDatabase):
(EwkContext::setFaviconDatabaseDirectoryPath):
(EwkContext::addVisitedLink):
(EwkContext::setCacheModel):
(EwkContext::cacheModel):
(EwkContext::setAdditionalPluginPath):
(EwkContext::clearResourceCache):

  • UIProcess/API/efl/ewk_context_private.h:

(EwkContext):

  • UIProcess/API/efl/ewk_view.cpp:

(ewk_view_base_add):

Location:
trunk/Source/WebKit2
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r141581 r141583  
     12013-02-01  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
     2
     3        [EFL][WK2] EwkContext should be based on C WK2 API
     4        https://bugs.webkit.org/show_bug.cgi?id=107666
     5
     6        Reviewed by Andreas Kling.
     7
     8        EwkContext should be based on C WK2 API so that API layering is not violated.
     9
     10        * UIProcess/API/efl/EwkView.cpp:
     11        (EwkView::EwkView):
     12        * UIProcess/API/efl/ewk_context.cpp:
     13        (EwkContext::EwkContext):
     14        (EwkContext::create):
     15        (EwkContext::cookieManager):
     16        (EwkContext::ensureFaviconDatabase):
     17        (EwkContext::setFaviconDatabaseDirectoryPath):
     18        (EwkContext::addVisitedLink):
     19        (EwkContext::setCacheModel):
     20        (EwkContext::cacheModel):
     21        (EwkContext::setAdditionalPluginPath):
     22        (EwkContext::clearResourceCache):
     23        * UIProcess/API/efl/ewk_context_private.h:
     24        (EwkContext):
     25        * UIProcess/API/efl/ewk_view.cpp:
     26        (ewk_view_base_add):
     27
    1282013-02-01  Christophe Dumez  <christophe.dumez@intel.com>
    229
  • trunk/Source/WebKit2/UIProcess/API/efl/EwkView.cpp

    r141543 r141583  
    118118#endif
    119119    , m_pageClient(behavior == DefaultBehavior ? PageClientDefaultImpl::create(this) : PageClientLegacyImpl::create(this))
    120     , m_pageProxy(m_context->webContext()->createWebPage(m_pageClient.get(), pageGroup.get()))
     120    , m_pageProxy(toImpl(m_context->wkContext())->createWebPage(m_pageClient.get(), pageGroup.get()))
    121121    , m_pageLoadClient(PageLoadClientEfl::create(this))
    122122    , m_pagePolicyClient(PagePolicyClientEfl::create(this))
  • trunk/Source/WebKit2/UIProcess/API/efl/ewk_context.cpp

    r141389 r141583  
    2424#include "BatteryProvider.h"
    2525#include "ContextHistoryClientEfl.h"
     26#include "DownloadManagerEfl.h"
    2627#include "NetworkInfoProvider.h"
    2728#include "RequestManagerClientEfl.h"
    2829#include "WKAPICast.h"
    29 #include "WKContext.h"
    3030#include "WKContextSoup.h"
    3131#include "WKNumber.h"
    32 #include "WKRetainPtr.h"
    3332#include "WKString.h"
    34 #include "WebContext.h"
    35 #include "WebCookieManagerProxy.h"
    3633#include "WebIconDatabase.h"
    37 #include "WebResourceCacheManagerProxy.h"
    38 #include "WebSoupRequestManagerProxy.h"
    3934#include "ewk_context_private.h"
    4035#include "ewk_cookie_manager_private.h"
     
    5752using namespace WebKit;
    5853
    59 typedef HashMap<WebContext*, EwkContext*> ContextMap;
     54typedef HashMap<WKContextRef, EwkContext*> ContextMap;
    6055
    6156static inline ContextMap& contextMap()
     
    6560}
    6661
    67 EwkContext::EwkContext(PassRefPtr<WebContext> context)
     62EwkContext::EwkContext(WKContextRef context)
    6863    : m_context(context)
    69     , m_databaseManager(EwkDatabaseManager::create(WKContextGetDatabaseManager(toAPI(m_context.get()))))
    70     , m_storageManager(EwkStorageManager::create(WKContextGetKeyValueStorageManager(toAPI(m_context.get()))))
     64    , m_databaseManager(EwkDatabaseManager::create(WKContextGetDatabaseManager(context)))
     65    , m_storageManager(EwkStorageManager::create(WKContextGetKeyValueStorageManager(context)))
    7166#if ENABLE(BATTERY_STATUS)
    72     , m_batteryProvider(BatteryProvider::create(m_context))
     67    , m_batteryProvider(BatteryProvider::create(toImpl(context)))
    7368#endif
    7469#if ENABLE(NETWORK_INFO)
    75     , m_networkInfoProvider(NetworkInfoProvider::create(m_context))
    76 #endif
    77     , m_downloadManager(DownloadManagerEfl::create(toAPI(m_context.get())))
    78     , m_requestManagerClient(RequestManagerClientEfl::create(toAPI(m_context.get())))
    79     , m_historyClient(ContextHistoryClientEfl::create(toAPI(m_context.get())))
    80 {
    81     ContextMap::AddResult result = contextMap().add(m_context.get(), this);
     70    , m_networkInfoProvider(NetworkInfoProvider::create(toImpl(context)))
     71#endif
     72    , m_downloadManager(DownloadManagerEfl::create(context))
     73    , m_requestManagerClient(RequestManagerClientEfl::create(context))
     74    , m_historyClient(ContextHistoryClientEfl::create(context))
     75{
     76    ContextMap::AddResult result = contextMap().add(context, this);
    8277    ASSERT_UNUSED(result, result.isNewEntry);
    8378
     
    8782
    8883    if (!initializeMemorySampler && getenv(environmentVariable)) {
    89         m_context->startMemorySampler(0.0);
     84        WKContextStartMemorySampler(context, adoptWK(WKDoubleCreate(0.0)).get());
    9085        initializeMemorySampler = true;
    9186    }
     
    107102}
    108103
    109 PassRefPtr<EwkContext> EwkContext::create(PassRefPtr<WebContext> context)
    110 {
    111     if (contextMap().contains(context.get()))
    112         return contextMap().get(context.get()); // Will be ref-ed automatically.
     104PassRefPtr<EwkContext> EwkContext::create(WKContextRef context)
     105{
     106    if (contextMap().contains(context))
     107        return contextMap().get(context); // Will be ref-ed automatically.
    113108
    114109    return adoptRef(new EwkContext(context));
     
    117112PassRefPtr<EwkContext> EwkContext::create()
    118113{
    119     return create(WebContext::create(String()));
     114    return create(adoptWK(WKContextCreate()).get());
    120115}
    121116
     
    125120        return 0;
    126121
    127     return create(WebContext::create(injectedBundlePath));
     122    WKRetainPtr<WKStringRef> path = adoptWK(toCopiedAPI(injectedBundlePath));
     123
     124    return create(adoptWK(WKContextCreateWithInjectedBundlePath(path.get())).get());
    128125}
    129126
     
    138135{
    139136    if (!m_cookieManager)
    140         m_cookieManager = EwkCookieManager::create(WKContextGetCookieManager(toAPI(m_context.get())));
     137        m_cookieManager = EwkCookieManager::create(WKContextGetCookieManager(m_context.get()));
    141138
    142139    return m_cookieManager.get();
     
    153150        return;
    154151
    155     m_faviconDatabase = EwkFaviconDatabase::create(WKContextGetIconDatabase(toAPI(m_context.get())));
     152    m_faviconDatabase = EwkFaviconDatabase::create(WKContextGetIconDatabase(m_context.get()));
    156153}
    157154
     
    159156{
    160157    ensureFaviconDatabase();
     158    // FIXME: Hole in WK2 API layering must be fixed when C API is available.
     159    WebIconDatabase* iconDatabase = toImpl(WKContextGetIconDatabase(m_context.get()));
    161160
    162161    // The database path is already open so its path was
    163162    // already set.
    164     if (m_context->iconDatabase()->isOpen())
     163    if (iconDatabase->isOpen())
    165164        return false;
    166165
    167166    // If databaseDirectory is empty, we use the default database path for the platform.
    168     String databasePath = databaseDirectory.isEmpty() ? m_context->iconDatabasePath() : pathByAppendingComponent(databaseDirectory, WebCore::IconDatabase::defaultDatabaseFilename());
    169     m_context->setIconDatabasePath(databasePath);
     167    String databasePath = databaseDirectory.isEmpty() ? toImpl(m_context.get())->iconDatabasePath() : pathByAppendingComponent(databaseDirectory, WebCore::IconDatabase::defaultDatabaseFilename());
     168    toImpl(m_context.get())->setIconDatabasePath(databasePath);
    170169
    171170    return true;
     
    192191void EwkContext::addVisitedLink(const String& visitedURL)
    193192{
    194     m_context->addVisitedLink(visitedURL);
     193    WKContextAddVisitedLink(m_context.get(), adoptWK(toCopiedAPI(visitedURL)).get());
    195194}
    196195
    197196void EwkContext::setCacheModel(Ewk_Cache_Model cacheModel)
    198197{
    199     m_context->setCacheModel(static_cast<WebKit::CacheModel>(cacheModel));
     198    WKContextSetCacheModel(m_context.get(), static_cast<WebKit::CacheModel>(cacheModel));
    200199}
    201200
    202201Ewk_Cache_Model EwkContext::cacheModel() const
    203202{
    204     return static_cast<Ewk_Cache_Model>(m_context->cacheModel());
     203    return static_cast<Ewk_Cache_Model>(WKContextGetCacheModel(m_context.get()));
    205204}
    206205
     
    208207void EwkContext::setAdditionalPluginPath(const String& path)
    209208{
    210     m_context->setAdditionalPluginsDirectory(path);
     209    // FIXME: Hole in WK2 API layering must be fixed when C API is available.
     210    toImpl(m_context.get())->setAdditionalPluginsDirectory(path);
    211211}
    212212#endif
     
    214214void EwkContext::clearResourceCache()
    215215{
    216     m_context->supplement<WebResourceCacheManagerProxy>()->clearCacheForAllOrigins(AllResourceCaches);
     216    WKResourceCacheManagerClearCacheForAllOrigins(WKContextGetResourceCacheManager(m_context.get()), WKResourceCachesToClearAll);
    217217}
    218218
  • trunk/Source/WebKit2/UIProcess/API/efl/ewk_context_private.h

    r138554 r141583  
    2121#define ewk_context_private_h
    2222
    23 #include "DownloadManagerEfl.h"
    24 #include "WKAPICast.h"
    25 #include "WKRetainPtr.h"
    26 #include "WebContext.h"
    2723#include "ewk_context.h"
    2824#include "ewk_object_private.h"
     25#include <WebKit2/WKBase.h>
     26#include <WebKit2/WKRetainPtr.h>
     27#include <wtf/PassOwnPtr.h>
     28#include <wtf/RefPtr.h>
     29#include <wtf/text/WTFString.h>
    2930
    3031using namespace WebKit;
     
    3536namespace WebKit {
    3637class ContextHistoryClientEfl;
     38class DownloadManagerEfl;
    3739class RequestManagerClientEfl;
    3840#if ENABLE(BATTERY_STATUS)
     
    4850    EWK_OBJECT_DECLARE(EwkContext)
    4951
    50     static PassRefPtr<EwkContext> create(PassRefPtr<WebContext> context);
     52    static PassRefPtr<EwkContext> create(WKContextRef context);
    5153    static PassRefPtr<EwkContext> create();
    5254    static PassRefPtr<EwkContext> create(const String& injectedBundlePath);
     
    7375    Ewk_Cache_Model cacheModel() const;
    7476
    75     PassRefPtr<WebContext> webContext() { return m_context; }
     77    WKContextRef wkContext() const { return m_context.get(); }
    7678
    7779    WebKit::DownloadManagerEfl* downloadManager() const;
     
    8688
    8789private:
    88     explicit EwkContext(PassRefPtr<WebContext>);
     90    explicit EwkContext(WKContextRef);
    8991
    9092    void ensureFaviconDatabase();
    9193
    92     RefPtr<WebContext> m_context;
     94    WKRetainPtr<WKContextRef> m_context;
    9395
    9496    OwnPtr<EwkCookieManager> m_cookieManager;
  • trunk/Source/WebKit2/UIProcess/API/efl/ewk_view.cpp

    r141439 r141583  
    534534Evas_Object* ewk_view_base_add(Evas* canvas, WKContextRef contextRef, WKPageGroupRef pageGroupRef, EwkView::ViewBehavior behavior)
    535535{
    536     return createEwkView(canvas, createEwkViewSmartClass(), contextRef ? EwkContext::create(toImpl(contextRef)) : EwkContext::defaultContext(), pageGroupRef, behavior);
     536    return createEwkView(canvas, createEwkViewSmartClass(), contextRef ? EwkContext::create(contextRef) : EwkContext::defaultContext(), pageGroupRef, behavior);
    537537}
    538538
  • trunk/Source/WebKit2/UIProcess/efl/PageClientBase.cpp

    r141543 r141583  
    2828
    2929#include "CoordinatedLayerTreeHostProxy.h"
     30#include "DownloadManagerEfl.h"
    3031#include "DrawingAreaProxyImpl.h"
    3132#include "EwkView.h"
Note: See TracChangeset for help on using the changeset viewer.