Changeset 83841 in webkit


Ignore:
Timestamp:
Apr 14, 2011 5:32:17 AM (13 years ago)
Author:
loislo@chromium.org
Message:

2011-04-14 Ilya Tikhonovsky <loislo@chromium.org>

Reviewed by Pavel Feldman.

Web Inspector:Duplicated display of storage db when running Web SQL from an iframe.
https://bugs.webkit.org/show_bug.cgi?id=57830

There was created a new InspectorDatabaseResource entry for every didOpenDatabase event.
Moreover there is new WebCore::Database for each didOpenDatabase event.
I decided to change the old instance of the Database to a new one if they both use the same file.

  • inspector/InspectorDatabaseAgent.cpp: (WebCore::InspectorDatabaseAgent::didOpenDatabase): (WebCore::InspectorDatabaseAgent::findByFileName):
  • inspector/InspectorDatabaseAgent.h:
  • inspector/InspectorDatabaseResource.h: (WebCore::InspectorDatabaseResource::setDatabase):
Location:
trunk/Source/WebCore
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r83839 r83841  
     12011-04-14  Ilya Tikhonovsky  <loislo@chromium.org>
     2
     3        Reviewed by Pavel Feldman.
     4
     5        Web Inspector:Duplicated display of storage db when running Web SQL from an iframe.
     6        https://bugs.webkit.org/show_bug.cgi?id=57830
     7
     8        There was created a new InspectorDatabaseResource entry for every didOpenDatabase event.
     9        Moreover there is new WebCore::Database for each didOpenDatabase event.
     10        I decided to change the old instance of the Database to a new one if they both use the same file.
     11
     12        * inspector/InspectorDatabaseAgent.cpp:
     13        (WebCore::InspectorDatabaseAgent::didOpenDatabase):
     14        (WebCore::InspectorDatabaseAgent::findByFileName):
     15        * inspector/InspectorDatabaseAgent.h:
     16        * inspector/InspectorDatabaseResource.h:
     17        (WebCore::InspectorDatabaseResource::setDatabase):
     18
    1192011-04-14  Zoltan Herczeg  <zherczeg@inf.u-szeged.hu>
    220
  • trunk/Source/WebCore/inspector/InspectorDatabaseAgent.cpp

    r81572 r83841  
    221221void InspectorDatabaseAgent::didOpenDatabase(PassRefPtr<Database> database, const String& domain, const String& name, const String& version)
    222222{
     223    if (InspectorDatabaseResource* resource = findByFileName(database->fileName())) {
     224        resource->setDatabase(database);
     225        return;
     226    }
     227
    223228    RefPtr<InspectorDatabaseResource> resource = InspectorDatabaseResource::create(database, domain, name, version);
    224229    m_resources.set(resource->id(), resource);
     
    294299}
    295300
     301InspectorDatabaseResource* InspectorDatabaseAgent::findByFileName(const String& fileName)
     302{
     303    for (DatabaseResourcesMap::iterator it = m_resources.begin(); it != m_resources.end(); ++it) {
     304        if (it->second->database()->fileName() == fileName)
     305            return it->second.get();
     306    }
     307    return 0;
     308}
     309
    296310Database* InspectorDatabaseAgent::databaseForId(int databaseId)
    297311{
  • trunk/Source/WebCore/inspector/InspectorDatabaseAgent.h

    r81572 r83841  
    7171
    7272    Database* databaseForId(int databaseId);
     73    InspectorDatabaseResource* findByFileName(const String& fileName);
    7374
    7475    InstrumentingAgents* m_instrumentingAgents;
  • trunk/Source/WebCore/inspector/InspectorDatabaseResource.h

    r81572 r83841  
    4949    void bind(InspectorFrontend::Database*);
    5050    Database* database() { return m_database.get(); }
     51    void setDatabase(PassRefPtr<Database> database) { m_database = database; }
    5152    int id() const { return m_id; }
    5253
Note: See TracChangeset for help on using the changeset viewer.