Changeset 243379 in webkit
- Timestamp:
- Mar 22, 2019, 9:27:14 AM (7 years ago)
- Location:
- trunk/Source/WebKit
- Files:
-
- 5 edited
-
ChangeLog (modified) (1 diff)
-
UIProcess/API/Cocoa/WKProcessGroup.mm (modified) (1 diff)
-
UIProcess/WebInspectorUtilities.cpp (modified) (1 diff)
-
UIProcess/WebProcessPool.cpp (modified) (2 diffs)
-
UIProcess/WebProcessPool.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r243378 r243379 1 2019-03-22 Chris Dumez <cdumez@apple.com> 2 3 REGRESSION (r243094): ePub files do not render or open in Books 4 https://bugs.webkit.org/show_bug.cgi?id=196119 5 <rdar://problem/49121686> 6 7 Reviewed by Brady Eidson. 8 9 Do not delay the WebProcess launch until a load when contructing a web view and the client 10 may observe when its injected bundle is loaded via WKProcessGroupDelegate's 11 didCreateConnectionToWebProcessPlugIn. 12 13 * UIProcess/API/Cocoa/WKProcessGroup.mm: 14 (-[WKProcessGroup setDelegate:]): 15 * UIProcess/WebInspectorUtilities.cpp: 16 (WebKit::inspectorProcessPool): 17 * UIProcess/WebProcessPool.cpp: 18 (WebKit::WebProcessPool::createWebPage): 19 * UIProcess/WebProcessPool.h: 20 1 21 2019-03-22 Carlos Garcia Campos <cgarcia@igalia.com> 2 22 -
trunk/Source/WebKit/UIProcess/API/Cocoa/WKProcessGroup.mm
r242339 r243379 216 216 { 217 217 _delegate = delegate; 218 219 // If the client can observe when the connection to the WebProcess injected bundle is established, then we cannot 220 // safely delay the launch of the WebProcess until something is loaded in the Web view. 221 if ([delegate respondsToSelector:@selector(processGroup:didCreateConnectionToWebProcessPlugIn:)]) 222 _processPool->disableDelayedWebProcessLaunch(); 218 223 } 219 224 -
trunk/Source/WebKit/UIProcess/WebInspectorUtilities.cpp
r240557 r243379 83 83 auto configuration = API::ProcessPoolConfiguration::createWithLegacyOptions(); 84 84 pool = &WebProcessPool::create(configuration.get()).leakRef(); 85 // Do not delay process launch for inspector pages as inspector pages do not know how to transition from a terminated process. 86 pool->disableDelayedWebProcessLaunch(); 85 87 } 86 88 return *pool; -
trunk/Source/WebKit/UIProcess/WebProcessPool.cpp
r243320 r243379 1219 1219 ASSERT(process.get() == m_dummyProcessProxy || &pageConfiguration->websiteDataStore()->websiteDataStore() == &process->websiteDataStore()); 1220 1220 ASSERT(&pageConfiguration->relatedPage()->websiteDataStore() == &pageConfiguration->websiteDataStore()->websiteDataStore()); 1221 } else if (WebKit::isInspectorProcessPool(*this)) { 1222 // Do not delay process launch for inspector pages as inspector pages do not know how to transition from a terminated process. 1223 process = &processForRegistrableDomain(pageConfiguration->websiteDataStore()->websiteDataStore(), nullptr, { }); 1224 } else { 1221 } else if (!m_isDelayedWebProcessLaunchDisabled) { 1225 1222 // In the common case, we delay process launch until something is actually loaded in the page. 1226 1223 if (!m_dummyProcessProxy) { … … 1230 1227 } 1231 1228 process = m_dummyProcessProxy; 1232 } 1229 } else 1230 process = &processForRegistrableDomain(pageConfiguration->websiteDataStore()->websiteDataStore(), nullptr, { }); 1231 1233 1232 ASSERT(process); 1234 1233 -
trunk/Source/WebKit/UIProcess/WebProcessPool.h
r243110 r243379 506 506 void clearWebProcessHasUploads(WebCore::ProcessIdentifier); 507 507 508 void disableDelayedWebProcessLaunch() { m_isDelayedWebProcessLaunchDisabled = true; } 509 508 510 private: 509 511 void platformInitialize(); … … 786 788 HashMap<WebCore::ProcessIdentifier, std::unique_ptr<ProcessAssertion>> m_processesWithUploads; 787 789 std::unique_ptr<ProcessAssertion> m_uiProcessUploadAssertion; 790 bool m_isDelayedWebProcessLaunchDisabled { false }; 788 791 }; 789 792
Note:
See TracChangeset
for help on using the changeset viewer.