Title: [292010] trunk/Source
Revision
292010
Author
sihui_...@apple.com
Date
2022-03-28 17:00:29 -0700 (Mon, 28 Mar 2022)

Log Message

Disable custom storage paths for IndexedDB and LocalStorage by default
https://bugs.webkit.org/show_bug.cgi?id=236977
<rdar://problem/89559929>

Reviewed by Geoffrey Garen.

Source/WebKit:

Developers can enable them by disabling "general directory for storage" via internal debug feature or system
feature flag.

* FeatureFlags/WebKit-appletvos.plist:
* FeatureFlags/WebKit-ios.plist:
* FeatureFlags/WebKit-macos.plist:
* FeatureFlags/WebKit-watchos.plist:
* UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::internalFeatureEnabled):
(WebKit::WebsiteDataStore::defaultShouldUseCustomStoragePaths):

Source/WTF:

Add an internal debug feature for using genreal directory for storage.

* Scripts/Preferences/WebPreferencesInternal.yaml:

Modified Paths

Diff

Modified: trunk/Source/WTF/ChangeLog (292009 => 292010)


--- trunk/Source/WTF/ChangeLog	2022-03-28 23:48:31 UTC (rev 292009)
+++ trunk/Source/WTF/ChangeLog	2022-03-29 00:00:29 UTC (rev 292010)
@@ -1,3 +1,15 @@
+2022-03-28  Sihui Liu  <sihui_...@apple.com>
+
+        Disable custom storage paths for IndexedDB and LocalStorage by default
+        https://bugs.webkit.org/show_bug.cgi?id=236977
+        <rdar://problem/89559929>
+
+        Reviewed by Geoffrey Garen.
+
+        Add an internal debug feature for using genreal directory for storage.
+
+        * Scripts/Preferences/WebPreferencesInternal.yaml:
+
 2022-03-28  Chris Dumez  <cdu...@apple.com>
 
         Prepare WebCore for making the String(const char*) constructor explicit

Modified: trunk/Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml (292009 => 292010)


--- trunk/Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml	2022-03-28 23:48:31 UTC (rev 292009)
+++ trunk/Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml	2022-03-29 00:00:29 UTC (rev 292010)
@@ -980,6 +980,16 @@
     WebKit:
       default: WebKit::defaultUseGPUProcessForMediaEnabled()
 
+UseGeneralDirectoryForStorage:
+  type: bool
+  humanReadableName: "Use General Directory For Storage"
+  humanReadableDescription: "Use general storage directory for IndexedDB and LocalStorage"
+  webcoreBinding: none
+  exposed: [ WebKit ]
+  defaultValue:
+    WebKit:
+      default: true
+
 UseSceneKitForModel:
   type: bool
   humanReadableName: "Use SceneKit for <model>"

Modified: trunk/Source/WebKit/ChangeLog (292009 => 292010)


--- trunk/Source/WebKit/ChangeLog	2022-03-28 23:48:31 UTC (rev 292009)
+++ trunk/Source/WebKit/ChangeLog	2022-03-29 00:00:29 UTC (rev 292010)
@@ -1,3 +1,22 @@
+2022-03-28  Sihui Liu  <sihui_...@apple.com>
+
+        Disable custom storage paths for IndexedDB and LocalStorage by default
+        https://bugs.webkit.org/show_bug.cgi?id=236977
+        <rdar://problem/89559929>
+
+        Reviewed by Geoffrey Garen.
+
+        Developers can enable them by disabling "general directory for storage" via internal debug feature or system 
+        feature flag.
+
+        * FeatureFlags/WebKit-appletvos.plist:
+        * FeatureFlags/WebKit-ios.plist:
+        * FeatureFlags/WebKit-macos.plist:
+        * FeatureFlags/WebKit-watchos.plist:
+        * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
+        (WebKit::internalFeatureEnabled):
+        (WebKit::WebsiteDataStore::defaultShouldUseCustomStoragePaths):
+
 2022-03-28  Commit Queue  <commit-qu...@webkit.org>
 
         Unreviewed, reverting r291728.

