Changeset 86205 in webkit
- Timestamp:
- May 10, 2011 6:53:30 PM (13 years ago)
- Location:
- trunk
- Files:
-
- 4 added
- 18 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r86204 r86205 1 2011-05-10 Anton D'Auria <adauria@apple.com> 2 3 Reviewed by David Levin. 4 5 StorageTracker should report actual local storage usage on disk 6 https://bugs.webkit.org/show_bug.cgi?id=60558 7 8 * storage/domstorage/localstorage/storagetracker/storage-tracker-6-create-expected.txt: Added. 9 * storage/domstorage/localstorage/storagetracker/storage-tracker-6-create.html: Added. 10 * storage/domstorage/localstorage/storagetracker/storage-tracker-7-usage-expected.txt: Added. 11 * storage/domstorage/localstorage/storagetracker/storage-tracker-7-usage.html: Added. 12 1 13 2011-05-10 Anton D'Auria <adauria@apple.com> 2 14 -
trunk/Source/WebCore/ChangeLog
r86204 r86205 1 2011-05-10 Anton D'Auria <adauria@apple.com> 2 3 Reviewed by David Levin. 4 5 StorageTracker should report actual local storage usage on disk 6 https://bugs.webkit.org/show_bug.cgi?id=60558 7 8 Tests: storage/domstorage/localstorage/storagetracker/storage-tracker-6-create.html 9 storage/domstorage/localstorage/storagetracker/storage-tracker-7-usage.html 10 11 Use SQLiteFileSystem::getDatabaseFileSize to get actual usage by 12 an origin's local storage db. Factored out code that retrieves 13 path of local storage db. 14 15 * WebCore.exp.in: Sorted alphabetically StorageTracker's mangled 16 function names. 17 * storage/StorageTracker.cpp: 18 (WebCore::StorageTracker::syncDeleteOrigin): Uses helper function 19 to get path of origin's db 20 (WebCore::StorageTracker::databasePathForOrigin): New helper function. 21 that gets the path of an origin's local storage db from StorageTracker. 22 (WebCore::StorageTracker::diskUsageForOrigin): New API. 23 * storage/StorageTracker.h: 24 1 25 2011-05-10 Anton D'Auria <adauria@apple.com> 2 26 -
trunk/Source/WebCore/WebCore.exp.in
r86204 r86205 1403 1403 1404 1404 #if ENABLE(DOM_STORAGE) 1405 __ZN7WebCore14StorageTracker7originsERN3WTF6VectorINS1_6RefPtrINS_14SecurityOriginEEELm0EEE 1406 __ZN7WebCore14StorageTracker7trackerEv 1407 __ZN7WebCore14StorageTracker9setClientEPNS_20StorageTrackerClientE 1408 __ZN7WebCore14StorageTracker12deleteOriginEPNS_14SecurityOriginE 1409 __ZN7WebCore14StorageTracker16deleteAllOriginsEv 1410 __ZN7WebCore14StorageTracker16syncLocalStorageEv 1405 1411 __ZN7WebCore14StorageTracker17initializeTrackerERKN3WTF6StringE 1406 __ZN7WebCore14StorageTracker16deleteAllOriginsEv 1407 __ZN7WebCore14StorageTracker12deleteOriginEPNS_14SecurityOriginE 1408 __ZN7WebCore14StorageTracker7trackerEv 1409 __ZN7WebCore14StorageTracker7originsERN3WTF6VectorINS1_6RefPtrINS_14SecurityOriginEEELm0EEE 1410 __ZN7WebCore14StorageTracker9setClientEPNS_20StorageTrackerClientE 1411 __ZN7WebCore14StorageTracker16syncLocalStorageEv 1412 __ZN7WebCore14StorageTracker18diskUsageForOriginEPNS_14SecurityOriginE 1412 1413 __ZN7WebCore14StorageTracker32syncFileSystemAndTrackerDatabaseEv 1413 1414 #endif -
trunk/Source/WebCore/storage/StorageTracker.cpp
r84208 r86205 454 454 return; 455 455 456 // Get origin's db file path, delete entry in tracker's db, then delete db file. 457 SQLiteStatement pathStatement(m_database, "SELECT path FROM Origins WHERE origin=?"); 458 if (pathStatement.prepare() != SQLResultOk) { 459 LOG_ERROR("Unable to prepare selection of path for origin '%s'", originIdentifier.ascii().data()); 460 return; 461 } 462 pathStatement.bindText(1, originIdentifier); 463 int result = pathStatement.step(); 464 if (result != SQLResultRow) { 465 LOG_ERROR("Unable to find origin '%s' in Origins table", originIdentifier.ascii().data()); 466 return; 467 } 468 469 String path = pathStatement.getColumnText(0); 456 String path = databasePathForOrigin(originIdentifier); 470 457 471 458 ASSERT(!path.isEmpty()); … … 559 546 m_isActive = flag; 560 547 } 561 548 549 String StorageTracker::databasePathForOrigin(const String& originIdentifier) 550 { 551 ASSERT(!m_databaseGuard.tryLock()); 552 ASSERT(m_isActive); 553 554 if (!m_database.isOpen()) 555 return String(); 556 557 SQLiteStatement pathStatement(m_database, "SELECT path FROM Origins WHERE origin=?"); 558 if (pathStatement.prepare() != SQLResultOk) { 559 LOG_ERROR("Unable to prepare selection of path for origin '%s'", originIdentifier.ascii().data()); 560 return String(); 561 } 562 pathStatement.bindText(1, originIdentifier); 563 int result = pathStatement.step(); 564 if (result != SQLResultRow) 565 return String(); 566 567 return pathStatement.getColumnText(0); 568 } 569 570 long long StorageTracker::diskUsageForOrigin(SecurityOrigin* origin) 571 { 572 if (!m_isActive) 573 return 0; 574 575 MutexLocker lock(m_databaseGuard); 576 577 String path = databasePathForOrigin(origin->databaseIdentifier()); 578 if (path.isEmpty()) 579 return 0; 580 581 return SQLiteFileSystem::getDatabaseFileSize(path); 582 } 583 562 584 } // namespace WebCore 563 585 -
trunk/Source/WebCore/storage/StorageTracker.h
r84208 r86205 58 58 void deleteOrigin(const String& originIdentifier); 59 59 void origins(Vector<RefPtr<SecurityOrigin> >& result); 60 60 long long diskUsageForOrigin(SecurityOrigin*); 61 61 62 void cancelDeletingOrigin(const String& originIdentifier); 62 63 … … 83 84 84 85 void deleteTrackerFiles(); 86 String databasePathForOrigin(const String& originIdentifier); 85 87 86 88 bool canDeleteOrigin(const String& originIdentifier); -
trunk/Source/WebKit/mac/ChangeLog
r86204 r86205 1 2011-05-10 Anton D'Auria <adauria@apple.com> 2 3 Reviewed by David Levin. 4 5 Add ApplicationCache API to get disk usage per origin 6 https://bugs.webkit.org/show_bug.cgi?id=57127 7 8 Added Mac port API. 9 10 * WebCoreSupport/WebApplicationCache.h: 11 * WebCoreSupport/WebApplicationCache.mm: 12 (+[WebApplicationCache diskUsageForOrigin:]): 13 1 14 2011-05-10 Anton D'Auria <adauria@apple.com> 2 15 -
trunk/Source/WebKit/mac/Storage/WebStorageManager.mm
r80892 r86205 76 76 } 77 77 78 - (unsigned long long)diskUsageForOrigin:(WebSecurityOrigin *)origin 79 { 80 return StorageTracker::tracker().diskUsageForOrigin([origin _core]); 81 } 82 78 83 - (void)syncLocalStorage 79 84 { -
trunk/Source/WebKit/mac/Storage/WebStorageManagerPrivate.h
r80892 r86205 38 38 - (void)deleteAllOrigins; 39 39 - (void)deleteOrigin:(WebSecurityOrigin *)origin; 40 - (unsigned long long)diskUsageForOrigin:(WebSecurityOrigin *)origin; 40 41 41 42 - (void)syncLocalStorage; -
trunk/Tools/ChangeLog
r86204 r86205 1 2011-05-10 Anton D'Auria <adauria@apple.com> 2 3 Reviewed by David Levin. 4 5 StorageTracker should report actual local storage usage on disk 6 https://bugs.webkit.org/show_bug.cgi?id=60558 7 8 * DumpRenderTree/LayoutTestController.cpp: 9 (localStorageDiskUsageForOriginCallback): 10 (LayoutTestController::staticFunctions): 11 * DumpRenderTree/LayoutTestController.h: 12 * DumpRenderTree/chromium/LayoutTestController.cpp: 13 (LayoutTestController::LayoutTestController): 14 (LayoutTestController::localStorageDiskUsageForOrigin): 15 * DumpRenderTree/chromium/LayoutTestController.h: 16 * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp: 17 (LayoutTestController::localStorageDiskUsageForOrigin): 18 * DumpRenderTree/mac/LayoutTestControllerMac.mm: 19 (LayoutTestController::localStorageDiskUsageForOrigin): 20 * DumpRenderTree/qt/LayoutTestControllerQt.cpp: 21 (LayoutTestController::localStorageDiskUsageForOrigin): 22 * DumpRenderTree/qt/LayoutTestControllerQt.h: 23 * DumpRenderTree/win/LayoutTestControllerWin.cpp: 24 (LayoutTestController::localStorageDiskUsageForOrigin): 25 1 26 2011-05-10 Anton D'Auria <adauria@apple.com> 2 27 -
trunk/Tools/DumpRenderTree/LayoutTestController.cpp
r86204 r86205 495 495 496 496 return JSValueMakeUndefined(context); 497 } 498 499 static JSValueRef localStorageDiskUsageForOriginCallback(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception) 500 { 501 LayoutTestController* controller = static_cast<LayoutTestController*>(JSObjectGetPrivate(thisObject)); 502 503 if (argumentCount < 1) 504 return JSValueMakeUndefined(context); 505 506 JSRetainPtr<JSStringRef> originURL(Adopt, JSValueToStringCopy(context, arguments[0], exception)); 507 ASSERT(!*exception); 508 509 return JSValueMakeNumber(context, controller->localStorageDiskUsageForOrigin(originURL.get())); 497 510 } 498 511 … … 2386 2399 { "observeStorageTrackerNotifications", observeStorageTrackerNotificationsCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete }, 2387 2400 { "deleteLocalStorageForOrigin", deleteLocalStorageForOriginCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete }, 2401 { "localStorageDiskUsageForOrigin", localStorageDiskUsageForOriginCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete }, 2388 2402 { "originsWithLocalStorage", originsWithLocalStorageCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete }, 2389 2403 { "setShouldPaintBrokenImage", setShouldPaintBrokenImageCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete }, -
trunk/Tools/DumpRenderTree/LayoutTestController.h
r86204 r86205 332 332 void deleteAllLocalStorage(); 333 333 void deleteLocalStorageForOrigin(JSStringRef originIdentifier); 334 long long localStorageDiskUsageForOrigin(JSStringRef originIdentifier); 334 335 void observeStorageTrackerNotifications(unsigned number); 335 336 void syncLocalStorage(); -
trunk/Tools/DumpRenderTree/chromium/LayoutTestController.cpp
r86204 r86205 209 209 bindMethod("storeWebScriptObject", &LayoutTestController::storeWebScriptObject); 210 210 bindMethod("deleteAllLocalStorage", &LayoutTestController::deleteAllLocalStorage); 211 bindMethod("localStorageDiskUsageForOrigin", &LayoutTestController::localStorageDiskUsageForOrigin); 211 212 bindMethod("originsWithLocalStorage", &LayoutTestController::originsWithLocalStorage); 212 213 bindMethod("deleteLocalStorageForOrigin", &LayoutTestController::deleteLocalStorageForOrigin); … … 1778 1779 } 1779 1780 1781 void LayoutTestController::localStorageDiskUsageForOrigin(const CppArgumentList& arguments, CppVariant*) 1782 { 1783 // Not Implemented 1784 } 1785 1780 1786 void LayoutTestController::originsWithLocalStorage(const CppArgumentList& arguments, CppVariant*) 1781 1787 { -
trunk/Tools/DumpRenderTree/chromium/LayoutTestController.h
r86204 r86205 365 365 void originsWithLocalStorage(const CppArgumentList&, CppVariant*); 366 366 void deleteLocalStorageForOrigin(const CppArgumentList&, CppVariant*); 367 void localStorageDiskUsageForOrigin(const CppArgumentList&, CppVariant*); 367 368 void observeStorageTrackerNotifications(const CppArgumentList&, CppVariant*); 368 369 void syncLocalStorage(const CppArgumentList&, CppVariant*); -
trunk/Tools/DumpRenderTree/gtk/LayoutTestControllerGtk.cpp
r86204 r86205 661 661 } 662 662 663 long long LayoutTestController::localStorageDiskUsageForOrigin(JSStringRef originIdentifier) 664 { 665 // FIXME: Implement to support getting disk usage in bytes for an origin. 666 return 0; 667 } 668 663 669 JSValueRef LayoutTestController::originsWithApplicationCache(JSContextRef context) 664 670 { -
trunk/Tools/DumpRenderTree/mac/LayoutTestControllerMac.mm
r86204 r86205 148 148 } 149 149 150 long long LayoutTestController::localStorageDiskUsageForOrigin(JSStringRef url) 151 { 152 RetainPtr<CFStringRef> urlCF(AdoptCF, JSStringCopyCFString(kCFAllocatorDefault, url)); 153 WebSecurityOrigin *origin = [[WebSecurityOrigin alloc] initWithURL:[NSURL URLWithString:(NSString *)urlCF.get()]]; 154 return [[WebStorageManager sharedWebStorageManager] diskUsageForOrigin:origin]; 155 } 156 150 157 void LayoutTestController::observeStorageTrackerNotifications(unsigned number) 151 158 { -
trunk/Tools/DumpRenderTree/qt/LayoutTestControllerQt.cpp
r86204 r86205 565 565 } 566 566 567 long long LayoutTestController::localStorageDiskUsageForOrigin(const QString& originIdentifier) 568 { 569 // FIXME: Implement to support getting disk usage in bytes for an origin. 570 return 0; 571 } 572 567 573 void LayoutTestController::setApplicationCacheOriginQuota(unsigned long long quota) 568 574 { -
trunk/Tools/DumpRenderTree/qt/LayoutTestControllerQt.h
r86204 r86205 268 268 void deleteAllLocalStorage(); 269 269 void deleteLocalStorageForOrigin(const QString& originIdentifier); 270 long long localStorageDiskUsageForOrigin(const QString& originIdentifier); 270 271 void observeStorageTrackerNotifications(unsigned number); 271 272 void syncLocalStorage(); -
trunk/Tools/DumpRenderTree/win/LayoutTestControllerWin.cpp
r86204 r86205 1544 1544 } 1545 1545 1546 long long LayoutTestController::localStorageDiskUsageForOrigin(JSStringRef originIdentifier) 1547 { 1548 // FIXME: Implement to support getting local storage disk usage for an origin. 1549 return 0; 1550 } 1551 1546 1552 void LayoutTestController::deleteLocalStorageForOrigin(JSStringRef URL) 1547 1553 {
Note: See TracChangeset
for help on using the changeset viewer.