Changeset 243957 in webkit
- Timestamp:
- Apr 5, 2019 6:02:44 PM (5 years ago)
- Location:
- trunk/Source
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r243954 r243957 1 2019-04-05 Sihui Liu <sihui_liu@apple.com> 2 3 [iOS] Web process gets suspended while holding locked database files 4 https://bugs.webkit.org/show_bug.cgi?id=196519 5 <rdar://problem/49531797> 6 7 Reviewed by Chris Dumez. 8 9 Don't use DatabaseTracker singleton before it is initialized. 10 11 * Modules/webdatabase/DatabaseTracker.cpp: 12 (WebCore::DatabaseTracker::isInitialized): 13 * Modules/webdatabase/DatabaseTracker.h: 14 1 15 2019-04-05 Ryosuke Niwa <rniwa@webkit.org> 2 16 -
trunk/Source/WebCore/Modules/webdatabase/DatabaseTracker.cpp
r243270 r243957 79 79 return; 80 80 staticTracker = new DatabaseTracker(databasePath); 81 } 82 83 bool DatabaseTracker::isInitialized() 84 { 85 return !!staticTracker; 81 86 } 82 87 -
trunk/Source/WebCore/Modules/webdatabase/DatabaseTracker.h
r243219 r243957 60 60 61 61 WEBCORE_EXPORT static DatabaseTracker& singleton(); 62 WEBCORE_EXPORT static bool isInitialized(); 62 63 // This singleton will potentially be used from multiple worker threads and the page's context thread simultaneously. To keep this safe, it's 63 64 // currently using 4 locks. In order to avoid deadlock when taking multiple locks, you must take them in the correct order: -
trunk/Source/WebKit/ChangeLog
r243956 r243957 1 2019-04-05 Sihui Liu <sihui_liu@apple.com> 2 3 [iOS] Web process gets suspended while holding locked database files 4 https://bugs.webkit.org/show_bug.cgi?id=196519 5 <rdar://problem/49531797> 6 7 Reviewed by Chris Dumez. 8 9 * WebProcess/WebProcess.cpp: 10 (WebKit::WebProcess::actualPrepareToSuspend): 11 1 12 2019-04-05 Alex Christensen <achristensen@webkit.org> 2 13 -
trunk/Source/WebKit/WebProcess/WebProcess.cpp
r243939 r243957 1468 1468 m_webSQLiteDatabaseTracker = nullptr; 1469 1469 SQLiteDatabase::setIsDatabaseOpeningForbidden(true); 1470 DatabaseTracker::singleton().closeAllDatabases(CurrentQueryBehavior::Interrupt); 1470 if (DatabaseTracker::isInitialized()) 1471 DatabaseTracker::singleton().closeAllDatabases(CurrentQueryBehavior::Interrupt); 1471 1472 accessibilityProcessSuspendedNotification(true); 1472 1473 updateFreezerStatus();
Note: See TracChangeset
for help on using the changeset viewer.