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 */,