Title: [241727] branches/safari-607-branch/Source/WebKit
Revision
241727
Author
alanc...@apple.com
Date
2019-02-18 10:19:58 -0800 (Mon, 18 Feb 2019)

Log Message

Cherry-pick r241635. rdar://problem/48165262

    [PSON] Allow tweaking WebProcess cache parameters via user defaults
    https://bugs.webkit.org/show_bug.cgi?id=194731
    <rdar://problem/48125377>

    Reviewed by Geoffrey Garen.

    Allow tweaking WebProcess cache parameters via user defaults like so:
    $ defaults write com.apple.Safari WebProcessCacheCachedProcessLifetimeInSeconds 120
    -> Cached processes will be evicted after 2 minutes (instead of 30)

    $ defaults write com.apple.Safari WebProcessCacheClearingDelayAfterApplicationResignsActiveInSeconds 60
    -> Web process cache will be cleared if Safari is no longer active for 1 minutes (instead of 5).

    * SourcesCocoa.txt:
    * UIProcess/Cocoa/WebProcessCacheCocoa.mm: Copied from Source/WebKit/UIProcess/WebProcessCache.h.
    (WebKit::WebProcessCache::platformInitialize):
    * UIProcess/WebProcessCache.cpp:
    (WebKit::WebProcessCache::WebProcessCache):
    (WebKit::WebProcessCache::platformInitialize):
    * UIProcess/WebProcessCache.h:
    * WebKit.xcodeproj/project.pbxproj:

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

Modified Paths

Added Paths

Diff

Modified: branches/safari-607-branch/Source/WebKit/ChangeLog (241726 => 241727)


--- branches/safari-607-branch/Source/WebKit/ChangeLog	2019-02-18 18:19:54 UTC (rev 241726)
+++ branches/safari-607-branch/Source/WebKit/ChangeLog	2019-02-18 18:19:58 UTC (rev 241727)
@@ -1,5 +1,58 @@
 2019-02-18  Babak Shafiei  <bshaf...@apple.com>
 
+        Cherry-pick r241635. rdar://problem/48165262
+
+    [PSON] Allow tweaking WebProcess cache parameters via user defaults
+    https://bugs.webkit.org/show_bug.cgi?id=194731
+    <rdar://problem/48125377>
+    
+    Reviewed by Geoffrey Garen.
+    
+    Allow tweaking WebProcess cache parameters via user defaults like so:
+    $ defaults write com.apple.Safari WebProcessCacheCachedProcessLifetimeInSeconds 120
+    -> Cached processes will be evicted after 2 minutes (instead of 30)
+    
+    $ defaults write com.apple.Safari WebProcessCacheClearingDelayAfterApplicationResignsActiveInSeconds 60
+    -> Web process cache will be cleared if Safari is no longer active for 1 minutes (instead of 5).
+    
+    * SourcesCocoa.txt:
+    * UIProcess/Cocoa/WebProcessCacheCocoa.mm: Copied from Source/WebKit/UIProcess/WebProcessCache.h.
+    (WebKit::WebProcessCache::platformInitialize):
+    * UIProcess/WebProcessCache.cpp:
+    (WebKit::WebProcessCache::WebProcessCache):
+    (WebKit::WebProcessCache::platformInitialize):
+    * UIProcess/WebProcessCache.h:
+    * WebKit.xcodeproj/project.pbxproj:
+    
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241635 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    2019-02-15  Chris Dumez  <cdu...@apple.com>
+
+            [PSON] Allow tweaking WebProcess cache parameters via user defaults
+            https://bugs.webkit.org/show_bug.cgi?id=194731
+            <rdar://problem/48125377>
+
+            Reviewed by Geoffrey Garen.
+
+            Allow tweaking WebProcess cache parameters via user defaults like so:
+            $ defaults write com.apple.Safari WebProcessCacheCachedProcessLifetimeInSeconds 120
+            -> Cached processes will be evicted after 2 minutes (instead of 30)
+
+            $ defaults write com.apple.Safari WebProcessCacheClearingDelayAfterApplicationResignsActiveInSeconds 60
+            -> Web process cache will be cleared if Safari is no longer active for 1 minutes (instead of 5).
+
+            * SourcesCocoa.txt:
+            * UIProcess/Cocoa/WebProcessCacheCocoa.mm: Copied from Source/WebKit/UIProcess/WebProcessCache.h.
+            (WebKit::WebProcessCache::platformInitialize):
+            * UIProcess/WebProcessCache.cpp:
+            (WebKit::WebProcessCache::WebProcessCache):
+            (WebKit::WebProcessCache::platformInitialize):
+            * UIProcess/WebProcessCache.h:
+            * WebKit.xcodeproj/project.pbxproj:
+
+2019-02-18  Babak Shafiei  <bshaf...@apple.com>
+
         Cherry-pick r241631. rdar://problem/48165260
 
     [PSON] Disable WebContent process cache on devices with less than 3GB of RAM

