Diff
Modified: trunk/Source/WebKit/ChangeLog (234458 => 234459)
--- trunk/Source/WebKit/ChangeLog 2018-08-01 15:40:48 UTC (rev 234458)
+++ trunk/Source/WebKit/ChangeLog 2018-08-01 15:47:59 UTC (rev 234459)
@@ -1,3 +1,21 @@
+2018-08-01 Commit Queue <[email protected]>
+
+ Unreviewed, rolling out r234443 and r234445.
+ https://bugs.webkit.org/show_bug.cgi?id=188224
+
+ Revision caused 3 api failures across all platforms.
+ (Requested by Truitt on #webkit).
+
+ Reverted changesets:
+
+ "Add configuration for automatic process pre-warming"
+ https://bugs.webkit.org/show_bug.cgi?id=187108
+ https://trac.webkit.org/changeset/234443
+
+ "Add configuration for automatic process pre-warming"
+ https://bugs.webkit.org/show_bug.cgi?id=187108
+ https://trac.webkit.org/changeset/234445
+
2018-08-01 Aditya Keerthi <[email protected]>
[iOS] WKColorPicker's selection indicator doesn't always cover the selected swatch
Modified: trunk/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.cpp (234458 => 234459)
--- trunk/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.cpp 2018-08-01 15:40:48 UTC (rev 234458)
+++ trunk/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.cpp 2018-08-01 15:47:59 UTC (rev 234459)
@@ -98,7 +98,6 @@
copy->m_shouldHaveLegacyDataStore = this->m_shouldHaveLegacyDataStore;
copy->m_maximumProcessCount = this->m_maximumProcessCount;
- copy->m_maximumPrewarmedProcessCount = this->m_maximumPrewarmedProcessCount;
copy->m_cacheModel = this->m_cacheModel;
copy->m_diskCacheDirectory = this->m_diskCacheDirectory;
copy->m_diskCacheSpeculativeValidationEnabled = this->m_diskCacheSpeculativeValidationEnabled;
Modified: trunk/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.h (234458 => 234459)
--- trunk/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.h 2018-08-01 15:40:48 UTC (rev 234458)
+++ trunk/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.h 2018-08-01 15:47:59 UTC (rev 234459)
@@ -51,11 +51,8 @@
void setShouldHaveLegacyDataStore(bool shouldHaveLegacyDataStore) { m_shouldHaveLegacyDataStore = shouldHaveLegacyDataStore; }
unsigned maximumProcessCount() const { return m_maximumProcessCount; }
- void setMaximumProcessCount(unsigned maximumProcessCount) { m_maximumProcessCount = maximumProcessCount; }
+ void setMaximumProcessCount(unsigned maximumProcessCount) { m_maximumProcessCount = maximumProcessCount; }
- unsigned maximumPrewarmedProcessCount() const { return m_maximumPrewarmedProcessCount; }
- void setMaximumPrewarmedProcessCount(unsigned maximumPrewarmedProcessCount) { m_maximumPrewarmedProcessCount = maximumPrewarmedProcessCount; }
-
bool diskCacheSpeculativeValidationEnabled() const { return m_diskCacheSpeculativeValidationEnabled; }
void setDiskCacheSpeculativeValidationEnabled(bool enabled) { m_diskCacheSpeculativeValidationEnabled = enabled; }
@@ -161,7 +158,6 @@
bool m_shouldHaveLegacyDataStore { false };
unsigned m_maximumProcessCount { 0 };
- unsigned m_maximumPrewarmedProcessCount { 0 };
bool m_diskCacheSpeculativeValidationEnabled { false };
WebKit::CacheModel m_cacheModel { WebKit::CacheModelPrimaryWebBrowser };
int64_t m_diskCacheSizeOverride { -1 };
Modified: trunk/Source/WebKit/UIProcess/API/C/WKContext.cpp (234458 => 234459)
--- trunk/Source/WebKit/UIProcess/API/C/WKContext.cpp 2018-08-01 15:40:48 UTC (rev 234458)
+++ trunk/Source/WebKit/UIProcess/API/C/WKContext.cpp 2018-08-01 15:47:59 UTC (rev 234459)
@@ -402,11 +402,6 @@
toImpl(contextRef)->setCanHandleHTTPSServerTrustEvaluation(value);
}
-void WKContextSetMaximumNumberOfPrewarmedProcesses(WKContextRef contextRef, unsigned value)
-{
- toImpl(contextRef)->setMaximumNumberOfPrewarmedProcesses(value);
-}
-
void WKContextSetDiskCacheSpeculativeValidationEnabled(WKContextRef contextRef, bool value)
{
toImpl(contextRef)->configuration().setDiskCacheSpeculativeValidationEnabled(value);
Modified: trunk/Source/WebKit/UIProcess/API/C/WKContextPrivate.h (234458 => 234459)
--- trunk/Source/WebKit/UIProcess/API/C/WKContextPrivate.h 2018-08-01 15:40:48 UTC (rev 234458)
+++ trunk/Source/WebKit/UIProcess/API/C/WKContextPrivate.h 2018-08-01 15:47:59 UTC (rev 234459)
@@ -68,8 +68,6 @@
WK_EXPORT void WKContextSetDomainRelaxationForbiddenForURLScheme(WKContextRef context, WKStringRef urlScheme);
WK_EXPORT void WKContextSetCanHandleHTTPSServerTrustEvaluation(WKContextRef context, bool value);
-
-WK_EXPORT void WKContextSetMaximumNumberOfPrewarmedProcesses(WKContextRef context, unsigned count);
WK_EXPORT void WKContextSetDiskCacheSpeculativeValidationEnabled(WKContextRef context, bool value);
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h (234458 => 234459)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h 2018-08-01 15:40:48 UTC (rev 234458)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h 2018-08-01 15:47:59 UTC (rev 234459)
@@ -35,7 +35,6 @@
@property (nonatomic, copy) NSURL *injectedBundleURL;
@property (nonatomic) NSUInteger maximumProcessCount;
-@property (nonatomic) NSInteger maximumPrewarmedProcessCount WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA));
@property (nonatomic) BOOL ignoreSynchronousMessagingTimeoutsForTesting WK_API_AVAILABLE(macosx(10.12), ios(10.0));
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm (234458 => 234459)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm 2018-08-01 15:40:48 UTC (rev 234458)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm 2018-08-01 15:47:59 UTC (rev 234459)
@@ -249,16 +249,6 @@
return _processPoolConfiguration->processSwapsOnNavigation();
}
-- (void)setMaximumPrewarmedProcessCount:(NSInteger)count
-{
- _processPoolConfiguration->setMaximumPrewarmedProcessCount(count);
-}
-
-- (NSInteger)maximumPrewarmedProcessCount
-{
- return _processPoolConfiguration->maximumPrewarmedProcessCount();
-}
-
- (void)setAlwaysKeepAndReuseSwappedProcesses:(BOOL)swaps
{
_processPoolConfiguration->setAlwaysKeepAndReuseSwappedProcesses(swaps);
Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.cpp (234458 => 234459)
--- trunk/Source/WebKit/UIProcess/WebPageProxy.cpp 2018-08-01 15:40:48 UTC (rev 234458)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.cpp 2018-08-01 15:47:59 UTC (rev 234459)
@@ -3781,8 +3781,6 @@
m_pageClient.didFinishLoadForMainFrame();
resetRecentCrashCountSoon();
-
- notifyProcessPoolToPrewarm();
}
m_isLoadingAlternateHTMLStringForFailingProvisionalLoad = false;
@@ -3922,8 +3920,10 @@
m_loaderClient->didFirstVisuallyNonEmptyLayoutForFrame(*this, *frame, m_process->transformHandlesToObjects(userData.object()).get());
- if (frame->isMainFrame())
+ if (frame->isMainFrame()) {
m_pageClient.didFirstVisuallyNonEmptyLayoutForMainFrame();
+ notifyProcessPoolToPrewarm();
+ }
}
void WebPageProxy::didLayoutForCustomContentProvider()
Modified: trunk/Source/WebKit/UIProcess/WebProcessPool.cpp (234458 => 234459)
--- trunk/Source/WebKit/UIProcess/WebProcessPool.cpp 2018-08-01 15:40:48 UTC (rev 234458)
+++ trunk/Source/WebKit/UIProcess/WebProcessPool.cpp 2018-08-01 15:47:59 UTC (rev 234459)
@@ -403,21 +403,12 @@
void WebProcessPool::setMaximumNumberOfProcesses(unsigned maximumNumberOfProcesses)
{
// Guard against API misuse.
- if (m_processes.size() != m_prewarmedProcessCount)
+ if (!m_processes.isEmpty())
CRASH();
m_configuration->setMaximumProcessCount(maximumNumberOfProcesses);
}
-
-void WebProcessPool::setMaximumNumberOfPrewarmedProcesses(unsigned maximumNumberOfProcesses)
-{
- // Guard against API misuse.
- if (m_processes.size())
- CRASH();
- m_configuration->setMaximumPrewarmedProcessCount(maximumNumberOfProcesses);
-}
-
IPC::Connection* WebProcessPool::networkingProcessConnection()
{
return m_networkProcess->connection();
@@ -1002,7 +993,7 @@
void WebProcessPool::warmInitialProcess()
{
- if (m_prewarmedProcessCount >= maximumNumberOfPrewarmedProcesses()) {
+ if (m_prewarmedProcessCount) {
ASSERT(!m_processes.isEmpty());
return;
}
@@ -1318,11 +1309,12 @@
void WebProcessPool::didReachGoodTimeToPrewarm()
{
+ if (!m_configuration->processSwapsOnNavigation())
+ return;
if (!m_websiteDataStore)
m_websiteDataStore = API::WebsiteDataStore::defaultDataStore().ptr();
-
- unsigned maxPrewarmed = maximumNumberOfPrewarmedProcesses();
- while (m_prewarmedProcessCount < maxPrewarmed)
+ static constexpr size_t maxPrewarmCount = 1;
+ while (m_prewarmedProcessCount < maxPrewarmCount)
createNewWebProcess(m_websiteDataStore->websiteDataStore(), WebProcessProxy::IsInPrewarmedPool::Yes);
}
Modified: trunk/Source/WebKit/UIProcess/WebProcessPool.h (234458 => 234459)
--- trunk/Source/WebKit/UIProcess/WebProcessPool.h 2018-08-01 15:40:48 UTC (rev 234458)
+++ trunk/Source/WebKit/UIProcess/WebProcessPool.h 2018-08-01 15:47:59 UTC (rev 234459)
@@ -155,9 +155,6 @@
void setMaximumNumberOfProcesses(unsigned); // Can only be called when there are no processes running.
unsigned maximumNumberOfProcesses() const { return !m_configuration->maximumProcessCount() ? UINT_MAX : m_configuration->maximumProcessCount(); }
-
- void setMaximumNumberOfPrewarmedProcesses(unsigned); // Can only be called when there are no processes running.
- unsigned maximumNumberOfPrewarmedProcesses() const { return m_configuration->maximumPrewarmedProcessCount(); }
const Vector<RefPtr<WebProcessProxy>>& processes() const { return m_processes; }
Modified: trunk/Tools/ChangeLog (234458 => 234459)
--- trunk/Tools/ChangeLog 2018-08-01 15:40:48 UTC (rev 234458)
+++ trunk/Tools/ChangeLog 2018-08-01 15:47:59 UTC (rev 234459)
@@ -1,3 +1,21 @@
+2018-08-01 Commit Queue <[email protected]>
+
+ Unreviewed, rolling out r234443 and r234445.
+ https://bugs.webkit.org/show_bug.cgi?id=188224
+
+ Revision caused 3 api failures across all platforms.
+ (Requested by Truitt on #webkit).
+
+ Reverted changesets:
+
+ "Add configuration for automatic process pre-warming"
+ https://bugs.webkit.org/show_bug.cgi?id=187108
+ https://trac.webkit.org/changeset/234443
+
+ "Add configuration for automatic process pre-warming"
+ https://bugs.webkit.org/show_bug.cgi?id=187108
+ https://trac.webkit.org/changeset/234445
+
2018-07-31 Ben Richards <[email protected]>
Add configuration for automatic process pre-warming
Modified: trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj (234458 => 234459)
--- trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj 2018-08-01 15:40:48 UTC (rev 234458)
+++ trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj 2018-08-01 15:47:59 UTC (rev 234459)
@@ -154,7 +154,6 @@
3FCC4FE81EC4E8CA0076E37C /* PictureInPictureDelegate.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 3FCC4FE61EC4E87E0076E37C /* PictureInPictureDelegate.html */; };
4135FB842011FAA700332139 /* InjectInternals_Bundle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4135FB832011FAA300332139 /* InjectInternals_Bundle.cpp */; };
4135FB852011FABF00332139 /* libWebCoreTestSupport.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4135FB862011FABF00332139 /* libWebCoreTestSupport.dylib */; };
- 41882F0321010C0D002FF288 /* SetMaximumPrewarmedProcessCount.mm in Sources */ = {isa = PBXBuildFile; fileRef = 41882F0221010A70002FF288 /* SetMaximumPrewarmedProcessCount.mm */; };
4433A396208044140091ED57 /* SynchronousTimeoutTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4433A395208044130091ED57 /* SynchronousTimeoutTests.mm */; };
44817A2F1F0486BF00003810 /* WKRequestActivatedElementInfo.mm in Sources */ = {isa = PBXBuildFile; fileRef = 44817A2E1F0486BF00003810 /* WKRequestActivatedElementInfo.mm */; };
448D7E471EA6C55500ECC756 /* EnvironmentUtilitiesTest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 448D7E451EA6C55500ECC756 /* EnvironmentUtilitiesTest.cpp */; };
@@ -1392,7 +1391,6 @@
3FCC4FE61EC4E87E0076E37C /* PictureInPictureDelegate.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = PictureInPictureDelegate.html; sourceTree = "<group>"; };
4135FB832011FAA300332139 /* InjectInternals_Bundle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = InjectInternals_Bundle.cpp; path = Tests/InjectInternals_Bundle.cpp; sourceTree = SOURCE_ROOT; };
4135FB862011FABF00332139 /* libWebCoreTestSupport.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; path = libWebCoreTestSupport.dylib; sourceTree = BUILT_PRODUCTS_DIR; };
- 41882F0221010A70002FF288 /* SetMaximumPrewarmedProcessCount.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = SetMaximumPrewarmedProcessCount.mm; sourceTree = "<group>"; };
41973B5A1AF2286A006C7B36 /* FileSystem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FileSystem.cpp; sourceTree = "<group>"; };
41973B5C1AF22875006C7B36 /* SharedBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SharedBuffer.cpp; sourceTree = "<group>"; };
440A1D3814A0103A008A66F2 /* URL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = URL.cpp; sourceTree = "<group>"; };
@@ -2337,7 +2335,6 @@
F4D2986D20FEE7370092D636 /* RunScriptAfterDocumentLoad.mm */,
CE0947362063223B003C9BA0 /* SchemeRegistry.mm */,
51EB12931FDF050500A5A1BD /* ServiceWorkerBasic.mm */,
- 41882F0221010A70002FF288 /* SetMaximumPrewarmedProcessCount.mm */,
37BCA61B1B596BA9002012CA /* ShouldOpenExternalURLsInNewWindowActions.mm */,
2D9A53AE1B31FA8D0074D5AA /* ShrinkToFit.mm */,
2DFF7B6C1DA487AF00814614 /* SnapshotStore.mm */,
@@ -3866,7 +3863,6 @@
51EB12941FDF052500A5A1BD /* ServiceWorkerBasic.mm in Sources */,
7CCE7ECB1A411A7E00447C4C /* SetAndUpdateCacheModel.mm in Sources */,
7CCE7ECC1A411A7E00447C4C /* SetDocumentURI.mm in Sources */,
- 41882F0321010C0D002FF288 /* SetMaximumPrewarmedProcessCount.mm in Sources */,
CE6E81A020A6935F00E2C80F /* SetTimeoutFunction.mm in Sources */,
7C83E0521D0A641800FEBCF3 /* SharedBuffer.cpp in Sources */,
A17991881E1C994E00A505ED /* SharedBuffer.mm in Sources */,
Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm (234458 => 234459)
--- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm 2018-08-01 15:40:48 UTC (rev 234458)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm 2018-08-01 15:47:59 UTC (rev 234459)
@@ -282,7 +282,6 @@
{
auto processPoolConfiguration = adoptNS([[_WKProcessPoolConfiguration alloc] init]);
processPoolConfiguration.get().processSwapsOnNavigation = YES;
- processPoolConfiguration.get().maximumPrewarmedProcessCount = 1;
auto processPool = adoptNS([[WKProcessPool alloc] _initWithConfiguration:processPoolConfiguration.get()]);
auto webViewConfiguration = adoptNS([[WKWebViewConfiguration alloc] init]);
@@ -901,7 +900,6 @@
{
auto processPoolConfiguration = adoptNS([[_WKProcessPoolConfiguration alloc] init]);
[processPoolConfiguration setProcessSwapsOnNavigation:YES];
- [processPoolConfiguration setMaximumPrewarmedProcessCount:1];
auto processPool = adoptNS([[WKProcessPool alloc] _initWithConfiguration:processPoolConfiguration.get()]);
auto webViewConfiguration = adoptNS([[WKWebViewConfiguration alloc] init]);
@@ -1092,7 +1090,7 @@
auto webViewConfiguration = adoptNS([[WKWebViewConfiguration alloc] init]);
[webViewConfiguration setProcessPool:processPool.get()];
webViewConfiguration.get().preferences._developerExtrasEnabled = YES;
-
+
RetainPtr<PSONScheme> handler = adoptNS([[PSONScheme alloc] init]);
[webViewConfiguration setURLSchemeHandler:handler.get() forURLScheme:@"PSON1"];
[webViewConfiguration setURLSchemeHandler:handler.get() forURLScheme:@"PSON2"];
@@ -1477,7 +1475,7 @@
TestWebKitAPI::Util::run(&done);
done = false;
auto pid3 = [webView _webProcessIdentifier];
-
+
EXPECT_EQ(3, numberOfDecidePolicyCalls);
EXPECT_EQ(2u, seenPIDs.size());
EXPECT_NE(pid1, pid3);
Deleted: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/SetMaximumPrewarmedProcessCount.mm (234458 => 234459)
--- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/SetMaximumPrewarmedProcessCount.mm 2018-08-01 15:40:48 UTC (rev 234458)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/SetMaximumPrewarmedProcessCount.mm 2018-08-01 15:47:59 UTC (rev 234459)
@@ -1,60 +0,0 @@
-/*
- * Copyright (C) 2018 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 "PlatformUtilities.h"
-#import "Test.h"
-#import <WebKit/WKProcessPoolPrivate.h>
-#import <WebKit/_WKProcessPoolConfiguration.h>
-#import <wtf/RetainPtr.h>
-
-#if WK_API_ENABLED
-
-TEST(WKProcessPool, SetMaximumPrewarmedProcessCount)
-{
- auto processPoolConfiguration = adoptNS([[_WKProcessPoolConfiguration alloc] init]);
- [processPoolConfiguration setMaximumPrewarmedProcessCount:2];
- auto processPool = adoptNS([[WKProcessPool alloc] _initWithConfiguration:processPoolConfiguration.get()]);
-
- EXPECT_EQ(0u, [processPool _prewarmedWebProcessCount]);
-
- [processPool _warmInitialProcess];
-
- EXPECT_EQ(1u, [processPool _prewarmedWebProcessCount]);
-
- [processPool _warmInitialProcess];
-
- EXPECT_EQ(2u, [processPool _prewarmedWebProcessCount]);
-
- [processPool _warmInitialProcess];
-
- EXPECT_EQ(2u, [processPool _prewarmedWebProcessCount]);
-
- // Test to make sure this doesn't cause a crash
- [processPool _setMaximumNumberOfProcesses:50];
-}
-
-#endif