Changeset 116970 in webkit
- Timestamp:
- May 14, 2012 11:14:26 AM (12 years ago)
- Location:
- trunk/Source
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r116961 r116970 1 2012-05-14 Sheriff Bot <webkit.review.bot@gmail.com> 2 3 Unreviewed, rolling out r116969. 4 http://trac.webkit.org/changeset/116969 5 https://bugs.webkit.org/show_bug.cgi?id=86386 6 7 i accidentally the icondatabase (Requested by kling on 8 #webkit). 9 10 * loader/icon/IconDatabase.cpp: 11 (WebCore::IconDatabase::synchronousIconForPageURL): 12 (WebCore::IconDatabase::retainIconForPageURL): 13 (WebCore::IconDatabase::releaseIconForPageURL): 14 (WebCore::IconDatabase::retainedPageURLCount): 15 (WebCore::IconDatabase::performURLImport): 16 (WebCore::IconDatabase::syncThreadMainLoop): 17 * loader/icon/IconDatabase.h: 18 (IconDatabase): 19 1 20 2012-05-14 Kevin Ollivier <kevino@theolliviers.com> 2 21 -
trunk/Source/WebCore/loader/icon/IconDatabase.cpp
r116969 r116970 223 223 224 224 MutexLocker locker(m_urlAndIconLock); 225 226 if (m_retainOrReleaseIconRequested)227 performPendingRetainAndReleaseOperations();228 225 229 226 String pageURLCopy; // Creates a null string for easy testing … … 393 390 } 394 391 395 void IconDatabase::retainIconForPageURL(const String& pageURL) 396 { 392 393 void IconDatabase::retainIconForPageURL(const String& pageURLOriginal) 394 { 397 395 ASSERT_NOT_SYNC_THREAD(); 398 399 if (!isEnabled() || !documentCanHaveIcon(pageURL)) 396 397 // Cannot do anything with pageURLOriginal that would end up storing it without deep copying first 398 399 if (!isEnabled() || !documentCanHaveIcon(pageURLOriginal)) 400 400 return; 401 401 402 MutexLocker locker(m_urlsToRetainOrReleaseLock); 403 m_urlsToRetain.append(pageURL); 404 scheduleOrDeferSyncTimer(); 405 } 406 407 void IconDatabase::performRetainIconForPageURL(const String& pageURLOriginal) 408 { 402 MutexLocker locker(m_urlAndIconLock); 403 409 404 PageURLRecord* record = m_pageURLToRecordMap.get(pageURLOriginal); 410 405 … … 440 435 } 441 436 442 void IconDatabase::releaseIconForPageURL(const String& pageURL )437 void IconDatabase::releaseIconForPageURL(const String& pageURLOriginal) 443 438 { 444 439 ASSERT_NOT_SYNC_THREAD(); … … 446 441 // Cannot do anything with pageURLOriginal that would end up storing it without deep copying first 447 442 448 if (!isEnabled() || !documentCanHaveIcon(pageURL)) 449 return; 450 451 MutexLocker locker(m_urlsToRetainOrReleaseLock); 452 m_urlsToRelease.append(pageURL); 453 m_retainOrReleaseIconRequested = true; 454 scheduleOrDeferSyncTimer(); 455 } 456 457 void IconDatabase::performReleaseIconForPageURL(const String& pageURLOriginal) 458 { 443 if (!isEnabled() || !documentCanHaveIcon(pageURLOriginal)) 444 return; 445 446 MutexLocker locker(m_urlAndIconLock); 447 459 448 // Check if this pageURL is actually retained 460 449 if (!m_retainedPageURLs.contains(pageURLOriginal)) { … … 510 499 511 500 delete pageRecord; 501 502 if (isOpen()) 503 scheduleOrDeferSyncTimer(); 512 504 } 513 505 … … 745 737 { 746 738 MutexLocker locker(m_urlAndIconLock); 747 748 if (m_retainOrReleaseIconRequested)749 performPendingRetainAndReleaseOperations();750 751 739 return m_retainedPageURLs.size(); 752 740 } … … 1319 1307 { 1320 1308 MutexLocker locker(m_urlAndIconLock); 1321 1322 if (m_retainOrReleaseIconRequested) 1323 performPendingRetainAndReleaseOperations(); 1324 1309 1325 1310 for (unsigned i = 0; i < urls.size(); ++i) { 1326 1311 if (!m_retainedPageURLs.contains(urls[i])) { … … 1403 1388 if (m_threadTerminationRequested) 1404 1389 break; 1405 1406 if (m_retainOrReleaseIconRequested) {1407 MutexLocker locker(m_urlAndIconLock);1408 performPendingRetainAndReleaseOperations();1409 }1410 1390 1411 1391 bool didAnyWork = true; … … 1490 1470 m_disabledSuddenTerminationForSyncThread = false; 1491 1471 } 1492 }1493 1494 void IconDatabase::performPendingRetainAndReleaseOperations()1495 {1496 ASSERT(m_retainOrReleaseIconRequested);1497 1498 // NOTE: The caller is assumed to hold m_urlAndIconLock.1499 1500 MutexLocker vectorLocker(m_urlsToRetainOrReleaseLock);1501 1502 for (unsigned i = 0; i < m_urlsToRetain.size(); ++i)1503 performRetainIconForPageURL(m_urlsToRetain[i]);1504 for (unsigned i = 0; i < m_urlsToRelease.size(); ++i)1505 performReleaseIconForPageURL(m_urlsToRelease[i]);1506 printf("Retained %lu, released %lu\n", m_urlsToRetain.size(), m_urlsToRelease.size());1507 1508 m_urlsToRetain.clear();1509 m_urlsToRelease.clear();1510 m_retainOrReleaseIconRequested = false;1511 1472 } 1512 1473 -
trunk/Source/WebCore/loader/icon/IconDatabase.h
r116969 r116970 160 160 bool m_syncThreadHasWorkToDo; 161 161 bool m_disabledSuddenTerminationForSyncThread; 162 bool m_retainOrReleaseIconRequested;163 162 164 163 Mutex m_urlAndIconLock; … … 178 177 HashSet<String> m_pageURLsInterestedInIcons; 179 178 HashSet<IconRecord*> m_iconsPendingReading; 180 181 Mutex m_urlsToRetainOrReleaseLock;182 // Holding m_urlsToRetainOrReleaseLock is required when accessing any of the following data structures.183 Vector<String> m_urlsToRetain;184 Vector<String> m_urlsToRelease;185 179 186 180 // *** Sync Thread Only *** … … 209 203 void deleteAllPreparedStatements(); 210 204 void* cleanupSyncThread(); 211 void performRetainIconForPageURL(const String&);212 void performReleaseIconForPageURL(const String&);213 205 214 206 // Record (on disk) whether or not Safari 2-style icons were imported (once per dataabse) … … 229 221 void removeIconFromSQLDatabase(const String& iconURL); 230 222 void writeIconSnapshotToSQLDatabase(const IconSnapshot&); 231 232 void performPendingRetainAndReleaseOperations(); 233 223 234 224 // Methods to dispatch client callbacks on the main thread 235 225 void dispatchDidImportIconURLForPageURLOnMainThread(const String&); -
trunk/Source/WebKit2/ChangeLog
r116969 r116970 1 2012-05-14 Sheriff Bot <webkit.review.bot@gmail.com> 2 3 Unreviewed, rolling out r116969. 4 http://trac.webkit.org/changeset/116969 5 https://bugs.webkit.org/show_bug.cgi?id=86386 6 7 i accidentally the icondatabase (Requested by kling on 8 #webkit). 9 10 * UIProcess/WebContext.cpp: 11 (WebKit::WebContext::~WebContext): 12 1 13 2012-05-14 Andreas Kling <kling@webkit.org> 2 14 -
trunk/Source/WebKit2/UIProcess/WebContext.cpp
r116969 r116970 167 167 WebContext::~WebContext() 168 168 { 169 m_pluginWorkQueue.invalidate();170 171 169 if (m_process && m_process->isValid()) 172 170 m_process->connection()->removeQueueClient(this);
Note: See TracChangeset
for help on using the changeset viewer.