Modified: branches/safari-607-branch/Source/WebKit/SourcesCocoa.txt (241726 => 241727)


--- branches/safari-607-branch/Source/WebKit/SourcesCocoa.txt	2019-02-18 18:19:54 UTC (rev 241726)
+++ branches/safari-607-branch/Source/WebKit/SourcesCocoa.txt	2019-02-18 18:19:58 UTC (rev 241727)
@@ -335,6 +335,7 @@
 UIProcess/Cocoa/WebMemoryPressureHandlerCocoa.mm
 UIProcess/Cocoa/WebPageProxyCocoa.mm
 UIProcess/Cocoa/WebPasteboardProxyCocoa.mm
+UIProcess/Cocoa/WebProcessCacheCocoa.mm
 UIProcess/Cocoa/WebProcessPoolCocoa.mm
 UIProcess/Cocoa/WebProcessProxyCocoa.mm
 UIProcess/Cocoa/WebURLSchemeHandlerCocoa.mm

Copied: branches/safari-607-branch/Source/WebKit/UIProcess/Cocoa/WebProcessCacheCocoa.mm (from rev 241726, branches/safari-607-branch/Source/WebKit/UIProcess/WebProcessCache.h) (0 => 241727)


--- branches/safari-607-branch/Source/WebKit/UIProcess/Cocoa/WebProcessCacheCocoa.mm	                        (rev 0)
+++ branches/safari-607-branch/Source/WebKit/UIProcess/Cocoa/WebProcessCacheCocoa.mm	2019-02-18 18:19:58 UTC (rev 241727)
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2019 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "config.h"
+#import "WebProcessCache.h"
+
+namespace WebKit {
+
+void WebProcessCache::platformInitialize()
+{
+    Seconds cachedProcessLifetimeOverride([[NSUserDefaults standardUserDefaults] doubleForKey:@"WebProcessCacheCachedProcessLifetimeInSeconds"]);
+    if (cachedProcessLifetimeOverride > 0_s && cachedProcessLifetimeOverride <= 24_h) {
+        cachedProcessLifetime = cachedProcessLifetimeOverride;
+        WTFLogAlways("Warning: WebProcessCache cachedProcessLifetime was overriden via user defaults and is now %g seconds", cachedProcessLifetimeOverride.seconds());
+    }
+
+    Seconds clearingDelayAfterApplicationResignsActiveOverride([[NSUserDefaults standardUserDefaults] doubleForKey:@"WebProcessCacheClearingDelayAfterApplicationResignsActiveInSeconds"]);
+    if (clearingDelayAfterApplicationResignsActiveOverride > 0_s && clearingDelayAfterApplicationResignsActiveOverride <= 1_h) {
+        clearingDelayAfterApplicationResignsActive = clearingDelayAfterApplicationResignsActiveOverride;
+        WTFLogAlways("Warning: WebProcessCache clearingDelayAfterApplicationResignsActive was overriden via user defaults and is now %g seconds", clearingDelayAfterApplicationResignsActiveOverride.seconds());
+    }
+}
+
+} // namespace WebKit

Modified: branches/safari-607-branch/Source/WebKit/UIProcess/WebProcessCache.cpp (241726 => 241727)


