// These are used to generate histograms of errors seen with websql. // See about:histograms in chromium. void Database::reportOpenDatabaseResult(int errorSite, int webSqlErrorCode, int sqliteErrorCode, double duration) { if (Platform::current()->databaseObserver()) { Platform::current()->databaseObserver()->reportOpenDatabaseResult( createDatabaseIdentifierFromSecurityOrigin(securityOrigin()), stringIdentifier(), errorSite, webSqlErrorCode, sqliteErrorCode, duration); } }
void Database::markAsDeletedAndClose() { if (m_deleted || !databaseContext()->databaseThread()) return; LOG(StorageAPI, "Marking %s (%p) as deleted", stringIdentifier().ascii().data(), this); m_deleted = true; DatabaseTaskSynchronizer synchronizer; if (databaseContext()->databaseThread()->terminationRequested(&synchronizer)) { LOG(StorageAPI, "Database handle %p is on a terminated DatabaseThread, cannot be marked for normal closure\n", this); return; } OwnPtr<DatabaseCloseTask> task = DatabaseCloseTask::create(this, &synchronizer); databaseContext()->databaseThread()->scheduleImmediateTask(task.release()); synchronizer.waitForTaskCompletion(); }
DatabaseDetails DatabaseBackendBase::details() const { // This code path is only used for database quota delegate calls, so file dates are irrelevant and left uninitialized. return DatabaseDetails(stringIdentifier(), displayName(), estimatedSize(), 0, 0, 0); }
DatabaseDetails DatabaseBackendBase::details() const { return DatabaseDetails(stringIdentifier(), displayName(), estimatedSize(), 0); }