summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/inspector/InspectorDatabaseAgent.cpp
diff options
context:
space:
mode:
authorBen Murdoch <benm@google.com>2011-05-24 11:24:40 +0100
committerBen Murdoch <benm@google.com>2011-06-02 09:53:15 +0100
commit81bc750723a18f21cd17d1b173cd2a4dda9cea6e (patch)
tree7a9e5ed86ff429fd347a25153107221543909b19 /Source/WebCore/inspector/InspectorDatabaseAgent.cpp
parent94088a6d336c1dd80a1e734af51e96abcbb689a7 (diff)
downloadexternal_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.cpp78
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