Diff
Modified: trunk/LayoutTests/ChangeLog (144051 => 144052)
--- trunk/LayoutTests/ChangeLog 2013-02-26 13:57:36 UTC (rev 144051)
+++ trunk/LayoutTests/ChangeLog 2013-02-26 14:20:26 UTC (rev 144052)
@@ -1,3 +1,13 @@
+2013-02-26 Vsevolod Vlasov <vse...@chromium.org>
+
+ Web Inspector: Migrate IndexedDB support to ResourceTreeModel's SecurityOriginAdded/Removed events.
+ https://bugs.webkit.org/show_bug.cgi?id=110863
+
+ Reviewed by Alexander Pavlov.
+
+ * http/tests/inspector/indexeddb/database-names-expected.txt:
+ * http/tests/inspector/indexeddb/database-names.html:
+
2013-02-26 Csaba Osztrogonác <o...@webkit.org>
Unreviewed fix after r144032.
Modified: trunk/LayoutTests/http/tests/inspector/indexeddb/database-names-expected.txt (144051 => 144052)
--- trunk/LayoutTests/http/tests/inspector/indexeddb/database-names-expected.txt 2013-02-26 13:57:36 UTC (rev 144051)
+++ trunk/LayoutTests/http/tests/inspector/indexeddb/database-names-expected.txt 2013-02-26 14:20:26 UTC (rev 144052)
@@ -5,6 +5,7 @@
Tests that database names are correctly loaded and saved in IndexedDBModel.
Dumping database names:
+
Dumping database names:
testDatabase1
@@ -17,3 +18,4 @@
Dumping database names:
+
Modified: trunk/LayoutTests/http/tests/inspector/indexeddb/database-names.html (144051 => 144052)
--- trunk/LayoutTests/http/tests/inspector/indexeddb/database-names.html 2013-02-26 13:57:36 UTC (rev 144051)
+++ trunk/LayoutTests/http/tests/inspector/indexeddb/database-names.html 2013-02-26 14:20:26 UTC (rev 144052)
@@ -11,11 +11,8 @@
function dumpDatabaseNames()
{
InspectorTest.addResult("Dumping database names:");
- var frame = indexedDBModel._frames[mainFrameId];
- if (!frame)
- return;
-
- var securityOrigin = frame.securityOrigin;
+ var securityOrigins = WebInspector.resourceTreeModel.securityOrigins();
+ var securityOrigin = securityOrigins[0];
var names = indexedDBModel._databaseNamesBySecurityOrigin[securityOrigin];
for (var i = 0; i < names.length; ++i)
InspectorTest.addResult(" " + names[i]);
Modified: trunk/Source/WebCore/ChangeLog (144051 => 144052)
--- trunk/Source/WebCore/ChangeLog 2013-02-26 13:57:36 UTC (rev 144051)
+++ trunk/Source/WebCore/ChangeLog 2013-02-26 14:20:26 UTC (rev 144052)
@@ -1,3 +1,37 @@
+2013-02-26 Vsevolod Vlasov <vse...@chromium.org>
+
+ Web Inspector: Migrate IndexedDB support to ResourceTreeModel's SecurityOriginAdded/Removed events.
+ https://bugs.webkit.org/show_bug.cgi?id=110863
+
+ Reviewed by Alexander Pavlov.
+
+ Recently added SecurityOriginAdded/Removed events support was essentially duplicated in
+ IndexedDBModel. This patch migrates IndexedDB support to new events.
+
+ * inspector/Inspector.json:
+ * inspector/InspectorIndexedDBAgent.cpp:
+ (WebCore):
+ (WebCore::InspectorIndexedDBAgent::requestDatabaseNames):
+ (WebCore::InspectorIndexedDBAgent::requestDatabase):
+ (WebCore::InspectorIndexedDBAgent::requestData):
+ * inspector/InspectorIndexedDBAgent.h:
+ (InspectorIndexedDBAgent):
+ * inspector/front-end/IndexedDBModel.js:
+ (WebInspector.IndexedDBModel):
+ (WebInspector.IndexedDBModel.prototype._reset):
+ (WebInspector.IndexedDBModel.prototype.refreshDatabaseNames):
+ (WebInspector.IndexedDBModel.prototype._securityOriginAdded):
+ (WebInspector.IndexedDBModel.prototype._securityOriginRemoved):
+ (WebInspector.IndexedDBModel.prototype._addOrigin):
+ (WebInspector.IndexedDBModel.prototype._removeOrigin):
+ (WebInspector.IndexedDBModel.prototype._updateOriginDatabaseNames):
+ (WebInspector.IndexedDBModel.prototype._loadDatabaseNames):
+ (WebInspector.IndexedDBModel.prototype._loadDatabase):
+ (WebInspector.IndexedDBModel.prototype.):
+ (WebInspector.IndexedDBModel.prototype._requestData):
+ * inspector/front-end/ResourceTreeModel.js:
+ (WebInspector.ResourceTreeModel.prototype.securityOrigins):
+
2013-02-26 Alexander Pavlov <apav...@chromium.org>
Web Inspector: in protocol make field "securityOrigin" in type Page.Frame mandatory
Modified: trunk/Source/WebCore/inspector/Inspector.json (144051 => 144052)
--- trunk/Source/WebCore/inspector/Inspector.json 2013-02-26 13:57:36 UTC (rev 144051)
+++ trunk/Source/WebCore/inspector/Inspector.json 2013-02-26 14:20:26 UTC (rev 144052)
@@ -1283,15 +1283,6 @@
"hidden": true,
"types": [
{
- "id": "SecurityOriginWithDatabaseNames",
- "type": "object",
- "description": "Security origin with database names.",
- "properties": [
- { "name": "securityOrigin", "type": "string", "description": "Security origin." },
- { "name": "databaseNames", "type": "array", "items": { "type": "string" }, "description": "Database names for this origin." }
- ]
- },
- {
"id": "DatabaseWithObjectStores",
"type": "object",
"description": "Database with an array of object stores.",
@@ -1378,21 +1369,21 @@
"description": "Disables events from backend."
},
{
- "name": "requestDatabaseNamesForFrame",
+ "name": "requestDatabaseNames",
"async": true,
"parameters": [
- { "name": "frameId", "$ref": "Network.FrameId", "description": "Frame id." }
+ { "name": "securityOrigin", "type": "string", "description": "Security origin." }
],
"returns": [
- { "name": "securityOriginWithDatabaseNames", "$ref": "SecurityOriginWithDatabaseNames", "description": "Frame with database names." }
+ { "name": "databaseNames", "type": "array", "items": { "type": "string" }, "description": "Database names for origin." }
],
- "description": "Requests database names for given frame's security origin."
+ "description": "Requests database names for given security origin."
},
{
"name": "requestDatabase",
"async": true,
"parameters": [
- { "name": "frameId", "$ref": "Network.FrameId", "description": "Frame id." },
+ { "name": "securityOrigin", "type": "string", "description": "Security origin." },
{ "name": "databaseName", "type": "string", "description": "Database name." }
],
"returns": [
@@ -1404,7 +1395,7 @@
"name": "requestData",
"async": true,
"parameters": [
- { "name": "frameId", "$ref": "Network.FrameId", "description": "Frame id." },
+ { "name": "securityOrigin", "type": "string", "description": "Security origin." },
{ "name": "databaseName", "type": "string", "description": "Database name." },
{ "name": "objectStoreName", "type": "string", "description": "Object store name." },
{ "name": "indexName", "type": "string", "description": "Index name, empty string for object store data requests." },
Modified: trunk/Source/WebCore/inspector/InspectorIndexedDBAgent.cpp (144051 => 144052)
--- trunk/Source/WebCore/inspector/InspectorIndexedDBAgent.cpp 2013-02-26 13:57:36 UTC (rev 144051)
+++ trunk/Source/WebCore/inspector/InspectorIndexedDBAgent.cpp 2013-02-26 14:20:26 UTC (rev 144052)
@@ -68,7 +68,6 @@
#include <wtf/Vector.h>
using WebCore::TypeBuilder::Array;
-using WebCore::TypeBuilder::IndexedDB::SecurityOriginWithDatabaseNames;
using WebCore::TypeBuilder::IndexedDB::DatabaseWithObjectStores;
using WebCore::TypeBuilder::IndexedDB::DataEntry;
using WebCore::TypeBuilder::IndexedDB::Key;
@@ -77,7 +76,7 @@
using WebCore::TypeBuilder::IndexedDB::ObjectStore;
using WebCore::TypeBuilder::IndexedDB::ObjectStoreIndex;
-typedef WebCore::InspectorBackendDispatcher::IndexedDBCommandHandler::RequestDatabaseNamesForFrameCallback RequestDatabaseNamesForFrameCallback;
+typedef WebCore::InspectorBackendDispatcher::IndexedDBCommandHandler::RequestDatabaseNamesCallback RequestDatabaseNamesCallback;
typedef WebCore::InspectorBackendDispatcher::IndexedDBCommandHandler::RequestDatabaseCallback RequestDatabaseCallback;
typedef WebCore::InspectorBackendDispatcher::IndexedDBCommandHandler::RequestDataCallback RequestDataCallback;
typedef WebCore::InspectorBackendDispatcher::CallbackBase RequestCallback;
@@ -93,7 +92,7 @@
class GetDatabaseNamesCallback : public EventListener {
WTF_MAKE_NONCOPYABLE(GetDatabaseNamesCallback);
public:
- static PassRefPtr<GetDatabaseNamesCallback> create(PassRefPtr<RequestDatabaseNamesForFrameCallback> requestCallback, const String& securityOrigin)
+ static PassRefPtr<GetDatabaseNamesCallback> create(PassRefPtr<RequestDatabaseNamesCallback> requestCallback, const String& securityOrigin)
{
return adoptRef(new GetDatabaseNamesCallback(requestCallback, securityOrigin));
}
@@ -125,23 +124,20 @@
m_requestCallback->sendFailure("Unexpected result type.");
return;
}
+
RefPtr<DOMStringList> databaseNamesList = requestResult->domStringList();
RefPtr<TypeBuilder::Array<String> > databaseNames = TypeBuilder::Array<String>::create();
for (size_t i = 0; i < databaseNamesList->length(); ++i)
databaseNames->addItem(databaseNamesList->item(i));
-
- RefPtr<SecurityOriginWithDatabaseNames> result = SecurityOriginWithDatabaseNames::create()
- .setSecurityOrigin(m_securityOrigin)
- .setDatabaseNames(databaseNames);
- m_requestCallback->sendSuccess(result);
+ m_requestCallback->sendSuccess(databaseNames.release());
}
private:
- GetDatabaseNamesCallback(PassRefPtr<RequestDatabaseNamesForFrameCallback> requestCallback, const String& securityOrigin)
+ GetDatabaseNamesCallback(PassRefPtr<RequestDatabaseNamesCallback> requestCallback, const String& securityOrigin)
: EventListener(EventListener::CPPEventListenerType)
, m_requestCallback(requestCallback)
, m_securityOrigin(securityOrigin) { }
- RefPtr<RequestDatabaseNamesForFrameCallback> m_requestCallback;
+ RefPtr<RequestDatabaseNamesCallback> m_requestCallback;
String m_securityOrigin;
};
@@ -590,16 +586,6 @@
m_state->setBoolean(IndexedDBAgentState::indexedDBAgentEnabled, false);
}
-static Frame* assertFrame(ErrorString* errorString, const String& frameId, InspectorPageAgent* pageAgent)
-{
- Frame* frame = pageAgent->frameForId(frameId);
-
- if (!frame)
- *errorString = "Frame not found";
-
- return frame;
-}
-
static Document* assertDocument(ErrorString* errorString, Frame* frame)
{
Document* document = frame ? frame->document() : 0;
@@ -610,17 +596,6 @@
return document;
}
-static Document* assertDocument(ErrorString* errorString, const String& frameId, InspectorPageAgent* pageAgent)
-{
- Frame* frame = pageAgent->frameForId(frameId);
- Document* document = frame ? frame->document() : 0;
-
- if (!document)
- *errorString = "No document for given frame found";
-
- return document;
-}
-
static IDBFactory* assertIDBFactory(ErrorString* errorString, Document* document)
{
DOMWindow* domWindow = document->domWindow();
@@ -636,9 +611,10 @@
return idbFactory;
}
-void InspectorIndexedDBAgent::requestDatabaseNamesForFrame(ErrorString* errorString, const String& frameId, PassRefPtr<RequestDatabaseNamesForFrameCallback> requestCallback)
+void InspectorIndexedDBAgent::requestDatabaseNames(ErrorString* errorString, const String& securityOrigin, PassRefPtr<RequestDatabaseNamesCallback> requestCallback)
{
- Document* document = assertDocument(errorString, frameId, m_pageAgent);
+ Frame* frame = m_pageAgent->findFrameWithSecurityOrigin(securityOrigin);
+ Document* document = assertDocument(errorString, frame);
if (!document)
return;
IDBFactory* idbFactory = assertIDBFactory(errorString, document);
@@ -661,9 +637,10 @@
idbRequest->addEventListener(eventNames().successEvent, GetDatabaseNamesCallback::create(requestCallback, document->securityOrigin()->toRawString()), false);
}
-void InspectorIndexedDBAgent::requestDatabase(ErrorString* errorString, const String& frameId, const String& databaseName, PassRefPtr<RequestDatabaseCallback> requestCallback)
+void InspectorIndexedDBAgent::requestDatabase(ErrorString* errorString, const String& securityOrigin, const String& databaseName, PassRefPtr<RequestDatabaseCallback> requestCallback)
{
- Document* document = assertDocument(errorString, frameId, m_pageAgent);
+ Frame* frame = m_pageAgent->findFrameWithSecurityOrigin(securityOrigin);
+ Document* document = assertDocument(errorString, frame);
if (!document)
return;
IDBFactory* idbFactory = assertIDBFactory(errorString, document);
@@ -681,11 +658,9 @@
databaseLoader->start(idbFactory, document->securityOrigin(), databaseName);
}
-void InspectorIndexedDBAgent::requestData(ErrorString* errorString, const String& frameId, const String& databaseName, const String& objectStoreName, const String& indexName, int skipCount, int pageSize, const RefPtr<InspectorObject>* keyRange, PassRefPtr<RequestDataCallback> requestCallback)
+void InspectorIndexedDBAgent::requestData(ErrorString* errorString, const String& securityOrigin, const String& databaseName, const String& objectStoreName, const String& indexName, int skipCount, int pageSize, const RefPtr<InspectorObject>* keyRange, PassRefPtr<RequestDataCallback> requestCallback)
{
- Frame* frame = assertFrame(errorString, frameId, m_pageAgent);
- if (!frame)
- return;
+ Frame* frame = m_pageAgent->findFrameWithSecurityOrigin(securityOrigin);
Document* document = assertDocument(errorString, frame);
if (!document)
return;
Modified: trunk/Source/WebCore/inspector/InspectorIndexedDBAgent.h (144051 => 144052)
--- trunk/Source/WebCore/inspector/InspectorIndexedDBAgent.h 2013-02-26 13:57:36 UTC (rev 144051)
+++ trunk/Source/WebCore/inspector/InspectorIndexedDBAgent.h 2013-02-26 14:20:26 UTC (rev 144052)
@@ -58,9 +58,9 @@
// Called from the front-end.
virtual void enable(ErrorString*);
virtual void disable(ErrorString*);
- virtual void requestDatabaseNamesForFrame(ErrorString*, const String& frameId, PassRefPtr<RequestDatabaseNamesForFrameCallback>);
- virtual void requestDatabase(ErrorString*, const String& frameId, const String& databaseName, PassRefPtr<RequestDatabaseCallback>);
- virtual void requestData(ErrorString*, const String& frameId, const String& databaseName, const String& objectStoreName, const String& indexName, int skipCount, int pageSize, const RefPtr<InspectorObject>* keyRange, PassRefPtr<RequestDataCallback>);
+ virtual void requestDatabaseNames(ErrorString*, const String& securityOrigin, PassRefPtr<RequestDatabaseNamesCallback>);
+ virtual void requestDatabase(ErrorString*, const String& securityOrigin, const String& databaseName, PassRefPtr<RequestDatabaseCallback>);
+ virtual void requestData(ErrorString*, const String& securityOrigin, const String& databaseName, const String& objectStoreName, const String& indexName, int skipCount, int pageSize, const RefPtr<InspectorObject>* keyRange, PassRefPtr<RequestDataCallback>);
private:
InspectorIndexedDBAgent(InstrumentingAgents*, InspectorCompositeState*, InjectedScriptManager*, InspectorPageAgent*);
Modified: trunk/Source/WebCore/inspector/front-end/IndexedDBModel.js (144051 => 144052)
--- trunk/Source/WebCore/inspector/front-end/IndexedDBModel.js 2013-02-26 13:57:36 UTC (rev 144051)
+++ trunk/Source/WebCore/inspector/front-end/IndexedDBModel.js 2013-02-26 14:20:26 UTC (rev 144052)
@@ -36,16 +36,12 @@
{
IndexedDBAgent.enable();
- WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.FrameAdded, this._frameNavigated, this);
- WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.FrameNavigated, this._frameNavigated, this);
- WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.FrameDetached, this._frameDetached, this);
+ WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.SecurityOriginAdded, this._securityOriginAdded, this);
+ WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.SecurityOriginRemoved, this._securityOriginRemoved, this);
- this._frames = {};
this._databases = new Map();
- this._frameIdsBySecurityOrigin = {};
this._databaseNamesBySecurityOrigin = {};
-
- this.refreshDatabaseNames();
+ this._reset();
}
WebInspector.IndexedDBModel.KeyTypes = {
@@ -143,11 +139,19 @@
}
WebInspector.IndexedDBModel.prototype = {
+ _reset: function()
+ {
+ for (var securityOrigin in this._databaseNamesBySecurityOrigin)
+ this._removeOrigin(securityOrigin);
+ var securityOrigins = WebInspector.resourceTreeModel.securityOrigins();
+ for (var i = 0; i < securityOrigins.length; ++i)
+ this._addOrigin(securityOrigins[i]);
+ },
+
refreshDatabaseNames: function()
{
- this._reset();
- if (WebInspector.resourceTreeModel.mainFrame)
- this._framesNavigatedRecursively(WebInspector.resourceTreeModel.mainFrame);
+ for (var securityOrigin in this._databaseNamesBySecurityOrigin)
+ this._loadDatabaseNames(securityOrigin);
},
/**
@@ -159,97 +163,39 @@
},
/**
- * @param {WebInspector.ResourceTreeFrame} resourceTreeFrame
- */
- _framesNavigatedRecursively: function(resourceTreeFrame)
- {
- this._processFrameNavigated(resourceTreeFrame);
- for (var i = 0; i < resourceTreeFrame.childFrames.length; ++i)
- this._framesNavigatedRecursively(resourceTreeFrame.childFrames[i]);
- },
-
- /**
* @param {WebInspector.Event} event
*/
- _frameNavigated: function(event)
+ _securityOriginAdded: function(event)
{
- var resourceTreeFrame = /** @type {WebInspector.ResourceTreeFrame} */ (event.data);
- this._processFrameNavigated(resourceTreeFrame);
+ var securityOrigin = /** @type {string} */ (event.data);
+ this._addOrigin(securityOrigin);
},
/**
* @param {WebInspector.Event} event
*/
- _frameDetached: function(event)
+ _securityOriginRemoved: function(event)
{
- var resourceTreeFrame = /** @type {WebInspector.ResourceTreeFrame} */ (event.data);
- this._originRemovedFromFrame(resourceTreeFrame.id);
+ var securityOrigin = /** @type {string} */ (event.data);
+ this._removeOrigin(securityOrigin);
},
- _reset: function()
- {
- for (var frameId in this._frames)
- this._originRemovedFromFrame(frameId);
- },
-
/**
- * @param {WebInspector.ResourceTreeFrame} resourceTreeFrame
- */
- _processFrameNavigated: function(resourceTreeFrame)
- {
- if (resourceTreeFrame.securityOrigin === "null")
- return;
- if (this._frameIdsBySecurityOrigin[resourceTreeFrame.securityOrigin])
- this._originAddedToFrame(resourceTreeFrame.id, resourceTreeFrame.securityOrigin);
- else
- this._loadDatabaseNamesForFrame(resourceTreeFrame.id);
- },
-
- /**
- * @param {string} frameId
* @param {string} securityOrigin
*/
- _originAddedToFrame: function(frameId, securityOrigin)
+ _addOrigin: function(securityOrigin)
{
- if (!this._frameIdsBySecurityOrigin[securityOrigin]) {
- this._frameIdsBySecurityOrigin[securityOrigin] = [];
- this._frameIdsBySecurityOrigin[securityOrigin].push(frameId);
- this._databaseNamesBySecurityOrigin[securityOrigin] = [];
- }
- this._frames[frameId] = new WebInspector.IndexedDBModel.Frame(frameId, securityOrigin);
+ console.assert(!this._databaseNamesBySecurityOrigin[securityOrigin]);
+ this._databaseNamesBySecurityOrigin[securityOrigin] = [];
+ this._loadDatabaseNames(securityOrigin);
},
/**
- * @param {string} frameId
- */
- _originRemovedFromFrame: function(frameId)
- {
- var currentSecurityOrigin = this._frames[frameId] ? this._frames[frameId].securityOrigin : null;
- if (!currentSecurityOrigin)
- return;
-
- delete this._frames[frameId];
-
- var frameIdsForOrigin = this._frameIdsBySecurityOrigin[currentSecurityOrigin];
- for (var i = 0; i < frameIdsForOrigin; ++i) {
- if (frameIdsForOrigin[i] === frameId) {
- frameIdsForOrigin.splice(i, 1);
- break;
- }
- }
- if (!frameIdsForOrigin.length)
- this._originRemoved(currentSecurityOrigin);
- },
-
- /**
* @param {string} securityOrigin
*/
- _originRemoved: function(securityOrigin)
+ _removeOrigin: function(securityOrigin)
{
- var frameIdsForOrigin = this._frameIdsBySecurityOrigin[securityOrigin];
- for (var i = 0; i < frameIdsForOrigin; ++i)
- delete this._frames[frameIdsForOrigin[i]];
- delete this._frameIdsBySecurityOrigin[securityOrigin];
+ console.assert(this._databaseNamesBySecurityOrigin[securityOrigin]);
for (var i = 0; i < this._databaseNamesBySecurityOrigin[securityOrigin].length; ++i)
this._databaseRemoved(securityOrigin, this._databaseNamesBySecurityOrigin[securityOrigin][i]);
delete this._databaseNamesBySecurityOrigin[securityOrigin];
@@ -266,7 +212,7 @@
newDatabaseNames[databaseNames[i]] = true;
var oldDatabaseNames = {};
for (var i = 0; i < this._databaseNamesBySecurityOrigin[securityOrigin].length; ++i)
- oldDatabaseNames[databaseNames[i]] = true;
+ oldDatabaseNames[this._databaseNamesBySecurityOrigin[securityOrigin][i]] = true;
this._databaseNamesBySecurityOrigin[securityOrigin] = databaseNames;
@@ -278,9 +224,6 @@
if (!oldDatabaseNames[databaseName])
this._databaseAdded(securityOrigin, databaseName);
}
-
- if (!this._databaseNamesBySecurityOrigin[securityOrigin].length)
- this._originRemoved(securityOrigin);
},
/**
@@ -304,55 +247,34 @@
},
/**
- * @param {string} frameId
+ * @param {string} securityOrigin
*/
- _loadDatabaseNamesForFrame: function(frameId)
+ _loadDatabaseNames: function(securityOrigin)
{
/**
* @param {?Protocol.Error} error
- * @param {IndexedDBAgent.SecurityOriginWithDatabaseNames} securityOriginWithDatabaseNames
+ * @param {Array.<string>} databaseNames
*/
- function callback(error, securityOriginWithDatabaseNames)
+ function callback(error, databaseNames)
{
if (error) {
console.error("IndexedDBAgent error: " + error);
return;
}
- var databaseNames = securityOriginWithDatabaseNames.databaseNames;
- var oldSecurityOrigin = this._frames[frameId] ? this._frames[frameId].securityOrigin : null;
- if (!oldSecurityOrigin || oldSecurityOrigin !== securityOriginWithDatabaseNames.securityOrigin) {
- this._originRemovedFromFrame(frameId);
- this._originAddedToFrame(frameId, securityOriginWithDatabaseNames.securityOrigin);
- }
- this._updateOriginDatabaseNames(securityOriginWithDatabaseNames.securityOrigin, securityOriginWithDatabaseNames.databaseNames);
+ if (!this._databaseNamesBySecurityOrigin[securityOrigin])
+ return;
+ this._updateOriginDatabaseNames(securityOrigin, databaseNames);
}
- IndexedDBAgent.requestDatabaseNamesForFrame(frameId, callback.bind(this));
+ IndexedDBAgent.requestDatabaseNames(securityOrigin, callback.bind(this));
},
/**
* @param {WebInspector.IndexedDBModel.DatabaseId} databaseId
- * @return {string|null}
*/
- _assertFrameId: function(databaseId)
- {
- var frameIds = this._frameIdsBySecurityOrigin[databaseId.securityOrigin];
- if (!frameIds || !frameIds.length)
- return null;
-
- return frameIds[0];
- },
-
- /**
- * @param {WebInspector.IndexedDBModel.DatabaseId} databaseId
- */
_loadDatabase: function(databaseId)
{
- var frameId = this._assertFrameId(databaseId);
- if (!frameId)
- return;
-
/**
* @param {?Protocol.Error} error
* @param {IndexedDBAgent.DatabaseWithObjectStores} databaseWithObjectStores
@@ -364,9 +286,8 @@
return;
}
- if (!this._frames[frameId])
+ if (!this._databaseNamesBySecurityOrigin[databaseId.securityOrigin])
return;
-
var databaseModel = new WebInspector.IndexedDBModel.Database(databaseId, databaseWithObjectStores.version, databaseWithObjectStores.intVersion);
this._databases.put(databaseId, databaseModel);
for (var i = 0; i < databaseWithObjectStores.objectStores.length; ++i) {
@@ -385,7 +306,7 @@
this.dispatchEventToListeners(WebInspector.IndexedDBModel.EventTypes.DatabaseLoaded, databaseModel);
}
- IndexedDBAgent.requestDatabase(frameId, databaseId.name, callback.bind(this));
+ IndexedDBAgent.requestDatabase(databaseId.securityOrigin, databaseId.name, callback.bind(this));
},
/**
@@ -427,10 +348,6 @@
*/
_requestData: function(databaseId, databaseName, objectStoreName, indexName, idbKeyRange, skipCount, pageSize, callback)
{
- var frameId = this._assertFrameId(databaseId);
- if (!frameId)
- return;
-
/**
* @param {?Protocol.Error} error
* @param {Array.<IndexedDBAgent.DataEntry>} dataEntries
@@ -443,9 +360,8 @@
return;
}
- if (!this._frames[frameId])
+ if (!this._databaseNamesBySecurityOrigin[databaseId.securityOrigin])
return;
-
var entries = [];
for (var i = 0; i < dataEntries.length; ++i) {
var key = WebInspector.RemoteObject.fromPayload(dataEntries[i].key);
@@ -457,7 +373,7 @@
}
var keyRange = WebInspector.IndexedDBModel.keyRangeFromIDBKeyRange(idbKeyRange);
- IndexedDBAgent.requestData(frameId, databaseName, objectStoreName, indexName, skipCount, pageSize, keyRange ? keyRange : undefined, innerCallback.bind(this));
+ IndexedDBAgent.requestData(databaseId.securityOrigin, databaseName, objectStoreName, indexName, skipCount, pageSize, keyRange ? keyRange : undefined, innerCallback.bind(this));
},
__proto__: WebInspector.Object.prototype
@@ -478,19 +394,7 @@
/**
* @constructor
- * @param {string} frameId
* @param {string} securityOrigin
- */
-WebInspector.IndexedDBModel.Frame = function(frameId, securityOrigin)
-{
- this.frameId = frameId;
- this.securityOrigin = securityOrigin;
- this.databaseNames = {};
-}
-
-/**
- * @constructor
- * @param {string} securityOrigin
* @param {string} name
*/
WebInspector.IndexedDBModel.DatabaseId = function(securityOrigin, name)
Modified: trunk/Source/WebCore/inspector/front-end/ResourceTreeModel.js (144051 => 144052)
--- trunk/Source/WebCore/inspector/front-end/ResourceTreeModel.js 2013-02-26 13:57:36 UTC (rev 144051)
+++ trunk/Source/WebCore/inspector/front-end/ResourceTreeModel.js 2013-02-26 14:20:26 UTC (rev 144052)
@@ -147,6 +147,14 @@
},
/**
+ * @return {Array.<string>}
+ */
+ securityOrigins: function()
+ {
+ return Object.keys(this._securityOriginFrameCount);
+ },
+
+ /**
* @param {WebInspector.ResourceTreeFrame} mainFrame
*/
_handleMainFrameDetached: function(mainFrame)