Reviewed by Yury Semikhatsky.
Web Inspector: Database agent stops to propagate it's events after navigation.
https://bugs.webkit.org/show_bug.cgi?id=58776
* inspector/InspectorAgent.cpp:
(WebCore::InspectorAgent::InspectorAgent):
(WebCore::InspectorAgent::restoreInspectorStateFromCookie):
* inspector/InspectorDatabaseAgent.cpp:
(WebCore::InspectorDatabaseAgent::InspectorDatabaseAgent):
(WebCore::InspectorDatabaseAgent::clearFrontend):
(WebCore::InspectorDatabaseAgent::enable):
(WebCore::InspectorDatabaseAgent::disable):
(WebCore::InspectorDatabaseAgent::restore):
* inspector/InspectorDatabaseAgent.h:
(WebCore::InspectorDatabaseAgent::create):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@84134
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2011-04-18 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Reviewed by Yury Semikhatsky.
+
+ Web Inspector: Database agent stops to propagate it's events after navigation.
+ https://bugs.webkit.org/show_bug.cgi?id=58776
+
+ * inspector/InspectorAgent.cpp:
+ (WebCore::InspectorAgent::InspectorAgent):
+ (WebCore::InspectorAgent::restoreInspectorStateFromCookie):
+ * inspector/InspectorDatabaseAgent.cpp:
+ (WebCore::InspectorDatabaseAgent::InspectorDatabaseAgent):
+ (WebCore::InspectorDatabaseAgent::clearFrontend):
+ (WebCore::InspectorDatabaseAgent::enable):
+ (WebCore::InspectorDatabaseAgent::disable):
+ (WebCore::InspectorDatabaseAgent::restore):
+ * inspector/InspectorDatabaseAgent.h:
+ (WebCore::InspectorDatabaseAgent::create):
+
2011-04-18 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r83968.
, m_domAgent(InspectorDOMAgent::create(m_instrumentingAgents.get(), page, m_client, m_state.get(), injectedScriptManager))
, m_cssAgent(new InspectorCSSAgent(m_instrumentingAgents.get(), m_domAgent.get()))
#if ENABLE(DATABASE)
- , m_databaseAgent(InspectorDatabaseAgent::create(m_instrumentingAgents.get()))
+ , m_databaseAgent(InspectorDatabaseAgent::create(m_instrumentingAgents.get(), m_state.get()))
#endif
#if ENABLE(DOM_STORAGE)
, m_domStorageAgent(InspectorDOMStorageAgent::create(m_instrumentingAgents.get()))
m_resourceAgent->restore();
m_timelineAgent->restore();
+#if ENABLE(DATABASE)
+ m_databaseAgent->restore();
+#endif
+
#if ENABLE(JAVASCRIPT_DEBUGGER)
m_debuggerAgent->restore();
m_profilerAgent->restore();
#include "ExceptionCode.h"
#include "InspectorDatabaseResource.h"
#include "InspectorFrontend.h"
+#include "InspectorState.h"
#include "InspectorValues.h"
#include "InstrumentingAgents.h"
#include "SQLError.h"
namespace WebCore {
+namespace DatabaseAgentState {
+static const char databaseAgentEnabled[] = "databaseAgentEnabled";
+};
+
class InspectorDatabaseAgent::FrontendProvider : public RefCounted<InspectorDatabaseAgent::FrontendProvider> {
public:
static PassRefPtr<FrontendProvider> create(InspectorFrontend* inspectorFrontend)
m_resources.clear();
}
-InspectorDatabaseAgent::InspectorDatabaseAgent(InstrumentingAgents* instrumentingAgents)
+InspectorDatabaseAgent::InspectorDatabaseAgent(InstrumentingAgents* instrumentingAgents, InspectorState* state)
: m_instrumentingAgents(instrumentingAgents)
+ , m_inspectorState(state)
, m_enabled(false)
{
m_instrumentingAgents->setInspectorDatabaseAgent(this);
{
m_frontendProvider->clearFrontend();
m_frontendProvider.clear();
- m_enabled = false;
+ disable(0);
}
void InspectorDatabaseAgent::enable(ErrorString*)
if (m_enabled)
return;
m_enabled = true;
+ m_inspectorState->setBoolean(DatabaseAgentState::databaseAgentEnabled, m_enabled);
DatabaseResourcesMap::iterator databasesEnd = m_resources.end();
for (DatabaseResourcesMap::iterator it = m_resources.begin(); it != databasesEnd; ++it)
if (!m_enabled)
return;
m_enabled = false;
+ m_inspectorState->setBoolean(DatabaseAgentState::databaseAgentEnabled, m_enabled);
+}
+
+void InspectorDatabaseAgent::restore()
+{
+ m_enabled = m_inspectorState->getBoolean(DatabaseAgentState::databaseAgentEnabled);
}
void InspectorDatabaseAgent::getDatabaseTableNames(ErrorString* error, int databaseId, RefPtr<InspectorArray>* names)
class InspectorArray;
class InspectorDatabaseResource;
class InspectorFrontend;
+class InspectorState;
class InstrumentingAgents;
typedef String ErrorString;
public:
class FrontendProvider;
- static PassOwnPtr<InspectorDatabaseAgent> create(InstrumentingAgents* instrumentingAgents)
+ static PassOwnPtr<InspectorDatabaseAgent> create(InstrumentingAgents* instrumentingAgents, InspectorState* state)
{
- return adoptPtr(new InspectorDatabaseAgent(instrumentingAgents));
+ return adoptPtr(new InspectorDatabaseAgent(instrumentingAgents, state));
}
~InspectorDatabaseAgent();
void clearFrontend();
void clearResources();
+ void restore();
// Called from the front-end.
void enable(ErrorString*);
void didOpenDatabase(PassRefPtr<Database>, const String& domain, const String& name, const String& version);
private:
- explicit InspectorDatabaseAgent(InstrumentingAgents*);
+ explicit InspectorDatabaseAgent(InstrumentingAgents*, InspectorState*);
Database* databaseForId(int databaseId);
InspectorDatabaseResource* findByFileName(const String& fileName);
InstrumentingAgents* m_instrumentingAgents;
+ InspectorState* m_inspectorState;
typedef HashMap<int, RefPtr<InspectorDatabaseResource> > DatabaseResourcesMap;
DatabaseResourcesMap m_resources;
RefPtr<FrontendProvider> m_frontendProvider;