Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(8)

Side by Side Diff: Source/modules/webdatabase/DatabaseManager.cpp

Issue 561093003: Remove worker support of Web SQL Database. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2012 Apple Inc. All rights reserved. 2 * Copyright (C) 2012 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 19 matching lines...) Expand all
30 #include "bindings/core/v8/ExceptionState.h" 30 #include "bindings/core/v8/ExceptionState.h"
31 #include "core/dom/ExceptionCode.h" 31 #include "core/dom/ExceptionCode.h"
32 #include "core/dom/ExecutionContext.h" 32 #include "core/dom/ExecutionContext.h"
33 #include "core/dom/ExecutionContextTask.h" 33 #include "core/dom/ExecutionContextTask.h"
34 #include "core/inspector/ConsoleMessage.h" 34 #include "core/inspector/ConsoleMessage.h"
35 #include "platform/Logging.h" 35 #include "platform/Logging.h"
36 #include "modules/webdatabase/AbstractDatabaseServer.h" 36 #include "modules/webdatabase/AbstractDatabaseServer.h"
37 #include "modules/webdatabase/Database.h" 37 #include "modules/webdatabase/Database.h"
38 #include "modules/webdatabase/DatabaseBackend.h" 38 #include "modules/webdatabase/DatabaseBackend.h"
39 #include "modules/webdatabase/DatabaseBackendBase.h" 39 #include "modules/webdatabase/DatabaseBackendBase.h"
40 #include "modules/webdatabase/DatabaseBackendSync.h"
41 #include "modules/webdatabase/DatabaseCallback.h" 40 #include "modules/webdatabase/DatabaseCallback.h"
42 #include "modules/webdatabase/DatabaseClient.h" 41 #include "modules/webdatabase/DatabaseClient.h"
43 #include "modules/webdatabase/DatabaseContext.h" 42 #include "modules/webdatabase/DatabaseContext.h"
44 #include "modules/webdatabase/DatabaseServer.h" 43 #include "modules/webdatabase/DatabaseServer.h"
45 #include "modules/webdatabase/DatabaseSync.h"
46 #include "modules/webdatabase/DatabaseTask.h" 44 #include "modules/webdatabase/DatabaseTask.h"
47 #include "platform/weborigin/SecurityOrigin.h" 45 #include "platform/weborigin/SecurityOrigin.h"
48 46
49 namespace blink { 47 namespace blink {
50 48
51 DatabaseManager& DatabaseManager::manager() 49 DatabaseManager& DatabaseManager::manager()
52 { 50 {
53 AtomicallyInitializedStatic(DatabaseManager*, dbManager = new DatabaseManage r); 51 AtomicallyInitializedStatic(DatabaseManager*, dbManager = new DatabaseManage r);
54 return *dbManager; 52 return *dbManager;
55 } 53 }
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 } 170 }
173 } 171 }
174 172
175 static void logOpenDatabaseError(ExecutionContext* context, const String& name) 173 static void logOpenDatabaseError(ExecutionContext* context, const String& name)
176 { 174 {
177 WTF_LOG(StorageAPI, "Database %s for origin %s not allowed to be established ", name.ascii().data(), 175 WTF_LOG(StorageAPI, "Database %s for origin %s not allowed to be established ", name.ascii().data(),
178 context->securityOrigin()->toString().ascii().data()); 176 context->securityOrigin()->toString().ascii().data());
179 } 177 }
180 178
181 PassRefPtrWillBeRawPtr<DatabaseBackendBase> DatabaseManager::openDatabaseBackend (ExecutionContext* context, 179 PassRefPtrWillBeRawPtr<DatabaseBackendBase> DatabaseManager::openDatabaseBackend (ExecutionContext* context,
182 DatabaseType type, const String& name, const String& expectedVersion, const String& displayName, 180 const String& name, const String& expectedVersion, const String& displayName ,
183 unsigned long estimatedSize, bool setVersionInNewDatabase, DatabaseError& er ror, String& errorMessage) 181 unsigned long estimatedSize, bool setVersionInNewDatabase, DatabaseError& er ror, String& errorMessage)
184 { 182 {
185 ASSERT(error == DatabaseError::None); 183 ASSERT(error == DatabaseError::None);
186 184
187 RefPtrWillBeRawPtr<DatabaseBackendBase> backend = m_server->openDatabase( 185 RefPtrWillBeRawPtr<DatabaseBackendBase> backend = m_server->openDatabase(
188 databaseContextFor(context)->backend(), type, name, expectedVersion, 186 databaseContextFor(context)->backend(), name, expectedVersion,
189 displayName, estimatedSize, setVersionInNewDatabase, error, errorMessage ); 187 displayName, estimatedSize, setVersionInNewDatabase, error, errorMessage );
190 188
191 if (!backend) { 189 if (!backend) {
192 ASSERT(error != DatabaseError::None); 190 ASSERT(error != DatabaseError::None);
193 191
194 switch (error) { 192 switch (error) {
195 case DatabaseError::GenericSecurityError: 193 case DatabaseError::GenericSecurityError:
196 logOpenDatabaseError(context, name); 194 logOpenDatabaseError(context, name);
197 return nullptr; 195 return nullptr;
198 196
(...skipping 10 matching lines...) Expand all
209 } 207 }
210 208
211 PassRefPtrWillBeRawPtr<Database> DatabaseManager::openDatabase(ExecutionContext* context, 209 PassRefPtrWillBeRawPtr<Database> DatabaseManager::openDatabase(ExecutionContext* context,
212 const String& name, const String& expectedVersion, const String& displayName , 210 const String& name, const String& expectedVersion, const String& displayName ,
213 unsigned long estimatedSize, PassOwnPtrWillBeRawPtr<DatabaseCallback> creati onCallback, 211 unsigned long estimatedSize, PassOwnPtrWillBeRawPtr<DatabaseCallback> creati onCallback,
214 DatabaseError& error, String& errorMessage) 212 DatabaseError& error, String& errorMessage)
215 { 213 {
216 ASSERT(error == DatabaseError::None); 214 ASSERT(error == DatabaseError::None);
217 215
218 bool setVersionInNewDatabase = !creationCallback; 216 bool setVersionInNewDatabase = !creationCallback;
219 RefPtrWillBeRawPtr<DatabaseBackendBase> backend = openDatabaseBackend(contex t, DatabaseType::Async, name, 217 RefPtrWillBeRawPtr<DatabaseBackendBase> backend = openDatabaseBackend(contex t, name,
220 expectedVersion, displayName, estimatedSize, setVersionInNewDatabase, er ror, errorMessage); 218 expectedVersion, displayName, estimatedSize, setVersionInNewDatabase, er ror, errorMessage);
221 if (!backend) 219 if (!backend)
222 return nullptr; 220 return nullptr;
223 221
224 RefPtrWillBeRawPtr<Database> database = Database::create(context, backend); 222 RefPtrWillBeRawPtr<Database> database = Database::create(context, backend);
225 223
226 databaseContextFor(context)->setHasOpenDatabases(); 224 databaseContextFor(context)->setHasOpenDatabases();
227 DatabaseClient::from(context)->didOpenDatabase(database, context->securityOr igin()->host(), name, expectedVersion); 225 DatabaseClient::from(context)->didOpenDatabase(database, context->securityOr igin()->host(), name, expectedVersion);
228 226
229 if (backend->isNew() && creationCallback.get()) { 227 if (backend->isNew() && creationCallback.get()) {
230 WTF_LOG(StorageAPI, "Scheduling DatabaseCreationCallbackTask for databas e %p\n", database.get()); 228 WTF_LOG(StorageAPI, "Scheduling DatabaseCreationCallbackTask for databas e %p\n", database.get());
231 database->executionContext()->postTask(DatabaseCreationCallbackTask::cre ate(database, creationCallback)); 229 database->executionContext()->postTask(DatabaseCreationCallbackTask::cre ate(database, creationCallback));
232 } 230 }
233 231
234 ASSERT(database); 232 ASSERT(database);
235 return database.release(); 233 return database.release();
236 } 234 }
237 235
238 PassRefPtrWillBeRawPtr<DatabaseSync> DatabaseManager::openDatabaseSync(Execution Context* context,
239 const String& name, const String& expectedVersion, const String& displayName ,
240 unsigned long estimatedSize, PassOwnPtrWillBeRawPtr<DatabaseCallback> creati onCallback,
241 DatabaseError& error, String& errorMessage)
242 {
243 ASSERT(context->isContextThread());
244 ASSERT(error == DatabaseError::None);
245
246 bool setVersionInNewDatabase = !creationCallback;
247 RefPtrWillBeRawPtr<DatabaseBackendBase> backend = openDatabaseBackend(contex t, DatabaseType::Sync, name,
248 expectedVersion, displayName, estimatedSize, setVersionInNewDatabase, er ror, errorMessage);
249 if (!backend)
250 return nullptr;
251
252 RefPtrWillBeRawPtr<DatabaseSync> database = DatabaseSync::create(context, ba ckend);
253
254 if (backend->isNew() && creationCallback.get()) {
255 WTF_LOG(StorageAPI, "Invoking the creation callback for database %p\n", database.get());
256 creationCallback->handleEvent(database.get());
257 }
258
259 ASSERT(database);
260 return database.release();
261 }
262
263 String DatabaseManager::fullPathForDatabase(SecurityOrigin* origin, const String & name, bool createIfDoesNotExist) 236 String DatabaseManager::fullPathForDatabase(SecurityOrigin* origin, const String & name, bool createIfDoesNotExist)
264 { 237 {
265 return m_server->fullPathForDatabase(origin, name, createIfDoesNotExist); 238 return m_server->fullPathForDatabase(origin, name, createIfDoesNotExist);
266 } 239 }
267 240
268 void DatabaseManager::closeDatabasesImmediately(const String& originIdentifier, const String& name) 241 void DatabaseManager::closeDatabasesImmediately(const String& originIdentifier, const String& name)
269 { 242 {
270 m_server->closeDatabasesImmediately(originIdentifier, name); 243 m_server->closeDatabasesImmediately(originIdentifier, name);
271 } 244 }
272 245
273 void DatabaseManager::interruptAllDatabasesForContext(DatabaseContext* databaseC ontext)
274 {
275 m_server->interruptAllDatabasesForContext(databaseContext->backend());
276 }
277
278 void DatabaseManager::logErrorMessage(ExecutionContext* context, const String& m essage) 246 void DatabaseManager::logErrorMessage(ExecutionContext* context, const String& m essage)
279 { 247 {
280 context->addConsoleMessage(ConsoleMessage::create(StorageMessageSource, Erro rMessageLevel, message)); 248 context->addConsoleMessage(ConsoleMessage::create(StorageMessageSource, Erro rMessageLevel, message));
281 } 249 }
282 250
283 } // namespace blink 251 } // namespace blink
OLDNEW
« no previous file with comments | « Source/modules/webdatabase/DatabaseManager.h ('k') | Source/modules/webdatabase/DatabaseServer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698