Changeset 265134 in webkit


Ignore:
Timestamp:
Jul 30, 2020 11:16:33 PM (4 years ago)
Author:
commit-queue@webkit.org
Message:

Optimize WebsiteDataStoreConfiguration::copy
https://bugs.webkit.org/show_bug.cgi?id=215012
<rdar://problem/64263406>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-07-30
Reviewed by Brady Eidson.

The WebsiteDataStoreConfiguration constructor does some read/write heavy things.
We only want to do these things if we are not just going to overwrite the strings with strings from another WebsiteDataStoreConfiguration.
No change in behavior, just making things faster.

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:

(WebKit::WebsiteDataStoreConfiguration::WebsiteDataStoreConfiguration):
(WebKit::WebsiteDataStoreConfiguration::copy const):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:

(WebKit::WebsiteDataStoreConfiguration::create):

Location:
trunk/Source/WebKit
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r265127 r265134  
     12020-07-30  Alex Christensen  <achristensen@webkit.org>
     2
     3        Optimize WebsiteDataStoreConfiguration::copy
     4        https://bugs.webkit.org/show_bug.cgi?id=215012
     5        <rdar://problem/64263406>
     6
     7        Reviewed by Brady Eidson.
     8
     9        The WebsiteDataStoreConfiguration constructor does some read/write heavy things.
     10        We only want to do these things if we are not just going to overwrite the strings with strings from another WebsiteDataStoreConfiguration.
     11        No change in behavior, just making things faster.
     12
     13        * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:
     14        (WebKit::WebsiteDataStoreConfiguration::WebsiteDataStoreConfiguration):
     15        (WebKit::WebsiteDataStoreConfiguration::copy const):
     16        * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:
     17        (WebKit::WebsiteDataStoreConfiguration::create):
     18
    1192020-07-30  Ryan Haddad  <ryanhaddad@apple.com>
    220
  • trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp

    r263904 r265134  
    3131namespace WebKit {
    3232
    33 WebsiteDataStoreConfiguration::WebsiteDataStoreConfiguration(IsPersistent isPersistent)
     33WebsiteDataStoreConfiguration::WebsiteDataStoreConfiguration(IsPersistent isPersistent, WillCopyPathsFromExistingConfiguration willCopyPaths)
    3434    : m_isPersistent(isPersistent)
    3535{
    36     if (isPersistent == IsPersistent::Yes) {
     36    if (isPersistent == IsPersistent::Yes && willCopyPaths == WillCopyPathsFromExistingConfiguration::No) {
    3737        setApplicationCacheDirectory(WebsiteDataStore::defaultApplicationCacheDirectory());
    3838        setCacheStorageDirectory(WebsiteDataStore::defaultCacheStorageDirectory());
     
    5353Ref<WebsiteDataStoreConfiguration> WebsiteDataStoreConfiguration::copy() const
    5454{
    55     auto copy = WebsiteDataStoreConfiguration::create(m_isPersistent);
     55    auto copy = WebsiteDataStoreConfiguration::create(m_isPersistent, WillCopyPathsFromExistingConfiguration::Yes);
    5656
    5757    copy->m_serviceWorkerProcessTerminationDelayEnabled = this->m_serviceWorkerProcessTerminationDelayEnabled;
  • trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h

    r263904 r265134  
    3434
    3535enum class IsPersistent : bool { No, Yes };
     36enum class WillCopyPathsFromExistingConfiguration : bool { No, Yes };
    3637
    3738class WebsiteDataStoreConfiguration : public API::ObjectImpl<API::Object::Type::WebsiteDataStoreConfiguration> {
    3839public:
    39     static Ref<WebsiteDataStoreConfiguration> create(IsPersistent isPersistent) { return adoptRef(*new WebsiteDataStoreConfiguration(isPersistent)); }
    40     WebsiteDataStoreConfiguration(IsPersistent);
     40    static Ref<WebsiteDataStoreConfiguration> create(IsPersistent isPersistent, WillCopyPathsFromExistingConfiguration willCopyPaths = WillCopyPathsFromExistingConfiguration::No) { return adoptRef(*new WebsiteDataStoreConfiguration(isPersistent, willCopyPaths)); }
     41    WebsiteDataStoreConfiguration(IsPersistent, WillCopyPathsFromExistingConfiguration = WillCopyPathsFromExistingConfiguration::No);
    4142
    4243    Ref<WebsiteDataStoreConfiguration> copy() const;
Note: See TracChangeset for help on using the changeset viewer.