Title: [288515] branches/safari-613-branch/Source/WebKit
Revision
288515
Author
[email protected]
Date
2022-01-24 17:55:53 -0800 (Mon, 24 Jan 2022)

Log Message

Cherry-pick r288238. rdar://problem/87272534

    WebsiteDataStore.cpp uses switch statements for WebKit::ProcessAccessType enum that fall through ASSERT_NOT_REACHED()
    https://bugs.webkit.org/show_bug.cgi?id=234986
    <rdar://problem/87272534>

    Reviewed by Darin Adler.

    Clean up / clarify processAccessType logic in WebsiteDataStore.cpp.

    * UIProcess/WebsiteData/WebsiteDataStore.cpp:
    (WebKit::computeNetworkProcessAccessTypeForDataFetch):
    (WebKit::computeWebProcessAccessTypeForDataFetch):
    (WebKit::WebsiteDataStore::fetchDataAndApply):
    (WebKit::computeNetworkProcessAccessTypeForDataRemoval):
    (WebKit::computeWebProcessAccessTypeForDataRemoval):
    (WebKit::WebsiteDataStore::removeData):

    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288238 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Modified Paths

Diff

Modified: branches/safari-613-branch/Source/WebKit/ChangeLog (288514 => 288515)


--- branches/safari-613-branch/Source/WebKit/ChangeLog	2022-01-25 01:55:50 UTC (rev 288514)
+++ branches/safari-613-branch/Source/WebKit/ChangeLog	2022-01-25 01:55:53 UTC (rev 288515)
@@ -1,5 +1,46 @@
 2022-01-24  Alan Coon  <[email protected]>
 
+        Cherry-pick r288238. rdar://problem/87272534
+
+    WebsiteDataStore.cpp uses switch statements for WebKit::ProcessAccessType enum that fall through ASSERT_NOT_REACHED()
+    https://bugs.webkit.org/show_bug.cgi?id=234986
+    <rdar://problem/87272534>
+    
+    Reviewed by Darin Adler.
+    
+    Clean up / clarify processAccessType logic in WebsiteDataStore.cpp.
+    
+    * UIProcess/WebsiteData/WebsiteDataStore.cpp:
+    (WebKit::computeNetworkProcessAccessTypeForDataFetch):
+    (WebKit::computeWebProcessAccessTypeForDataFetch):
+    (WebKit::WebsiteDataStore::fetchDataAndApply):
+    (WebKit::computeNetworkProcessAccessTypeForDataRemoval):
+    (WebKit::computeWebProcessAccessTypeForDataRemoval):
+    (WebKit::WebsiteDataStore::removeData):
+    
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288238 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    2022-01-19  Chris Dumez  <[email protected]>
+
+            WebsiteDataStore.cpp uses switch statements for WebKit::ProcessAccessType enum that fall through ASSERT_NOT_REACHED()
+            https://bugs.webkit.org/show_bug.cgi?id=234986
+            <rdar://problem/87272534>
+
+            Reviewed by Darin Adler.
+
+            Clean up / clarify processAccessType logic in WebsiteDataStore.cpp.
+
+            * UIProcess/WebsiteData/WebsiteDataStore.cpp:
+            (WebKit::computeNetworkProcessAccessTypeForDataFetch):
+            (WebKit::computeWebProcessAccessTypeForDataFetch):
+            (WebKit::WebsiteDataStore::fetchDataAndApply):
+            (WebKit::computeNetworkProcessAccessTypeForDataRemoval):
+            (WebKit::computeWebProcessAccessTypeForDataRemoval):
+            (WebKit::WebsiteDataStore::removeData):
+
+2022-01-24  Alan Coon  <[email protected]>
+
         Cherry-pick r288232. rdar://problem/87265153
 
     WebKit::DownloadProxy::publishProgress() falls through ASSERT_NOT_REACHED()

Modified: branches/safari-613-branch/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp (288514 => 288515)


--- branches/safari-613-branch/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp	2022-01-25 01:55:50 UTC (rev 288514)
+++ branches/safari-613-branch/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp	2022-01-25 01:55:53 UTC (rev 288515)
@@ -287,34 +287,22 @@
     }
 }
 
-enum class ProcessAccessType {
-    None,
-    OnlyIfLaunched,
-    Launch,
-};
+enum class ProcessAccessType : uint8_t { None, OnlyIfLaunched, Launch };
 
 static ProcessAccessType computeNetworkProcessAccessTypeForDataFetch(OptionSet<WebsiteDataType> dataTypes, bool isNonPersistentStore)
 {
     for (auto dataType : dataTypes) {
-        if (WebsiteData::ownerProcess(dataType) == WebsiteDataProcessType::Network) {
-            if (isNonPersistentStore)
-                return ProcessAccessType::OnlyIfLaunched;
-            return ProcessAccessType::Launch;
-        }
+        if (WebsiteData::ownerProcess(dataType) == WebsiteDataProcessType::Network)
+            return isNonPersistentStore ? ProcessAccessType::OnlyIfLaunched : ProcessAccessType::Launch;
     }
     return ProcessAccessType::None;
 }
 
