Changeset 238593 in webkit
- Timestamp:
- Nov 27, 2018 5:44:28 PM (5 years ago)
- Location:
- trunk
- Files:
-
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r238585 r238593 1 2018-11-27 Alex Christensen <achristensen@webkit.org> 2 3 Make synchronous IPC introduced in r237267 asynchronous 4 https://bugs.webkit.org/show_bug.cgi?id=190757 5 6 Reviewed by Chris Dumez. 7 8 * UIProcess/API/Cocoa/WKProcessPool.mm: 9 (-[WKProcessPool _getActivePagesOriginsInWebProcessForTesting:completionHandler:]): 10 (-[WKProcessPool _getActivePagesOriginsInWebProcessForTesting:]): Deleted. 11 * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: 12 * UIProcess/WebProcessPool.cpp: 13 (WebKit::WebProcessPool::activePagesOriginsInWebProcessForTesting): 14 * UIProcess/WebProcessPool.h: 15 * UIProcess/WebProcessProxy.cpp: 16 (WebKit::WebProcessProxy::activePagesDomainsForTesting): 17 * UIProcess/WebProcessProxy.h: 18 * WebProcess/WebProcess.cpp: 19 (WebKit::WebProcess::getActivePagesOriginsForTesting): 20 * WebProcess/WebProcess.messages.in: 21 * WebProcess/cocoa/WebProcessCocoa.mm: 22 (WebKit::WebProcess::getActivePagesOriginsForTesting): 23 1 24 2018-11-27 Alex Christensen <achristensen@webkit.org> 2 25 -
trunk/Source/WebKit/UIProcess/API/Cocoa/WKProcessPool.mm
r238248 r238593 50 50 #import <pal/spi/cf/CFNetworkSPI.h> 51 51 #import <pal/spi/cocoa/NSKeyedArchiverSPI.h> 52 #import <wtf/BlockPtr.h> 52 53 #import <wtf/RetainPtr.h> 53 54 #import <wtf/WeakObjCPtr.h> … … 580 581 } 581 582 582 - ( NSArray<NSString *> *)_getActivePagesOriginsInWebProcessForTesting:(pid_t)pid583 { 584 auto activePagesOrigins = _processPool->activePagesOriginsInWebProcessForTesting(pid);585 586 NSMutableArray<NSString *> *array = [[NSMutableArray alloc] initWithCapacity:activePagesOrigins.size()];587 for (auto& origin : activePagesOrigins)588 [array addObject:(NSString *)origin];589 return [array autorelease];583 - (void)_getActivePagesOriginsInWebProcessForTesting:(pid_t)pid completionHandler:(void(^)(NSArray<NSString *> *))completionHandler 584 { 585 _processPool->activePagesOriginsInWebProcessForTesting(pid, [completionHandler = makeBlockPtr(completionHandler)] (Vector<String>&& activePagesOrigins) { 586 NSMutableArray<NSString *> *array = [[[NSMutableArray alloc] initWithCapacity:activePagesOrigins.size()] autorelease]; 587 for (auto& origin : activePagesOrigins) 588 [array addObject:origin]; 589 completionHandler(array); 590 }); 590 591 } 591 592 -
trunk/Source/WebKit/UIProcess/API/Cocoa/WKProcessPoolPrivate.h
r237830 r238593 115 115 - (void)_registerURLSchemeServiceWorkersCanHandle:(NSString *)scheme WK_API_AVAILABLE(macosx(10.13.4), ios(11.3)); 116 116 - (void)_setMaximumNumberOfProcesses:(NSUInteger)value WK_API_AVAILABLE(macosx(10.13.4), ios(11.3)); 117 - ( NSArray<NSString *> *)_getActivePagesOriginsInWebProcessForTesting:(pid_t)pidWK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA));117 - (void)_getActivePagesOriginsInWebProcessForTesting:(pid_t)pid completionHandler:(void(^)(NSArray<NSString *> *))completionHandler WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA)); 118 118 - (BOOL)_networkProcessHasEntitlementForTesting:(NSString *)entitlement WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA)); 119 119 -
trunk/Source/WebKit/UIProcess/WebProcessPool.cpp
r238525 r238593 1344 1344 } 1345 1345 1346 Vector<String> WebProcessPool::activePagesOriginsInWebProcessForTesting(ProcessID pid)1346 void WebProcessPool::activePagesOriginsInWebProcessForTesting(ProcessID pid, CompletionHandler<void(Vector<String>&&)>&& completionHandler) 1347 1347 { 1348 1348 for (auto& process : m_processes) { 1349 1349 if (process->processIdentifier() == pid) 1350 return process->activePagesDomainsForTesting( );1351 } 1352 return { };1350 return process->activePagesDomainsForTesting(WTFMove(completionHandler)); 1351 } 1352 completionHandler({ }); 1353 1353 } 1354 1354 -
trunk/Source/WebKit/UIProcess/WebProcessPool.h
r238248 r238593 216 216 217 217 ProcessID networkProcessIdentifier(); 218 Vector<String> activePagesOriginsInWebProcessForTesting(ProcessID);218 void activePagesOriginsInWebProcessForTesting(ProcessID, CompletionHandler<void(Vector<String>&&)>&&); 219 219 bool networkProcessHasEntitlementForTesting(const String&); 220 220 -
trunk/Source/WebKit/UIProcess/WebProcessProxy.cpp
r238388 r238593 1415 1415 } 1416 1416 1417 Vector<String> WebProcessProxy::activePagesDomainsForTesting() 1418 { 1419 Vector<String> activeDomains; 1420 sendSync(Messages::WebProcess::GetActivePagesOriginsForTesting(), Messages::WebProcess::GetActivePagesOriginsForTesting::Reply(activeDomains), 0); 1421 return activeDomains; 1417 void WebProcessProxy::activePagesDomainsForTesting(CompletionHandler<void(Vector<String>&&)>&& completionHandler) 1418 { 1419 connection()->sendWithAsyncReply(Messages::WebProcess::GetActivePagesOriginsForTesting(), WTFMove(completionHandler)); 1422 1420 } 1423 1421 -
trunk/Source/WebKit/UIProcess/WebProcessProxy.h
r238388 r238593 126 126 unsigned visiblePageCount() const { return m_visiblePageCounter.value(); } 127 127 128 Vector<String> activePagesDomainsForTesting(); // This is what is reported to ActivityMonitor.128 void activePagesDomainsForTesting(CompletionHandler<void(Vector<String>&&)>&&); // This is what is reported to ActivityMonitor. 129 129 130 130 virtual bool isServiceWorkerProcess() const { return false; } -
trunk/Source/WebKit/WebProcess/WebProcess.cpp
r238490 r238593 1344 1344 } 1345 1345 1346 void WebProcess::getActivePagesOriginsForTesting(Vector<String>&) 1347 { 1346 void WebProcess::getActivePagesOriginsForTesting(CompletionHandler<void(Vector<String>&&)>&& completionHandler) 1347 { 1348 completionHandler({ }); 1348 1349 } 1349 1350 -
trunk/Source/WebKit/WebProcess/WebProcess.h
r238490 r238593 193 193 194 194 void updateActivePages(); 195 void getActivePagesOriginsForTesting( Vector<String>&);195 void getActivePagesOriginsForTesting(CompletionHandler<void(Vector<String>&&)>&&); 196 196 void pageActivityStateDidChange(uint64_t pageID, OptionSet<WebCore::ActivityState::Flag> changed); 197 197 -
trunk/Source/WebKit/WebProcess/WebProcess.messages.in
r238388 r238593 131 131 MarkIsNoLongerPrewarmed() 132 132 UpdateActivePages() 133 GetActivePagesOriginsForTesting() -> (Vector<String> activeOrigins) LegacySync133 GetActivePagesOriginsForTesting() -> (Vector<String> activeOrigins) Async 134 134 135 135 #if PLATFORM(MAC) -
trunk/Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm
r238332 r238593 515 515 } 516 516 517 void WebProcess::getActivePagesOriginsForTesting( Vector<String>& activeOrigins)517 void WebProcess::getActivePagesOriginsForTesting(CompletionHandler<void(Vector<String>&&)>&& completionHandler) 518 518 { 519 519 #if PLATFORM(MAC) 520 520 auto activeOriginsAsNSStrings = activePagesOrigins(m_pageMap); 521 activeOrigins.reserveCapacity([activeOriginsAsNSStrings count]); 521 Vector<String> activeOrigins; 522 activeOrigins.reserveInitialCapacity([activeOriginsAsNSStrings count]); 522 523 for (NSString* activeOrigin in activeOriginsAsNSStrings.get()) 523 524 activeOrigins.uncheckedAppend(activeOrigin); 524 #else 525 UNUSED_PARAM(activeOrigins); 525 completionHandler(WTFMove(activeOrigins)); 526 #else 527 completionHandler({ }); 526 528 #endif 527 529 } -
trunk/Tools/ChangeLog
r238590 r238593 1 2018-11-27 Alex Christensen <achristensen@webkit.org> 2 3 Make synchronous IPC introduced in r237267 asynchronous 4 https://bugs.webkit.org/show_bug.cgi?id=190757 5 6 Reviewed by Chris Dumez. 7 8 * TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm: 9 1 10 2018-11-27 Jonathan Bedard <jbedard@apple.com> 2 11 -
trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm
r238565 r238593 765 765 766 766 auto webkitPID = [webView _webProcessIdentifier]; 767 auto* activeDomains = [processPool _getActivePagesOriginsInWebProcessForTesting:webkitPID]; 768 EXPECT_EQ(1u, activeDomains.count); 769 EXPECT_WK_STREQ(@"pson://www.webkit.org", activeDomains[0]); 767 [processPool _getActivePagesOriginsInWebProcessForTesting:webkitPID completionHandler:^(NSArray<NSString *> *activeDomains) { 768 EXPECT_EQ(1u, activeDomains.count); 769 EXPECT_WK_STREQ(@"pson://www.webkit.org", activeDomains[0]); 770 done = true; 771 }]; 772 TestWebKitAPI::Util::run(&done); 773 done = false; 770 774 771 775 request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"pson://www.google.com/main.html"]]; … … 778 782 EXPECT_NE(webkitPID, googlePID); 779 783 780 activeDomains = [processPool _getActivePagesOriginsInWebProcessForTesting:googlePID]; 781 EXPECT_EQ(1u, activeDomains.count); 782 EXPECT_WK_STREQ(@"pson://www.google.com", activeDomains[0]); 783 784 activeDomains = [processPool _getActivePagesOriginsInWebProcessForTesting:webkitPID]; 785 EXPECT_EQ(1u, activeDomains.count); 786 EXPECT_WK_STREQ(@"pson://www.webkit.org", activeDomains[0]); 784 [processPool _getActivePagesOriginsInWebProcessForTesting:googlePID completionHandler:^(NSArray<NSString *> *activeDomains) { 785 EXPECT_EQ(1u, activeDomains.count); 786 EXPECT_WK_STREQ(@"pson://www.google.com", activeDomains[0]); 787 done = true; 788 }]; 789 TestWebKitAPI::Util::run(&done); 790 done = false; 791 792 [processPool _getActivePagesOriginsInWebProcessForTesting:webkitPID completionHandler:^(NSArray<NSString *> *activeDomains) { 793 EXPECT_EQ(1u, activeDomains.count); 794 EXPECT_WK_STREQ(@"pson://www.webkit.org", activeDomains[0]); 795 done = true; 796 }]; 797 TestWebKitAPI::Util::run(&done); 798 done = false; 787 799 788 800 [webView goBack]; // Back to webkit.org. … … 796 808 EXPECT_EQ(webkitPID, pidAfterBackNavigation); 797 809 798 activeDomains = [processPool _getActivePagesOriginsInWebProcessForTesting:googlePID]; 799 EXPECT_EQ(1u, activeDomains.count); 800 EXPECT_WK_STREQ(@"pson://www.google.com", activeDomains[0]); 801 802 activeDomains = [processPool _getActivePagesOriginsInWebProcessForTesting:webkitPID]; 803 EXPECT_EQ(1u, activeDomains.count); 804 EXPECT_WK_STREQ(@"pson://www.webkit.org", activeDomains[0]); 805 } 810 [processPool _getActivePagesOriginsInWebProcessForTesting:googlePID completionHandler:^(NSArray<NSString *> *activeDomains) { 811 EXPECT_EQ(1u, activeDomains.count); 812 EXPECT_WK_STREQ(@"pson://www.google.com", activeDomains[0]); 813 done = true; 814 }]; 815 TestWebKitAPI::Util::run(&done); 816 done = false; 817 818 [processPool _getActivePagesOriginsInWebProcessForTesting:webkitPID completionHandler:^(NSArray<NSString *> *activeDomains) { 819 EXPECT_EQ(1u, activeDomains.count); 820 EXPECT_WK_STREQ(@"pson://www.webkit.org", activeDomains[0]); 821 done = true; 822 }]; 823 TestWebKitAPI::Util::run(&done); 824 done = false; 825 } 826 806 827 #endif // PLATFORM(MAC) 807 828
Note: See TracChangeset
for help on using the changeset viewer.