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

Changeset 243247 in webkit


Ignore:
Timestamp:
Mar 20, 2019, 3:15:03 PM (7 years ago)
Author:
youenn@apple.com
Message:

Have smaller default quotas for third party frames
https://bugs.webkit.org/show_bug.cgi?id=195841

Reviewed by Geoffrey Garen.

Source/WebCore:

Test: http/wpt/cache-storage/quota-third-party.https.html

  • storage/StorageQuotaManager.h:

(WebCore::StorageQuotaManager::defaultQuota):
Change default quota to 1GB.

Source/WebKit:

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::storageQuotaManager):
For third party iframes, use the default quota divided by 10.

LayoutTests:

  • http/wpt/cache-storage/quota-third-party.https-expected.txt: Added.
  • http/wpt/cache-storage/quota-third-party.https.html: Added.
  • http/wpt/cache-storage/resources/quota-third-party-iframe.html: Added.
Location:
trunk
Files:
3 added
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r243244 r243247  
     12019-03-20  Youenn Fablet  <youenn@apple.com>
     2
     3        Have smaller default quotas for third party frames
     4        https://bugs.webkit.org/show_bug.cgi?id=195841
     5
     6        Reviewed by Geoffrey Garen.
     7
     8        * http/wpt/cache-storage/quota-third-party.https-expected.txt: Added.
     9        * http/wpt/cache-storage/quota-third-party.https.html: Added.
     10        * http/wpt/cache-storage/resources/quota-third-party-iframe.html: Added.
     11
    1122019-03-20  Devin Rousso  <drousso@apple.com>
    213
  • trunk/Source/WebCore/ChangeLog

    r243244 r243247  
     12019-03-20  Youenn Fablet  <youenn@apple.com>
     2
     3        Have smaller default quotas for third party frames
     4        https://bugs.webkit.org/show_bug.cgi?id=195841
     5
     6        Reviewed by Geoffrey Garen.
     7
     8        Test: http/wpt/cache-storage/quota-third-party.https.html
     9
     10        * storage/StorageQuotaManager.h:
     11        (WebCore::StorageQuotaManager::defaultQuota):
     12        Change default quota to 1GB.
     13
    1142019-03-20  Devin Rousso  <drousso@apple.com>
    215
  • trunk/Source/WebCore/storage/StorageQuotaManager.h

    r242947 r243247  
    4747    WEBCORE_EXPORT ~StorageQuotaManager();
    4848
    49     static constexpr uint64_t defaultQuota() { return 500 * MB; }
     49    static constexpr uint64_t defaultQuota() { return 1000 * MB; }
     50    static constexpr uint64_t defaultThirdPartyQuota() { return 100 * MB; }
    5051
    5152    WEBCORE_EXPORT void addUser(StorageQuotaUser&);
  • trunk/Source/WebKit/ChangeLog

    r243241 r243247  
     12019-03-20  Youenn Fablet  <youenn@apple.com>
     2
     3        Have smaller default quotas for third party frames
     4        https://bugs.webkit.org/show_bug.cgi?id=195841
     5
     6        Reviewed by Geoffrey Garen.
     7
     8        * NetworkProcess/NetworkProcess.cpp:
     9        (WebKit::NetworkProcess::storageQuotaManager):
     10        For third party iframes, use the default quota divided by 10.
     11
    1122019-03-20  Dean Jackson  <dino@apple.com>
    213
  • trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp

    r243181 r243247  
    20302030void NetworkProcess::setCacheStorageParameters(PAL::SessionID sessionID, uint64_t quota, String&& cacheStorageDirectory, SandboxExtension::Handle&& handle)
    20312031{
    2032     m_storageQuotaManagers.ensure(sessionID, [] {
     2032    auto& managers =  m_storageQuotaManagers.ensure(sessionID, [] {
    20332033        return StorageQuotaManagers { };
    2034     }).iterator->value.defaultQuota = quota;
     2034    }).iterator->value;
     2035    managers.defaultQuota = quota;
     2036    // FIXME: Pass default third party quota as a parameter.
     2037    managers.defaultThirdPartyQuota = quota / 10;
    20352038
    20362039    auto iterator = m_cacheStorageParametersCallbacks.find(sessionID);
     
    23912394    }).iterator->value;
    23922395    return *storageQuotaManagers.managersPerOrigin.ensure(origin, [this, &storageQuotaManagers, sessionID, &origin] {
    2393         return std::make_unique<StorageQuotaManager>(storageQuotaManagers.defaultQuota, [this, sessionID, origin](uint64_t quota, uint64_t currentSpace, uint64_t spaceIncrease, auto callback) {
     2396        auto quota = origin.topOrigin == origin.clientOrigin ? storageQuotaManagers.defaultQuota : storageQuotaManagers.defaultThirdPartyQuota;
     2397        return std::make_unique<StorageQuotaManager>(quota, [this, sessionID, origin](uint64_t quota, uint64_t currentSpace, uint64_t spaceIncrease, auto callback) {
    23942398            this->requestStorageSpace(sessionID, origin, quota, currentSpace, spaceIncrease, WTFMove(callback));
    23952399        });
  • trunk/Source/WebKit/NetworkProcess/NetworkProcess.h

    r243181 r243247  
    535535    struct StorageQuotaManagers {
    536536        uint64_t defaultQuota { WebCore::StorageQuotaManager::defaultQuota() };
     537        uint64_t defaultThirdPartyQuota { WebCore::StorageQuotaManager::defaultThirdPartyQuota() };
    537538        HashMap<WebCore::ClientOrigin, std::unique_ptr<WebCore::StorageQuotaManager>> managersPerOrigin;
    538539    };
Note: See TracChangeset for help on using the changeset viewer.