Reviewed by Pavel Feldman.
Web Inspector: The list of Database entries is empty if the page opens a database just before Web Inspector.
https://bugs.webkit.org/show_bug.cgi?id=57833
* http/tests/inspector-enabled/database-open.html:
2011-04-15 Ilya Tikhonovsky <loislo@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: The list of Database entries is empty if the page opens a database just before Web Inspector.
https://bugs.webkit.org/show_bug.cgi?id=57833
* inspector/Inspector.json:
* inspector/InspectorDatabaseAgent.cpp:
(WebCore::InspectorDatabaseAgent::didOpenDatabase):
(WebCore::InspectorDatabaseAgent::InspectorDatabaseAgent):
(WebCore::InspectorDatabaseAgent::setFrontend):
(WebCore::InspectorDatabaseAgent::clearFrontend):
(WebCore::InspectorDatabaseAgent::enable):
(WebCore::InspectorDatabaseAgent::disable):
(WebCore::InspectorDatabaseAgent::getDatabaseTableNames):
(WebCore::InspectorDatabaseAgent::executeSQL):
* inspector/InspectorDatabaseAgent.h:
* inspector/front-end/inspector.js:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@84080
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2011-04-15 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: The list of Database entries is empty if the page opens a database just before Web Inspector.
+ https://bugs.webkit.org/show_bug.cgi?id=57833
+
+ * http/tests/inspector-enabled/database-open.html:
+
2011-04-15 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
function test()
{
- var databases = WebInspector.panels.resources._databases;
- for (var i = 0; i < databases.length; ++i) {
- InspectorTest.addResult("Name: " + databases[i].name);
- InspectorTest.addResult("Version: " + databases[i].version);
- InspectorTest.addResult("Domain: " + databases[i].domain);
+ function run()
+ {
+ var databases = WebInspector.panels.resources._databases;
+ for (var i = 0; i < databases.length; ++i) {
+ InspectorTest.addResult("Name: " + databases[i].name);
+ InspectorTest.addResult("Version: " + databases[i].version);
+ InspectorTest.addResult("Domain: " + databases[i].domain);
+ }
+ InspectorTest.completeTest();
}
- InspectorTest.completeTest();
+ InspectorBackend.runAfterPendingDispatches(run);
}
</script>
+2011-04-15 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: The list of Database entries is empty if the page opens a database just before Web Inspector.
+ https://bugs.webkit.org/show_bug.cgi?id=57833
+
+ * inspector/Inspector.json:
+ * inspector/InspectorDatabaseAgent.cpp:
+ (WebCore::InspectorDatabaseAgent::didOpenDatabase):
+ (WebCore::InspectorDatabaseAgent::InspectorDatabaseAgent):
+ (WebCore::InspectorDatabaseAgent::setFrontend):
+ (WebCore::InspectorDatabaseAgent::clearFrontend):
+ (WebCore::InspectorDatabaseAgent::enable):
+ (WebCore::InspectorDatabaseAgent::disable):
+ (WebCore::InspectorDatabaseAgent::getDatabaseTableNames):
+ (WebCore::InspectorDatabaseAgent::executeSQL):
+ * inspector/InspectorDatabaseAgent.h:
+ * inspector/front-end/inspector.js:
+
2011-04-15 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
"domain": "Database",
"types": [],
"commands": [
+ {
+ "name": "enable",
+ "description": "Enables database tracking, database events will now be delivered to the client."
+ },
+ {
+ "name": "disable",
+ "description": "Disables database tracking, prevents database events from being sent to the client."
+ },
{
"name": "getDatabaseTableNames",
"parameters": [
RefPtr<InspectorDatabaseResource> resource = InspectorDatabaseResource::create(database, domain, name, version);
m_resources.set(resource->id(), resource);
// Resources are only bound while visible.
- if (m_frontendProvider)
+ if (m_frontendProvider && m_enabled)
resource->bind(m_frontendProvider->frontend());
}
InspectorDatabaseAgent::InspectorDatabaseAgent(InstrumentingAgents* instrumentingAgents)
: m_instrumentingAgents(instrumentingAgents)
+ , m_enabled(false)
{
m_instrumentingAgents->setInspectorDatabaseAgent(this);
}
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();
+ m_enabled = false;
+}
+
+void InspectorDatabaseAgent::enable(ErrorString*)
+{
+ if (m_enabled)
+ return;
+ m_enabled = true;
+
+ DatabaseResourcesMap::iterator databasesEnd = m_resources.end();
+ for (DatabaseResourcesMap::iterator it = m_resources.begin(); it != databasesEnd; ++it)
+ it->second->bind(m_frontendProvider->frontend());
}
-void InspectorDatabaseAgent::getDatabaseTableNames(ErrorString*, int databaseId, RefPtr<InspectorArray>* names)
+void InspectorDatabaseAgent::disable(ErrorString*)
{
+ if (!m_enabled)
+ return;
+ m_enabled = false;
+}
+
+void InspectorDatabaseAgent::getDatabaseTableNames(ErrorString* error, int databaseId, RefPtr<InspectorArray>* names)
+{
+ if (!m_enabled) {
+ *error = "Database agent is not enabled";
+ return;
+ }
+
Database* database = databaseForId(databaseId);
if (database) {
Vector<String> tableNames = database->tableNames();
}
}
-void InspectorDatabaseAgent::executeSQL(ErrorString*, int databaseId, const String& query, bool* success, int* transactionId)
+void InspectorDatabaseAgent::executeSQL(ErrorString* error, int databaseId, const String& query, bool* success, int* transactionId)
{
+ if (!m_enabled) {
+ *error = "Database agent is not enabled";
+ return;
+ }
+
Database* database = databaseForId(databaseId);
if (!database) {
*success = false;
void clearResources();
// Called from the front-end.
+ void enable(ErrorString*);
+ void disable(ErrorString*);
void getDatabaseTableNames(ErrorString*, int databaseId, RefPtr<InspectorArray>* names);
void executeSQL(ErrorString*, int databaseId, const String& query, bool* success, int* transactionId);
typedef HashMap<int, RefPtr<InspectorDatabaseResource> > DatabaseResourcesMap;
DatabaseResourcesMap m_resources;
RefPtr<FrontendProvider> m_frontendProvider;
+ bool m_enabled;
};
} // namespace WebCore
ConsoleAgent.setMonitoringXHREnabled(true);
ConsoleAgent.enable(this.console.setConsoleMessageExpiredCount.bind(this.console));
+ DatabaseAgent.enable();
+
WebInspector.showPanel(WebInspector.settings.lastActivePanel);
function propertyNamesCallback(error, names)