Changeset 64650 in webkit


Ignore:
Timestamp:
Aug 4, 2010 7:43:22 AM (14 years ago)
Author:
yurys@chromium.org
Message:

2010-08-04 Yury Semikhatsky <yurys@chromium.org>

Reviewed by Pavel Feldman.

Web Inspector: serialize database resources to InspectorValues
https://bugs.webkit.org/show_bug.cgi?id=43482

  • inspector/Inspector.idl:
  • inspector/InspectorBackend.cpp: (WebCore::InspectorBackend::getDatabaseTableNames):
  • inspector/InspectorController.cpp: (WebCore::InspectorController::populateScriptObjects): (WebCore::InspectorController::selectDatabase): (WebCore::InspectorController::didOpenDatabase):
  • inspector/InspectorController.h:
  • inspector/InspectorDatabaseResource.cpp: (WebCore::InspectorDatabaseResource::create): (WebCore::InspectorDatabaseResource::InspectorDatabaseResource): (WebCore::InspectorDatabaseResource::bind):
  • inspector/InspectorDatabaseResource.h:
  • inspector/InspectorFrontend.cpp:
  • inspector/InspectorFrontend.h:
  • storage/Database.cpp: (WebCore::Database::openDatabase):
Location:
trunk/WebCore
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r64647 r64650  
     12010-08-04  Yury Semikhatsky  <yurys@chromium.org>
     2
     3        Reviewed by Pavel Feldman.
     4
     5        Web Inspector: serialize database resources to InspectorValues
     6        https://bugs.webkit.org/show_bug.cgi?id=43482
     7
     8        * inspector/Inspector.idl:
     9        * inspector/InspectorBackend.cpp:
     10        (WebCore::InspectorBackend::getDatabaseTableNames):
     11        * inspector/InspectorController.cpp:
     12        (WebCore::InspectorController::populateScriptObjects):
     13        (WebCore::InspectorController::selectDatabase):
     14        (WebCore::InspectorController::didOpenDatabase):
     15        * inspector/InspectorController.h:
     16        * inspector/InspectorDatabaseResource.cpp:
     17        (WebCore::InspectorDatabaseResource::create):
     18        (WebCore::InspectorDatabaseResource::InspectorDatabaseResource):
     19        (WebCore::InspectorDatabaseResource::bind):
     20        * inspector/InspectorDatabaseResource.h:
     21        * inspector/InspectorFrontend.cpp:
     22        * inspector/InspectorFrontend.h:
     23        * storage/Database.cpp:
     24        (WebCore::Database::openDatabase):
     25
    1262010-08-03  Abhishek Arya  <inferno@chromium.org>
    227
  • trunk/WebCore/inspector/Inspector.idl

    r64642 r64650  
    5151        [notify] void resumedScript();
    5252        [notify] void addProfileHeader(out Object header);
     53#endif
     54#if defined(ENABLE_DATABASE) && ENABLE_DATABASE
     55        [notify] void addDatabase(out Object database);
     56        [notify] void selectDatabase(out int databaseId);
    5357#endif
    5458
     
    158162
    159163#if defined(ENABLE_DATABASE) && ENABLE_DATABASE
    160         [handler=Backend] void getDatabaseTableNames(in long callId, in long databaseId);
     164        [handler=Backend] void getDatabaseTableNames(in long callId, in long databaseId, out Array tableNames);
    161165#endif
    162166
  • trunk/WebCore/inspector/InspectorBackend.cpp

    r64536 r64650  
    135135void InspectorBackend::getDatabaseTableNames(long callId, long databaseId)
    136136{
    137     if (InspectorFrontend* frontend = inspectorFrontend()) {
    138         ScriptArray result = frontend->newScriptArray();
     137    if (RemoteInspectorFrontend* frontend = remoteFrontend()) {
     138        RefPtr<InspectorArray> result = InspectorArray::create();
    139139        Database* database = m_inspectorController->databaseForId(databaseId);
    140140        if (database) {
     
    142142            unsigned length = tableNames.size();
    143143            for (unsigned i = 0; i < length; ++i)
    144                 result.set(i, tableNames[i]);
     144                result->pushString(tableNames[i]);
    145145        }
    146146        frontend->didGetDatabaseTableNames(callId, result);
  • trunk/WebCore/inspector/InspectorController.cpp

    r64642 r64650  
    672672    DatabaseResourcesMap::iterator databasesEnd = m_databaseResources.end();
    673673    for (DatabaseResourcesMap::iterator it = m_databaseResources.begin(); it != databasesEnd; ++it)
    674         it->second->bind(m_frontend.get());
     674        it->second->bind(m_remoteFrontend.get());
    675675#endif
    676676#if ENABLE(DOM_STORAGE)
     
    12651265void InspectorController::selectDatabase(Database* database)
    12661266{
    1267     if (!m_frontend)
     1267    if (!m_remoteFrontend)
    12681268        return;
    12691269
    12701270    for (DatabaseResourcesMap::iterator it = m_databaseResources.begin(); it != m_databaseResources.end(); ++it) {
    12711271        if (it->second->database() == database) {
    1272             m_frontend->selectDatabase(it->first);
     1272            m_remoteFrontend->selectDatabase(it->first);
    12731273            break;
    12741274        }
     
    12841284}
    12851285
    1286 void InspectorController::didOpenDatabase(Database* database, const String& domain, const String& name, const String& version)
     1286void InspectorController::didOpenDatabase(PassRefPtr<Database> database, const String& domain, const String& name, const String& version)
    12871287{
    12881288    if (!enabled())
     
    12941294
    12951295    // Resources are only bound while visible.
    1296     if (m_frontend)
    1297         resource->bind(m_frontend.get());
     1296    if (m_remoteFrontend)
     1297        resource->bind(m_remoteFrontend.get());
    12981298}
    12991299#endif
  • trunk/WebCore/inspector/InspectorController.h

    r64642 r64650  
    214214
    215215#if ENABLE(DATABASE)
    216     void didOpenDatabase(Database*, const String& domain, const String& name, const String& version);
     216    void didOpenDatabase(PassRefPtr<Database>, const String& domain, const String& name, const String& version);
    217217#endif
    218218#if ENABLE(DOM_STORAGE)
  • trunk/WebCore/inspector/InspectorDatabaseResource.cpp

    r51598 r64650  
    3434#if ENABLE(DATABASE) && ENABLE(INSPECTOR)
    3535#include "Database.h"
    36 #include "Document.h"
    37 #include "Frame.h"
    38 #include "InspectorFrontend.h"
    39 #include "ScriptObject.h"
     36#include "InspectorValues.h"
     37#include "RemoteInspectorFrontend.h"
    4038
    4139namespace WebCore {
    4240
    43 int InspectorDatabaseResource::s_nextUnusedId = 1;
     41static int nextUnusedId = 1;
    4442
    45 InspectorDatabaseResource::InspectorDatabaseResource(Database* database, const String& domain, const String& name, const String& version)
     43PassRefPtr<InspectorDatabaseResource> InspectorDatabaseResource::create(PassRefPtr<Database> database, const String& domain, const String& name, const String& version)
     44{
     45    return adoptRef(new InspectorDatabaseResource(database, domain, name, version));
     46}
     47
     48InspectorDatabaseResource::InspectorDatabaseResource(PassRefPtr<Database> database, const String& domain, const String& name, const String& version)
    4649    : m_database(database)
    47     , m_id(s_nextUnusedId++)
     50    , m_id(nextUnusedId++)
    4851    , m_domain(domain)
    4952    , m_name(name)
     
    5356}
    5457
    55 void InspectorDatabaseResource::bind(InspectorFrontend* frontend)
     58void InspectorDatabaseResource::bind(RemoteInspectorFrontend* frontend)
    5659{
    5760    if (m_scriptObjectCreated)
    5861        return;
    5962
    60     ScriptObject jsonObject = frontend->newScriptObject();
    61     jsonObject.set("id", m_id);
    62     jsonObject.set("domain", m_domain);
    63     jsonObject.set("name", m_name);
    64     jsonObject.set("version", m_version);
    65     if (frontend->addDatabase(jsonObject))
    66         m_scriptObjectCreated = true;
     63    RefPtr<InspectorObject> jsonObject = InspectorObject::create();
     64    jsonObject->setNumber("id", m_id);
     65    jsonObject->setString("domain", m_domain);
     66    jsonObject->setString("name", m_name);
     67    jsonObject->setString("version", m_version);
     68
     69    frontend->addDatabase(jsonObject);
     70    m_scriptObjectCreated = true;
    6771}
    6872
  • trunk/WebCore/inspector/InspectorDatabaseResource.h

    r49234 r64650  
    3333
    3434#if ENABLE(DATABASE)
    35 
    36 #include "Database.h"
    37 #include "ScriptObject.h"
    38 #include "ScriptState.h"
    39 
     35#include "PlatformString.h"
    4036#include <wtf/PassRefPtr.h>
    4137#include <wtf/RefCounted.h>
     
    4339
    4440namespace WebCore {
    45     class InspectorFrontend;
    46    
    47     class InspectorDatabaseResource : public RefCounted<InspectorDatabaseResource> {
    48     public:
    49         static PassRefPtr<InspectorDatabaseResource> create(Database* database, const String& domain, const String& name, const String& version)
    50         {
    51             return adoptRef(new InspectorDatabaseResource(database, domain, name, version));
    52         }
     41class Database;
     42class RemoteInspectorFrontend;
    5343
    54         void bind(InspectorFrontend* frontend);
    55         void unbind();
    56         Database* database() { return m_database.get(); }
    57         long id() const { return m_id; }
    58     private:
    59         InspectorDatabaseResource(Database*, const String& domain, const String& name, const String& version);
    60        
    61         RefPtr<Database> m_database;
    62         int m_id;
    63         String m_domain;
    64         String m_name;
    65         String m_version;
    66         bool m_scriptObjectCreated;
     44class InspectorDatabaseResource : public RefCounted<InspectorDatabaseResource> {
     45public:
     46    static PassRefPtr<InspectorDatabaseResource> create(PassRefPtr<Database> database, const String& domain, const String& name, const String& version);
    6747
    68         static int s_nextUnusedId;
    69     };
     48    void bind(RemoteInspectorFrontend* frontend);
     49    void unbind();
     50    Database* database() { return m_database.get(); }
     51    long id() const { return m_id; }
     52private:
     53    InspectorDatabaseResource(PassRefPtr<Database>, const String& domain, const String& name, const String& version);
     54
     55    RefPtr<Database> m_database;
     56    int m_id;
     57    String m_domain;
     58    String m_name;
     59    String m_version;
     60    bool m_scriptObjectCreated;
     61};
    7062
    7163} // namespace WebCore
  • trunk/WebCore/inspector/InspectorFrontend.cpp

    r64642 r64650  
    383383}
    384384
    385 #if ENABLE(DATABASE)
    386 bool InspectorFrontend::addDatabase(const ScriptObject& dbObject)
    387 {
    388     ScriptFunctionCall function(m_webInspector, "dispatch");
    389     function.appendArgument("addDatabase");
    390     function.appendArgument(dbObject);
    391     bool hadException = false;
    392     function.call(hadException);
    393     return !hadException;
    394 }
    395 
    396 void InspectorFrontend::selectDatabase(int databaseId)
    397 {
    398     ScriptFunctionCall function(m_webInspector, "dispatch");
    399     function.appendArgument("selectDatabase");
    400     function.appendArgument(databaseId);
    401     function.call();
    402 }
    403 
    404 void InspectorFrontend::didGetDatabaseTableNames(long callId, const ScriptArray& tableNames)
    405 {
    406     ScriptFunctionCall function(m_webInspector, "dispatch");
    407     function.appendArgument("didGetDatabaseTableNames");
    408     function.appendArgument(callId);
    409     function.appendArgument(tableNames);
    410     function.call();
    411 }
    412 #endif
    413 
    414385#if ENABLE(DOM_STORAGE)
    415386bool InspectorFrontend::addDOMStorage(const ScriptObject& domStorageObj)
  • trunk/WebCore/inspector/InspectorFrontend.h

    r64642 r64650  
    107107#endif
    108108
    109 #if ENABLE(DATABASE)
    110         bool addDatabase(const ScriptObject& dbObj);
    111         void selectDatabase(int databaseId);
    112         void didGetDatabaseTableNames(long callId, const ScriptArray& tableNames);
    113 #endif
    114 
    115109#if ENABLE(DOM_STORAGE)
    116110        bool addDOMStorage(const ScriptObject& domStorageObj);
  • trunk/WebCore/storage/Database.cpp

    r64537 r64650  
    110110        Document* document = static_cast<Document*>(context);
    111111        if (Page* page = document->page())
    112             page->inspectorController()->didOpenDatabase(database.get(), context->securityOrigin()->host(), name, expectedVersion);
     112            page->inspectorController()->didOpenDatabase(database, context->securityOrigin()->host(), name, expectedVersion);
    113113    }
    114114#endif
Note: See TracChangeset for help on using the changeset viewer.