Changeset 168625 in webkit


Ignore:
Timestamp:
May 12, 2014 10:56:42 AM (10 years ago)
Author:
andersca@apple.com
Message:

Replace WKContextSetLocalStorageDirectory with a context configuration getter/setter
https://bugs.webkit.org/show_bug.cgi?id=132809

Reviewed by Dan Bernstein.

Source/WebKit2:

  • UIProcess/API/C/WKContext.cpp:

(WKContextSetLocalStorageDirectory): Deleted.

  • UIProcess/API/C/WKContextConfigurationRef.cpp:

(WKContextConfigurationCopyLocalStorageDirectory):
(WKContextConfigurationSetLocalStorageDirectory):

  • UIProcess/API/C/WKContextConfigurationRef.h:

Add getters and setters for the local storage directory.

  • UIProcess/API/C/WKContextPrivate.h:

Remove WKContextSetLocalStorageDirectory.

  • UIProcess/API/Cocoa/WKProcessGroup.mm:

(-[WKProcessGroup initWithInjectedBundleURL:]):
Call WebContext::applyPlatformSpecificConfigurationDefaults.

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _initWithConfiguration:]):
Call WebContext::applyPlatformSpecificConfigurationDefaults (for now).

  • UIProcess/APIContextConfiguration.cpp:

(API::ContextConfiguration::webContextConfiguration):
Set the local storage. Also, call WebContext::applyPlatformSpecificConfigurationDefaults.

  • UIProcess/APIContextConfiguration.h:

(API::ContextConfiguration::injectedBundlePath):
This should be const.

(API::ContextConfiguration::localStorageDirectory):
(API::ContextConfiguration::setLocalStorageDirectory):
Add getter and setter.

  • UIProcess/Storage/StorageManager.cpp:

(WebKit::StorageManager::setLocalStorageDirectory):
ASSERT that the path isn't null.

  • UIProcess/WebContext.cpp:

(WebKit::WebContext::applyPlatformSpecificConfigurationDefaults):
New helper function that will fill in platform specific defaults for empty parameters.

(WebKit::WebContext::WebContext):
Get the local storage directory from the configuration.

(WebKit::WebContext::setLocalStorageDirectory): Deleted.
(WebKit::WebContext::localStorageDirectory): Deleted.
These are no longer needed.

  • UIProcess/mac/WebContextMac.mm:

(WebKit::WebContext::platformDefaultLocalStorageDirectory):
This should be a static member function.

Tools:

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::initialize):
Set the local storage directory using WKContextConfigurationSetLocalStorageDirectory.