-static ProcessAccessType computeWebProcessAccessTypeForDataFetch(OptionSet<WebsiteDataType> dataTypes, bool isNonPersistentStore)
+static ProcessAccessType computeWebProcessAccessTypeForDataFetch(OptionSet<WebsiteDataType> dataTypes, bool /* isNonPersistentStore */)
 {
-    UNUSED_PARAM(isNonPersistentStore);
-
-    ProcessAccessType processAccessType = ProcessAccessType::None;
-
     if (dataTypes.contains(WebsiteDataType::MemoryCache))
         return ProcessAccessType::OnlyIfLaunched;
-
-    return processAccessType;
+    return ProcessAccessType::None;
 }
 
 void WebsiteDataStore::fetchData(OptionSet<WebsiteDataType> dataTypes, OptionSet<WebsiteDataFetchOption> fetchOptions, Function<void(Vector<WebsiteDataRecord>)>&& completionHandler)
@@ -471,21 +459,8 @@
     auto webProcessAccessType = computeWebProcessAccessTypeForDataFetch(dataTypes, !isPersistent());
     if (webProcessAccessType != ProcessAccessType::None) {
         for (auto& process : processes()) {
-            switch (webProcessAccessType) {
-            case ProcessAccessType::OnlyIfLaunched:
-                if (process.state() != WebProcessProxy::State::Running)
-                    continue;
-                break;
-
-            case ProcessAccessType::Launch:
-                // FIXME: Handle this.
-                ASSERT_NOT_REACHED();
-                break;
-
-            case ProcessAccessType::None:
-                ASSERT_NOT_REACHED();
-            }
-
+            if (webProcessAccessType == ProcessAccessType::OnlyIfLaunched && process.state() != WebProcessProxy::State::Running)
+                continue;
             process.fetchWebsiteData(m_sessionID, dataTypes, [callbackAggregator](WebsiteData websiteData) {
                 callbackAggregator->addWebsiteData(WTFMove(websiteData));
             });
@@ -559,30 +534,21 @@
 static ProcessAccessType computeNetworkProcessAccessTypeForDataRemoval(OptionSet<WebsiteDataType> dataTypes, bool isNonPersistentStore)
 {
     ProcessAccessType processAccessType = ProcessAccessType::None;
-
     for (auto dataType : dataTypes) {
-        if (dataType == WebsiteDataType::Cookies) {
-            if (isNonPersistentStore)
-                processAccessType = std::max(processAccessType, ProcessAccessType::OnlyIfLaunched);
-            else
-                processAccessType = std::max(processAccessType, ProcessAccessType::Launch);
-        } else if (WebsiteData::ownerProcess(dataType) == WebsiteDataProcessType::Network)
+        if (WebsiteData::ownerProcess(dataType) != WebsiteDataProcessType::Network)
+            continue;
+        if (dataType != WebsiteDataType::Cookies || !isNonPersistentStore)
             return ProcessAccessType::Launch;
+        processAccessType = ProcessAccessType::OnlyIfLaunched;
     }
-    
     return processAccessType;
 }
 
-static ProcessAccessType computeWebProcessAccessTypeForDataRemoval(OptionSet<WebsiteDataType> dataTypes, bool isNonPersistentStore)
+static ProcessAccessType computeWebProcessAccessTypeForDataRemoval(OptionSet<WebsiteDataType> dataTypes, bool /* isNonPersistentStore */)
 {
-    UNUSED_PARAM(isNonPersistentStore);
-
-    ProcessAccessType processAccessType = ProcessAccessType::None;
-
     if (dataTypes.contains(WebsiteDataType::MemoryCache))
-        processAccessType = std::max(processAccessType, ProcessAccessType::OnlyIfLaunched);
-
-    return processAccessType;
+        return ProcessAccessType::OnlyIfLaunched;
+    return ProcessAccessType::None;
 }
 
 class RemovalCallbackAggregator : public ThreadSafeRefCounted<RemovalCallbackAggregator, WTF::DestructionThread::MainRunLoop> {
@@ -653,21 +619,8 @@
         }
 
         for (auto& process : processes()) {
-            switch (webProcessAccessType) {
-            case ProcessAccessType::OnlyIfLaunched:
-                if (process.state() != WebProcessProxy::State::Running)
-                    continue;
-                break;
-
-            case ProcessAccessType::Launch:
-                // FIXME: Handle this.
-                ASSERT_NOT_REACHED();
-                break;
-
-            case ProcessAccessType::None:
-                ASSERT_NOT_REACHED();
-            }
-
+            if (webProcessAccessType == ProcessAccessType::OnlyIfLaunched && process.state() != WebProcessProxy::State::Running)
+                continue;
             process.deleteWebsiteData(m_sessionID, dataTypes, modifiedSince, [callbackAggregator] { });
         }
     }
@@ -772,21 +725,8 @@
     auto webProcessAccessType = computeWebProcessAccessTypeForDataRemoval(dataTypes, !isPersistent());
     if (webProcessAccessType != ProcessAccessType::None) {
         for (auto& process : processes()) {
-            switch (webProcessAccessType) {
-            case ProcessAccessType::OnlyIfLaunched:
-                if (process.state() != WebProcessProxy::State::Running)
-                    continue;
-                break;
-
-            case ProcessAccessType::Launch:
-                // FIXME: Handle this.
-                ASSERT_NOT_REACHED();
-                break;
-
-            case ProcessAccessType::None:
-                ASSERT_NOT_REACHED();
-            }
-
+            if (webProcessAccessType == ProcessAccessType::OnlyIfLaunched && process.state() != WebProcessProxy::State::Running)
+                continue;
             process.deleteWebsiteDataForOrigins(m_sessionID, dataTypes, origins, [callbackAggregator] { });
         }
     }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to