Modified: trunk/Source/WebKit/FeatureFlags/WebKit-appletvos.plist (292009 => 292010)


--- trunk/Source/WebKit/FeatureFlags/WebKit-appletvos.plist	2022-03-28 23:48:31 UTC (rev 292009)
+++ trunk/Source/WebKit/FeatureFlags/WebKit-appletvos.plist	2022-03-29 00:00:29 UTC (rev 292010)
@@ -95,7 +95,7 @@
 	<key>general_directory_for_storage</key>
 	<dict>
 		<key>Enabled</key>
-		<false/>
+		<true/>
 	</dict>
 </dict>
 </plist>

Modified: trunk/Source/WebKit/FeatureFlags/WebKit-ios.plist (292009 => 292010)


--- trunk/Source/WebKit/FeatureFlags/WebKit-ios.plist	2022-03-28 23:48:31 UTC (rev 292009)
+++ trunk/Source/WebKit/FeatureFlags/WebKit-ios.plist	2022-03-29 00:00:29 UTC (rev 292010)
@@ -95,7 +95,7 @@
 	<key>general_directory_for_storage</key>
 	<dict>
 		<key>Enabled</key>
-		<false/>
+		<true/>
 	</dict>
 </dict>
 </plist>

Modified: trunk/Source/WebKit/FeatureFlags/WebKit-macos.plist (292009 => 292010)


--- trunk/Source/WebKit/FeatureFlags/WebKit-macos.plist	2022-03-28 23:48:31 UTC (rev 292009)
+++ trunk/Source/WebKit/FeatureFlags/WebKit-macos.plist	2022-03-29 00:00:29 UTC (rev 292010)
@@ -100,7 +100,7 @@
 	<key>general_directory_for_storage</key>
 	<dict>
 		<key>Enabled</key>
-		<false/>
+		<true/>
 	</dict>
 </dict>
 </plist>

Modified: trunk/Source/WebKit/FeatureFlags/WebKit-watchos.plist (292009 => 292010)


--- trunk/Source/WebKit/FeatureFlags/WebKit-watchos.plist	2022-03-28 23:48:31 UTC (rev 292009)
+++ trunk/Source/WebKit/FeatureFlags/WebKit-watchos.plist	2022-03-29 00:00:29 UTC (rev 292010)
@@ -95,7 +95,7 @@
 	<key>general_directory_for_storage</key>
 	<dict>
 		<key>Enabled</key>
-		<false/>
+		<true/>
 	</dict>
 </dict>
 </plist>

Modified: trunk/Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm (292009 => 292010)


--- trunk/Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm	2022-03-28 23:48:31 UTC (rev 292009)
+++ trunk/Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm	2022-03-29 00:00:29 UTC (rev 292010)
@@ -93,6 +93,15 @@
 }
 #endif
 
+static bool internalFeatureEnabled(const String& key, bool defaultValue = false)
+{
+    auto defaultsKey = adoptNS([[NSString alloc] initWithFormat:@"InternalDebug%@", static_cast<NSString *>(key)]);
+    if ([[NSUserDefaults standardUserDefaults] objectForKey:defaultsKey.get()] != nil)
+        return [[NSUserDefaults standardUserDefaults] boolForKey:defaultsKey.get()];
+
+    return defaultValue;
+}
+
 static bool experimentalFeatureEnabled(const String& key)
 {
 #if PLATFORM(MAC)
@@ -619,8 +628,8 @@
 
 bool WebsiteDataStore::defaultShouldUseCustomStoragePaths()
 {
-    static const bool useGeneralStorageDirectory = isFeatureFlagEnabled("general_directory_for_storage"_s);
-    return !useGeneralStorageDirectory;
+    bool useGeneralDirectoryForStorageFeatureFlag = isFeatureFlagEnabled("general_directory_for_storage"_s, true);
+    return !internalFeatureEnabled(WebPreferencesKey::useGeneralDirectoryForStorageKey(), useGeneralDirectoryForStorageFeatureFlag);
 }
 
 }
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to