Location:
trunk
Files:
15 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r168623 r168625  
     12014-05-11  Anders Carlsson  <andersca@apple.com>
     2
     3        Replace WKContextSetLocalStorageDirectory with a context configuration getter/setter
     4        https://bugs.webkit.org/show_bug.cgi?id=132809
     5
     6        Reviewed by Dan Bernstein.
     7
     8        * UIProcess/API/C/WKContext.cpp:
     9        (WKContextSetLocalStorageDirectory): Deleted.
     10
     11        * UIProcess/API/C/WKContextConfigurationRef.cpp:
     12        (WKContextConfigurationCopyLocalStorageDirectory):
     13        (WKContextConfigurationSetLocalStorageDirectory):
     14        * UIProcess/API/C/WKContextConfigurationRef.h:
     15        Add getters and setters for the local storage directory.
     16
     17        * UIProcess/API/C/WKContextPrivate.h:
     18        Remove WKContextSetLocalStorageDirectory.
     19
     20        * UIProcess/API/Cocoa/WKProcessGroup.mm:
     21        (-[WKProcessGroup initWithInjectedBundleURL:]):
     22        Call WebContext::applyPlatformSpecificConfigurationDefaults.
     23
     24        * UIProcess/API/Cocoa/WKProcessPool.mm:
     25        (-[WKProcessPool _initWithConfiguration:]):
     26        Call WebContext::applyPlatformSpecificConfigurationDefaults (for now).
     27
     28        * UIProcess/APIContextConfiguration.cpp:
     29        (API::ContextConfiguration::webContextConfiguration):
     30        Set the local storage. Also, call WebContext::applyPlatformSpecificConfigurationDefaults.
     31
     32        * UIProcess/APIContextConfiguration.h:
     33        (API::ContextConfiguration::injectedBundlePath):
     34        This should be const.
     35
     36        (API::ContextConfiguration::localStorageDirectory):
     37        (API::ContextConfiguration::setLocalStorageDirectory):
     38        Add getter and setter.
     39
     40        * UIProcess/Storage/StorageManager.cpp:
     41        (WebKit::StorageManager::setLocalStorageDirectory):
     42        ASSERT that the path isn't null.
     43
     44        * UIProcess/WebContext.cpp:
     45        (WebKit::WebContext::applyPlatformSpecificConfigurationDefaults):
     46        New helper function that will fill in platform specific defaults for empty parameters.
     47
     48        (WebKit::WebContext::WebContext):
     49        Get the local storage directory from the configuration.
     50
     51        (WebKit::WebContext::setLocalStorageDirectory): Deleted.
     52        (WebKit::WebContext::localStorageDirectory): Deleted.
     53        These are no longer needed.
     54
     55        * UIProcess/mac/WebContextMac.mm:
     56        (WebKit::WebContext::platformDefaultLocalStorageDirectory):
     57        This should be a static member function.
     58
    1592014-05-12  Martin Hodovan  <mhodovan.u-szeged@partner.samsung.com>
    260
  • trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp

    r168603 r168625  
    493493}
    494494
    495 void WKContextSetLocalStorageDirectory(WKContextRef contextRef, WKStringRef localStorageDirectory)
    496 {
    497     toImpl(contextRef)->setLocalStorageDirectory(toImpl(localStorageDirectory)->string());
    498 }
    499 
    500495WK_EXPORT void WKContextSetDiskCacheDirectory(WKContextRef contextRef, WKStringRef diskCacheDirectory)
    501496{
  • trunk/Source/WebKit2/UIProcess/API/C/WKContextConfigurationRef.cpp

    r168603 r168625  
    4646    toImpl(configuration)->setInjectedBundlePath(toImpl(injectedBundlePath)->string());
    4747}
     48
     49WKStringRef WKContextConfigurationCopyLocalStorageDirectory(WKContextConfigurationRef configuration)
     50{
     51    return toCopiedAPI(toImpl(configuration)->localStorageDirectory());
     52}
     53
     54void WKContextConfigurationSetLocalStorageDirectory(WKContextConfigurationRef configuration, WKStringRef localStorageDirectory)
     55{
     56    toImpl(configuration)->setLocalStorageDirectory(toImpl(localStorageDirectory)->string());
     57}
  • trunk/Source/WebKit2/UIProcess/API/C/WKContextConfigurationRef.h

    r168603 r168625  
    3838WK_EXPORT void WKContextConfigurationSetInjectedBundlePath(WKContextConfigurationRef configuration, WKStringRef injectedBundlePath);
    3939
     40WK_EXPORT WKStringRef WKContextConfigurationCopyLocalStorageDirectory(WKContextConfigurationRef configuration);
     41WK_EXPORT void WKContextConfigurationSetLocalStorageDirectory(WKContextConfigurationRef configuration, WKStringRef localStorageDirectory);
     42
    4043#ifdef __cplusplus
    4144}
  • trunk/Source/WebKit2/UIProcess/API/C/WKContextPrivate.h

    r168541 r168625  
    6565WK_EXPORT void WKContextSetApplicationCacheDirectory(WKContextRef context, WKStringRef applicationCacheDirectory);
    6666WK_EXPORT void WKContextSetDatabaseDirectory(WKContextRef context, WKStringRef databaseDirectory);
    67 WK_EXPORT void WKContextSetLocalStorageDirectory(WKContextRef context, WKStringRef localStorageDirectory);
    6867WK_EXPORT void WKContextSetDiskCacheDirectory(WKContextRef context, WKStringRef diskCacheDirectory);
    6968WK_EXPORT void WKContextSetCookieStorageDirectory(WKContextRef context, WKStringRef cookieStorageDirectory);
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessGroup.mm

    r168603 r168625  
    193193    webContextConfiguration.injectedBundlePath = bundleURL ? String(bundleURL.path) : String();
    194194
     195    WebContext::applyPlatformSpecificConfigurationDefaults(webContextConfiguration);
     196
    195197    _context = WebContext::create(std::move(webContextConfiguration));
    196198
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessPool.mm

    r168603 r168625  
    126126    }
    127127
     128    // FIXME: These are legacy configuration defaults and should not be applied when creating a WKProcessPool.
     129    WebKit::WebContext::applyPlatformSpecificConfigurationDefaults(webContextConfiguration);
     130
    128131    API::Object::constructInWrapper<WebKit::WebContext>(self, std::move(webContextConfiguration));
    129132    _context->setHistoryClient(std::make_unique<WebKit::HistoryClient>());
  • trunk/Source/WebKit2/UIProcess/APIContextConfiguration.cpp

    r168603 r168625  
    2828
    2929#include "WebContext.h"
     30
    3031namespace API {
    3132
     
    4344
    4445    configuration.injectedBundlePath = m_injectedBundlePath;
     46    configuration.localStorageDirectory = m_localStorageDirectory;
     47
     48    WebKit::WebContext::applyPlatformSpecificConfigurationDefaults(configuration);
    4549
    4650    return configuration;
  • trunk/Source/WebKit2/UIProcess/APIContextConfiguration.h

    r168603 r168625  
    4444    virtual ~ContextConfiguration();
    4545
    46     String injectedBundlePath() { return m_injectedBundlePath; }
     46    String injectedBundlePath() const { return m_injectedBundlePath; }
    4747    void setInjectedBundlePath(const String& injectedBundlePath) { m_injectedBundlePath = injectedBundlePath; }
     48
     49    String localStorageDirectory() const { return m_localStorageDirectory; }
     50    void setLocalStorageDirectory(const String& localStorageDirectory) { m_localStorageDirectory = localStorageDirectory; }
    4851
    4952    WebKit::WebContextConfiguration webContextConfiguration() const;
     
    5356
    5457    String m_injectedBundlePath;
     58    String m_localStorageDirectory;
    5559};
    5660
  • trunk/Source/WebKit2/UIProcess/Storage/StorageManager.cpp

    r167854 r168625  
    388388void StorageManager::setLocalStorageDirectory(const String& localStorageDirectory)
    389389{
     390    ASSERT(!localStorageDirectory.isNull());
     391
    390392    m_localStorageDatabaseTracker->setLocalStorageDirectory(localStorageDirectory);
    391393}
  • trunk/Source/WebKit2/UIProcess/WebContext.cpp

    r168605 r168625  
    118118DEFINE_DEBUG_ONLY_GLOBAL(WTF::RefCountedLeakCounter, webContextCounter, ("WebContext"));
    119119
     120void WebContext::applyPlatformSpecificConfigurationDefaults(WebContextConfiguration& configuration)
     121{
     122    // FIXME: This function should not be needed; all ports should make sure that the configuration has the right
     123    // values, and then we should get rid of the platform specific defaults inside WebContext.
     124
     125    if (!configuration.localStorageDirectory)
     126        configuration.localStorageDirectory = platformDefaultLocalStorageDirectory();
     127}
     128
    120129PassRefPtr<WebContext> WebContext::create(WebContextConfiguration configuration)
    121130{
     
    215224#endif
    216225
    217     m_storageManager->setLocalStorageDirectory(localStorageDirectory());
     226    m_storageManager->setLocalStorageDirectory(configuration.localStorageDirectory);
    218227}
    219228
     
    11401149}
    11411150
    1142 void WebContext::setLocalStorageDirectory(const String& directory)
    1143 {
    1144     m_overrideLocalStorageDirectory = directory;
    1145     m_storageManager->setLocalStorageDirectory(localStorageDirectory());
    1146 }
    1147 
    1148 String WebContext::localStorageDirectory() const
    1149 {
    1150     if (!m_overrideLocalStorageDirectory.isEmpty())
    1151         return m_overrideLocalStorageDirectory;
    1152 
    1153     return platformDefaultLocalStorageDirectory();
    1154 }
    1155 
    11561151String WebContext::diskCacheDirectory() const
    11571152{
  • trunk/Source/WebKit2/UIProcess/WebContext.h

    r168603 r168625  
    9898struct WebContextConfiguration {
    9999    String injectedBundlePath;
     100    String localStorageDirectory;
    100101};
    101102
     
    106107    {
    107108public:
     109    static void applyPlatformSpecificConfigurationDefaults(WebContextConfiguration&);
     110
    108111    WebContext(WebContextConfiguration);
    109112       
     
    244247    void setIconDatabasePath(const String&);
    245248    String iconDatabasePath() const;
    246     void setLocalStorageDirectory(const String&);
    247249    void setDiskCacheDirectory(const String& dir) { m_overrideDiskCacheDirectory = dir; }
    248250    void setCookieStorageDirectory(const String& dir) { m_overrideCookieStorageDirectory = dir; }
     
    413415    String platformDefaultIconDatabasePath() const;
    414416
    415     String localStorageDirectory() const;
    416     String platformDefaultLocalStorageDirectory() const;
     417    static String platformDefaultLocalStorageDirectory();
    417418
    418419    String diskCacheDirectory() const;
     
    516517    String m_overrideDatabaseDirectory;
    517518    String m_overrideIconDatabasePath;
    518     String m_overrideLocalStorageDirectory;
    519519    String m_overrideDiskCacheDirectory;
    520520    String m_overrideCookieStorageDirectory;
  • trunk/Source/WebKit2/UIProcess/mac/WebContextMac.mm

    r168541 r168625  
    277277}
    278278
    279 String WebContext::platformDefaultLocalStorageDirectory() const
     279String WebContext::platformDefaultLocalStorageDirectory()
    280280{
    281281    NSString *localStorageDirectory = [[NSUserDefaults standardUserDefaults] objectForKey:WebStorageDirectoryDefaultsKey];
  • trunk/Tools/ChangeLog

    r168615 r168625  
     12014-05-11  Anders Carlsson  <andersca@apple.com>
     2
     3        Replace WKContextSetLocalStorageDirectory with a context configuration getter/setter
     4        https://bugs.webkit.org/show_bug.cgi?id=132809
     5
     6        Reviewed by Dan Bernstein.
     7
     8        * WebKitTestRunner/TestController.cpp:
     9        (WTR::TestController::initialize):
     10        Set the local storage directory using WKContextConfigurationSetLocalStorageDirectory.
     11
    1122014-05-12  Carlos Garcia Campos  <cgarcia@igalia.com>
    213
  • trunk/Tools/WebKitTestRunner/TestController.cpp

    r168603 r168625  
    331331    WKContextConfigurationSetInjectedBundlePath(configuration.get(), injectedBundlePath());
    332332
     333    if (const char* dumpRenderTreeTemp = libraryPathForTesting()) {
     334        String temporaryFolder = String::fromUTF8(dumpRenderTreeTemp);
     335
     336        const char separator = '/';
     337
     338        WKContextConfigurationSetLocalStorageDirectory(configuration.get(), toWK(temporaryFolder + separator + "LocalStorage").get());
     339    }
     340
    333341    m_context = adoptWK(WKContextCreateWithConfiguration(configuration.get()));
    334342    m_geolocationProvider = adoptPtr(new GeolocationProviderMock(m_context.get()));
     
    342350        String temporaryFolder = String::fromUTF8(dumpRenderTreeTemp);
    343351
    344         // WebCore::pathByAppendingComponent is not used here because of the namespace,
    345         // which leads us to this ugly #ifdef and file path concatenation.
    346352        const char separator = '/';
    347353
     354        // FIXME: These should be migrated to WKContextConfigurationRef.
    348355        WKContextSetApplicationCacheDirectory(m_context.get(), toWK(temporaryFolder + separator + "ApplicationCache").get());
    349356        WKContextSetDatabaseDirectory(m_context.get(), toWK(temporaryFolder + separator + "Databases").get());
    350         WKContextSetLocalStorageDirectory(m_context.get(), toWK(temporaryFolder + separator + "LocalStorage").get());
    351357        WKContextSetDiskCacheDirectory(m_context.get(), toWK(temporaryFolder + separator + "Cache").get());
    352358        WKContextSetCookieStorageDirectory(m_context.get(), toWK(temporaryFolder + separator + "Cookies").get());
Note: See TracChangeset for help on using the changeset viewer.