--- branches/safari-607-branch/Source/WebKit/UIProcess/WebProcessCache.cpp	2019-02-18 18:19:54 UTC (rev 241726)
+++ branches/safari-607-branch/Source/WebKit/UIProcess/WebProcessCache.cpp	2019-02-18 18:19:58 UTC (rev 241727)
@@ -34,13 +34,14 @@
 
 namespace WebKit {
 
-static Seconds cachedProcessLifetime { 30_min };
-static Seconds clearingDelayAfterApplicationResignsActive { 5_min };
+Seconds WebProcessCache::cachedProcessLifetime { 30_min };
+Seconds WebProcessCache::clearingDelayAfterApplicationResignsActive { 5_min };
 
 WebProcessCache::WebProcessCache(WebProcessPool& processPool)
     : m_evictionTimer(RunLoop::main(), this, &WebProcessCache::clear)
 {
     updateCapacity(processPool);
+    platformInitialize();
 }
 
 bool WebProcessCache::addProcess(const String& registrableDomain, Ref<WebProcessProxy>&& process)
@@ -182,4 +183,10 @@
     m_process->processPool().webProcessCache().evictProcess(*m_process);
 }
 
+#if !PLATFORM(COCOA)
+void WebProcessCache::platformInitialize()
+{
+}
+#endif
+
 } // namespace WebKit

Modified: branches/safari-607-branch/Source/WebKit/UIProcess/WebProcessCache.h (241726 => 241727)


--- branches/safari-607-branch/Source/WebKit/UIProcess/WebProcessCache.h	2019-02-18 18:19:54 UTC (rev 241726)
+++ branches/safari-607-branch/Source/WebKit/UIProcess/WebProcessCache.h	2019-02-18 18:19:58 UTC (rev 241727)
@@ -53,7 +53,11 @@
     void setApplicationIsActive(bool);
 
 private:
+    static Seconds cachedProcessLifetime;
+    static Seconds clearingDelayAfterApplicationResignsActive;
+
     void evictProcess(WebProcessProxy&);
+    void platformInitialize();
 
     unsigned m_capacity { 0 };
 

Modified: branches/safari-607-branch/Source/WebKit/WebKit.xcodeproj/project.pbxproj (241726 => 241727)


--- branches/safari-607-branch/Source/WebKit/WebKit.xcodeproj/project.pbxproj	2019-02-18 18:19:54 UTC (rev 241726)
+++ branches/safari-607-branch/Source/WebKit/WebKit.xcodeproj/project.pbxproj	2019-02-18 18:19:58 UTC (rev 241727)
@@ -3089,6 +3089,7 @@
 		462107D71F38DBD300DD7810 /* PingLoad.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PingLoad.cpp; sourceTree = "<group>"; };
 		463FD47F1EB9458400A2982C /* WKProcessTerminationReason.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKProcessTerminationReason.h; sourceTree = "<group>"; };
 		463FD4811EB94EAD00A2982C /* ProcessTerminationReason.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProcessTerminationReason.h; sourceTree = "<group>"; };
+		4651ECE622178A850067EB95 /* WebProcessCacheCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebProcessCacheCocoa.mm; sourceTree = "<group>"; };
 		465250E51ECF52CD002025CB /* WebKit2InitializeCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebKit2InitializeCocoa.mm; sourceTree = "<group>"; };
 		466BC0381FA266C9002FA9C1 /* WebSWContextManagerConnection.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebSWContextManagerConnection.cpp; sourceTree = "<group>"; };
 		466BC0391FA266C9002FA9C1 /* WebSWContextManagerConnection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebSWContextManagerConnection.h; sourceTree = "<group>"; };
@@ -5331,6 +5332,7 @@
 				2D3EF4401917646300034184 /* WebMemoryPressureHandlerCocoa.mm */,
 				1AC0273E196622D600C12B75 /* WebPageProxyCocoa.mm */,
 				7C4694CB1A4B510A00AD5845 /* WebPasteboardProxyCocoa.mm */,
+				4651ECE622178A850067EB95 /* WebProcessCacheCocoa.mm */,
 				7CE4D2151A49148400C7F152 /* WebProcessPoolCocoa.mm */,
 				1A04F6171A4A3A7A00A21B6E /* WebProcessProxyCocoa.mm */,
 				51D124311E6DE521002B2820 /* WebURLSchemeHandlerCocoa.h */,
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to