diff options
author | Steve Block <steveblock@google.com> | 2011-05-25 08:15:24 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-05-25 08:15:24 -0700 |
commit | fa91a01aee5d4a80ca6c80f722116b850f09996c (patch) | |
tree | f72740e60d3c3d4f0ab144e88c03d1f134944ce3 /Source/WebCore/inspector/InspectorDatabaseAgent.cpp | |
parent | 96f37d6d1b390f6690858789706ee6ec25bc1677 (diff) | |
parent | feebf8e7a79ad68b04a1a948e2b8078d6e5f0048 (diff) | |
download | external_webkit-fa91a01aee5d4a80ca6c80f722116b850f09996c.zip external_webkit-fa91a01aee5d4a80ca6c80f722116b850f09996c.tar.gz external_webkit-fa91a01aee5d4a80ca6c80f722116b850f09996c.tar.bz2 |
Merge changes I78ff6a85,Ic85c6405,Ibf903baa,I3a0459db,I35140385,I54790419,I6bfe5d24,Ia9f39b83,I5bcecd5a,I1de96683,I543c6810,I8a5b0878,I0ae670bf,Ide4d58dc,I28ebaf3d,I499d6631,Ie5090e0d,I6d3e5f1f
* changes:
Merge WebKit at r78450: Update ThirdPartyProject.prop
Merge WebKit at r78450: Add new Font::canExpandAroundIdeographsInComplexText()
Merge WebKit at r78450: Add new ChromeClient::selectItemAlignmentFollowsMenuWritingDirection()
Merge WebKit at r78450: FrameLoaderClient::didRunInsecureContent() signature changed
Merge WebKit at r78450: HTMLAreaElement::getRect() renamed
Merge WebKit at r78450: FrameLoader::url() removed
Merge WebKit at r78450: HTMLParserQuirks removed
Merge WebKit at r78450: TextRun::padding() renamed
Merge WebKit at r78450: Use new FontMetrics
Merge WebKit at r78450: GraphicsContext current path removed
Merge WebKit at r78450: TransformationMatrix multiply methods renamed and meaning changed
Merge WebKit at r78450: FontCustomPlatformData::fontPlatformData() signature changed
Merge WebKit at r78450: IntRect::bottom()/right() renamed
Merge WebKit at r78450: Fix remaining conflicts
Merge WebKit at r78450: Fix conflicts due to new ENABLE_WEB_ARCHIVE guard
Merge WebKit at r78450: Fix conflicts in media controls
Merge WebKit at r78450: Fix Makefiles
Merge WebKit at r78450: Initial merge by git.
Diffstat (limited to 'Source/WebCore/inspector/InspectorDatabaseAgent.cpp')
-rw-r--r-- | Source/WebCore/inspector/InspectorDatabaseAgent.cpp | 94 |
1 files changed, 53 insertions, 41 deletions
diff --git a/Source/WebCore/inspector/InspectorDatabaseAgent.cpp b/Source/WebCore/inspector/InspectorDatabaseAgent.cpp index 36bcab8..221bdf2 100644 --- a/Source/WebCore/inspector/InspectorDatabaseAgent.cpp +++ b/Source/WebCore/inspector/InspectorDatabaseAgent.cpp @@ -34,7 +34,7 @@ #include "Database.h" #include "ExceptionCode.h" -#include "InspectorController.h" +#include "InspectorAgent.h" #include "InspectorDatabaseResource.h" #include "InspectorFrontend.h" #include "InspectorValues.h" @@ -52,32 +52,48 @@ namespace WebCore { +class InspectorDatabaseAgent::FrontendProvider : public RefCounted<InspectorDatabaseAgent::FrontendProvider> { +public: + static PassRefPtr<FrontendProvider> create(InspectorFrontend* inspectorFrontend) + { + return adoptRef(new FrontendProvider(inspectorFrontend)); + } + + virtual ~FrontendProvider() { } + + InspectorFrontend* frontend() { return m_inspectorFrontend; } + void clearFrontend() { m_inspectorFrontend = 0; } +private: + FrontendProvider(InspectorFrontend* inspectorFrontend) : m_inspectorFrontend(inspectorFrontend) { } + InspectorFrontend* m_inspectorFrontend; +}; + namespace { long lastTransactionId = 0; -void reportTransactionFailed(InspectorDatabaseAgent* agent, long transactionId, SQLError* error) +void reportTransactionFailed(InspectorFrontend* frontend, long transactionId, SQLError* error) { - if (!agent->frontend()) + if (!frontend) return; RefPtr<InspectorObject> errorObject = InspectorObject::create(); errorObject->setString("message", error->message()); errorObject->setNumber("code", error->code()); - agent->frontend()->sqlTransactionFailed(transactionId, errorObject); + frontend->sqlTransactionFailed(transactionId, errorObject); } class StatementCallback : public SQLStatementCallback { public: - static PassRefPtr<StatementCallback> create(long transactionId, PassRefPtr<InspectorDatabaseAgent> agent) + static PassRefPtr<StatementCallback> create(long transactionId, PassRefPtr<InspectorDatabaseAgent::FrontendProvider> frontendProvider) { - return adoptRef(new StatementCallback(transactionId, agent)); + return adoptRef(new StatementCallback(transactionId, frontendProvider)); } virtual ~StatementCallback() { } virtual bool handleEvent(SQLTransaction*, SQLResultSet* resultSet) { - if (!m_agent->frontend()) + if (!m_frontendProvider->frontend()) return true; SQLResultSetRowList* rowList = resultSet->rows(); @@ -97,92 +113,92 @@ public: case SQLValue::NullValue: values->pushValue(InspectorValue::null()); break; } } - m_agent->frontend()->sqlTransactionSucceeded(m_transactionId, columnNames, values); + m_frontendProvider->frontend()->sqlTransactionSucceeded(m_transactionId, columnNames, values); return true; } private: - StatementCallback(long transactionId, PassRefPtr<InspectorDatabaseAgent> agent) + StatementCallback(long transactionId, PassRefPtr<InspectorDatabaseAgent::FrontendProvider> frontendProvider) : m_transactionId(transactionId) - , m_agent(agent) { } + , m_frontendProvider(frontendProvider) { } long m_transactionId; - RefPtr<InspectorDatabaseAgent> m_agent; + RefPtr<InspectorDatabaseAgent::FrontendProvider> m_frontendProvider; }; class StatementErrorCallback : public SQLStatementErrorCallback { public: - static PassRefPtr<StatementErrorCallback> create(long transactionId, PassRefPtr<InspectorDatabaseAgent> agent) + static PassRefPtr<StatementErrorCallback> create(long transactionId, PassRefPtr<InspectorDatabaseAgent::FrontendProvider> frontendProvider) { - return adoptRef(new StatementErrorCallback(transactionId, agent)); + return adoptRef(new StatementErrorCallback(transactionId, frontendProvider)); } virtual ~StatementErrorCallback() { } virtual bool handleEvent(SQLTransaction*, SQLError* error) { - reportTransactionFailed(m_agent.get(), m_transactionId, error); + reportTransactionFailed(m_frontendProvider->frontend(), m_transactionId, error); return true; } private: - StatementErrorCallback(long transactionId, RefPtr<InspectorDatabaseAgent> agent) + StatementErrorCallback(long transactionId, PassRefPtr<InspectorDatabaseAgent::FrontendProvider> frontendProvider) : m_transactionId(transactionId) - , m_agent(agent) { } + , m_frontendProvider(frontendProvider) { } long m_transactionId; - RefPtr<InspectorDatabaseAgent> m_agent; + RefPtr<InspectorDatabaseAgent::FrontendProvider> m_frontendProvider; }; class TransactionCallback : public SQLTransactionCallback { public: - static PassRefPtr<TransactionCallback> create(const String& sqlStatement, long transactionId, PassRefPtr<InspectorDatabaseAgent> agent) + static PassRefPtr<TransactionCallback> create(const String& sqlStatement, long transactionId, PassRefPtr<InspectorDatabaseAgent::FrontendProvider> frontendProvider) { - return adoptRef(new TransactionCallback(sqlStatement, transactionId, agent)); + return adoptRef(new TransactionCallback(sqlStatement, transactionId, frontendProvider)); } virtual ~TransactionCallback() { } virtual bool handleEvent(SQLTransaction* transaction) { - if (!m_agent->frontend()) + if (!m_frontendProvider->frontend()) return true; Vector<SQLValue> sqlValues; - RefPtr<SQLStatementCallback> callback(StatementCallback::create(m_transactionId, m_agent)); - RefPtr<SQLStatementErrorCallback> errorCallback(StatementErrorCallback::create(m_transactionId, m_agent)); + RefPtr<SQLStatementCallback> callback(StatementCallback::create(m_transactionId, m_frontendProvider)); + RefPtr<SQLStatementErrorCallback> errorCallback(StatementErrorCallback::create(m_transactionId, m_frontendProvider)); ExceptionCode ec = 0; transaction->executeSQL(m_sqlStatement, sqlValues, callback.release(), errorCallback.release(), ec); return true; } private: - TransactionCallback(const String& sqlStatement, long transactionId, PassRefPtr<InspectorDatabaseAgent> agent) + TransactionCallback(const String& sqlStatement, long transactionId, PassRefPtr<InspectorDatabaseAgent::FrontendProvider> frontendProvider) : m_sqlStatement(sqlStatement) , m_transactionId(transactionId) - , m_agent(agent) { } + , m_frontendProvider(frontendProvider) { } String m_sqlStatement; long m_transactionId; - RefPtr<InspectorDatabaseAgent> m_agent; + RefPtr<InspectorDatabaseAgent::FrontendProvider> m_frontendProvider; }; class TransactionErrorCallback : public SQLTransactionErrorCallback { public: - static PassRefPtr<TransactionErrorCallback> create(long transactionId, PassRefPtr<InspectorDatabaseAgent> agent) + static PassRefPtr<TransactionErrorCallback> create(long transactionId, PassRefPtr<InspectorDatabaseAgent::FrontendProvider> frontendProvider) { - return adoptRef(new TransactionErrorCallback(transactionId, agent)); + return adoptRef(new TransactionErrorCallback(transactionId, frontendProvider)); } virtual ~TransactionErrorCallback() { } virtual bool handleEvent(SQLError* error) { - reportTransactionFailed(m_agent.get(), m_transactionId, error); + reportTransactionFailed(m_frontendProvider->frontend(), m_transactionId, error); return true; } private: - TransactionErrorCallback(long transactionId, PassRefPtr<InspectorDatabaseAgent> agent) + TransactionErrorCallback(long transactionId, PassRefPtr<InspectorDatabaseAgent::FrontendProvider> frontendProvider) : m_transactionId(transactionId) - , m_agent(agent) { } + , m_frontendProvider(frontendProvider) { } long m_transactionId; - RefPtr<InspectorDatabaseAgent> m_agent; + RefPtr<InspectorDatabaseAgent::FrontendProvider> m_frontendProvider; }; class TransactionSuccessCallback : public VoidCallback { @@ -204,6 +220,7 @@ private: InspectorDatabaseAgent::~InspectorDatabaseAgent() { + m_frontendProvider->clearFrontend(); } void InspectorDatabaseAgent::getDatabaseTableNames(long databaseId, RefPtr<InspectorArray>* names) @@ -226,8 +243,8 @@ void InspectorDatabaseAgent::executeSQL(long databaseId, const String& query, bo } *transactionId = ++lastTransactionId; - RefPtr<SQLTransactionCallback> callback(TransactionCallback::create(query, *transactionId, this)); - RefPtr<SQLTransactionErrorCallback> errorCallback(TransactionErrorCallback::create(*transactionId, this)); + RefPtr<SQLTransactionCallback> callback(TransactionCallback::create(query, *transactionId, m_frontendProvider)); + RefPtr<SQLTransactionErrorCallback> errorCallback(TransactionErrorCallback::create(*transactionId, m_frontendProvider)); RefPtr<VoidCallback> successCallback(TransactionSuccessCallback::create()); database->transaction(callback.release(), errorCallback.release(), successCallback.release()); *success = true; @@ -243,25 +260,20 @@ Database* InspectorDatabaseAgent::databaseForId(long databaseId) void InspectorDatabaseAgent::selectDatabase(Database* database) { - if (!m_frontend) + if (!m_frontendProvider->frontend()) return; for (DatabaseResourcesMap::iterator it = m_databaseResources->begin(); it != m_databaseResources->end(); ++it) { if (it->second->database() == database) { - m_frontend->selectDatabase(it->first); + m_frontendProvider->frontend()->selectDatabase(it->first); break; } } } -void InspectorDatabaseAgent::clearFrontend() -{ - m_frontend = 0; -} - InspectorDatabaseAgent::InspectorDatabaseAgent(DatabaseResourcesMap* databaseResources, InspectorFrontend* frontend) : m_databaseResources(databaseResources) - , m_frontend(frontend) + , m_frontendProvider(FrontendProvider::create(frontend)) { } |