diff options
author | Ben Murdoch <benm@google.com> | 2011-05-24 11:24:40 +0100 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2011-06-02 09:53:15 +0100 |
commit | 81bc750723a18f21cd17d1b173cd2a4dda9cea6e (patch) | |
tree | 7a9e5ed86ff429fd347a25153107221543909b19 /Source/WebCore/inspector/InspectorDatabaseAgent.cpp | |
parent | 94088a6d336c1dd80a1e734af51e96abcbb689a7 (diff) | |
download | external_webkit-81bc750723a18f21cd17d1b173cd2a4dda9cea6e.zip external_webkit-81bc750723a18f21cd17d1b173cd2a4dda9cea6e.tar.gz external_webkit-81bc750723a18f21cd17d1b173cd2a4dda9cea6e.tar.bz2 |
Merge WebKit at r80534: Intial merge by Git
Change-Id: Ia7a83357124c9e1cdb1debf55d9661ec0bd09a61
Diffstat (limited to 'Source/WebCore/inspector/InspectorDatabaseAgent.cpp')
-rw-r--r-- | Source/WebCore/inspector/InspectorDatabaseAgent.cpp | 78 |
1 files changed, 51 insertions, 27 deletions
diff --git a/Source/WebCore/inspector/InspectorDatabaseAgent.cpp b/Source/WebCore/inspector/InspectorDatabaseAgent.cpp index 221bdf2..45ec42a 100644 --- a/Source/WebCore/inspector/InspectorDatabaseAgent.cpp +++ b/Source/WebCore/inspector/InspectorDatabaseAgent.cpp @@ -34,10 +34,10 @@ #include "Database.h" #include "ExceptionCode.h" -#include "InspectorAgent.h" #include "InspectorDatabaseResource.h" #include "InspectorFrontend.h" #include "InspectorValues.h" +#include "InstrumentingAgents.h" #include "SQLError.h" #include "SQLStatementCallback.h" #include "SQLStatementErrorCallback.h" @@ -61,18 +61,18 @@ public: virtual ~FrontendProvider() { } - InspectorFrontend* frontend() { return m_inspectorFrontend; } + InspectorFrontend::Database* frontend() { return m_inspectorFrontend; } void clearFrontend() { m_inspectorFrontend = 0; } private: - FrontendProvider(InspectorFrontend* inspectorFrontend) : m_inspectorFrontend(inspectorFrontend) { } - InspectorFrontend* m_inspectorFrontend; + FrontendProvider(InspectorFrontend* inspectorFrontend) : m_inspectorFrontend(inspectorFrontend->database()) { } + InspectorFrontend::Database* m_inspectorFrontend; }; namespace { long lastTransactionId = 0; -void reportTransactionFailed(InspectorFrontend* frontend, long transactionId, SQLError* error) +void reportTransactionFailed(InspectorFrontend::Database* frontend, long transactionId, SQLError* error) { if (!frontend) return; @@ -218,12 +218,46 @@ private: } // namespace +void InspectorDatabaseAgent::didOpenDatabase(PassRefPtr<Database> database, const String& domain, const String& name, const String& version) +{ + RefPtr<InspectorDatabaseResource> resource = InspectorDatabaseResource::create(database, domain, name, version); + m_resources.set(resource->id(), resource); + // Resources are only bound while visible. + if (m_frontendProvider) + resource->bind(m_frontendProvider->frontend()); +} + +void InspectorDatabaseAgent::clearResources() +{ + m_resources.clear(); +} + +InspectorDatabaseAgent::InspectorDatabaseAgent(InstrumentingAgents* instrumentingAgents) + : m_instrumentingAgents(instrumentingAgents) +{ + m_instrumentingAgents->setInspectorDatabaseAgent(this); +} + InspectorDatabaseAgent::~InspectorDatabaseAgent() { + m_instrumentingAgents->setInspectorDatabaseAgent(0); +} + +void InspectorDatabaseAgent::setFrontend(InspectorFrontend* frontend) +{ + m_frontendProvider = FrontendProvider::create(frontend); + DatabaseResourcesMap::iterator databasesEnd = m_resources.end(); + for (DatabaseResourcesMap::iterator it = m_resources.begin(); it != databasesEnd; ++it) + it->second->bind(m_frontendProvider->frontend()); +} + +void InspectorDatabaseAgent::clearFrontend() +{ m_frontendProvider->clearFrontend(); + m_frontendProvider.clear(); } -void InspectorDatabaseAgent::getDatabaseTableNames(long databaseId, RefPtr<InspectorArray>* names) +void InspectorDatabaseAgent::getDatabaseTableNames(ErrorString*, long databaseId, RefPtr<InspectorArray>* names) { Database* database = databaseForId(databaseId); if (database) { @@ -234,7 +268,7 @@ void InspectorDatabaseAgent::getDatabaseTableNames(long databaseId, RefPtr<Inspe } } -void InspectorDatabaseAgent::executeSQL(long databaseId, const String& query, bool* success, long* transactionId) +void InspectorDatabaseAgent::executeSQL(ErrorString*, long databaseId, const String& query, bool* success, long* transactionId) { Database* database = databaseForId(databaseId); if (!database) { @@ -250,31 +284,21 @@ void InspectorDatabaseAgent::executeSQL(long databaseId, const String& query, bo *success = true; } -Database* InspectorDatabaseAgent::databaseForId(long databaseId) -{ - DatabaseResourcesMap::iterator it = m_databaseResources->find(databaseId); - if (it == m_databaseResources->end()) - return 0; - return it->second->database(); -} - -void InspectorDatabaseAgent::selectDatabase(Database* database) +long InspectorDatabaseAgent::databaseId(Database* database) { - if (!m_frontendProvider->frontend()) - return; - - for (DatabaseResourcesMap::iterator it = m_databaseResources->begin(); it != m_databaseResources->end(); ++it) { - if (it->second->database() == database) { - m_frontendProvider->frontend()->selectDatabase(it->first); - break; - } + for (DatabaseResourcesMap::iterator it = m_resources.begin(); it != m_resources.end(); ++it) { + if (it->second->database() == database) + return it->first; } + return 0; } -InspectorDatabaseAgent::InspectorDatabaseAgent(DatabaseResourcesMap* databaseResources, InspectorFrontend* frontend) - : m_databaseResources(databaseResources) - , m_frontendProvider(FrontendProvider::create(frontend)) +Database* InspectorDatabaseAgent::databaseForId(long databaseId) { + DatabaseResourcesMap::iterator it = m_resources.find(databaseId); + if (it == m_resources.end()) + return 0; + return it->second->database(); } } // namespace WebCore |