Changeset 248526 in webkit


Ignore:
Timestamp:
Aug 12, 2019 3:07:29 AM (5 years ago)
Author:
youenn@apple.com
Message:

Remove IDB-specific quota
https://bugs.webkit.org/show_bug.cgi?id=196545

Reviewed by Alex Christensen.

Source/WebCore:

No change of behavior as IDB specific quota is no longer used.
Instead a global quota is used. This quota currently handles IDB and Cache API.

  • Modules/indexeddb/server/IDBBackingStore.h:
  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::createBackingStore):
(WebCore::IDBServer::IDBServer::setPerOriginQuota): Deleted.

  • Modules/indexeddb/server/IDBServer.h:

(WebCore::IDBServer::IDBServer::perOriginQuota const): Deleted.

  • Modules/indexeddb/server/MemoryIDBBackingStore.h:
  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::SQLiteIDBBackingStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::beginTransaction):
(WebCore::IDBServer::SQLiteIDBBackingStore::createObjectStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::renameObjectStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::createIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedPutIndexRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::renameIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::addRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedSetKeyGeneratorValue):
(WebCore::IDBServer::SQLiteIDBBackingStore::quotaForOrigin const): Deleted.
(WebCore::IDBServer::SQLiteIDBBackingStore::maximumSize const): Deleted.

  • Modules/indexeddb/server/SQLiteIDBBackingStore.h:
  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::setQuota): Deleted.

  • Modules/indexeddb/server/UniqueIDBDatabase.h:

Source/WebKit:

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::createIDBServer):
(WebKit::NetworkProcess::addIndexedDatabaseSession):
(WebKit::NetworkProcess::setIDBPerOriginQuota): Deleted.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • UIProcess/API/C/WKContext.cpp:

(WKContextSetIDBPerOriginQuota): Deleted.

  • UIProcess/API/C/WKContextPrivate.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::setIDBPerOriginQuota): Deleted.

  • UIProcess/WebProcessPool.h:

Source/WebKitLegacy:

  • Storage/WebDatabaseProvider.cpp:

(WebDatabaseProvider::idbConnectionToServerForSession):
(WebDatabaseProvider::deleteAllDatabases):
(WebDatabaseProvider::setIDBPerOriginQuota): Deleted.

  • Storage/WebDatabaseProvider.h:

Source/WebKitLegacy/mac:

  • Storage/WebDatabaseManager.mm:

(-[WebDatabaseManager setIDBPerOriginQuota:]): Deleted.

  • Storage/WebDatabaseManagerPrivate.h:

Source/WebKitLegacy/win:

  • Interfaces/IWebDatabaseManager.idl:
  • WebDatabaseManager.cpp:

(WebDatabaseManager::setIDBPerOriginQuota): Deleted.

  • WebDatabaseManager.h:

Tools:

  • DumpRenderTree/TestRunner.cpp:

(TestRunner::staticFunctions):
(setIDBPerOriginQuotaCallback): Deleted.

  • DumpRenderTree/TestRunner.h:
  • DumpRenderTree/mac/DumpRenderTree.mm:

(runTest):

  • DumpRenderTree/mac/TestRunnerMac.mm:

(TestRunner::setIDBPerOriginQuota): Deleted.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setIDBPerOriginQuota): Deleted.

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetStateToConsistentValues):
(WTR::TestController::setIDBPerOriginQuota): Deleted.

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

