Changeset 252466 in webkit
- Timestamp:
- Nov 14, 2019 2:18:15 PM (4 years ago)
- Location:
- trunk/Source/WebKit
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r252459 r252466 1 2019-11-14 Chris Dumez <cdumez@apple.com> 2 3 [iOS] Crash under WebProcess::processTaskStateDidChange(WebKit::ProcessTaskStateObserver::TaskState) 4 https://bugs.webkit.org/show_bug.cgi?id=204177 5 6 Reviewed by Jer Noble. 7 8 Delay creating the ProcessTaskStateObserver until the WebProcess's connection to its parent had been 9 initialized. This is necessary because ProcessTaskStateObserver may call WebProcess::processTaskStateDidChange() 10 on a background thread, which will deference the IPC connection. 11 12 * WebProcess/WebProcess.cpp: 13 (WebKit::m_webSQLiteDatabaseTracker): 14 (WebKit::WebProcess::~WebProcess): 15 (WebKit::WebProcess::initializeConnection): 16 (WebKit::m_taskStateObserver): Deleted. 17 * WebProcess/WebProcess.h: 18 1 19 2019-11-14 Brady Eidson <beidson@apple.com> 2 20 -
trunk/Source/WebKit/WebProcess/WebProcess.cpp
r252014 r252466 195 195 #if PLATFORM(IOS_FAMILY) 196 196 , m_webSQLiteDatabaseTracker([this](bool isHoldingLockedFiles) { parentProcessConnection()->send(Messages::WebProcessProxy::SetIsHoldingLockedFiles(isHoldingLockedFiles), 0); }) 197 , m_taskStateObserver(ProcessTaskStateObserver::create(*this))198 197 #endif 199 198 { … … 223 222 WebProcess::~WebProcess() 224 223 { 225 #if PLATFORM(IOS_FAMILY) 226 m_taskStateObserver->invalidate(); 227 #endif 224 ASSERT_NOT_REACHED(); 228 225 } 229 226 … … 268 265 269 266 m_webConnection = WebConnectionToUIProcess::create(this); 267 268 #if PLATFORM(IOS_FAMILY) 269 // Make sure we have an IPC::Connection before creating the ProcessTaskStateObserver since it may call 270 // WebProcess::processTaskStateDidChange() on a background thread and deference the IPC connection. 271 m_taskStateObserver = ProcessTaskStateObserver::create(*this); 272 #endif 270 273 } 271 274 -
trunk/Source/WebKit/WebProcess/WebProcess.h
r252014 r252466 543 543 #if PLATFORM(IOS_FAMILY) 544 544 WebSQLiteDatabaseTracker m_webSQLiteDatabaseTracker; 545 Ref <ProcessTaskStateObserver> m_taskStateObserver;545 RefPtr<ProcessTaskStateObserver> m_taskStateObserver; 546 546 Lock m_processWasResumedUIAssertionLock; 547 547 RetainPtr<BKSProcessAssertion> m_processWasResumedUIAssertion;
Note: See TracChangeset
for help on using the changeset viewer.