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

Changeset 245709 in webkit


Ignore:
Timestamp:
May 23, 2019, 1:23:01 PM (7 years ago)
Author:
sihui_liu@apple.com
Message:

Handling for non-persistent data should be consistent in computeNetworkProcessAccessTypeForDataFetch
https://bugs.webkit.org/show_bug.cgi?id=198050

Reviewed by Youenn Fablet.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::computeNetworkProcessAccessTypeForDataFetch):

Location:
trunk/Source/WebKit
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r245698 r245709  
     12019-05-23  Sihui Liu  <sihui_liu@apple.com>
     2
     3        Handling for non-persistent data should be consistent in computeNetworkProcessAccessTypeForDataFetch
     4        https://bugs.webkit.org/show_bug.cgi?id=198050
     5
     6        Reviewed by Youenn Fablet.
     7
     8        * UIProcess/WebsiteData/WebsiteDataStore.cpp:
     9        (WebKit::computeNetworkProcessAccessTypeForDataFetch):
     10
    1112019-05-23  Youenn Fablet  <youenn@apple.com>
    212
  • trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp

    r245540 r245709  
    213213static ProcessAccessType computeNetworkProcessAccessTypeForDataFetch(OptionSet<WebsiteDataType> dataTypes, bool isNonPersistentStore)
    214214{
    215     ProcessAccessType processAccessType = ProcessAccessType::None;
    216 
    217     if (dataTypes.contains(WebsiteDataType::Cookies)) {
    218         if (isNonPersistentStore)
    219             processAccessType = std::max(processAccessType, ProcessAccessType::OnlyIfLaunched);
    220         else
    221             processAccessType = std::max(processAccessType, ProcessAccessType::Launch);
    222     }
    223 
    224     if (dataTypes.contains(WebsiteDataType::Credentials) && isNonPersistentStore)
    225         processAccessType = std::max(processAccessType, ProcessAccessType::OnlyIfLaunched);
    226 
    227     if (dataTypes.contains(WebsiteDataType::DiskCache) && !isNonPersistentStore)
    228         processAccessType = std::max(processAccessType, ProcessAccessType::Launch);
    229 
    230     if (dataTypes.contains(WebsiteDataType::SessionStorage))
    231         processAccessType = std::max(processAccessType, ProcessAccessType::OnlyIfLaunched);
    232    
    233     if (dataTypes.contains(WebsiteDataType::LocalStorage)) {
    234         if (isNonPersistentStore)
    235             processAccessType = std::max(processAccessType, ProcessAccessType::OnlyIfLaunched);
    236         else
    237             processAccessType = std::max(processAccessType, ProcessAccessType::Launch);
    238     }
    239 
    240     // FIXME: https://bugs.webkit.org/show_bug.cgi?id=198050.
    241     if (dataTypes.contains(WebsiteDataType::DOMCache))
    242         processAccessType = std::max(processAccessType, ProcessAccessType::Launch);
    243    
    244     if (dataTypes.contains(WebsiteDataType::IndexedDBDatabases) && !isNonPersistentStore)
    245         processAccessType = std::max(processAccessType, ProcessAccessType::Launch);
    246 
    247 #if ENABLE(SERVICE_WORKER)
    248     if (dataTypes.contains(WebsiteDataType::ServiceWorkerRegistrations) && !isNonPersistentStore)
    249         processAccessType = std::max(processAccessType, ProcessAccessType::Launch);
    250 #endif
    251 
    252     return processAccessType;
     215    for (auto dataType : dataTypes) {
     216        if (WebsiteData::ownerProcess(dataType) == WebsiteDataProcessType::Network) {
     217            if (isNonPersistentStore)
     218                return ProcessAccessType::OnlyIfLaunched;
     219            return ProcessAccessType::Launch;
     220        }
     221    }
     222    return ProcessAccessType::None;
    253223}
    254224
Note: See TracChangeset for help on using the changeset viewer.