Location:
trunk
Files:
39 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r248521 r248526  
     12019-08-12  Youenn Fablet  <youenn@apple.com>
     2
     3        Remove IDB-specific quota
     4        https://bugs.webkit.org/show_bug.cgi?id=196545
     5
     6        Reviewed by Alex Christensen.
     7
     8        No change of behavior as IDB specific quota is no longer used.
     9        Instead a global quota is used. This quota currently handles IDB and Cache API.
     10
     11        * Modules/indexeddb/server/IDBBackingStore.h:
     12        * Modules/indexeddb/server/IDBServer.cpp:
     13        (WebCore::IDBServer::IDBServer::createBackingStore):
     14        (WebCore::IDBServer::IDBServer::setPerOriginQuota): Deleted.
     15        * Modules/indexeddb/server/IDBServer.h:
     16        (WebCore::IDBServer::IDBServer::perOriginQuota const): Deleted.
     17        * Modules/indexeddb/server/MemoryIDBBackingStore.h:
     18        * Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
     19        (WebCore::IDBServer::SQLiteIDBBackingStore::SQLiteIDBBackingStore):
     20        (WebCore::IDBServer::SQLiteIDBBackingStore::beginTransaction):
     21        (WebCore::IDBServer::SQLiteIDBBackingStore::createObjectStore):
     22        (WebCore::IDBServer::SQLiteIDBBackingStore::renameObjectStore):
     23        (WebCore::IDBServer::SQLiteIDBBackingStore::createIndex):
     24        (WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedPutIndexRecord):
     25        (WebCore::IDBServer::SQLiteIDBBackingStore::renameIndex):
     26        (WebCore::IDBServer::SQLiteIDBBackingStore::addRecord):
     27        (WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedSetKeyGeneratorValue):
     28        (WebCore::IDBServer::SQLiteIDBBackingStore::quotaForOrigin const): Deleted.
     29        (WebCore::IDBServer::SQLiteIDBBackingStore::maximumSize const): Deleted.
     30        * Modules/indexeddb/server/SQLiteIDBBackingStore.h:
     31        * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
     32        (WebCore::IDBServer::UniqueIDBDatabase::setQuota): Deleted.
     33        * Modules/indexeddb/server/UniqueIDBDatabase.h:
     34
    1352019-08-11  Alicia Boya García  <aboya@igalia.com>
    236
  • trunk/Source/WebCore/Modules/indexeddb/server/IDBBackingStore.h

    r244687 r248526  
    101101
    102102    virtual uint64_t databasesSizeForOrigin() const = 0;
    103     virtual void setQuota(uint64_t) = 0;
    104103
    105104    virtual bool hasTransaction(const IDBResourceIdentifier&) const = 0;
  • trunk/Source/WebCore/Modules/indexeddb/server/IDBServer.cpp

    r248377 r248526  
    136136        return MemoryIDBBackingStore::create(identifier);
    137137
    138     return std::make_unique<SQLiteIDBBackingStore>(m_sessionID, identifier, m_databaseDirectoryPath, m_backingStoreTemporaryFileHandler, m_perOriginQuota);
     138    return std::make_unique<SQLiteIDBBackingStore>(m_sessionID, identifier, m_databaseDirectoryPath, m_backingStoreTemporaryFileHandler);
    139139}
    140140
     
    692692}
    693693
    694 void IDBServer::setPerOriginQuota(uint64_t quota)
    695 {
    696     m_perOriginQuota = quota;
    697 
    698     for (auto& database : m_uniqueIDBDatabaseMap.values())
    699         database->setQuota(quota);
    700 }
    701 
    702694IDBServer::QuotaUser::QuotaUser(IDBServer& server, StorageQuotaManager* manager, ClientOrigin&& origin)
    703695    : m_server(server)
  • trunk/Source/WebCore/Modules/indexeddb/server/IDBServer.h

    r244687 r248526  
    116116    WEBCORE_EXPORT void closeAndDeleteDatabasesForOrigins(const Vector<SecurityOriginData>&, Function<void ()>&& completionHandler);
    117117
    118     uint64_t perOriginQuota() const { return m_perOriginQuota; }
    119     WEBCORE_EXPORT void setPerOriginQuota(uint64_t);
    120 
    121118    void requestSpace(const ClientOrigin&, uint64_t taskSize, CompletionHandler<void(StorageQuotaManager::Decision)>&&);
    122119    void increasePotentialSpaceUsed(const ClientOrigin&, uint64_t taskSize);
     
    197194    IDBBackingStoreTemporaryFileHandler& m_backingStoreTemporaryFileHandler;
    198195
    199     uint64_t m_perOriginQuota { defaultPerOriginQuota };
    200 
    201196    HashMap<ClientOrigin, std::unique_ptr<QuotaUser>> m_quotaUsers;
    202197    QuotaManagerGetter m_quotaManagerGetter;
  • trunk/Source/WebCore/Modules/indexeddb/server/MemoryIDBBackingStore.h

    r244687 r248526  
    8080    bool isEphemeral() final { return true; }
    8181
    82     void setQuota(uint64_t quota) final { UNUSED_PARAM(quota); };
    8382    uint64_t databasesSizeForOrigin() const final;
    8483
  • trunk/Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp

    r248377 r248526  
    229229}
    230230
    231 SQLiteIDBBackingStore::SQLiteIDBBackingStore(PAL::SessionID sessionID, const IDBDatabaseIdentifier& identifier, const String& databaseRootDirectory, IDBBackingStoreTemporaryFileHandler& fileHandler, uint64_t quota)
     231SQLiteIDBBackingStore::SQLiteIDBBackingStore(PAL::SessionID sessionID, const IDBDatabaseIdentifier& identifier, const String& databaseRootDirectory, IDBBackingStoreTemporaryFileHandler& fileHandler)
    232232    : m_sessionID(sessionID)
    233233    , m_identifier(identifier)
    234234    , m_databaseRootDirectory(databaseRootDirectory)
    235235    , m_temporaryFileHandler(fileHandler)
    236     , m_quota(quota)
    237236{
    238237    m_databaseDirectory = fullDatabaseDirectoryWithUpgrade();
     
    874873}
    875874
    876 uint64_t SQLiteIDBBackingStore::quotaForOrigin() const
    877 {
    878     ASSERT(!isMainThread());
    879     uint64_t diskFreeSpaceSize = 0;
    880     FileSystem::getVolumeFreeSpace(m_identifier.databaseDirectoryRelativeToRoot(m_databaseRootDirectory), diskFreeSpaceSize);
    881     return std::min(diskFreeSpaceSize / 2, m_quota);
    882 }
    883 
    884875uint64_t SQLiteIDBBackingStore::databasesSizeForFolder(const String& folder)
    885876{
     
    899890}
    900891
    901 uint64_t SQLiteIDBBackingStore::maximumSize() const
    902 {
    903     ASSERT(!isMainThread());
    904 
    905     // The maximum size for one database file is the quota for its origin, minus size of all databases within that origin,
    906     // and plus current size of the database file.
    907     uint64_t databaseFileSize = SQLiteFileSystem::getDatabaseFileSize(fullDatabasePath());
    908     uint64_t quota = quotaForOrigin();
    909 
    910     uint64_t diskUsage = databasesSizeForOrigin();
    911     ASSERT(diskUsage >= databaseFileSize);
    912 
    913     if (quota < diskUsage)
    914         return databaseFileSize;
    915 
    916     return quota - diskUsage + databaseFileSize;
    917 }
    918 
    919892IDBError SQLiteIDBBackingStore::beginTransaction(const IDBTransactionInfo& info)
    920893{
     
    925898    ASSERT(m_databaseInfo);
    926899
    927     m_sqliteDB->setMaximumSize(maximumSize());
    928900    auto addResult = m_transactions.add(info.identifier(), nullptr);
    929901    if (!addResult.isNewEntry) {
     
    942914            || sql.bindText(1, String::number(info.newVersion())) != SQLITE_OK
    943915            || sql.step() != SQLITE_DONE) {
    944             if (m_sqliteDB->lastError() == SQLITE_FULL)
    945                 error = IDBError { QuotaExceededError, "Failed to store new database version in database because no enough space for domain"_s };
    946             else
    947                 error = IDBError { UnknownError, "Failed to store new database version in database"_s };
     916            error = IDBError { UnknownError, "Failed to store new database version in database"_s };
    948917        }
    949918    }
     
    1028997            || sql->step() != SQLITE_DONE) {
    1029998            LOG_ERROR("Could not add object store '%s' to ObjectStoreInfo table (%i) - %s", info.name().utf8().data(), m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg());
    1030             if (m_sqliteDB->lastError() == SQLITE_FULL)
    1031                 return IDBError { QuotaExceededError, "Could not create object store because no enough space for domain"_s };
    1032999            return IDBError { UnknownError, "Could not create object store"_s };
    10331000        }
     
    10401007            || sql->step() != SQLITE_DONE) {
    10411008            LOG_ERROR("Could not seed initial key generator value for ObjectStoreInfo table (%i) - %s", m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg());
    1042             if (m_sqliteDB->lastError() == SQLITE_FULL)
    1043                 return IDBError { QuotaExceededError, "Could not seed initial key generator value for object store because no enough space for domain"_s };
    10441009            return IDBError { UnknownError, "Could not seed initial key generator value for object store"_s };
    10451010        }
     
    11651130            || sql->step() != SQLITE_DONE) {
    11661131            LOG_ERROR("Could not update name for object store id %" PRIi64 " in ObjectStoreInfo table (%i) - %s", objectStoreIdentifier, m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg());
    1167             if (m_sqliteDB->lastError() == SQLITE_FULL)
    1168                 return IDBError { QuotaExceededError, "Could not rename object store because no enough space for domain"_s };
    11691132            return IDBError { UnknownError, "Could not rename object store"_s };
    11701133        }
     
    12481211        || sql->step() != SQLITE_DONE) {
    12491212        LOG_ERROR("Could not add index '%s' to IndexInfo table (%i) - %s", info.name().utf8().data(), m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg());
    1250         if (m_sqliteDB->lastError() == SQLITE_FULL)
    1251             return IDBError { QuotaExceededError, "Unable to create index in database because no enough space for domain"_s };
    12521213        return IDBError { UnknownError, "Unable to create index in database"_s };
    12531214    }
     
    13981359            || sql->step() != SQLITE_DONE) {
    13991360            LOG_ERROR("Could not put index record for index %" PRIi64 " in object store %" PRIi64 " in Records table (%i) - %s", indexID, objectStoreID, m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg());
    1400             if (m_sqliteDB->lastError() == SQLITE_FULL)
    1401                 return IDBError { QuotaExceededError, "Error putting index record into database because no enough space for domain"_s };
    14021361            return IDBError { UnknownError, "Error putting index record into database"_s };
    14031362        }
     
    14851444            || sql->step() != SQLITE_DONE) {
    14861445            LOG_ERROR("Could not update name for index id (%" PRIi64 ", %" PRIi64 ") in IndexInfo table (%i) - %s", objectStoreIdentifier, indexIdentifier, m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg());
    1487             if (m_sqliteDB->lastError() == SQLITE_FULL)
    1488                 return IDBError { QuotaExceededError, "Could not rename index because no enough space for domain"_s };
    14891446            return IDBError { UnknownError, "Could not rename index"_s };
    14901447        }
     
    18241781            || sql->step() != SQLITE_DONE) {
    18251782            LOG_ERROR("Could not put record for object store %" PRIi64 " in Records table (%i) - %s", objectStoreInfo.identifier(), m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg());
    1826             if (m_sqliteDB->lastError() == SQLITE_FULL)
    1827                 return IDBError { QuotaExceededError, "Unable to store record in object store because no enough space for domain"_s };
    18281783            return IDBError { UnknownError, "Unable to store record in object store"_s };
    18291784        }
     
    18581813                || sql->step() != SQLITE_DONE) {
    18591814                LOG_ERROR("Unable to record Blob record in database");
    1860                 if (m_sqliteDB->lastError() == SQLITE_FULL)
    1861                     return IDBError { QuotaExceededError, "Unable to record Blob record in database because no enough space for domain"_s };
    18621815                return IDBError { UnknownError, "Unable to record Blob record in database"_s };
    18631816            }
     
    18931846                || sql->step() != SQLITE_DONE) {
    18941847                LOG_ERROR("Unable to record Blob file record in database");
    1895                 if (m_sqliteDB->lastError() == SQLITE_FULL)
    1896                     return IDBError { QuotaExceededError, "Unable to record Blob file in database because no enough space for domain"_s };
    18971848                return IDBError { UnknownError, "Unable to record Blob file record in database"_s };
    18981849            }
     
    24302381        || sql->step() != SQLITE_DONE) {
    24312382        LOG_ERROR("Could not update key generator value (%i) - %s", m_sqliteDB->lastError(), m_sqliteDB->lastErrorMsg());
    2432         if (m_sqliteDB->lastError() == SQLITE_FULL)
    2433             return IDBError { QuotaExceededError, "Error storing new key generator value in database because no enough space for domain"_s };
    24342383        return IDBError { ConstraintError, "Error storing new key generator value in database" };
    24352384    }
  • trunk/Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.h

    r248377 r248526  
    4949    WTF_MAKE_FAST_ALLOCATED;
    5050public:
    51     SQLiteIDBBackingStore(PAL::SessionID, const IDBDatabaseIdentifier&, const String& databaseRootDirectory, IDBBackingStoreTemporaryFileHandler&, uint64_t quota);
     51    SQLiteIDBBackingStore(PAL::SessionID, const IDBDatabaseIdentifier&, const String& databaseRootDirectory, IDBBackingStoreTemporaryFileHandler&);
    5252   
    5353    ~SQLiteIDBBackingStore() final;
     
    8282    void deleteBackingStore() final;
    8383
    84     void setQuota(uint64_t quota) final { m_quota = quota; }
    8584    uint64_t databasesSizeForOrigin() const final;
    8685
     
    109108    String fullDatabasePath() const;
    110109    String fullDatabaseDirectoryWithUpgrade();
    111 
    112     uint64_t quotaForOrigin() const;
    113     uint64_t maximumSize() const;
    114110
    115111    bool ensureValidRecordsTable();
     
    212208
    213209    IDBBackingStoreTemporaryFileHandler& m_temporaryFileHandler;
    214    
    215     uint64_t m_quota;
    216210};
    217211
  • trunk/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.cpp

    r247649 r248526  
    23172317}
    23182318
    2319 void UniqueIDBDatabase::setQuota(uint64_t quota)
    2320 {
    2321     if (m_backingStore)
    2322         m_backingStore->setQuota(quota);
    2323 }
    2324 
    23252319void UniqueIDBDatabase::abortTransactionOnMainThread(UniqueIDBDatabaseTransaction& transaction)
    23262320{
  • trunk/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.h

    r247649 r248526  
    127127    uint64_t spaceUsed() const;
    128128
    129     void setQuota(uint64_t);
    130 
    131129    void finishActiveTransactions();
    132130
  • trunk/Source/WebKit/ChangeLog

    r248525 r248526  
     12019-08-12  Youenn Fablet  <youenn@apple.com>
     2
     3        Remove IDB-specific quota
     4        https://bugs.webkit.org/show_bug.cgi?id=196545
     5
     6        Reviewed by Alex Christensen.
     7
     8        * NetworkProcess/NetworkProcess.cpp:
     9        (WebKit::NetworkProcess::createIDBServer):
     10        (WebKit::NetworkProcess::addIndexedDatabaseSession):
     11        (WebKit::NetworkProcess::setIDBPerOriginQuota): Deleted.
     12        * NetworkProcess/NetworkProcess.h:
     13        * NetworkProcess/NetworkProcess.messages.in:
     14        * UIProcess/API/C/WKContext.cpp:
     15        (WKContextSetIDBPerOriginQuota): Deleted.
     16        * UIProcess/API/C/WKContextPrivate.h:
     17        * UIProcess/WebProcessPool.cpp:
     18        (WebKit::WebProcessPool::setIDBPerOriginQuota): Deleted.
     19        * UIProcess/WebProcessPool.h:
     20
    1212019-08-11  Chris Dumez  <cdumez@apple.com>
    222
  • trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp

    r248181 r248526  
    22702270    }
    22712271
    2272     auto server = IDBServer::IDBServer::create(sessionID, path, *this, [this, weakThis = makeWeakPtr(this)](PAL::SessionID sessionID, const auto& origin) -> StorageQuotaManager* {
     2272    return IDBServer::IDBServer::create(sessionID, path, *this, [this, weakThis = makeWeakPtr(this)](PAL::SessionID sessionID, const auto& origin) -> StorageQuotaManager* {
    22732273        if (!weakThis)
    22742274            return nullptr;
    22752275        return &this->storageQuotaManager(sessionID, origin);
    22762276    });
    2277     server->setPerOriginQuota(m_idbPerOriginQuota);
    2278     return server;
    22792277}
    22802278
     
    23722370    }
    23732371}
    2374 
    2375 void NetworkProcess::setIDBPerOriginQuota(uint64_t quota)
    2376 {
    2377     m_idbPerOriginQuota = quota;
    2378    
    2379     for (auto& server : m_idbServers.values())
    2380         server->setPerOriginQuota(quota);
    2381 }
    23822372#endif // ENABLE(INDEXED_DATABASE)
    23832373
  • trunk/Source/WebKit/NetworkProcess/NetworkProcess.h

    r248181 r248526  
    285285    // WebCore::IDBServer::IDBBackingStoreFileHandler.
    286286    void accessToTemporaryFileComplete(const String& path) final;
    287     void setIDBPerOriginQuota(uint64_t);
    288287#endif
    289288    void updateQuotaBasedOnSpaceUsageForTesting(PAL::SessionID, const WebCore::ClientOrigin&);
     
    527526    HashMap<PAL::SessionID, String> m_idbDatabasePaths;
    528527    HashMap<PAL::SessionID, RefPtr<WebCore::IDBServer::IDBServer>> m_idbServers;
    529     uint64_t m_idbPerOriginQuota { WebCore::IDBServer::defaultPerOriginQuota };
    530528#endif
    531529
  • trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in

    r248181 r248526  
    160160#endif
    161161
    162 #if ENABLE(INDEXED_DATABASE)
    163     SetIDBPerOriginQuota(uint64_t quota)
    164 #endif
    165162    UpdateQuotaBasedOnSpaceUsageForTesting(PAL::SessionID sessionID, struct WebCore::ClientOrigin origin)
    166163
  • trunk/Source/WebKit/UIProcess/API/C/WKContext.cpp

    r247705 r248526  
    661661}
    662662
    663 void WKContextSetIDBPerOriginQuota(WKContextRef contextRef, uint64_t quota)
    664 {
    665     WebKit::toImpl(contextRef)->setIDBPerOriginQuota(quota);
    666 }
    667 
    668663void WKContextClearCurrentModifierStateForTesting(WKContextRef contextRef)
    669664{
  • trunk/Source/WebKit/UIProcess/API/C/WKContextPrivate.h

    r239277 r248526  
    117117WK_EXPORT void WKContextClearSupportedPlugins(WKContextRef context);
    118118
    119 WK_EXPORT void WKContextSetIDBPerOriginQuota(WKContextRef context, uint64_t quota);
    120 
    121119WK_EXPORT void WKContextClearCurrentModifierStateForTesting(WKContextRef context);
    122120
  • trunk/Source/WebKit/UIProcess/WebProcessPool.cpp

    r248181 r248526  
    18051805}
    18061806
    1807 void WebProcessPool::setIDBPerOriginQuota(uint64_t quota)
    1808 {
    1809 #if ENABLE(INDEXED_DATABASE)
    1810     ensureNetworkProcess().send(Messages::NetworkProcess::SetIDBPerOriginQuota(quota), 0);
    1811 #endif
    1812 }
    1813 
    18141807void WebProcessPool::allowSpecificHTTPSCertificateForHost(const WebCertificateInfo* certificate, const String& host)
    18151808{
  • trunk/Source/WebKit/UIProcess/WebProcessPool.h

    r248181 r248526  
    319319    void syncNetworkProcessCookies();
    320320
    321     void setIDBPerOriginQuota(uint64_t);
    322 
    323321    void setShouldMakeNextWebProcessLaunchFailForTesting(bool value) { m_shouldMakeNextWebProcessLaunchFailForTesting = value; }
    324322    bool shouldMakeNextWebProcessLaunchFailForTesting() const { return m_shouldMakeNextWebProcessLaunchFailForTesting; }
  • trunk/Source/WebKitLegacy/ChangeLog

    r248498 r248526  
     12019-08-12  Youenn Fablet  <youenn@apple.com>
     2
     3        Remove IDB-specific quota
     4        https://bugs.webkit.org/show_bug.cgi?id=196545
     5
     6        Reviewed by Alex Christensen.
     7
     8        * Storage/WebDatabaseProvider.cpp:
     9        (WebDatabaseProvider::idbConnectionToServerForSession):
     10        (WebDatabaseProvider::deleteAllDatabases):
     11        (WebDatabaseProvider::setIDBPerOriginQuota): Deleted.
     12        * Storage/WebDatabaseProvider.h:
     13
    1142019-08-10  Tim Horton  <timothy_horton@apple.com>
    215
  • trunk/Source/WebKitLegacy/Storage/WebDatabaseProvider.cpp

    r242911 r248526  
    4646WebCore::IDBClient::IDBConnectionToServer& WebDatabaseProvider::idbConnectionToServerForSession(const PAL::SessionID& sessionID)
    4747{
    48     auto result = m_idbServerMap.add(sessionID.sessionID(), nullptr);
    49     if (result.isNewEntry) {
    50         if (sessionID.isEphemeral())
    51             result.iterator->value = WebCore::InProcessIDBServer::create(sessionID);
    52         else
    53             result.iterator->value = WebCore::InProcessIDBServer::create(sessionID, indexedDatabaseDirectoryPath());
    54     }
    55 
    56     result.iterator->value->idbServer().setPerOriginQuota(m_idbPerOriginQuota);
    57 
    58     return result.iterator->value->connectionToServer();
     48    return m_idbServerMap.ensure(sessionID.sessionID(), [&sessionID] {
     49        return sessionID.isEphemeral() ? WebCore::InProcessIDBServer::create(sessionID) : WebCore::InProcessIDBServer::create(sessionID, indexedDatabaseDirectoryPath());
     50    }).iterator->value->connectionToServer();
    5951}
    6052
     
    6456        server->idbServer().closeAndDeleteDatabasesModifiedSince(-WallTime::infinity(), [] { });
    6557}
    66 
    67 void WebDatabaseProvider::setIDBPerOriginQuota(uint64_t quota)
    68 {
    69     m_idbPerOriginQuota = quota;
    70 
    71     for (auto& server : m_idbServerMap.values())
    72         server->idbServer().setPerOriginQuota(quota);
    73 }
    74 
    7558#endif
  • trunk/Source/WebKitLegacy/Storage/WebDatabaseProvider.h

    r237700 r248526  
    4545
    4646    void deleteAllDatabases();
    47 
    48     void setIDBPerOriginQuota(uint64_t);
    4947#endif
    5048
     
    5654#if ENABLE(INDEXED_DATABASE)
    5755    HashMap<uint64_t, RefPtr<WebCore::InProcessIDBServer>> m_idbServerMap;
    58     uint64_t m_idbPerOriginQuota { WebCore::IDBServer::defaultPerOriginQuota };
    5956#endif
    6057};
  • trunk/Source/WebKitLegacy/mac/ChangeLog

    r248525 r248526  
     12019-08-12  Youenn Fablet  <youenn@apple.com>
     2
     3        Remove IDB-specific quota
     4        https://bugs.webkit.org/show_bug.cgi?id=196545
     5
     6        Reviewed by Alex Christensen.
     7
     8        * Storage/WebDatabaseManager.mm:
     9        (-[WebDatabaseManager setIDBPerOriginQuota:]): Deleted.
     10        * Storage/WebDatabaseManagerPrivate.h:
     11
    1122019-08-11  Chris Dumez  <cdumez@apple.com>
    213
  • trunk/Source/WebKitLegacy/mac/Storage/WebDatabaseManager.mm

    r237700 r248526  
    158158}
    159159
    160 - (void)setIDBPerOriginQuota:(uint64_t)quota
    161 {
    162 #if ENABLE(INDEXED_DATABASE)
    163     WebDatabaseProvider::singleton().setIDBPerOriginQuota(quota);
    164 #endif
    165 }
    166 
    167160#if PLATFORM(IOS_FAMILY)
    168161
  • trunk/Source/WebKitLegacy/mac/Storage/WebDatabaseManagerPrivate.h

    r237700 r248526  
    7171// For DumpRenderTree support only
    7272- (void)deleteAllIndexedDatabases;
    73 - (void)setIDBPerOriginQuota:(uint64_t)quota;
    7473
    7574#if TARGET_OS_IPHONE
  • trunk/Source/WebKitLegacy/win/ChangeLog

    r248472 r248526  
     12019-08-12  Youenn Fablet  <youenn@apple.com>
     2
     3        Remove IDB-specific quota
     4        https://bugs.webkit.org/show_bug.cgi?id=196545
     5
     6        Reviewed by Alex Christensen.
     7
     8        * Interfaces/IWebDatabaseManager.idl:
     9        * WebDatabaseManager.cpp:
     10        (WebDatabaseManager::setIDBPerOriginQuota): Deleted.
     11        * WebDatabaseManager.h:
     12
    1132019-08-09  Per Arne Vollan  <pvollan@apple.com>
    214
  • trunk/Source/WebKitLegacy/win/Interfaces/IWebDatabaseManager.idl

    r237700 r248526  
    7070{
    7171    HRESULT deleteAllIndexedDatabases();
    72     HRESULT setIDBPerOriginQuota([in] unsigned long long quota);
    7372}
  • trunk/Source/WebKitLegacy/win/WebDatabaseManager.cpp

    r248444 r248526  
    347347}
    348348
    349 HRESULT WebDatabaseManager::setIDBPerOriginQuota(unsigned long long quota)
    350 {
    351 #if ENABLE(INDEXED_DATABASE)
    352     WebDatabaseProvider::singleton().setIDBPerOriginQuota(quota);
    353 #endif
    354     return S_OK;
    355 }
    356 
    357349class DidModifyOriginData {
    358350    WTF_MAKE_NONCOPYABLE(DidModifyOriginData);
  • trunk/Source/WebKitLegacy/win/WebDatabaseManager.h

    r239151 r248526  
    5757    // IWebDatabaseManager2
    5858    virtual HRESULT STDMETHODCALLTYPE deleteAllIndexedDatabases();
    59     virtual HRESULT STDMETHODCALLTYPE setIDBPerOriginQuota(unsigned long long);
    6059
    6160    // DatabaseManagerClient
  • trunk/Tools/ChangeLog

    r248515 r248526  
     12019-08-12  Youenn Fablet  <youenn@apple.com>
     2
     3        Remove IDB-specific quota
     4        https://bugs.webkit.org/show_bug.cgi?id=196545
     5
     6        Reviewed by Alex Christensen.
     7
     8        * DumpRenderTree/TestRunner.cpp:
     9        (TestRunner::staticFunctions):
     10        (setIDBPerOriginQuotaCallback): Deleted.
     11        * DumpRenderTree/TestRunner.h:
     12        * DumpRenderTree/mac/DumpRenderTree.mm:
     13        (runTest):
     14        * DumpRenderTree/mac/TestRunnerMac.mm:
     15        (TestRunner::setIDBPerOriginQuota): Deleted.
     16        * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
     17        * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
     18        (WTR::TestRunner::setIDBPerOriginQuota): Deleted.
     19        * WebKitTestRunner/InjectedBundle/TestRunner.h:
     20        * WebKitTestRunner/TestController.cpp:
     21        (WTR::TestController::resetStateToConsistentValues):
     22        (WTR::TestController::setIDBPerOriginQuota): Deleted.
     23        * WebKitTestRunner/TestController.h:
     24        * WebKitTestRunner/TestInvocation.cpp:
     25        (WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
     26
    1272019-08-10  Alexey Proskuryakov  <ap@apple.com>
    228
  • trunk/Tools/DumpRenderTree/TestRunner.cpp

    r246285 r248526  
    891891        controller->setDatabaseQuota(static_cast<unsigned long long>(quota));
    892892       
    893     return JSValueMakeUndefined(context);
    894 }
    895 
    896 static JSValueRef setIDBPerOriginQuotaCallback(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
    897 {
    898     if (argumentCount < 1)
    899         return JSValueMakeUndefined(context);
    900    
    901     auto* controller = static_cast<TestRunner*>(JSObjectGetPrivate(thisObject));
    902    
    903     double quota = JSValueToNumber(context, arguments[0], nullptr);
    904     if (!std::isnan(quota))
    905         controller->setIDBPerOriginQuota(static_cast<uint64_t>(quota));
    906    
    907893    return JSValueMakeUndefined(context);
    908894}
     
    22212207        { "setHandlesAuthenticationChallenges", setHandlesAuthenticationChallengesCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
    22222208        { "setIconDatabaseEnabled", setIconDatabaseEnabledCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
    2223         { "setIDBPerOriginQuota", setIDBPerOriginQuotaCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
    22242209        { "setAutomaticLinkDetectionEnabled", setAutomaticLinkDetectionEnabledCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
    22252210        { "setMainFrameIsFirstResponder", setMainFrameIsFirstResponderCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
  • trunk/Tools/DumpRenderTree/TestRunner.h

    r246285 r248526  
    107107    void setDefersLoading(bool);
    108108    void setIconDatabaseEnabled(bool);
    109     void setIDBPerOriginQuota(uint64_t);
    110109    void setJavaScriptCanAccessClipboard(bool flag);
    111110    void setAutomaticLinkDetectionEnabled(bool flag);
  • trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm

    r248409 r248526  
    20362036
    20372037    gTestRunner->clearAllDatabases();
    2038     gTestRunner->setIDBPerOriginQuota(50 * MB);
    20392038
    20402039    if (disallowedURLs)
  • trunk/Tools/DumpRenderTree/mac/TestRunnerMac.mm

    r246285 r248526  
    440440}
    441441
    442 void TestRunner::setIDBPerOriginQuota(uint64_t quota)
    443 {
    444     [[WebDatabaseManager sharedWebDatabaseManager] setIDBPerOriginQuota:quota];
    445 }
    446 
    447442void TestRunner::goBack()
    448443{
  • trunk/Tools/DumpRenderTree/win/TestRunnerWin.cpp

    r246285 r248526  
    173173}
    174174
    175 void TestRunner::setIDBPerOriginQuota(uint64_t quota)
    176 {
    177     COMPtr<IWebDatabaseManager> databaseManager;
    178     COMPtr<IWebDatabaseManager> tmpDatabaseManager;
    179     if (FAILED(WebKitCreateInstance(CLSID_WebDatabaseManager, 0, IID_IWebDatabaseManager, (void**)&tmpDatabaseManager)))
    180         return;
    181     if (FAILED(tmpDatabaseManager->sharedWebDatabaseManager(&databaseManager)))
    182         return;
    183 
    184     COMPtr<IWebDatabaseManager2> databaseManager2;
    185     if (FAILED(databaseManager->QueryInterface(&databaseManager2)))
    186         return;
    187 
    188     databaseManager2->setIDBPerOriginQuota(quota);
    189 }
    190 
    191175void TestRunner::setStorageDatabaseIdleInterval(double)
    192176{
  • trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl

    r246285 r248526  
    146146    attribute double databaseDefaultQuota;
    147147    attribute double databaseMaxQuota;
    148 
    149     // IndexedDB API
    150     void setIDBPerOriginQuota(unsigned long long quota);
    151148
    152149    // Application Cache API
  • trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp

    r246285 r248526  
    368368}
    369369
    370 void TestRunner::setIDBPerOriginQuota(uint64_t quota)
    371 {
    372     WKRetainPtr<WKStringRef> messageName = adoptWK(WKStringCreateWithUTF8CString("SetIDBPerOriginQuota"));
    373     WKRetainPtr<WKUInt64Ref> messageBody = adoptWK(WKUInt64Create(quota));
    374     WKBundlePostSynchronousMessage(InjectedBundle::singleton().bundle(), messageName.get(), messageBody.get(), nullptr);
    375 }
    376 
    377370static inline JSValueRef stringArrayToJS(JSContextRef context, WKArrayRef strings)
    378371{
  • trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.h

    r246285 r248526  
    175175    uint64_t domCacheSize(JSStringRef origin);
    176176    void setAllowStorageQuotaIncrease(bool);
    177 
    178     // IndexedDB
    179     void setIDBPerOriginQuota(uint64_t);
    180177
    181178    // Failed load condition testing
  • trunk/Tools/WebKitTestRunner/TestController.cpp

    r248409 r248526  
    941941
    942942    ClearIndexedDatabases();
    943     setIDBPerOriginQuota(50 * MB);
    944943
    945944    clearServiceWorkerRegistrations();
     
    30653064}
    30663065
    3067 void TestController::setIDBPerOriginQuota(uint64_t quota)
    3068 {
    3069     WKContextSetIDBPerOriginQuota(platformContext(), quota);
    3070 }
    3071 
    30723066struct RemoveAllIndexedDatabasesCallbackContext {
    30733067    explicit RemoveAllIndexedDatabasesCallbackContext(TestController& controller)
  • trunk/Tools/WebKitTestRunner/TestController.h

    r246856 r248526  
    273273    void setAllowStorageQuotaIncrease(bool);
    274274
    275     void setIDBPerOriginQuota(uint64_t);
    276 
    277275    bool didReceiveServerRedirectForProvisionalNavigation() const { return m_didReceiveServerRedirectForProvisionalNavigation; }
    278276    void clearDidReceiveServerRedirectForProvisionalNavigation() { m_didReceiveServerRedirectForProvisionalNavigation = false; }
  • trunk/Tools/WebKitTestRunner/TestInvocation.cpp

    r248404 r248526  
    15061506    }
    15071507
    1508     if (WKStringIsEqualToUTF8CString(messageName, "SetIDBPerOriginQuota")) {
    1509         ASSERT(WKGetTypeID(messageBody) == WKUInt64GetTypeID());
    1510         WKUInt64Ref quota = static_cast<WKUInt64Ref>(messageBody);
    1511         TestController::singleton().setIDBPerOriginQuota(WKUInt64GetValue(quota));
    1512         return nullptr;
    1513     }
    1514 
    15151508    if (WKStringIsEqualToUTF8CString(messageName, "InjectUserScript")) {
    15161509        ASSERT(WKGetTypeID(messageBody) == WKStringGetTypeID());
Note: See TracChangeset for help on using the changeset viewer.