Index: third_party/WebKit/Source/devtools/front_end/resources/ResourcesPanel.js |
diff --git a/third_party/WebKit/Source/devtools/front_end/resources/ResourcesPanel.js b/third_party/WebKit/Source/devtools/front_end/resources/ResourcesPanel.js |
index acfb722350b827a8b6728600b7877206d6d3f25d..a2785a151128f5dd77ba4b1f71d8246d56904fc8 100644 |
--- a/third_party/WebKit/Source/devtools/front_end/resources/ResourcesPanel.js |
+++ b/third_party/WebKit/Source/devtools/front_end/resources/ResourcesPanel.js |
@@ -27,26 +27,24 @@ |
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
*/ |
- |
/** |
- * @constructor |
- * @extends {WebInspector.PanelWithSidebar} |
* @implements {WebInspector.TargetManager.Observer} |
+ * @unrestricted |
*/ |
-WebInspector.ResourcesPanel = function() |
-{ |
- WebInspector.PanelWithSidebar.call(this, "resources"); |
- this.registerRequiredCSS("resources/resourcesPanel.css"); |
+WebInspector.ResourcesPanel = class extends WebInspector.PanelWithSidebar { |
+ constructor() { |
+ super('resources'); |
+ this.registerRequiredCSS('resources/resourcesPanel.css'); |
- this._resourcesLastSelectedItemSetting = WebInspector.settings.createSetting("resourcesLastSelectedItem", {}); |
+ this._resourcesLastSelectedItemSetting = WebInspector.settings.createSetting('resourcesLastSelectedItem', {}); |
this._sidebarTree = new TreeOutlineInShadow(); |
- this._sidebarTree.element.classList.add("resources-sidebar"); |
- this._sidebarTree.registerRequiredCSS("resources/resourcesSidebar.css"); |
- this._sidebarTree.element.classList.add("filter-all"); |
+ this._sidebarTree.element.classList.add('resources-sidebar'); |
+ this._sidebarTree.registerRequiredCSS('resources/resourcesSidebar.css'); |
+ this._sidebarTree.element.classList.add('filter-all'); |
this.panelSidebarElement().appendChild(this._sidebarTree.element); |
- this._applicationTreeElement = this._addSidebarSection(WebInspector.UIString("Application")); |
+ this._applicationTreeElement = this._addSidebarSection(WebInspector.UIString('Application')); |
this._manifestTreeElement = new WebInspector.AppManifestTreeElement(this); |
this._applicationTreeElement.appendChild(this._manifestTreeElement); |
this.serviceWorkersTreeElement = new WebInspector.ServiceWorkersTreeElement(this); |
@@ -54,29 +52,35 @@ WebInspector.ResourcesPanel = function() |
var clearStorageTreeElement = new WebInspector.ClearStorageTreeElement(this); |
this._applicationTreeElement.appendChild(clearStorageTreeElement); |
- var storageTreeElement = this._addSidebarSection(WebInspector.UIString("Storage")); |
- this.localStorageListTreeElement = new WebInspector.StorageCategoryTreeElement(this, WebInspector.UIString("Local Storage"), "LocalStorage", ["table-tree-item", "resource-tree-item"]); |
+ var storageTreeElement = this._addSidebarSection(WebInspector.UIString('Storage')); |
+ this.localStorageListTreeElement = new WebInspector.StorageCategoryTreeElement( |
+ this, WebInspector.UIString('Local Storage'), 'LocalStorage', ['table-tree-item', 'resource-tree-item']); |
storageTreeElement.appendChild(this.localStorageListTreeElement); |
- this.sessionStorageListTreeElement = new WebInspector.StorageCategoryTreeElement(this, WebInspector.UIString("Session Storage"), "SessionStorage", ["table-tree-item", "resource-tree-item"]); |
+ this.sessionStorageListTreeElement = new WebInspector.StorageCategoryTreeElement( |
+ this, WebInspector.UIString('Session Storage'), 'SessionStorage', ['table-tree-item', 'resource-tree-item']); |
storageTreeElement.appendChild(this.sessionStorageListTreeElement); |
this.indexedDBListTreeElement = new WebInspector.IndexedDBTreeElement(this); |
storageTreeElement.appendChild(this.indexedDBListTreeElement); |
- this.databasesListTreeElement = new WebInspector.StorageCategoryTreeElement(this, WebInspector.UIString("Web SQL"), "Databases", ["database-tree-item", "resource-tree-item"]); |
+ this.databasesListTreeElement = new WebInspector.StorageCategoryTreeElement( |
+ this, WebInspector.UIString('Web SQL'), 'Databases', ['database-tree-item', 'resource-tree-item']); |
storageTreeElement.appendChild(this.databasesListTreeElement); |
- this.cookieListTreeElement = new WebInspector.StorageCategoryTreeElement(this, WebInspector.UIString("Cookies"), "Cookies", ["cookie-tree-item", "resource-tree-item"]); |
+ this.cookieListTreeElement = new WebInspector.StorageCategoryTreeElement( |
+ this, WebInspector.UIString('Cookies'), 'Cookies', ['cookie-tree-item', 'resource-tree-item']); |
storageTreeElement.appendChild(this.cookieListTreeElement); |
- var cacheTreeElement = this._addSidebarSection(WebInspector.UIString("Cache")); |
+ var cacheTreeElement = this._addSidebarSection(WebInspector.UIString('Cache')); |
this.cacheStorageListTreeElement = new WebInspector.ServiceWorkerCacheTreeElement(this); |
cacheTreeElement.appendChild(this.cacheStorageListTreeElement); |
- this.applicationCacheListTreeElement = new WebInspector.StorageCategoryTreeElement(this, WebInspector.UIString("Application Cache"), "ApplicationCache", ["appcache-tree-item", "table-tree-item", "resource-tree-item"]); |
+ this.applicationCacheListTreeElement = new WebInspector.StorageCategoryTreeElement( |
+ this, WebInspector.UIString('Application Cache'), 'ApplicationCache', |
+ ['appcache-tree-item', 'table-tree-item', 'resource-tree-item']); |
cacheTreeElement.appendChild(this.applicationCacheListTreeElement); |
- this.resourcesListTreeElement = this._addSidebarSection(WebInspector.UIString("Frames")); |
+ this.resourcesListTreeElement = this._addSidebarSection(WebInspector.UIString('Frames')); |
var mainContainer = new WebInspector.VBox(); |
- this.storageViews = mainContainer.element.createChild("div", "vbox flex-auto"); |
- this._storageViewToolbar = new WebInspector.Toolbar("resources-toolbar", mainContainer.element); |
+ this.storageViews = mainContainer.element.createChild('div', 'vbox flex-auto'); |
+ this._storageViewToolbar = new WebInspector.Toolbar('resources-toolbar', mainContainer.element); |
this.splitWidget().setMainWidget(mainContainer); |
/** @type {!Map.<!WebInspector.Database, !Object.<string, !WebInspector.DatabaseTableView>>} */ |
@@ -94,2121 +98,1975 @@ WebInspector.ResourcesPanel = function() |
/** @type {!Object.<string, boolean>} */ |
this._domains = {}; |
- this.panelSidebarElement().addEventListener("mousemove", this._onmousemove.bind(this), false); |
- this.panelSidebarElement().addEventListener("mouseleave", this._onmouseleave.bind(this), false); |
+ this.panelSidebarElement().addEventListener('mousemove', this._onmousemove.bind(this), false); |
+ this.panelSidebarElement().addEventListener('mouseleave', this._onmouseleave.bind(this), false); |
WebInspector.targetManager.observeTargets(this); |
-}; |
- |
-WebInspector.ResourcesPanel.prototype = { |
- /** |
- * @param {string} title |
- * @return {!TreeElement} |
- */ |
- _addSidebarSection: function(title) |
- { |
- var treeElement = new TreeElement(title, true); |
- treeElement.listItemElement.classList.add("storage-group-list-item"); |
- treeElement.setCollapsible(false); |
- treeElement.selectable = false; |
- this._sidebarTree.appendChild(treeElement); |
- return treeElement; |
- }, |
- |
- /** |
- * @override |
- * @param {!WebInspector.Target} target |
- */ |
- targetAdded: function(target) |
- { |
- if (this._target) |
- return; |
- this._target = target; |
- this._databaseModel = WebInspector.DatabaseModel.fromTarget(target); |
- |
- this._databaseModel.addEventListener(WebInspector.DatabaseModel.Events.DatabaseAdded, this._databaseAdded, this); |
- this._databaseModel.addEventListener(WebInspector.DatabaseModel.Events.DatabasesRemoved, this._resetWebSQL, this); |
- |
- var resourceTreeModel = WebInspector.ResourceTreeModel.fromTarget(target); |
- if (!resourceTreeModel) |
- return; |
- |
- if (resourceTreeModel.cachedResourcesLoaded()) |
- this._initialize(); |
- |
- resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.Events.CachedResourcesLoaded, this._initialize, this); |
- resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.Events.WillLoadCachedResources, this._resetWithFrames, this); |
- }, |
+ } |
- /** |
- * @override |
- * @param {!WebInspector.Target} target |
- */ |
- targetRemoved: function(target) |
- { |
- if (target !== this._target) |
- return; |
- delete this._target; |
- |
- var resourceTreeModel = WebInspector.ResourceTreeModel.fromTarget(target); |
- if (resourceTreeModel) { |
- resourceTreeModel.removeEventListener(WebInspector.ResourceTreeModel.Events.CachedResourcesLoaded, this._initialize, this); |
- resourceTreeModel.removeEventListener(WebInspector.ResourceTreeModel.Events.WillLoadCachedResources, this._resetWithFrames, this); |
- } |
- this._databaseModel.removeEventListener(WebInspector.DatabaseModel.Events.DatabaseAdded, this._databaseAdded, this); |
- this._databaseModel.removeEventListener(WebInspector.DatabaseModel.Events.DatabasesRemoved, this._resetWebSQL, this); |
- |
- this._resetWithFrames(); |
- }, |
- |
- /** |
- * @override |
- */ |
- focus: function() |
- { |
- this._sidebarTree.focus(); |
- }, |
- |
- _initialize: function() |
- { |
- this._databaseModel.enable(); |
- |
- var indexedDBModel = WebInspector.IndexedDBModel.fromTarget(this._target); |
- if (indexedDBModel) |
- indexedDBModel.enable(); |
- |
- var cacheStorageModel = WebInspector.ServiceWorkerCacheModel.fromTarget(this._target); |
- if (cacheStorageModel) |
- cacheStorageModel.enable(); |
- var resourceTreeModel = WebInspector.ResourceTreeModel.fromTarget(this._target); |
- if (resourceTreeModel) { |
- this._populateResourceTree(resourceTreeModel); |
- this._populateApplicationCacheTree(resourceTreeModel); |
- } |
- var domStorageModel = WebInspector.DOMStorageModel.fromTarget(this._target); |
- if (domStorageModel) |
- this._populateDOMStorageTree(domStorageModel); |
- this.indexedDBListTreeElement._initialize(); |
- this.cacheStorageListTreeElement._initialize(); |
- this._initDefaultSelection(); |
- }, |
- |
- _initDefaultSelection: function() |
- { |
- var itemURL = this._resourcesLastSelectedItemSetting.get(); |
- if (itemURL) { |
- var rootElement = this._sidebarTree.rootElement(); |
- for (var treeElement = rootElement.firstChild(); treeElement; treeElement = treeElement.traverseNextTreeElement(false, rootElement, true)) { |
- if (treeElement.itemURL === itemURL) { |
- treeElement.revealAndSelect(true); |
- return; |
- } |
- } |
- } |
- this._manifestTreeElement.select(); |
- }, |
- |
- _resetWithFrames: function() |
- { |
- this.resourcesListTreeElement.removeChildren(); |
- this._treeElementForFrameId = {}; |
- this._reset(); |
- }, |
- |
- _resetWebSQL: function() |
- { |
- if (this.visibleView instanceof WebInspector.DatabaseQueryView || this.visibleView instanceof WebInspector.DatabaseTableView) { |
- this.visibleView.detach(); |
- delete this.visibleView; |
- } |
- |
- var queryViews = this._databaseQueryViews.valuesArray(); |
- for (var i = 0; i < queryViews.length; ++i) |
- queryViews[i].removeEventListener(WebInspector.DatabaseQueryView.Events.SchemaUpdated, this._updateDatabaseTables, this); |
- this._databaseTableViews.clear(); |
- this._databaseQueryViews.clear(); |
- this._databaseTreeElements.clear(); |
- this.databasesListTreeElement.removeChildren(); |
- this.databasesListTreeElement.setExpandable(false); |
- }, |
- |
- _resetDOMStorage: function() |
- { |
- if (this.visibleView instanceof WebInspector.DOMStorageItemsView) { |
- this.visibleView.detach(); |
- delete this.visibleView; |
- } |
- |
- this._domStorageViews.clear(); |
- this._domStorageTreeElements.clear(); |
- this.localStorageListTreeElement.removeChildren(); |
- this.sessionStorageListTreeElement.removeChildren(); |
- }, |
- |
- _resetCookies: function() |
- { |
- if (this.visibleView instanceof WebInspector.CookieItemsView) { |
- this.visibleView.detach(); |
- delete this.visibleView; |
- } |
- this._cookieViews = {}; |
- this.cookieListTreeElement.removeChildren(); |
- }, |
- |
- _resetCacheStorage: function() |
- { |
- if (this.visibleView instanceof WebInspector.ServiceWorkerCacheView) { |
- this.visibleView.detach(); |
- delete this.visibleView; |
- } |
- this.cacheStorageListTreeElement.removeChildren(); |
- this.cacheStorageListTreeElement.setExpandable(false); |
- }, |
- |
- _resetAppCache: function() |
- { |
- for (var frameId of Object.keys(this._applicationCacheFrameElements)) |
- this._applicationCacheFrameManifestRemoved({data: frameId}); |
- this.applicationCacheListTreeElement.setExpandable(false); |
- }, |
- |
- _reset: function() |
- { |
- this._domains = {}; |
- this._resetWebSQL(); |
- this._resetDOMStorage(); |
- this._resetCookies(); |
- this._resetCacheStorage(); |
- // No need to this._resetAppCache. |
- |
- if ((this.visibleView instanceof WebInspector.ResourceSourceFrame) |
- || (this.visibleView instanceof WebInspector.ImageView) |
- || (this.visibleView instanceof WebInspector.FontView)) { |
- this.visibleView.detach(); |
- delete this.visibleView; |
- } |
- |
- this._storageViewToolbar.removeToolbarItems(); |
- |
- if (this._sidebarTree.selectedTreeElement) |
- this._sidebarTree.selectedTreeElement.deselect(); |
- }, |
- |
- /** |
- * @param {!WebInspector.ResourceTreeModel} resourceTreeModel |
- */ |
- _populateResourceTree: function(resourceTreeModel) |
- { |
- this._treeElementForFrameId = {}; |
- resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.Events.FrameAdded, this._frameAdded, this); |
- resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.Events.FrameNavigated, this._frameNavigated, this); |
- resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.Events.FrameDetached, this._frameDetached, this); |
- resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.Events.ResourceAdded, this._resourceAdded, this); |
- |
- /** |
- * @param {!WebInspector.ResourceTreeFrame} frame |
- * @this {WebInspector.ResourcesPanel} |
- */ |
- function populateFrame(frame) |
- { |
- this._frameAdded({data:frame}); |
- for (var i = 0; i < frame.childFrames.length; ++i) |
- populateFrame.call(this, frame.childFrames[i]); |
- |
- var resources = frame.resources(); |
- for (var i = 0; i < resources.length; ++i) |
- this._resourceAdded({data:resources[i]}); |
- } |
- populateFrame.call(this, resourceTreeModel.mainFrame); |
- }, |
- |
- _frameAdded: function(event) |
- { |
- var frame = event.data; |
- var parentFrame = frame.parentFrame; |
- |
- var parentTreeElement = parentFrame ? this._treeElementForFrameId[parentFrame.id] : this.resourcesListTreeElement; |
- if (!parentTreeElement) { |
- console.warn("No frame to route " + frame.url + " to."); |
- return; |
- } |
- |
- var frameTreeElement = new WebInspector.FrameTreeElement(this, frame); |
- this._treeElementForFrameId[frame.id] = frameTreeElement; |
- parentTreeElement.appendChild(frameTreeElement); |
- }, |
- |
- _frameDetached: function(event) |
- { |
- var frame = event.data; |
- var frameTreeElement = this._treeElementForFrameId[frame.id]; |
- if (!frameTreeElement) |
- return; |
- |
- delete this._treeElementForFrameId[frame.id]; |
- if (frameTreeElement.parent) |
- frameTreeElement.parent.removeChild(frameTreeElement); |
- }, |
- |
- _resourceAdded: function(event) |
- { |
- var resource = event.data; |
- var frameId = resource.frameId; |
- |
- if (resource.statusCode >= 301 && resource.statusCode <= 303) |
- return; |
- |
- var frameTreeElement = this._treeElementForFrameId[frameId]; |
- if (!frameTreeElement) { |
- // This is a frame's main resource, it will be retained |
- // and re-added by the resource manager; |
- return; |
+ /** |
+ * @return {!WebInspector.ResourcesPanel} |
+ */ |
+ static _instance() { |
+ return /** @type {!WebInspector.ResourcesPanel} */ (self.runtime.sharedInstance(WebInspector.ResourcesPanel)); |
+ } |
+ |
+ /** |
+ * @param {string} title |
+ * @return {!TreeElement} |
+ */ |
+ _addSidebarSection(title) { |
+ var treeElement = new TreeElement(title, true); |
+ treeElement.listItemElement.classList.add('storage-group-list-item'); |
+ treeElement.setCollapsible(false); |
+ treeElement.selectable = false; |
+ this._sidebarTree.appendChild(treeElement); |
+ return treeElement; |
+ } |
+ |
+ /** |
+ * @override |
+ * @param {!WebInspector.Target} target |
+ */ |
+ targetAdded(target) { |
+ if (this._target) |
+ return; |
+ this._target = target; |
+ this._databaseModel = WebInspector.DatabaseModel.fromTarget(target); |
+ |
+ this._databaseModel.addEventListener(WebInspector.DatabaseModel.Events.DatabaseAdded, this._databaseAdded, this); |
+ this._databaseModel.addEventListener(WebInspector.DatabaseModel.Events.DatabasesRemoved, this._resetWebSQL, this); |
+ |
+ var resourceTreeModel = WebInspector.ResourceTreeModel.fromTarget(target); |
+ if (!resourceTreeModel) |
+ return; |
+ |
+ if (resourceTreeModel.cachedResourcesLoaded()) |
+ this._initialize(); |
+ |
+ resourceTreeModel.addEventListener( |
+ WebInspector.ResourceTreeModel.Events.CachedResourcesLoaded, this._initialize, this); |
+ resourceTreeModel.addEventListener( |
+ WebInspector.ResourceTreeModel.Events.WillLoadCachedResources, this._resetWithFrames, this); |
+ } |
+ |
+ /** |
+ * @override |
+ * @param {!WebInspector.Target} target |
+ */ |
+ targetRemoved(target) { |
+ if (target !== this._target) |
+ return; |
+ delete this._target; |
+ |
+ var resourceTreeModel = WebInspector.ResourceTreeModel.fromTarget(target); |
+ if (resourceTreeModel) { |
+ resourceTreeModel.removeEventListener( |
+ WebInspector.ResourceTreeModel.Events.CachedResourcesLoaded, this._initialize, this); |
+ resourceTreeModel.removeEventListener( |
+ WebInspector.ResourceTreeModel.Events.WillLoadCachedResources, this._resetWithFrames, this); |
+ } |
+ this._databaseModel.removeEventListener(WebInspector.DatabaseModel.Events.DatabaseAdded, this._databaseAdded, this); |
+ this._databaseModel.removeEventListener( |
+ WebInspector.DatabaseModel.Events.DatabasesRemoved, this._resetWebSQL, this); |
+ |
+ this._resetWithFrames(); |
+ } |
+ |
+ /** |
+ * @override |
+ */ |
+ focus() { |
+ this._sidebarTree.focus(); |
+ } |
+ |
+ _initialize() { |
+ this._databaseModel.enable(); |
+ |
+ var indexedDBModel = WebInspector.IndexedDBModel.fromTarget(this._target); |
+ if (indexedDBModel) |
+ indexedDBModel.enable(); |
+ |
+ var cacheStorageModel = WebInspector.ServiceWorkerCacheModel.fromTarget(this._target); |
+ if (cacheStorageModel) |
+ cacheStorageModel.enable(); |
+ var resourceTreeModel = WebInspector.ResourceTreeModel.fromTarget(this._target); |
+ if (resourceTreeModel) { |
+ this._populateResourceTree(resourceTreeModel); |
+ this._populateApplicationCacheTree(resourceTreeModel); |
+ } |
+ var domStorageModel = WebInspector.DOMStorageModel.fromTarget(this._target); |
+ if (domStorageModel) |
+ this._populateDOMStorageTree(domStorageModel); |
+ this.indexedDBListTreeElement._initialize(); |
+ this.cacheStorageListTreeElement._initialize(); |
+ this._initDefaultSelection(); |
+ } |
+ |
+ _initDefaultSelection() { |
+ var itemURL = this._resourcesLastSelectedItemSetting.get(); |
+ if (itemURL) { |
+ var rootElement = this._sidebarTree.rootElement(); |
+ for (var treeElement = rootElement.firstChild(); treeElement; |
+ treeElement = treeElement.traverseNextTreeElement(false, rootElement, true)) { |
+ if (treeElement.itemURL === itemURL) { |
+ treeElement.revealAndSelect(true); |
+ return; |
} |
+ } |
+ } |
+ this._manifestTreeElement.select(); |
+ } |
+ |
+ _resetWithFrames() { |
+ this.resourcesListTreeElement.removeChildren(); |
+ this._treeElementForFrameId = {}; |
+ this._reset(); |
+ } |
+ |
+ _resetWebSQL() { |
+ if (this.visibleView instanceof WebInspector.DatabaseQueryView || |
+ this.visibleView instanceof WebInspector.DatabaseTableView) { |
+ this.visibleView.detach(); |
+ delete this.visibleView; |
+ } |
- frameTreeElement.appendResource(resource); |
- }, |
- |
- _frameNavigated: function(event) |
- { |
- var frame = event.data; |
- |
- if (!frame.parentFrame) |
- this._reset(); |
+ var queryViews = this._databaseQueryViews.valuesArray(); |
+ for (var i = 0; i < queryViews.length; ++i) |
+ queryViews[i].removeEventListener( |
+ WebInspector.DatabaseQueryView.Events.SchemaUpdated, this._updateDatabaseTables, this); |
+ this._databaseTableViews.clear(); |
+ this._databaseQueryViews.clear(); |
+ this._databaseTreeElements.clear(); |
+ this.databasesListTreeElement.removeChildren(); |
+ this.databasesListTreeElement.setExpandable(false); |
+ } |
+ |
+ _resetDOMStorage() { |
+ if (this.visibleView instanceof WebInspector.DOMStorageItemsView) { |
+ this.visibleView.detach(); |
+ delete this.visibleView; |
+ } |
- var frameId = frame.id; |
- var frameTreeElement = this._treeElementForFrameId[frameId]; |
- if (frameTreeElement) |
- frameTreeElement.frameNavigated(frame); |
+ this._domStorageViews.clear(); |
+ this._domStorageTreeElements.clear(); |
+ this.localStorageListTreeElement.removeChildren(); |
+ this.sessionStorageListTreeElement.removeChildren(); |
+ } |
- var applicationCacheFrameTreeElement = this._applicationCacheFrameElements[frameId]; |
- if (applicationCacheFrameTreeElement) |
- applicationCacheFrameTreeElement.frameNavigated(frame); |
- }, |
+ _resetCookies() { |
+ if (this.visibleView instanceof WebInspector.CookieItemsView) { |
+ this.visibleView.detach(); |
+ delete this.visibleView; |
+ } |
+ this._cookieViews = {}; |
+ this.cookieListTreeElement.removeChildren(); |
+ } |
- /** |
- * @param {!WebInspector.Event} event |
- */ |
- _databaseAdded: function(event) |
- { |
- var database = /** @type {!WebInspector.Database} */ (event.data); |
- this._addDatabase(database); |
- }, |
+ _resetCacheStorage() { |
+ if (this.visibleView instanceof WebInspector.ServiceWorkerCacheView) { |
+ this.visibleView.detach(); |
+ delete this.visibleView; |
+ } |
+ this.cacheStorageListTreeElement.removeChildren(); |
+ this.cacheStorageListTreeElement.setExpandable(false); |
+ } |
- /** |
- * @param {!WebInspector.Database} database |
- */ |
- _addDatabase: function(database) |
- { |
- var databaseTreeElement = new WebInspector.DatabaseTreeElement(this, database); |
- this._databaseTreeElements.set(database, databaseTreeElement); |
- this.databasesListTreeElement.appendChild(databaseTreeElement); |
- }, |
- |
- addDocumentURL: function(url) |
- { |
- var parsedURL = url.asParsedURL(); |
- if (!parsedURL) |
- return; |
- |
- var domain = parsedURL.securityOrigin(); |
- if (!this._domains[domain]) { |
- this._domains[domain] = true; |
- var cookieDomainTreeElement = new WebInspector.CookieTreeElement(this, domain); |
- this.cookieListTreeElement.appendChild(cookieDomainTreeElement); |
- } |
- }, |
+ _resetAppCache() { |
+ for (var frameId of Object.keys(this._applicationCacheFrameElements)) |
+ this._applicationCacheFrameManifestRemoved({data: frameId}); |
+ this.applicationCacheListTreeElement.setExpandable(false); |
+ } |
- /** |
- * @param {!WebInspector.Event} event |
- */ |
- _domStorageAdded: function(event) |
- { |
- var domStorage = /** @type {!WebInspector.DOMStorage} */ (event.data); |
- this._addDOMStorage(domStorage); |
- }, |
+ _reset() { |
+ this._domains = {}; |
+ this._resetWebSQL(); |
+ this._resetDOMStorage(); |
+ this._resetCookies(); |
+ this._resetCacheStorage(); |
+ // No need to this._resetAppCache. |
+ |
+ if ((this.visibleView instanceof WebInspector.ResourceSourceFrame) || |
+ (this.visibleView instanceof WebInspector.ImageView) || (this.visibleView instanceof WebInspector.FontView)) { |
+ this.visibleView.detach(); |
+ delete this.visibleView; |
+ } |
- /** |
- * @param {!WebInspector.DOMStorage} domStorage |
- */ |
- _addDOMStorage: function(domStorage) |
- { |
- console.assert(!this._domStorageTreeElements.get(domStorage)); |
- |
- var domStorageTreeElement = new WebInspector.DOMStorageTreeElement(this, domStorage); |
- this._domStorageTreeElements.set(domStorage, domStorageTreeElement); |
- if (domStorage.isLocalStorage) |
- this.localStorageListTreeElement.appendChild(domStorageTreeElement); |
- else |
- this.sessionStorageListTreeElement.appendChild(domStorageTreeElement); |
- }, |
+ this._storageViewToolbar.removeToolbarItems(); |
- /** |
- * @param {!WebInspector.Event} event |
- */ |
- _domStorageRemoved: function(event) |
- { |
- var domStorage = /** @type {!WebInspector.DOMStorage} */ (event.data); |
- this._removeDOMStorage(domStorage); |
- }, |
+ if (this._sidebarTree.selectedTreeElement) |
+ this._sidebarTree.selectedTreeElement.deselect(); |
+ } |
- /** |
- * @param {!WebInspector.DOMStorage} domStorage |
- */ |
- _removeDOMStorage: function(domStorage) |
- { |
- var treeElement = this._domStorageTreeElements.get(domStorage); |
- if (!treeElement) |
- return; |
- var wasSelected = treeElement.selected; |
- var parentListTreeElement = treeElement.parent; |
- parentListTreeElement.removeChild(treeElement); |
- if (wasSelected) |
- parentListTreeElement.select(); |
- this._domStorageTreeElements.remove(domStorage); |
- this._domStorageViews.remove(domStorage); |
- }, |
+ /** |
+ * @param {!WebInspector.ResourceTreeModel} resourceTreeModel |
+ */ |
+ _populateResourceTree(resourceTreeModel) { |
+ this._treeElementForFrameId = {}; |
+ resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.Events.FrameAdded, this._frameAdded, this); |
+ resourceTreeModel.addEventListener( |
+ WebInspector.ResourceTreeModel.Events.FrameNavigated, this._frameNavigated, this); |
+ resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.Events.FrameDetached, this._frameDetached, this); |
+ resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.Events.ResourceAdded, this._resourceAdded, this); |
/** |
- * @param {!WebInspector.Database} database |
+ * @param {!WebInspector.ResourceTreeFrame} frame |
+ * @this {WebInspector.ResourcesPanel} |
*/ |
- selectDatabase: function(database) |
- { |
- if (database) { |
- this._showDatabase(database); |
- this._databaseTreeElements.get(database).select(); |
- } |
- }, |
+ function populateFrame(frame) { |
+ this._frameAdded({data: frame}); |
+ for (var i = 0; i < frame.childFrames.length; ++i) |
+ populateFrame.call(this, frame.childFrames[i]); |
- /** |
- * @param {!WebInspector.DOMStorage} domStorage |
- */ |
- selectDOMStorage: function(domStorage) |
- { |
- if (domStorage) { |
- this._showDOMStorage(domStorage); |
- this._domStorageTreeElements.get(domStorage).select(); |
- } |
- }, |
+ var resources = frame.resources(); |
+ for (var i = 0; i < resources.length; ++i) |
+ this._resourceAdded({data: resources[i]}); |
+ } |
+ populateFrame.call(this, resourceTreeModel.mainFrame); |
+ } |
- /** |
- * @param {!WebInspector.Resource} resource |
- * @param {number=} line |
- * @param {number=} column |
- * @return {boolean} |
- */ |
- showResource: function(resource, line, column) |
- { |
- var resourceTreeElement = this._findTreeElementForResource(resource); |
- if (resourceTreeElement) |
- resourceTreeElement.revealAndSelect(true); |
- |
- if (typeof line === "number") { |
- var resourceSourceFrame = this._resourceSourceFrameViewForResource(resource); |
- if (resourceSourceFrame) |
- resourceSourceFrame.revealPosition(line, column, true); |
- } |
- return true; |
- }, |
- |
- _showResourceView: function(resource) |
- { |
- var view = this._resourceViewForResource(resource); |
- if (!view) { |
- this.visibleView.detach(); |
- return; |
- } |
- this._innerShowView(view); |
- }, |
+ _frameAdded(event) { |
+ var frame = event.data; |
+ var parentFrame = frame.parentFrame; |
- /** |
- * @param {!WebInspector.Resource} resource |
- * @return {?WebInspector.Widget} |
- */ |
- _resourceViewForResource: function(resource) |
- { |
- if (resource.hasTextContent()) { |
- var treeElement = this._findTreeElementForResource(resource); |
- if (!treeElement) |
- return null; |
- return treeElement.sourceView(); |
- } |
+ var parentTreeElement = parentFrame ? this._treeElementForFrameId[parentFrame.id] : this.resourcesListTreeElement; |
+ if (!parentTreeElement) { |
+ console.warn('No frame to route ' + frame.url + ' to.'); |
+ return; |
+ } |
- switch (resource.resourceType()) { |
- case WebInspector.resourceTypes.Image: |
- return new WebInspector.ImageView(resource.mimeType, resource); |
- case WebInspector.resourceTypes.Font: |
- return new WebInspector.FontView(resource.mimeType, resource); |
- default: |
- return new WebInspector.EmptyWidget(resource.url); |
- } |
- }, |
+ var frameTreeElement = new WebInspector.FrameTreeElement(this, frame); |
+ this._treeElementForFrameId[frame.id] = frameTreeElement; |
+ parentTreeElement.appendChild(frameTreeElement); |
+ } |
+ |
+ _frameDetached(event) { |
+ var frame = event.data; |
+ var frameTreeElement = this._treeElementForFrameId[frame.id]; |
+ if (!frameTreeElement) |
+ return; |
+ |
+ delete this._treeElementForFrameId[frame.id]; |
+ if (frameTreeElement.parent) |
+ frameTreeElement.parent.removeChild(frameTreeElement); |
+ } |
+ |
+ _resourceAdded(event) { |
+ var resource = event.data; |
+ var frameId = resource.frameId; |
+ |
+ if (resource.statusCode >= 301 && resource.statusCode <= 303) |
+ return; |
+ |
+ var frameTreeElement = this._treeElementForFrameId[frameId]; |
+ if (!frameTreeElement) { |
+ // This is a frame's main resource, it will be retained |
+ // and re-added by the resource manager; |
+ return; |
+ } |
- /** |
- * @param {!WebInspector.Resource} resource |
- * @return {?WebInspector.ResourceSourceFrame} |
- */ |
- _resourceSourceFrameViewForResource: function(resource) |
- { |
- var resourceView = this._resourceViewForResource(resource); |
- if (resourceView && resourceView instanceof WebInspector.ResourceSourceFrame) |
- return /** @type {!WebInspector.ResourceSourceFrame} */ (resourceView); |
+ frameTreeElement.appendResource(resource); |
+ } |
+ |
+ _frameNavigated(event) { |
+ var frame = event.data; |
+ |
+ if (!frame.parentFrame) |
+ this._reset(); |
+ |
+ var frameId = frame.id; |
+ var frameTreeElement = this._treeElementForFrameId[frameId]; |
+ if (frameTreeElement) |
+ frameTreeElement.frameNavigated(frame); |
+ |
+ var applicationCacheFrameTreeElement = this._applicationCacheFrameElements[frameId]; |
+ if (applicationCacheFrameTreeElement) |
+ applicationCacheFrameTreeElement.frameNavigated(frame); |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.Event} event |
+ */ |
+ _databaseAdded(event) { |
+ var database = /** @type {!WebInspector.Database} */ (event.data); |
+ this._addDatabase(database); |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.Database} database |
+ */ |
+ _addDatabase(database) { |
+ var databaseTreeElement = new WebInspector.DatabaseTreeElement(this, database); |
+ this._databaseTreeElements.set(database, databaseTreeElement); |
+ this.databasesListTreeElement.appendChild(databaseTreeElement); |
+ } |
+ |
+ addDocumentURL(url) { |
+ var parsedURL = url.asParsedURL(); |
+ if (!parsedURL) |
+ return; |
+ |
+ var domain = parsedURL.securityOrigin(); |
+ if (!this._domains[domain]) { |
+ this._domains[domain] = true; |
+ var cookieDomainTreeElement = new WebInspector.CookieTreeElement(this, domain); |
+ this.cookieListTreeElement.appendChild(cookieDomainTreeElement); |
+ } |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.Event} event |
+ */ |
+ _domStorageAdded(event) { |
+ var domStorage = /** @type {!WebInspector.DOMStorage} */ (event.data); |
+ this._addDOMStorage(domStorage); |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.DOMStorage} domStorage |
+ */ |
+ _addDOMStorage(domStorage) { |
+ console.assert(!this._domStorageTreeElements.get(domStorage)); |
+ |
+ var domStorageTreeElement = new WebInspector.DOMStorageTreeElement(this, domStorage); |
+ this._domStorageTreeElements.set(domStorage, domStorageTreeElement); |
+ if (domStorage.isLocalStorage) |
+ this.localStorageListTreeElement.appendChild(domStorageTreeElement); |
+ else |
+ this.sessionStorageListTreeElement.appendChild(domStorageTreeElement); |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.Event} event |
+ */ |
+ _domStorageRemoved(event) { |
+ var domStorage = /** @type {!WebInspector.DOMStorage} */ (event.data); |
+ this._removeDOMStorage(domStorage); |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.DOMStorage} domStorage |
+ */ |
+ _removeDOMStorage(domStorage) { |
+ var treeElement = this._domStorageTreeElements.get(domStorage); |
+ if (!treeElement) |
+ return; |
+ var wasSelected = treeElement.selected; |
+ var parentListTreeElement = treeElement.parent; |
+ parentListTreeElement.removeChild(treeElement); |
+ if (wasSelected) |
+ parentListTreeElement.select(); |
+ this._domStorageTreeElements.remove(domStorage); |
+ this._domStorageViews.remove(domStorage); |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.Database} database |
+ */ |
+ selectDatabase(database) { |
+ if (database) { |
+ this._showDatabase(database); |
+ this._databaseTreeElements.get(database).select(); |
+ } |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.DOMStorage} domStorage |
+ */ |
+ selectDOMStorage(domStorage) { |
+ if (domStorage) { |
+ this._showDOMStorage(domStorage); |
+ this._domStorageTreeElements.get(domStorage).select(); |
+ } |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.Resource} resource |
+ * @param {number=} line |
+ * @param {number=} column |
+ * @return {boolean} |
+ */ |
+ showResource(resource, line, column) { |
+ var resourceTreeElement = this._findTreeElementForResource(resource); |
+ if (resourceTreeElement) |
+ resourceTreeElement.revealAndSelect(true); |
+ |
+ if (typeof line === 'number') { |
+ var resourceSourceFrame = this._resourceSourceFrameViewForResource(resource); |
+ if (resourceSourceFrame) |
+ resourceSourceFrame.revealPosition(line, column, true); |
+ } |
+ return true; |
+ } |
+ |
+ _showResourceView(resource) { |
+ var view = this._resourceViewForResource(resource); |
+ if (!view) { |
+ this.visibleView.detach(); |
+ return; |
+ } |
+ this._innerShowView(view); |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.Resource} resource |
+ * @return {?WebInspector.Widget} |
+ */ |
+ _resourceViewForResource(resource) { |
+ if (resource.hasTextContent()) { |
+ var treeElement = this._findTreeElementForResource(resource); |
+ if (!treeElement) |
return null; |
- }, |
- |
- /** |
- * @param {!WebInspector.Database} database |
- * @param {string=} tableName |
- */ |
- _showDatabase: function(database, tableName) |
- { |
- if (!database) |
- return; |
- |
- var view; |
- if (tableName) { |
- var tableViews = this._databaseTableViews.get(database); |
- if (!tableViews) { |
- tableViews = /** @type {!Object.<string, !WebInspector.DatabaseTableView>} */ ({}); |
- this._databaseTableViews.set(database, tableViews); |
- } |
- view = tableViews[tableName]; |
- if (!view) { |
- view = new WebInspector.DatabaseTableView(database, tableName); |
- tableViews[tableName] = view; |
- } |
- } else { |
- view = this._databaseQueryViews.get(database); |
- if (!view) { |
- view = new WebInspector.DatabaseQueryView(database); |
- this._databaseQueryViews.set(database, view); |
- view.addEventListener(WebInspector.DatabaseQueryView.Events.SchemaUpdated, this._updateDatabaseTables, this); |
- } |
- } |
- |
- this._innerShowView(view); |
- }, |
- |
- /** |
- * @param {!WebInspector.DOMStorage} domStorage |
- */ |
- _showDOMStorage: function(domStorage) |
- { |
- if (!domStorage) |
- return; |
- |
- var view; |
- view = this._domStorageViews.get(domStorage); |
- if (!view) { |
- view = new WebInspector.DOMStorageItemsView(domStorage); |
- this._domStorageViews.set(domStorage, view); |
- } |
- |
- this._innerShowView(view); |
- }, |
- |
- /** |
- * @param {!WebInspector.CookieTreeElement} treeElement |
- * @param {string} cookieDomain |
- */ |
- showCookies: function(treeElement, cookieDomain) |
- { |
- var view = this._cookieViews[cookieDomain]; |
- if (!view) { |
- view = new WebInspector.CookieItemsView(treeElement, cookieDomain); |
- this._cookieViews[cookieDomain] = view; |
- } |
- |
- this._innerShowView(view); |
- }, |
- |
- /** |
- * @param {string} cookieDomain |
- */ |
- clearCookies: function(cookieDomain) |
- { |
- if (this._cookieViews[cookieDomain]) |
- this._cookieViews[cookieDomain].clear(); |
- }, |
- |
- showApplicationCache: function(frameId) |
- { |
- if (!this._applicationCacheViews[frameId]) |
- this._applicationCacheViews[frameId] = new WebInspector.ApplicationCacheItemsView(this._applicationCacheModel, frameId); |
- |
- this._innerShowView(this._applicationCacheViews[frameId]); |
- }, |
+ return treeElement.sourceView(); |
+ } |
- /** |
- * @param {!WebInspector.Widget} view |
- */ |
- showFileSystem: function(view) |
- { |
- this._innerShowView(view); |
- }, |
- |
- showCategoryView: function(categoryName) |
- { |
- if (!this._categoryView) |
- this._categoryView = new WebInspector.StorageCategoryView(); |
- this._categoryView.setText(categoryName); |
- this._innerShowView(this._categoryView); |
- }, |
- |
- _innerShowView: function(view) |
- { |
- if (this.visibleView === view) |
- return; |
- |
- if (this.visibleView) |
- this.visibleView.detach(); |
- |
- view.show(this.storageViews); |
- this.visibleView = view; |
- |
- this._storageViewToolbar.removeToolbarItems(); |
- var toolbarItems = view instanceof WebInspector.SimpleView ? view.syncToolbarItems() : null; |
- for (var i = 0; toolbarItems && i < toolbarItems.length; ++i) |
- this._storageViewToolbar.appendToolbarItem(toolbarItems[i]); |
- }, |
- |
- closeVisibleView: function() |
- { |
- if (!this.visibleView) |
- return; |
- this.visibleView.detach(); |
- delete this.visibleView; |
- }, |
- |
- _updateDatabaseTables: function(event) |
- { |
- var database = event.data; |
- |
- if (!database) |
- return; |
- |
- var databasesTreeElement = this._databaseTreeElements.get(database); |
- if (!databasesTreeElement) |
- return; |
- |
- databasesTreeElement.invalidateChildren(); |
- var tableViews = this._databaseTableViews.get(database); |
- |
- if (!tableViews) |
- return; |
- |
- var tableNamesHash = {}; |
- var self = this; |
- function tableNamesCallback(tableNames) |
- { |
- var tableNamesLength = tableNames.length; |
- for (var i = 0; i < tableNamesLength; ++i) |
- tableNamesHash[tableNames[i]] = true; |
- |
- for (var tableName in tableViews) { |
- if (!(tableName in tableNamesHash)) { |
- if (self.visibleView === tableViews[tableName]) |
- self.closeVisibleView(); |
- delete tableViews[tableName]; |
- } |
- } |
- } |
- database.getTableNames(tableNamesCallback); |
- }, |
+ switch (resource.resourceType()) { |
+ case WebInspector.resourceTypes.Image: |
+ return new WebInspector.ImageView(resource.mimeType, resource); |
+ case WebInspector.resourceTypes.Font: |
+ return new WebInspector.FontView(resource.mimeType, resource); |
+ default: |
+ return new WebInspector.EmptyWidget(resource.url); |
+ } |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.Resource} resource |
+ * @return {?WebInspector.ResourceSourceFrame} |
+ */ |
+ _resourceSourceFrameViewForResource(resource) { |
+ var resourceView = this._resourceViewForResource(resource); |
+ if (resourceView && resourceView instanceof WebInspector.ResourceSourceFrame) |
+ return /** @type {!WebInspector.ResourceSourceFrame} */ (resourceView); |
+ return null; |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.Database} database |
+ * @param {string=} tableName |
+ */ |
+ _showDatabase(database, tableName) { |
+ if (!database) |
+ return; |
+ |
+ var view; |
+ if (tableName) { |
+ var tableViews = this._databaseTableViews.get(database); |
+ if (!tableViews) { |
+ tableViews = /** @type {!Object.<string, !WebInspector.DatabaseTableView>} */ ({}); |
+ this._databaseTableViews.set(database, tableViews); |
+ } |
+ view = tableViews[tableName]; |
+ if (!view) { |
+ view = new WebInspector.DatabaseTableView(database, tableName); |
+ tableViews[tableName] = view; |
+ } |
+ } else { |
+ view = this._databaseQueryViews.get(database); |
+ if (!view) { |
+ view = new WebInspector.DatabaseQueryView(database); |
+ this._databaseQueryViews.set(database, view); |
+ view.addEventListener(WebInspector.DatabaseQueryView.Events.SchemaUpdated, this._updateDatabaseTables, this); |
+ } |
+ } |
- /** |
- * @param {!WebInspector.DOMStorageModel} domStorageModel |
- */ |
- _populateDOMStorageTree: function(domStorageModel) |
- { |
- domStorageModel.enable(); |
- domStorageModel.storages().forEach(this._addDOMStorage.bind(this)); |
- domStorageModel.addEventListener(WebInspector.DOMStorageModel.Events.DOMStorageAdded, this._domStorageAdded, this); |
- domStorageModel.addEventListener(WebInspector.DOMStorageModel.Events.DOMStorageRemoved, this._domStorageRemoved, this); |
- }, |
+ this._innerShowView(view); |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.DOMStorage} domStorage |
+ */ |
+ _showDOMStorage(domStorage) { |
+ if (!domStorage) |
+ return; |
+ |
+ var view; |
+ view = this._domStorageViews.get(domStorage); |
+ if (!view) { |
+ view = new WebInspector.DOMStorageItemsView(domStorage); |
+ this._domStorageViews.set(domStorage, view); |
+ } |
- /** |
- * @param {!WebInspector.ResourceTreeModel} resourceTreeModel |
- */ |
- _populateApplicationCacheTree: function(resourceTreeModel) |
- { |
- this._applicationCacheModel = new WebInspector.ApplicationCacheModel(this._target, resourceTreeModel); |
- |
- this._applicationCacheViews = {}; |
- this._applicationCacheFrameElements = {}; |
- this._applicationCacheManifestElements = {}; |
- |
- this._applicationCacheModel.addEventListener(WebInspector.ApplicationCacheModel.Events.FrameManifestAdded, this._applicationCacheFrameManifestAdded, this); |
- this._applicationCacheModel.addEventListener(WebInspector.ApplicationCacheModel.Events.FrameManifestRemoved, this._applicationCacheFrameManifestRemoved, this); |
- this._applicationCacheModel.addEventListener(WebInspector.ApplicationCacheModel.Events.FrameManifestsReset, this._resetAppCache, this); |
- |
- this._applicationCacheModel.addEventListener(WebInspector.ApplicationCacheModel.Events.FrameManifestStatusUpdated, this._applicationCacheFrameManifestStatusChanged, this); |
- this._applicationCacheModel.addEventListener(WebInspector.ApplicationCacheModel.Events.NetworkStateChanged, this._applicationCacheNetworkStateChanged, this); |
- }, |
- |
- _applicationCacheFrameManifestAdded: function(event) |
- { |
- var frameId = event.data; |
- var manifestURL = this._applicationCacheModel.frameManifestURL(frameId); |
- |
- var manifestTreeElement = this._applicationCacheManifestElements[manifestURL]; |
- if (!manifestTreeElement) { |
- manifestTreeElement = new WebInspector.ApplicationCacheManifestTreeElement(this, manifestURL); |
- this.applicationCacheListTreeElement.appendChild(manifestTreeElement); |
- this._applicationCacheManifestElements[manifestURL] = manifestTreeElement; |
- } |
+ this._innerShowView(view); |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.CookieTreeElement} treeElement |
+ * @param {string} cookieDomain |
+ */ |
+ showCookies(treeElement, cookieDomain) { |
+ var view = this._cookieViews[cookieDomain]; |
+ if (!view) { |
+ view = new WebInspector.CookieItemsView(treeElement, cookieDomain); |
+ this._cookieViews[cookieDomain] = view; |
+ } |
- var frameTreeElement = new WebInspector.ApplicationCacheFrameTreeElement(this, frameId, manifestURL); |
- manifestTreeElement.appendChild(frameTreeElement); |
- manifestTreeElement.expand(); |
- this._applicationCacheFrameElements[frameId] = frameTreeElement; |
- }, |
- |
- _applicationCacheFrameManifestRemoved: function(event) |
- { |
- var frameId = event.data; |
- var frameTreeElement = this._applicationCacheFrameElements[frameId]; |
- if (!frameTreeElement) |
- return; |
- |
- var manifestURL = frameTreeElement.manifestURL; |
- delete this._applicationCacheFrameElements[frameId]; |
- delete this._applicationCacheViews[frameId]; |
- frameTreeElement.parent.removeChild(frameTreeElement); |
- |
- var manifestTreeElement = this._applicationCacheManifestElements[manifestURL]; |
- if (manifestTreeElement.childCount()) |
- return; |
- |
- delete this._applicationCacheManifestElements[manifestURL]; |
- manifestTreeElement.parent.removeChild(manifestTreeElement); |
- }, |
- |
- _applicationCacheFrameManifestStatusChanged: function(event) |
- { |
- var frameId = event.data; |
- var status = this._applicationCacheModel.frameManifestStatus(frameId); |
- |
- if (this._applicationCacheViews[frameId]) |
- this._applicationCacheViews[frameId].updateStatus(status); |
- }, |
- |
- _applicationCacheNetworkStateChanged: function(event) |
- { |
- var isNowOnline = event.data; |
- |
- for (var manifestURL in this._applicationCacheViews) |
- this._applicationCacheViews[manifestURL].updateNetworkState(isNowOnline); |
- }, |
- |
- _findTreeElementForResource: function(resource) |
- { |
- return resource[WebInspector.FrameResourceTreeElement._symbol]; |
- }, |
- |
- showView: function(view) |
- { |
- if (view) |
- this.showResource(view.resource); |
- }, |
- |
- _onmousemove: function(event) |
- { |
- var nodeUnderMouse = event.target; |
- if (!nodeUnderMouse) |
- return; |
- |
- var listNode = nodeUnderMouse.enclosingNodeOrSelfWithNodeName("li"); |
- if (!listNode) |
- return; |
- |
- var element = listNode.treeElement; |
- if (this._previousHoveredElement === element) |
- return; |
- |
- if (this._previousHoveredElement) { |
- this._previousHoveredElement.hovered = false; |
- delete this._previousHoveredElement; |
+ this._innerShowView(view); |
+ } |
+ |
+ /** |
+ * @param {string} cookieDomain |
+ */ |
+ clearCookies(cookieDomain) { |
+ if (this._cookieViews[cookieDomain]) |
+ this._cookieViews[cookieDomain].clear(); |
+ } |
+ |
+ showApplicationCache(frameId) { |
+ if (!this._applicationCacheViews[frameId]) |
+ this._applicationCacheViews[frameId] = |
+ new WebInspector.ApplicationCacheItemsView(this._applicationCacheModel, frameId); |
+ |
+ this._innerShowView(this._applicationCacheViews[frameId]); |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.Widget} view |
+ */ |
+ showFileSystem(view) { |
+ this._innerShowView(view); |
+ } |
+ |
+ showCategoryView(categoryName) { |
+ if (!this._categoryView) |
+ this._categoryView = new WebInspector.StorageCategoryView(); |
+ this._categoryView.setText(categoryName); |
+ this._innerShowView(this._categoryView); |
+ } |
+ |
+ _innerShowView(view) { |
+ if (this.visibleView === view) |
+ return; |
+ |
+ if (this.visibleView) |
+ this.visibleView.detach(); |
+ |
+ view.show(this.storageViews); |
+ this.visibleView = view; |
+ |
+ this._storageViewToolbar.removeToolbarItems(); |
+ var toolbarItems = view instanceof WebInspector.SimpleView ? view.syncToolbarItems() : null; |
+ for (var i = 0; toolbarItems && i < toolbarItems.length; ++i) |
+ this._storageViewToolbar.appendToolbarItem(toolbarItems[i]); |
+ } |
+ |
+ closeVisibleView() { |
+ if (!this.visibleView) |
+ return; |
+ this.visibleView.detach(); |
+ delete this.visibleView; |
+ } |
+ |
+ _updateDatabaseTables(event) { |
+ var database = event.data; |
+ |
+ if (!database) |
+ return; |
+ |
+ var databasesTreeElement = this._databaseTreeElements.get(database); |
+ if (!databasesTreeElement) |
+ return; |
+ |
+ databasesTreeElement.invalidateChildren(); |
+ var tableViews = this._databaseTableViews.get(database); |
+ |
+ if (!tableViews) |
+ return; |
+ |
+ var tableNamesHash = {}; |
+ var self = this; |
+ function tableNamesCallback(tableNames) { |
+ var tableNamesLength = tableNames.length; |
+ for (var i = 0; i < tableNamesLength; ++i) |
+ tableNamesHash[tableNames[i]] = true; |
+ |
+ for (var tableName in tableViews) { |
+ if (!(tableName in tableNamesHash)) { |
+ if (self.visibleView === tableViews[tableName]) |
+ self.closeVisibleView(); |
+ delete tableViews[tableName]; |
} |
+ } |
+ } |
+ database.getTableNames(tableNamesCallback); |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.DOMStorageModel} domStorageModel |
+ */ |
+ _populateDOMStorageTree(domStorageModel) { |
+ domStorageModel.enable(); |
+ domStorageModel.storages().forEach(this._addDOMStorage.bind(this)); |
+ domStorageModel.addEventListener(WebInspector.DOMStorageModel.Events.DOMStorageAdded, this._domStorageAdded, this); |
+ domStorageModel.addEventListener( |
+ WebInspector.DOMStorageModel.Events.DOMStorageRemoved, this._domStorageRemoved, this); |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.ResourceTreeModel} resourceTreeModel |
+ */ |
+ _populateApplicationCacheTree(resourceTreeModel) { |
+ this._applicationCacheModel = new WebInspector.ApplicationCacheModel(this._target, resourceTreeModel); |
+ |
+ this._applicationCacheViews = {}; |
+ this._applicationCacheFrameElements = {}; |
+ this._applicationCacheManifestElements = {}; |
+ |
+ this._applicationCacheModel.addEventListener( |
+ WebInspector.ApplicationCacheModel.Events.FrameManifestAdded, this._applicationCacheFrameManifestAdded, this); |
+ this._applicationCacheModel.addEventListener( |
+ WebInspector.ApplicationCacheModel.Events.FrameManifestRemoved, this._applicationCacheFrameManifestRemoved, |
+ this); |
+ this._applicationCacheModel.addEventListener( |
+ WebInspector.ApplicationCacheModel.Events.FrameManifestsReset, this._resetAppCache, this); |
+ |
+ this._applicationCacheModel.addEventListener( |
+ WebInspector.ApplicationCacheModel.Events.FrameManifestStatusUpdated, |
+ this._applicationCacheFrameManifestStatusChanged, this); |
+ this._applicationCacheModel.addEventListener( |
+ WebInspector.ApplicationCacheModel.Events.NetworkStateChanged, this._applicationCacheNetworkStateChanged, this); |
+ } |
+ |
+ _applicationCacheFrameManifestAdded(event) { |
+ var frameId = event.data; |
+ var manifestURL = this._applicationCacheModel.frameManifestURL(frameId); |
+ |
+ var manifestTreeElement = this._applicationCacheManifestElements[manifestURL]; |
+ if (!manifestTreeElement) { |
+ manifestTreeElement = new WebInspector.ApplicationCacheManifestTreeElement(this, manifestURL); |
+ this.applicationCacheListTreeElement.appendChild(manifestTreeElement); |
+ this._applicationCacheManifestElements[manifestURL] = manifestTreeElement; |
+ } |
- if (element instanceof WebInspector.FrameTreeElement) { |
- this._previousHoveredElement = element; |
- element.hovered = true; |
- } |
- }, |
+ var frameTreeElement = new WebInspector.ApplicationCacheFrameTreeElement(this, frameId, manifestURL); |
+ manifestTreeElement.appendChild(frameTreeElement); |
+ manifestTreeElement.expand(); |
+ this._applicationCacheFrameElements[frameId] = frameTreeElement; |
+ } |
+ |
+ _applicationCacheFrameManifestRemoved(event) { |
+ var frameId = event.data; |
+ var frameTreeElement = this._applicationCacheFrameElements[frameId]; |
+ if (!frameTreeElement) |
+ return; |
+ |
+ var manifestURL = frameTreeElement.manifestURL; |
+ delete this._applicationCacheFrameElements[frameId]; |
+ delete this._applicationCacheViews[frameId]; |
+ frameTreeElement.parent.removeChild(frameTreeElement); |
+ |
+ var manifestTreeElement = this._applicationCacheManifestElements[manifestURL]; |
+ if (manifestTreeElement.childCount()) |
+ return; |
+ |
+ delete this._applicationCacheManifestElements[manifestURL]; |
+ manifestTreeElement.parent.removeChild(manifestTreeElement); |
+ } |
+ |
+ _applicationCacheFrameManifestStatusChanged(event) { |
+ var frameId = event.data; |
+ var status = this._applicationCacheModel.frameManifestStatus(frameId); |
+ |
+ if (this._applicationCacheViews[frameId]) |
+ this._applicationCacheViews[frameId].updateStatus(status); |
+ } |
+ |
+ _applicationCacheNetworkStateChanged(event) { |
+ var isNowOnline = event.data; |
+ |
+ for (var manifestURL in this._applicationCacheViews) |
+ this._applicationCacheViews[manifestURL].updateNetworkState(isNowOnline); |
+ } |
+ |
+ _findTreeElementForResource(resource) { |
+ return resource[WebInspector.FrameResourceTreeElement._symbol]; |
+ } |
+ |
+ showView(view) { |
+ if (view) |
+ this.showResource(view.resource); |
+ } |
+ |
+ _onmousemove(event) { |
+ var nodeUnderMouse = event.target; |
+ if (!nodeUnderMouse) |
+ return; |
+ |
+ var listNode = nodeUnderMouse.enclosingNodeOrSelfWithNodeName('li'); |
+ if (!listNode) |
+ return; |
+ |
+ var element = listNode.treeElement; |
+ if (this._previousHoveredElement === element) |
+ return; |
+ |
+ if (this._previousHoveredElement) { |
+ this._previousHoveredElement.hovered = false; |
+ delete this._previousHoveredElement; |
+ } |
- _onmouseleave: function(event) |
- { |
- if (this._previousHoveredElement) { |
- this._previousHoveredElement.hovered = false; |
- delete this._previousHoveredElement; |
- } |
- }, |
+ if (element instanceof WebInspector.FrameTreeElement) { |
+ this._previousHoveredElement = element; |
+ element.hovered = true; |
+ } |
+ } |
- __proto__: WebInspector.PanelWithSidebar.prototype |
+ _onmouseleave(event) { |
+ if (this._previousHoveredElement) { |
+ this._previousHoveredElement.hovered = false; |
+ delete this._previousHoveredElement; |
+ } |
+ } |
}; |
/** |
- * @constructor |
* @implements {WebInspector.Revealer} |
+ * @unrestricted |
*/ |
-WebInspector.ResourcesPanel.ResourceRevealer = function() |
-{ |
-}; |
- |
-WebInspector.ResourcesPanel.ResourceRevealer.prototype = { |
- /** |
- * @override |
- * @param {!Object} resource |
- * @return {!Promise} |
- */ |
- reveal: function(resource) |
- { |
- if (!(resource instanceof WebInspector.Resource)) |
- return Promise.reject(new Error("Internal error: not a resource")); |
- var panel = WebInspector.ResourcesPanel._instance(); |
- return WebInspector.viewManager.showView("resources").then(panel.showResource.bind(panel, resource)); |
- } |
+WebInspector.ResourcesPanel.ResourceRevealer = class { |
+ /** |
+ * @override |
+ * @param {!Object} resource |
+ * @return {!Promise} |
+ */ |
+ reveal(resource) { |
+ if (!(resource instanceof WebInspector.Resource)) |
+ return Promise.reject(new Error('Internal error: not a resource')); |
+ var panel = WebInspector.ResourcesPanel._instance(); |
+ return WebInspector.viewManager.showView('resources').then(panel.showResource.bind(panel, resource)); |
+ } |
}; |
/** |
- * @constructor |
- * @extends {TreeElement} |
- * @param {!WebInspector.ResourcesPanel} storagePanel |
- * @param {string} title |
- * @param {?Array.<string>=} iconClasses |
- * @param {boolean=} expandable |
- * @param {boolean=} noIcon |
+ * @unrestricted |
*/ |
-WebInspector.BaseStorageTreeElement = function(storagePanel, title, iconClasses, expandable, noIcon) |
-{ |
- TreeElement.call(this, title, expandable); |
+WebInspector.BaseStorageTreeElement = class extends TreeElement { |
+ /** |
+ * @param {!WebInspector.ResourcesPanel} storagePanel |
+ * @param {string} title |
+ * @param {?Array.<string>=} iconClasses |
+ * @param {boolean=} expandable |
+ * @param {boolean=} noIcon |
+ */ |
+ constructor(storagePanel, title, iconClasses, expandable, noIcon) { |
+ super(title, expandable); |
this._storagePanel = storagePanel; |
for (var i = 0; iconClasses && i < iconClasses.length; ++i) |
- this.listItemElement.classList.add(iconClasses[i]); |
+ this.listItemElement.classList.add(iconClasses[i]); |
this._iconClasses = iconClasses; |
if (!noIcon) |
- this.createIcon(); |
-}; |
- |
-WebInspector.BaseStorageTreeElement.prototype = { |
- /** |
- * @override |
- * @return {boolean} |
- */ |
- onselect: function(selectedByUser) |
- { |
- if (!selectedByUser) |
- return false; |
- var itemURL = this.itemURL; |
- if (itemURL) |
- this._storagePanel._resourcesLastSelectedItemSetting.set(itemURL); |
- return false; |
- }, |
- |
- __proto__: TreeElement.prototype |
+ this.createIcon(); |
+ } |
+ |
+ /** |
+ * @override |
+ * @return {boolean} |
+ */ |
+ onselect(selectedByUser) { |
+ if (!selectedByUser) |
+ return false; |
+ var itemURL = this.itemURL; |
+ if (itemURL) |
+ this._storagePanel._resourcesLastSelectedItemSetting.set(itemURL); |
+ return false; |
+ } |
}; |
/** |
- * @constructor |
- * @extends {WebInspector.BaseStorageTreeElement} |
- * @param {!WebInspector.ResourcesPanel} storagePanel |
- * @param {string} categoryName |
- * @param {string} settingsKey |
- * @param {?Array.<string>=} iconClasses |
- * @param {boolean=} noIcon |
+ * @unrestricted |
*/ |
-WebInspector.StorageCategoryTreeElement = function(storagePanel, categoryName, settingsKey, iconClasses, noIcon) |
-{ |
- WebInspector.BaseStorageTreeElement.call(this, storagePanel, categoryName, iconClasses, false, noIcon); |
- this._expandedSetting = WebInspector.settings.createSetting("resources" + settingsKey + "Expanded", settingsKey === "Frames"); |
+WebInspector.StorageCategoryTreeElement = class extends WebInspector.BaseStorageTreeElement { |
+ /** |
+ * @param {!WebInspector.ResourcesPanel} storagePanel |
+ * @param {string} categoryName |
+ * @param {string} settingsKey |
+ * @param {?Array.<string>=} iconClasses |
+ * @param {boolean=} noIcon |
+ */ |
+ constructor(storagePanel, categoryName, settingsKey, iconClasses, noIcon) { |
+ super(storagePanel, categoryName, iconClasses, false, noIcon); |
+ this._expandedSetting = |
+ WebInspector.settings.createSetting('resources' + settingsKey + 'Expanded', settingsKey === 'Frames'); |
this._categoryName = categoryName; |
-}; |
- |
-WebInspector.StorageCategoryTreeElement.prototype = { |
- /** |
- * @return {!WebInspector.Target} |
- */ |
- target: function() |
- { |
- return this._storagePanel._target; |
- }, |
- |
- get itemURL() |
- { |
- return "category://" + this._categoryName; |
- }, |
- |
- /** |
- * @override |
- * @return {boolean} |
- */ |
- onselect: function(selectedByUser) |
- { |
- WebInspector.BaseStorageTreeElement.prototype.onselect.call(this, selectedByUser); |
- this._storagePanel.showCategoryView(this._categoryName); |
- return false; |
- }, |
- |
- /** |
- * @override |
- */ |
- onattach: function() |
- { |
- WebInspector.BaseStorageTreeElement.prototype.onattach.call(this); |
- if (this._expandedSetting.get()) |
- this.expand(); |
- }, |
- |
- /** |
- * @override |
- */ |
- onexpand: function() |
- { |
- this._expandedSetting.set(true); |
- }, |
- |
- /** |
- * @override |
- */ |
- oncollapse: function() |
- { |
- this._expandedSetting.set(false); |
- }, |
- |
- __proto__: WebInspector.BaseStorageTreeElement.prototype |
+ } |
+ |
+ /** |
+ * @return {!WebInspector.Target} |
+ */ |
+ target() { |
+ return this._storagePanel._target; |
+ } |
+ |
+ get itemURL() { |
+ return 'category://' + this._categoryName; |
+ } |
+ |
+ /** |
+ * @override |
+ * @return {boolean} |
+ */ |
+ onselect(selectedByUser) { |
+ super.onselect(selectedByUser); |
+ this._storagePanel.showCategoryView(this._categoryName); |
+ return false; |
+ } |
+ |
+ /** |
+ * @override |
+ */ |
+ onattach() { |
+ super.onattach(); |
+ if (this._expandedSetting.get()) |
+ this.expand(); |
+ } |
+ |
+ /** |
+ * @override |
+ */ |
+ onexpand() { |
+ this._expandedSetting.set(true); |
+ } |
+ |
+ /** |
+ * @override |
+ */ |
+ oncollapse() { |
+ this._expandedSetting.set(false); |
+ } |
}; |
/** |
- * @constructor |
- * @extends {WebInspector.BaseStorageTreeElement} |
- * @param {!WebInspector.ResourcesPanel} storagePanel |
- * @param {!WebInspector.ResourceTreeFrame} frame |
+ * @unrestricted |
*/ |
-WebInspector.FrameTreeElement = function(storagePanel, frame) |
-{ |
- WebInspector.BaseStorageTreeElement.call(this, storagePanel, "", ["navigator-tree-item", "navigator-frame-tree-item"]); |
+WebInspector.FrameTreeElement = class extends WebInspector.BaseStorageTreeElement { |
+ /** |
+ * @param {!WebInspector.ResourcesPanel} storagePanel |
+ * @param {!WebInspector.ResourceTreeFrame} frame |
+ */ |
+ constructor(storagePanel, frame) { |
+ super(storagePanel, '', ['navigator-tree-item', 'navigator-frame-tree-item']); |
this._frame = frame; |
this.frameNavigated(frame); |
-}; |
- |
-WebInspector.FrameTreeElement.prototype = { |
- frameNavigated: function(frame) |
- { |
- this.removeChildren(); |
- this._frameId = frame.id; |
- this.title = frame.displayName(); |
- this._categoryElements = {}; |
- this._treeElementForResource = {}; |
- |
- this._storagePanel.addDocumentURL(frame.url); |
- }, |
- |
- get itemURL() |
- { |
- return "frame://" + encodeURI(this.titleAsText()); |
- }, |
- |
- /** |
- * @override |
- * @return {boolean} |
- */ |
- onselect: function(selectedByUser) |
- { |
- WebInspector.BaseStorageTreeElement.prototype.onselect.call(this, selectedByUser); |
- this._storagePanel.showCategoryView(this.titleAsText()); |
- |
- this.listItemElement.classList.remove("hovered"); |
- WebInspector.DOMModel.hideDOMNodeHighlight(); |
- return false; |
- }, |
- |
- set hovered(hovered) |
- { |
- if (hovered) { |
- this.listItemElement.classList.add("hovered"); |
- var domModel = WebInspector.DOMModel.fromTarget(this._frame.target()); |
- if (domModel) |
- domModel.highlightFrame(this._frameId); |
- } else { |
- this.listItemElement.classList.remove("hovered"); |
- WebInspector.DOMModel.hideDOMNodeHighlight(); |
- } |
- }, |
- |
- /** |
- * @param {!WebInspector.Resource} resource |
- */ |
- appendResource: function(resource) |
- { |
- var resourceType = resource.resourceType(); |
- var categoryName = resourceType.name(); |
- var categoryElement = resourceType === WebInspector.resourceTypes.Document ? this : this._categoryElements[categoryName]; |
- if (!categoryElement) { |
- categoryElement = new WebInspector.StorageCategoryTreeElement(this._storagePanel, resource.resourceType().category().title, categoryName, null, true); |
- this._categoryElements[resourceType.name()] = categoryElement; |
- this._insertInPresentationOrder(this, categoryElement); |
- } |
- var resourceTreeElement = new WebInspector.FrameResourceTreeElement(this._storagePanel, resource); |
- this._insertInPresentationOrder(categoryElement, resourceTreeElement); |
- this._treeElementForResource[resource.url] = resourceTreeElement; |
- }, |
- |
- /** |
- * @param {string} url |
- * @return {?WebInspector.Resource} |
- */ |
- resourceByURL: function(url) |
- { |
- var treeElement = this._treeElementForResource[url]; |
- return treeElement ? treeElement._resource : null; |
- }, |
- |
- appendChild: function(treeElement) |
- { |
- this._insertInPresentationOrder(this, treeElement); |
- }, |
- |
- _insertInPresentationOrder: function(parentTreeElement, childTreeElement) |
- { |
- // Insert in the alphabetical order, first frames, then resources. Document resource goes last. |
- function typeWeight(treeElement) |
- { |
- if (treeElement instanceof WebInspector.StorageCategoryTreeElement) |
- return 2; |
- if (treeElement instanceof WebInspector.FrameTreeElement) |
- return 1; |
- return 3; |
- } |
- |
- function compare(treeElement1, treeElement2) |
- { |
- var typeWeight1 = typeWeight(treeElement1); |
- var typeWeight2 = typeWeight(treeElement2); |
- |
- var result; |
- if (typeWeight1 > typeWeight2) |
- result = 1; |
- else if (typeWeight1 < typeWeight2) |
- result = -1; |
- else |
- result = treeElement1.titleAsText().localeCompare(treeElement2.titleAsText()); |
- return result; |
- } |
+ } |
+ |
+ frameNavigated(frame) { |
+ this.removeChildren(); |
+ this._frameId = frame.id; |
+ this.title = frame.displayName(); |
+ this._categoryElements = {}; |
+ this._treeElementForResource = {}; |
+ |
+ this._storagePanel.addDocumentURL(frame.url); |
+ } |
+ |
+ get itemURL() { |
+ return 'frame://' + encodeURI(this.titleAsText()); |
+ } |
+ |
+ /** |
+ * @override |
+ * @return {boolean} |
+ */ |
+ onselect(selectedByUser) { |
+ super.onselect(selectedByUser); |
+ this._storagePanel.showCategoryView(this.titleAsText()); |
+ |
+ this.listItemElement.classList.remove('hovered'); |
+ WebInspector.DOMModel.hideDOMNodeHighlight(); |
+ return false; |
+ } |
+ |
+ set hovered(hovered) { |
+ if (hovered) { |
+ this.listItemElement.classList.add('hovered'); |
+ var domModel = WebInspector.DOMModel.fromTarget(this._frame.target()); |
+ if (domModel) |
+ domModel.highlightFrame(this._frameId); |
+ } else { |
+ this.listItemElement.classList.remove('hovered'); |
+ WebInspector.DOMModel.hideDOMNodeHighlight(); |
+ } |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.Resource} resource |
+ */ |
+ appendResource(resource) { |
+ var resourceType = resource.resourceType(); |
+ var categoryName = resourceType.name(); |
+ var categoryElement = |
+ resourceType === WebInspector.resourceTypes.Document ? this : this._categoryElements[categoryName]; |
+ if (!categoryElement) { |
+ categoryElement = new WebInspector.StorageCategoryTreeElement( |
+ this._storagePanel, resource.resourceType().category().title, categoryName, null, true); |
+ this._categoryElements[resourceType.name()] = categoryElement; |
+ this._insertInPresentationOrder(this, categoryElement); |
+ } |
+ var resourceTreeElement = new WebInspector.FrameResourceTreeElement(this._storagePanel, resource); |
+ this._insertInPresentationOrder(categoryElement, resourceTreeElement); |
+ this._treeElementForResource[resource.url] = resourceTreeElement; |
+ } |
+ |
+ /** |
+ * @param {string} url |
+ * @return {?WebInspector.Resource} |
+ */ |
+ resourceByURL(url) { |
+ var treeElement = this._treeElementForResource[url]; |
+ return treeElement ? treeElement._resource : null; |
+ } |
+ |
+ /** |
+ * @override |
+ */ |
+ appendChild(treeElement) { |
+ this._insertInPresentationOrder(this, treeElement); |
+ } |
+ |
+ _insertInPresentationOrder(parentTreeElement, childTreeElement) { |
+ // Insert in the alphabetical order, first frames, then resources. Document resource goes last. |
+ function typeWeight(treeElement) { |
+ if (treeElement instanceof WebInspector.StorageCategoryTreeElement) |
+ return 2; |
+ if (treeElement instanceof WebInspector.FrameTreeElement) |
+ return 1; |
+ return 3; |
+ } |
- var childCount = parentTreeElement.childCount(); |
- var i; |
- for (i = 0; i < childCount; ++i) { |
- if (compare(childTreeElement, parentTreeElement.childAt(i)) < 0) |
- break; |
- } |
- parentTreeElement.insertChild(childTreeElement, i); |
- }, |
+ function compare(treeElement1, treeElement2) { |
+ var typeWeight1 = typeWeight(treeElement1); |
+ var typeWeight2 = typeWeight(treeElement2); |
+ |
+ var result; |
+ if (typeWeight1 > typeWeight2) |
+ result = 1; |
+ else if (typeWeight1 < typeWeight2) |
+ result = -1; |
+ else |
+ result = treeElement1.titleAsText().localeCompare(treeElement2.titleAsText()); |
+ return result; |
+ } |
- __proto__: WebInspector.BaseStorageTreeElement.prototype |
+ var childCount = parentTreeElement.childCount(); |
+ var i; |
+ for (i = 0; i < childCount; ++i) { |
+ if (compare(childTreeElement, parentTreeElement.childAt(i)) < 0) |
+ break; |
+ } |
+ parentTreeElement.insertChild(childTreeElement, i); |
+ } |
}; |
/** |
- * @constructor |
- * @extends {WebInspector.BaseStorageTreeElement} |
- * @param {!WebInspector.ResourcesPanel} storagePanel |
- * @param {!WebInspector.Resource} resource |
+ * @unrestricted |
*/ |
-WebInspector.FrameResourceTreeElement = function(storagePanel, resource) |
-{ |
- WebInspector.BaseStorageTreeElement.call(this, storagePanel, resource.displayName, ["navigator-tree-item", "navigator-file-tree-item", "navigator-" + resource.resourceType().name() + "-tree-item"]); |
+WebInspector.FrameResourceTreeElement = class extends WebInspector.BaseStorageTreeElement { |
+ /** |
+ * @param {!WebInspector.ResourcesPanel} storagePanel |
+ * @param {!WebInspector.Resource} resource |
+ */ |
+ constructor(storagePanel, resource) { |
+ super(storagePanel, resource.displayName, [ |
+ 'navigator-tree-item', 'navigator-file-tree-item', 'navigator-' + resource.resourceType().name() + '-tree-item' |
+ ]); |
/** @type {!WebInspector.Resource} */ |
this._resource = resource; |
this.tooltip = resource.url; |
this._resource[WebInspector.FrameResourceTreeElement._symbol] = this; |
+ } |
+ |
+ get itemURL() { |
+ return this._resource.url; |
+ } |
+ |
+ /** |
+ * @override |
+ * @return {boolean} |
+ */ |
+ onselect(selectedByUser) { |
+ super.onselect(selectedByUser); |
+ this._storagePanel._showResourceView(this._resource); |
+ return false; |
+ } |
+ |
+ /** |
+ * @override |
+ * @return {boolean} |
+ */ |
+ ondblclick(event) { |
+ InspectorFrontendHost.openInNewTab(this._resource.url); |
+ return false; |
+ } |
+ |
+ /** |
+ * @override |
+ */ |
+ onattach() { |
+ super.onattach(); |
+ this.listItemElement.draggable = true; |
+ this.listItemElement.addEventListener('dragstart', this._ondragstart.bind(this), false); |
+ this.listItemElement.addEventListener('contextmenu', this._handleContextMenuEvent.bind(this), true); |
+ } |
+ |
+ /** |
+ * @param {!MouseEvent} event |
+ * @return {boolean} |
+ */ |
+ _ondragstart(event) { |
+ event.dataTransfer.setData('text/plain', this._resource.content || ''); |
+ event.dataTransfer.effectAllowed = 'copy'; |
+ return true; |
+ } |
+ |
+ _handleContextMenuEvent(event) { |
+ var contextMenu = new WebInspector.ContextMenu(event); |
+ contextMenu.appendApplicableItems(this._resource); |
+ contextMenu.show(); |
+ } |
+ |
+ /** |
+ * @return {!WebInspector.ResourceSourceFrame} |
+ */ |
+ sourceView() { |
+ if (!this._sourceView) { |
+ var sourceFrame = new WebInspector.ResourceSourceFrame(this._resource); |
+ sourceFrame.setHighlighterType(this._resource.canonicalMimeType()); |
+ this._sourceView = sourceFrame; |
+ } |
+ return this._sourceView; |
+ } |
}; |
-WebInspector.FrameResourceTreeElement._symbol = Symbol("treeElement"); |
- |
-WebInspector.FrameResourceTreeElement.prototype = { |
- get itemURL() |
- { |
- return this._resource.url; |
- }, |
- |
- /** |
- * @override |
- * @return {boolean} |
- */ |
- onselect: function(selectedByUser) |
- { |
- WebInspector.BaseStorageTreeElement.prototype.onselect.call(this, selectedByUser); |
- this._storagePanel._showResourceView(this._resource); |
- return false; |
- }, |
- |
- /** |
- * @override |
- * @return {boolean} |
- */ |
- ondblclick: function(event) |
- { |
- InspectorFrontendHost.openInNewTab(this._resource.url); |
- return false; |
- }, |
- |
- /** |
- * @override |
- */ |
- onattach: function() |
- { |
- WebInspector.BaseStorageTreeElement.prototype.onattach.call(this); |
- this.listItemElement.draggable = true; |
- this.listItemElement.addEventListener("dragstart", this._ondragstart.bind(this), false); |
- this.listItemElement.addEventListener("contextmenu", this._handleContextMenuEvent.bind(this), true); |
- }, |
- |
- /** |
- * @param {!MouseEvent} event |
- * @return {boolean} |
- */ |
- _ondragstart: function(event) |
- { |
- event.dataTransfer.setData("text/plain", this._resource.content || ""); |
- event.dataTransfer.effectAllowed = "copy"; |
- return true; |
- }, |
- |
- _handleContextMenuEvent: function(event) |
- { |
- var contextMenu = new WebInspector.ContextMenu(event); |
- contextMenu.appendApplicableItems(this._resource); |
- contextMenu.show(); |
- }, |
- |
- /** |
- * @return {!WebInspector.ResourceSourceFrame} |
- */ |
- sourceView: function() |
- { |
- if (!this._sourceView) { |
- var sourceFrame = new WebInspector.ResourceSourceFrame(this._resource); |
- sourceFrame.setHighlighterType(this._resource.canonicalMimeType()); |
- this._sourceView = sourceFrame; |
- } |
- return this._sourceView; |
- }, |
- |
- __proto__: WebInspector.BaseStorageTreeElement.prototype |
-}; |
+WebInspector.FrameResourceTreeElement._symbol = Symbol('treeElement'); |
/** |
- * @constructor |
- * @extends {WebInspector.BaseStorageTreeElement} |
- * @param {!WebInspector.ResourcesPanel} storagePanel |
- * @param {!WebInspector.Database} database |
+ * @unrestricted |
*/ |
-WebInspector.DatabaseTreeElement = function(storagePanel, database) |
-{ |
- WebInspector.BaseStorageTreeElement.call(this, storagePanel, database.name, ["database-tree-item", "resource-tree-item"], true); |
+WebInspector.DatabaseTreeElement = class extends WebInspector.BaseStorageTreeElement { |
+ /** |
+ * @param {!WebInspector.ResourcesPanel} storagePanel |
+ * @param {!WebInspector.Database} database |
+ */ |
+ constructor(storagePanel, database) { |
+ super(storagePanel, database.name, ['database-tree-item', 'resource-tree-item'], true); |
this._database = database; |
-}; |
- |
-WebInspector.DatabaseTreeElement.prototype = { |
- get itemURL() |
- { |
- return "database://" + encodeURI(this._database.name); |
- }, |
- |
- /** |
- * @override |
- * @return {boolean} |
- */ |
- onselect: function(selectedByUser) |
- { |
- WebInspector.BaseStorageTreeElement.prototype.onselect.call(this, selectedByUser); |
- this._storagePanel._showDatabase(this._database); |
- return false; |
- }, |
- |
- /** |
- * @override |
- */ |
- onexpand: function() |
- { |
- this._updateChildren(); |
- }, |
- |
- _updateChildren: function() |
- { |
- this.removeChildren(); |
- |
- /** |
- * @param {!Array.<string>} tableNames |
- * @this {WebInspector.DatabaseTreeElement} |
- */ |
- function tableNamesCallback(tableNames) |
- { |
- var tableNamesLength = tableNames.length; |
- for (var i = 0; i < tableNamesLength; ++i) |
- this.appendChild(new WebInspector.DatabaseTableTreeElement(this._storagePanel, this._database, tableNames[i])); |
- } |
- this._database.getTableNames(tableNamesCallback.bind(this)); |
- }, |
- |
- __proto__: WebInspector.BaseStorageTreeElement.prototype |
+ } |
+ |
+ get itemURL() { |
+ return 'database://' + encodeURI(this._database.name); |
+ } |
+ |
+ /** |
+ * @override |
+ * @return {boolean} |
+ */ |
+ onselect(selectedByUser) { |
+ super.onselect(selectedByUser); |
+ this._storagePanel._showDatabase(this._database); |
+ return false; |
+ } |
+ |
+ /** |
+ * @override |
+ */ |
+ onexpand() { |
+ this._updateChildren(); |
+ } |
+ |
+ _updateChildren() { |
+ this.removeChildren(); |
+ |
+ /** |
+ * @param {!Array.<string>} tableNames |
+ * @this {WebInspector.DatabaseTreeElement} |
+ */ |
+ function tableNamesCallback(tableNames) { |
+ var tableNamesLength = tableNames.length; |
+ for (var i = 0; i < tableNamesLength; ++i) |
+ this.appendChild(new WebInspector.DatabaseTableTreeElement(this._storagePanel, this._database, tableNames[i])); |
+ } |
+ this._database.getTableNames(tableNamesCallback.bind(this)); |
+ } |
}; |
/** |
- * @constructor |
- * @extends {WebInspector.BaseStorageTreeElement} |
+ * @unrestricted |
*/ |
-WebInspector.DatabaseTableTreeElement = function(storagePanel, database, tableName) |
-{ |
- WebInspector.BaseStorageTreeElement.call(this, storagePanel, tableName, ["table-tree-item", "resource-tree-item"]); |
+WebInspector.DatabaseTableTreeElement = class extends WebInspector.BaseStorageTreeElement { |
+ constructor(storagePanel, database, tableName) { |
+ super(storagePanel, tableName, ['table-tree-item', 'resource-tree-item']); |
this._database = database; |
this._tableName = tableName; |
+ } |
+ |
+ get itemURL() { |
+ return 'database://' + encodeURI(this._database.name) + '/' + encodeURI(this._tableName); |
+ } |
+ |
+ /** |
+ * @override |
+ * @return {boolean} |
+ */ |
+ onselect(selectedByUser) { |
+ super.onselect(selectedByUser); |
+ this._storagePanel._showDatabase(this._database, this._tableName); |
+ return false; |
+ } |
}; |
-WebInspector.DatabaseTableTreeElement.prototype = { |
- get itemURL() |
- { |
- return "database://" + encodeURI(this._database.name) + "/" + encodeURI(this._tableName); |
- }, |
- |
- /** |
- * @override |
- * @return {boolean} |
- */ |
- onselect: function(selectedByUser) |
- { |
- WebInspector.BaseStorageTreeElement.prototype.onselect.call(this, selectedByUser); |
- this._storagePanel._showDatabase(this._database, this._tableName); |
- return false; |
- }, |
- |
- __proto__: WebInspector.BaseStorageTreeElement.prototype |
-}; |
- |
- |
/** |
- * @constructor |
- * @extends {WebInspector.StorageCategoryTreeElement} |
- * @param {!WebInspector.ResourcesPanel} storagePanel |
+ * @unrestricted |
*/ |
-WebInspector.ServiceWorkerCacheTreeElement = function(storagePanel) |
-{ |
- WebInspector.StorageCategoryTreeElement.call(this, storagePanel, WebInspector.UIString("Cache Storage"), "CacheStorage", ["database-tree-item", "resource-tree-item"]); |
-}; |
- |
-WebInspector.ServiceWorkerCacheTreeElement.prototype = { |
- _initialize: function() |
- { |
- /** @type {!Array.<!WebInspector.SWCacheTreeElement>} */ |
- this._swCacheTreeElements = []; |
- var target = this._storagePanel._target; |
- var model = target && WebInspector.ServiceWorkerCacheModel.fromTarget(target); |
- if (model) { |
- for (var cache of model.caches()) |
- this._addCache(model, cache); |
- } |
- WebInspector.targetManager.addModelListener(WebInspector.ServiceWorkerCacheModel, WebInspector.ServiceWorkerCacheModel.Events.CacheAdded, this._cacheAdded, this); |
- WebInspector.targetManager.addModelListener(WebInspector.ServiceWorkerCacheModel, WebInspector.ServiceWorkerCacheModel.Events.CacheRemoved, this._cacheRemoved, this); |
- }, |
- |
- onattach: function() |
- { |
- WebInspector.StorageCategoryTreeElement.prototype.onattach.call(this); |
- this.listItemElement.addEventListener("contextmenu", this._handleContextMenuEvent.bind(this), true); |
- }, |
- |
- _handleContextMenuEvent: function(event) |
- { |
- var contextMenu = new WebInspector.ContextMenu(event); |
- contextMenu.appendItem(WebInspector.UIString("Refresh Caches"), this._refreshCaches.bind(this)); |
- contextMenu.show(); |
- }, |
- |
- _refreshCaches: function() |
- { |
- var target = this._storagePanel._target; |
- if (target) { |
- var model = WebInspector.ServiceWorkerCacheModel.fromTarget(target); |
- if (!model) |
- return; |
- model.refreshCacheNames(); |
- } |
- }, |
- |
- /** |
- * @param {!WebInspector.Event} event |
- */ |
- _cacheAdded: function(event) |
- { |
- var cache = /** @type {!WebInspector.ServiceWorkerCacheModel.Cache} */ (event.data); |
- var model = /** @type {!WebInspector.ServiceWorkerCacheModel} */ (event.target); |
+WebInspector.ServiceWorkerCacheTreeElement = class extends WebInspector.StorageCategoryTreeElement { |
+ /** |
+ * @param {!WebInspector.ResourcesPanel} storagePanel |
+ */ |
+ constructor(storagePanel) { |
+ super( |
+ storagePanel, WebInspector.UIString('Cache Storage'), 'CacheStorage', |
+ ['database-tree-item', 'resource-tree-item']); |
+ } |
+ |
+ _initialize() { |
+ /** @type {!Array.<!WebInspector.SWCacheTreeElement>} */ |
+ this._swCacheTreeElements = []; |
+ var target = this._storagePanel._target; |
+ var model = target && WebInspector.ServiceWorkerCacheModel.fromTarget(target); |
+ if (model) { |
+ for (var cache of model.caches()) |
this._addCache(model, cache); |
- }, |
- |
- /** |
- * @param {!WebInspector.ServiceWorkerCacheModel} model |
- * @param {!WebInspector.ServiceWorkerCacheModel.Cache} cache |
- */ |
- _addCache: function(model, cache) |
- { |
- var swCacheTreeElement = new WebInspector.SWCacheTreeElement(this._storagePanel, model, cache); |
- this._swCacheTreeElements.push(swCacheTreeElement); |
- this.appendChild(swCacheTreeElement); |
- }, |
- |
- /** |
- * @param {!WebInspector.Event} event |
- */ |
- _cacheRemoved: function(event) |
- { |
- var cache = /** @type {!WebInspector.ServiceWorkerCacheModel.Cache} */ (event.data); |
- var model = /** @type {!WebInspector.ServiceWorkerCacheModel} */ (event.target); |
- |
- var swCacheTreeElement = this._cacheTreeElement(model, cache); |
- if (!swCacheTreeElement) |
- return; |
- |
- swCacheTreeElement.clear(); |
- this.removeChild(swCacheTreeElement); |
- this._swCacheTreeElements.remove(swCacheTreeElement); |
- }, |
- |
- /** |
- * @param {!WebInspector.ServiceWorkerCacheModel} model |
- * @param {!WebInspector.ServiceWorkerCacheModel.Cache} cache |
- * @return {?WebInspector.SWCacheTreeElement} |
- */ |
- _cacheTreeElement: function(model, cache) |
- { |
- var index = -1; |
- for (var i = 0; i < this._swCacheTreeElements.length; ++i) { |
- if (this._swCacheTreeElements[i]._cache.equals(cache) && this._swCacheTreeElements[i]._model === model) { |
- index = i; |
- break; |
- } |
- } |
- if (index !== -1) |
- return this._swCacheTreeElements[i]; |
- return null; |
- }, |
- |
- __proto__: WebInspector.StorageCategoryTreeElement.prototype |
+ } |
+ WebInspector.targetManager.addModelListener( |
+ WebInspector.ServiceWorkerCacheModel, WebInspector.ServiceWorkerCacheModel.Events.CacheAdded, this._cacheAdded, |
+ this); |
+ WebInspector.targetManager.addModelListener( |
+ WebInspector.ServiceWorkerCacheModel, WebInspector.ServiceWorkerCacheModel.Events.CacheRemoved, |
+ this._cacheRemoved, this); |
+ } |
+ |
+ /** |
+ * @override |
+ */ |
+ onattach() { |
+ super.onattach(); |
+ this.listItemElement.addEventListener('contextmenu', this._handleContextMenuEvent.bind(this), true); |
+ } |
+ |
+ _handleContextMenuEvent(event) { |
+ var contextMenu = new WebInspector.ContextMenu(event); |
+ contextMenu.appendItem(WebInspector.UIString('Refresh Caches'), this._refreshCaches.bind(this)); |
+ contextMenu.show(); |
+ } |
+ |
+ _refreshCaches() { |
+ var target = this._storagePanel._target; |
+ if (target) { |
+ var model = WebInspector.ServiceWorkerCacheModel.fromTarget(target); |
+ if (!model) |
+ return; |
+ model.refreshCacheNames(); |
+ } |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.Event} event |
+ */ |
+ _cacheAdded(event) { |
+ var cache = /** @type {!WebInspector.ServiceWorkerCacheModel.Cache} */ (event.data); |
+ var model = /** @type {!WebInspector.ServiceWorkerCacheModel} */ (event.target); |
+ this._addCache(model, cache); |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.ServiceWorkerCacheModel} model |
+ * @param {!WebInspector.ServiceWorkerCacheModel.Cache} cache |
+ */ |
+ _addCache(model, cache) { |
+ var swCacheTreeElement = new WebInspector.SWCacheTreeElement(this._storagePanel, model, cache); |
+ this._swCacheTreeElements.push(swCacheTreeElement); |
+ this.appendChild(swCacheTreeElement); |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.Event} event |
+ */ |
+ _cacheRemoved(event) { |
+ var cache = /** @type {!WebInspector.ServiceWorkerCacheModel.Cache} */ (event.data); |
+ var model = /** @type {!WebInspector.ServiceWorkerCacheModel} */ (event.target); |
+ |
+ var swCacheTreeElement = this._cacheTreeElement(model, cache); |
+ if (!swCacheTreeElement) |
+ return; |
+ |
+ swCacheTreeElement.clear(); |
+ this.removeChild(swCacheTreeElement); |
+ this._swCacheTreeElements.remove(swCacheTreeElement); |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.ServiceWorkerCacheModel} model |
+ * @param {!WebInspector.ServiceWorkerCacheModel.Cache} cache |
+ * @return {?WebInspector.SWCacheTreeElement} |
+ */ |
+ _cacheTreeElement(model, cache) { |
+ var index = -1; |
+ for (var i = 0; i < this._swCacheTreeElements.length; ++i) { |
+ if (this._swCacheTreeElements[i]._cache.equals(cache) && this._swCacheTreeElements[i]._model === model) { |
+ index = i; |
+ break; |
+ } |
+ } |
+ if (index !== -1) |
+ return this._swCacheTreeElements[i]; |
+ return null; |
+ } |
}; |
/** |
- * @constructor |
- * @extends {WebInspector.BaseStorageTreeElement} |
- * @param {!WebInspector.ResourcesPanel} storagePanel |
- * @param {!WebInspector.ServiceWorkerCacheModel} model |
- * @param {!WebInspector.ServiceWorkerCacheModel.Cache} cache |
+ * @unrestricted |
*/ |
-WebInspector.SWCacheTreeElement = function(storagePanel, model, cache) |
-{ |
- WebInspector.BaseStorageTreeElement.call(this, storagePanel, cache.cacheName + " - " + cache.securityOrigin, ["table-tree-item", "resource-tree-item"]); |
+WebInspector.SWCacheTreeElement = class extends WebInspector.BaseStorageTreeElement { |
+ /** |
+ * @param {!WebInspector.ResourcesPanel} storagePanel |
+ * @param {!WebInspector.ServiceWorkerCacheModel} model |
+ * @param {!WebInspector.ServiceWorkerCacheModel.Cache} cache |
+ */ |
+ constructor(storagePanel, model, cache) { |
+ super(storagePanel, cache.cacheName + ' - ' + cache.securityOrigin, ['table-tree-item', 'resource-tree-item']); |
this._model = model; |
this._cache = cache; |
+ } |
+ |
+ get itemURL() { |
+ // I don't think this will work at all. |
+ return 'cache://' + this._cache.cacheId; |
+ } |
+ |
+ /** |
+ * @override |
+ */ |
+ onattach() { |
+ super.onattach(); |
+ this.listItemElement.addEventListener('contextmenu', this._handleContextMenuEvent.bind(this), true); |
+ } |
+ |
+ _handleContextMenuEvent(event) { |
+ var contextMenu = new WebInspector.ContextMenu(event); |
+ contextMenu.appendItem(WebInspector.UIString('Delete'), this._clearCache.bind(this)); |
+ contextMenu.show(); |
+ } |
+ |
+ _clearCache() { |
+ this._model.deleteCache(this._cache); |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.ServiceWorkerCacheModel.Cache} cache |
+ */ |
+ update(cache) { |
+ this._cache = cache; |
+ if (this._view) |
+ this._view.update(cache); |
+ } |
+ |
+ /** |
+ * @override |
+ * @return {boolean} |
+ */ |
+ onselect(selectedByUser) { |
+ super.onselect(selectedByUser); |
+ if (!this._view) |
+ this._view = new WebInspector.ServiceWorkerCacheView(this._model, this._cache); |
+ |
+ this._storagePanel._innerShowView(this._view); |
+ return false; |
+ } |
+ |
+ clear() { |
+ if (this._view) |
+ this._view.clear(); |
+ } |
}; |
-WebInspector.SWCacheTreeElement.prototype = { |
- get itemURL() |
- { |
- // I don't think this will work at all. |
- return "cache://" + this._cache.cacheId; |
- }, |
- |
- onattach: function() |
- { |
- WebInspector.BaseStorageTreeElement.prototype.onattach.call(this); |
- this.listItemElement.addEventListener("contextmenu", this._handleContextMenuEvent.bind(this), true); |
- }, |
- |
- _handleContextMenuEvent: function(event) |
- { |
- var contextMenu = new WebInspector.ContextMenu(event); |
- contextMenu.appendItem(WebInspector.UIString("Delete"), this._clearCache.bind(this)); |
- contextMenu.show(); |
- }, |
- |
- _clearCache: function() |
- { |
- this._model.deleteCache(this._cache); |
- }, |
- |
- /** |
- * @param {!WebInspector.ServiceWorkerCacheModel.Cache} cache |
- */ |
- update: function(cache) |
- { |
- this._cache = cache; |
- if (this._view) |
- this._view.update(cache); |
- }, |
- |
- /** |
- * @override |
- * @return {boolean} |
- */ |
- onselect: function(selectedByUser) |
- { |
- WebInspector.BaseStorageTreeElement.prototype.onselect.call(this, selectedByUser); |
- if (!this._view) |
- this._view = new WebInspector.ServiceWorkerCacheView(this._model, this._cache); |
- |
- this._storagePanel._innerShowView(this._view); |
- return false; |
- }, |
- |
- clear: function() |
- { |
- if (this._view) |
- this._view.clear(); |
- }, |
- |
- __proto__: WebInspector.BaseStorageTreeElement.prototype |
-}; |
- |
- |
/** |
- * @constructor |
- * @extends {WebInspector.BaseStorageTreeElement} |
- * @param {!WebInspector.ResourcesPanel} storagePanel |
+ * @unrestricted |
*/ |
-WebInspector.ServiceWorkersTreeElement = function(storagePanel) |
-{ |
- WebInspector.BaseStorageTreeElement.call(this, storagePanel, WebInspector.UIString("Service Workers"), ["service-worker-tree-item", "resource-tree-item"], false); |
-}; |
- |
-WebInspector.ServiceWorkersTreeElement.prototype = { |
- /** |
- * @return {string} |
- */ |
- get itemURL() |
- { |
- return "service-workers://"; |
- }, |
- |
- /** |
- * @override |
- * @return {boolean} |
- */ |
- onselect: function(selectedByUser) |
- { |
- WebInspector.BaseStorageTreeElement.prototype.onselect.call(this, selectedByUser); |
- if (!this._view) |
- this._view = new WebInspector.ServiceWorkersView(); |
- this._storagePanel._innerShowView(this._view); |
- return false; |
- }, |
- |
- __proto__: WebInspector.BaseStorageTreeElement.prototype |
+WebInspector.ServiceWorkersTreeElement = class extends WebInspector.BaseStorageTreeElement { |
+ /** |
+ * @param {!WebInspector.ResourcesPanel} storagePanel |
+ */ |
+ constructor(storagePanel) { |
+ super( |
+ storagePanel, WebInspector.UIString('Service Workers'), ['service-worker-tree-item', 'resource-tree-item'], |
+ false); |
+ } |
+ |
+ /** |
+ * @return {string} |
+ */ |
+ get itemURL() { |
+ return 'service-workers://'; |
+ } |
+ |
+ /** |
+ * @override |
+ * @return {boolean} |
+ */ |
+ onselect(selectedByUser) { |
+ super.onselect(selectedByUser); |
+ if (!this._view) |
+ this._view = new WebInspector.ServiceWorkersView(); |
+ this._storagePanel._innerShowView(this._view); |
+ return false; |
+ } |
}; |
/** |
- * @constructor |
- * @extends {WebInspector.BaseStorageTreeElement} |
- * @param {!WebInspector.ResourcesPanel} storagePanel |
+ * @unrestricted |
*/ |
-WebInspector.AppManifestTreeElement = function(storagePanel) |
-{ |
- WebInspector.BaseStorageTreeElement.call(this, storagePanel, WebInspector.UIString("Manifest"), ["manifest-tree-item", "resource-tree-item"], false, false); |
-}; |
- |
-WebInspector.AppManifestTreeElement.prototype = { |
- /** |
- * @return {string} |
- */ |
- get itemURL() |
- { |
- return "manifest://"; |
- }, |
- |
- /** |
- * @override |
- * @return {boolean} |
- */ |
- onselect: function(selectedByUser) |
- { |
- WebInspector.BaseStorageTreeElement.prototype.onselect.call(this, selectedByUser); |
- if (!this._view) |
- this._view = new WebInspector.AppManifestView(); |
- this._storagePanel._innerShowView(this._view); |
- return false; |
- }, |
- |
- __proto__: WebInspector.BaseStorageTreeElement.prototype |
+WebInspector.AppManifestTreeElement = class extends WebInspector.BaseStorageTreeElement { |
+ /** |
+ * @param {!WebInspector.ResourcesPanel} storagePanel |
+ */ |
+ constructor(storagePanel) { |
+ super(storagePanel, WebInspector.UIString('Manifest'), ['manifest-tree-item', 'resource-tree-item'], false, false); |
+ } |
+ |
+ /** |
+ * @return {string} |
+ */ |
+ get itemURL() { |
+ return 'manifest://'; |
+ } |
+ |
+ /** |
+ * @override |
+ * @return {boolean} |
+ */ |
+ onselect(selectedByUser) { |
+ super.onselect(selectedByUser); |
+ if (!this._view) |
+ this._view = new WebInspector.AppManifestView(); |
+ this._storagePanel._innerShowView(this._view); |
+ return false; |
+ } |
}; |
/** |
- * @constructor |
- * @extends {WebInspector.BaseStorageTreeElement} |
- * @param {!WebInspector.ResourcesPanel} storagePanel |
+ * @unrestricted |
*/ |
-WebInspector.ClearStorageTreeElement = function(storagePanel) |
-{ |
- WebInspector.BaseStorageTreeElement.call(this, storagePanel, WebInspector.UIString("Clear storage"), ["clear-storage-tree-item", "resource-tree-item"], false, false); |
-}; |
- |
-WebInspector.ClearStorageTreeElement.prototype = { |
- /** |
- * @return {string} |
- */ |
- get itemURL() |
- { |
- return "clear-storage://"; |
- }, |
- |
- /** |
- * @override |
- * @return {boolean} |
- */ |
- onselect: function(selectedByUser) |
- { |
- WebInspector.BaseStorageTreeElement.prototype.onselect.call(this, selectedByUser); |
- if (!this._view) |
- this._view = new WebInspector.ClearStorageView(this._storagePanel); |
- this._storagePanel._innerShowView(this._view); |
- return false; |
- }, |
- |
- __proto__: WebInspector.BaseStorageTreeElement.prototype |
+WebInspector.ClearStorageTreeElement = class extends WebInspector.BaseStorageTreeElement { |
+ /** |
+ * @param {!WebInspector.ResourcesPanel} storagePanel |
+ */ |
+ constructor(storagePanel) { |
+ super( |
+ storagePanel, WebInspector.UIString('Clear storage'), ['clear-storage-tree-item', 'resource-tree-item'], false, |
+ false); |
+ } |
+ |
+ /** |
+ * @return {string} |
+ */ |
+ get itemURL() { |
+ return 'clear-storage://'; |
+ } |
+ |
+ /** |
+ * @override |
+ * @return {boolean} |
+ */ |
+ onselect(selectedByUser) { |
+ super.onselect(selectedByUser); |
+ if (!this._view) |
+ this._view = new WebInspector.ClearStorageView(this._storagePanel); |
+ this._storagePanel._innerShowView(this._view); |
+ return false; |
+ } |
}; |
/** |
- * @constructor |
- * @extends {WebInspector.StorageCategoryTreeElement} |
- * @param {!WebInspector.ResourcesPanel} storagePanel |
+ * @unrestricted |
*/ |
-WebInspector.IndexedDBTreeElement = function(storagePanel) |
-{ |
- WebInspector.StorageCategoryTreeElement.call(this, storagePanel, WebInspector.UIString("IndexedDB"), "IndexedDB", ["database-tree-item", "resource-tree-item"]); |
-}; |
- |
-WebInspector.IndexedDBTreeElement.prototype = { |
- _initialize: function() |
- { |
- WebInspector.targetManager.addModelListener(WebInspector.IndexedDBModel, WebInspector.IndexedDBModel.Events.DatabaseAdded, this._indexedDBAdded, this); |
- WebInspector.targetManager.addModelListener(WebInspector.IndexedDBModel, WebInspector.IndexedDBModel.Events.DatabaseRemoved, this._indexedDBRemoved, this); |
- WebInspector.targetManager.addModelListener(WebInspector.IndexedDBModel, WebInspector.IndexedDBModel.Events.DatabaseLoaded, this._indexedDBLoaded, this); |
- /** @type {!Array.<!WebInspector.IDBDatabaseTreeElement>} */ |
- this._idbDatabaseTreeElements = []; |
- |
- var targets = WebInspector.targetManager.targets(WebInspector.Target.Capability.Browser); |
- for (var i = 0; i < targets.length; ++i) { |
- var indexedDBModel = WebInspector.IndexedDBModel.fromTarget(targets[i]); |
- var databases = indexedDBModel.databases(); |
- for (var j = 0; j < databases.length; ++j) |
- this._addIndexedDB(indexedDBModel, databases[j]); |
- } |
- }, |
- |
- onattach: function() |
- { |
- WebInspector.StorageCategoryTreeElement.prototype.onattach.call(this); |
- this.listItemElement.addEventListener("contextmenu", this._handleContextMenuEvent.bind(this), true); |
- }, |
- |
- _handleContextMenuEvent: function(event) |
- { |
- var contextMenu = new WebInspector.ContextMenu(event); |
- contextMenu.appendItem(WebInspector.UIString("Refresh IndexedDB"), this.refreshIndexedDB.bind(this)); |
- contextMenu.show(); |
- }, |
- |
- refreshIndexedDB: function() |
- { |
- var targets = WebInspector.targetManager.targets(WebInspector.Target.Capability.Browser); |
- for (var i = 0; i < targets.length; ++i) |
- WebInspector.IndexedDBModel.fromTarget(targets[i]).refreshDatabaseNames(); |
- }, |
- |
- /** |
- * @param {!WebInspector.Event} event |
- */ |
- _indexedDBAdded: function(event) |
- { |
- var databaseId = /** @type {!WebInspector.IndexedDBModel.DatabaseId} */ (event.data); |
- var model = /** @type {!WebInspector.IndexedDBModel} */ (event.target); |
- this._addIndexedDB(model, databaseId); |
- }, |
- |
- /** |
- * @param {!WebInspector.IndexedDBModel} model |
- * @param {!WebInspector.IndexedDBModel.DatabaseId} databaseId |
- */ |
- _addIndexedDB: function(model, databaseId) |
- { |
- var idbDatabaseTreeElement = new WebInspector.IDBDatabaseTreeElement(this._storagePanel, model, databaseId); |
- this._idbDatabaseTreeElements.push(idbDatabaseTreeElement); |
- this.appendChild(idbDatabaseTreeElement); |
- model.refreshDatabase(databaseId); |
- }, |
- |
- /** |
- * @param {!WebInspector.Event} event |
- */ |
- _indexedDBRemoved: function(event) |
- { |
- var databaseId = /** @type {!WebInspector.IndexedDBModel.DatabaseId} */ (event.data); |
- var model = /** @type {!WebInspector.IndexedDBModel} */ (event.target); |
- |
- var idbDatabaseTreeElement = this._idbDatabaseTreeElement(model, databaseId); |
- if (!idbDatabaseTreeElement) |
- return; |
- |
- idbDatabaseTreeElement.clear(); |
- this.removeChild(idbDatabaseTreeElement); |
- this._idbDatabaseTreeElements.remove(idbDatabaseTreeElement); |
- }, |
- |
- /** |
- * @param {!WebInspector.Event} event |
- */ |
- _indexedDBLoaded: function(event) |
- { |
- var database = /** @type {!WebInspector.IndexedDBModel.Database} */ (event.data); |
- var model = /** @type {!WebInspector.IndexedDBModel} */ (event.target); |
- |
- var idbDatabaseTreeElement = this._idbDatabaseTreeElement(model, database.databaseId); |
- if (!idbDatabaseTreeElement) |
- return; |
- |
- idbDatabaseTreeElement.update(database); |
- }, |
- |
- /** |
- * @param {!WebInspector.IndexedDBModel.DatabaseId} databaseId |
- * @param {!WebInspector.IndexedDBModel} model |
- * @return {?WebInspector.IDBDatabaseTreeElement} |
- */ |
- _idbDatabaseTreeElement: function(model, databaseId) |
- { |
- var index = -1; |
- for (var i = 0; i < this._idbDatabaseTreeElements.length; ++i) { |
- if (this._idbDatabaseTreeElements[i]._databaseId.equals(databaseId) && this._idbDatabaseTreeElements[i]._model === model) { |
- index = i; |
- break; |
- } |
- } |
- if (index !== -1) |
- return this._idbDatabaseTreeElements[i]; |
- return null; |
- }, |
- |
- __proto__: WebInspector.StorageCategoryTreeElement.prototype |
+WebInspector.IndexedDBTreeElement = class extends WebInspector.StorageCategoryTreeElement { |
+ /** |
+ * @param {!WebInspector.ResourcesPanel} storagePanel |
+ */ |
+ constructor(storagePanel) { |
+ super(storagePanel, WebInspector.UIString('IndexedDB'), 'IndexedDB', ['database-tree-item', 'resource-tree-item']); |
+ } |
+ |
+ _initialize() { |
+ WebInspector.targetManager.addModelListener( |
+ WebInspector.IndexedDBModel, WebInspector.IndexedDBModel.Events.DatabaseAdded, this._indexedDBAdded, this); |
+ WebInspector.targetManager.addModelListener( |
+ WebInspector.IndexedDBModel, WebInspector.IndexedDBModel.Events.DatabaseRemoved, this._indexedDBRemoved, this); |
+ WebInspector.targetManager.addModelListener( |
+ WebInspector.IndexedDBModel, WebInspector.IndexedDBModel.Events.DatabaseLoaded, this._indexedDBLoaded, this); |
+ /** @type {!Array.<!WebInspector.IDBDatabaseTreeElement>} */ |
+ this._idbDatabaseTreeElements = []; |
+ |
+ var targets = WebInspector.targetManager.targets(WebInspector.Target.Capability.Browser); |
+ for (var i = 0; i < targets.length; ++i) { |
+ var indexedDBModel = WebInspector.IndexedDBModel.fromTarget(targets[i]); |
+ var databases = indexedDBModel.databases(); |
+ for (var j = 0; j < databases.length; ++j) |
+ this._addIndexedDB(indexedDBModel, databases[j]); |
+ } |
+ } |
+ |
+ /** |
+ * @override |
+ */ |
+ onattach() { |
+ super.onattach(); |
+ this.listItemElement.addEventListener('contextmenu', this._handleContextMenuEvent.bind(this), true); |
+ } |
+ |
+ _handleContextMenuEvent(event) { |
+ var contextMenu = new WebInspector.ContextMenu(event); |
+ contextMenu.appendItem(WebInspector.UIString('Refresh IndexedDB'), this.refreshIndexedDB.bind(this)); |
+ contextMenu.show(); |
+ } |
+ |
+ refreshIndexedDB() { |
+ var targets = WebInspector.targetManager.targets(WebInspector.Target.Capability.Browser); |
+ for (var i = 0; i < targets.length; ++i) |
+ WebInspector.IndexedDBModel.fromTarget(targets[i]).refreshDatabaseNames(); |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.Event} event |
+ */ |
+ _indexedDBAdded(event) { |
+ var databaseId = /** @type {!WebInspector.IndexedDBModel.DatabaseId} */ (event.data); |
+ var model = /** @type {!WebInspector.IndexedDBModel} */ (event.target); |
+ this._addIndexedDB(model, databaseId); |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.IndexedDBModel} model |
+ * @param {!WebInspector.IndexedDBModel.DatabaseId} databaseId |
+ */ |
+ _addIndexedDB(model, databaseId) { |
+ var idbDatabaseTreeElement = new WebInspector.IDBDatabaseTreeElement(this._storagePanel, model, databaseId); |
+ this._idbDatabaseTreeElements.push(idbDatabaseTreeElement); |
+ this.appendChild(idbDatabaseTreeElement); |
+ model.refreshDatabase(databaseId); |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.Event} event |
+ */ |
+ _indexedDBRemoved(event) { |
+ var databaseId = /** @type {!WebInspector.IndexedDBModel.DatabaseId} */ (event.data); |
+ var model = /** @type {!WebInspector.IndexedDBModel} */ (event.target); |
+ |
+ var idbDatabaseTreeElement = this._idbDatabaseTreeElement(model, databaseId); |
+ if (!idbDatabaseTreeElement) |
+ return; |
+ |
+ idbDatabaseTreeElement.clear(); |
+ this.removeChild(idbDatabaseTreeElement); |
+ this._idbDatabaseTreeElements.remove(idbDatabaseTreeElement); |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.Event} event |
+ */ |
+ _indexedDBLoaded(event) { |
+ var database = /** @type {!WebInspector.IndexedDBModel.Database} */ (event.data); |
+ var model = /** @type {!WebInspector.IndexedDBModel} */ (event.target); |
+ |
+ var idbDatabaseTreeElement = this._idbDatabaseTreeElement(model, database.databaseId); |
+ if (!idbDatabaseTreeElement) |
+ return; |
+ |
+ idbDatabaseTreeElement.update(database); |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.IndexedDBModel.DatabaseId} databaseId |
+ * @param {!WebInspector.IndexedDBModel} model |
+ * @return {?WebInspector.IDBDatabaseTreeElement} |
+ */ |
+ _idbDatabaseTreeElement(model, databaseId) { |
+ var index = -1; |
+ for (var i = 0; i < this._idbDatabaseTreeElements.length; ++i) { |
+ if (this._idbDatabaseTreeElements[i]._databaseId.equals(databaseId) && |
+ this._idbDatabaseTreeElements[i]._model === model) { |
+ index = i; |
+ break; |
+ } |
+ } |
+ if (index !== -1) |
+ return this._idbDatabaseTreeElements[i]; |
+ return null; |
+ } |
}; |
/** |
- * @constructor |
- * @extends {WebInspector.BaseStorageTreeElement} |
- * @param {!WebInspector.ResourcesPanel} storagePanel |
- * @param {!WebInspector.IndexedDBModel} model |
- * @param {!WebInspector.IndexedDBModel.DatabaseId} databaseId |
+ * @unrestricted |
*/ |
-WebInspector.IDBDatabaseTreeElement = function(storagePanel, model, databaseId) |
-{ |
- WebInspector.BaseStorageTreeElement.call(this, storagePanel, databaseId.name + " - " + databaseId.securityOrigin, ["database-tree-item", "resource-tree-item"]); |
+WebInspector.IDBDatabaseTreeElement = class extends WebInspector.BaseStorageTreeElement { |
+ /** |
+ * @param {!WebInspector.ResourcesPanel} storagePanel |
+ * @param {!WebInspector.IndexedDBModel} model |
+ * @param {!WebInspector.IndexedDBModel.DatabaseId} databaseId |
+ */ |
+ constructor(storagePanel, model, databaseId) { |
+ super( |
+ storagePanel, databaseId.name + ' - ' + databaseId.securityOrigin, |
+ ['database-tree-item', 'resource-tree-item']); |
this._model = model; |
this._databaseId = databaseId; |
this._idbObjectStoreTreeElements = {}; |
-}; |
- |
-WebInspector.IDBDatabaseTreeElement.prototype = { |
- get itemURL() |
- { |
- return "indexedDB://" + this._databaseId.securityOrigin + "/" + this._databaseId.name; |
- }, |
- |
- onattach: function() |
- { |
- WebInspector.BaseStorageTreeElement.prototype.onattach.call(this); |
- this.listItemElement.addEventListener("contextmenu", this._handleContextMenuEvent.bind(this), true); |
- }, |
- |
- _handleContextMenuEvent: function(event) |
- { |
- var contextMenu = new WebInspector.ContextMenu(event); |
- contextMenu.appendItem(WebInspector.UIString("Refresh IndexedDB"), this._refreshIndexedDB.bind(this)); |
- contextMenu.show(); |
- }, |
- |
- _refreshIndexedDB: function() |
- { |
- this._model.refreshDatabaseNames(); |
- }, |
- |
- /** |
- * @param {!WebInspector.IndexedDBModel.Database} database |
- */ |
- update: function(database) |
- { |
- this._database = database; |
- var objectStoreNames = {}; |
- for (var objectStoreName in this._database.objectStores) { |
- var objectStore = this._database.objectStores[objectStoreName]; |
- objectStoreNames[objectStore.name] = true; |
- if (!this._idbObjectStoreTreeElements[objectStore.name]) { |
- var idbObjectStoreTreeElement = new WebInspector.IDBObjectStoreTreeElement(this._storagePanel, this._model, this._databaseId, objectStore); |
- this._idbObjectStoreTreeElements[objectStore.name] = idbObjectStoreTreeElement; |
- this.appendChild(idbObjectStoreTreeElement); |
- } |
- this._idbObjectStoreTreeElements[objectStore.name].update(objectStore); |
- } |
- for (var objectStoreName in this._idbObjectStoreTreeElements) { |
- if (!objectStoreNames[objectStoreName]) |
- this._objectStoreRemoved(objectStoreName); |
- } |
- |
- if (this._view) |
- this._view.update(database); |
- |
- this._updateTooltip(); |
- }, |
- |
- _updateTooltip: function() |
- { |
- this.tooltip = WebInspector.UIString("Version") + ": " + this._database.version; |
- }, |
- |
- /** |
- * @override |
- * @return {boolean} |
- */ |
- onselect: function(selectedByUser) |
- { |
- WebInspector.BaseStorageTreeElement.prototype.onselect.call(this, selectedByUser); |
- if (!this._view) |
- this._view = new WebInspector.IDBDatabaseView(this._database); |
- |
- this._storagePanel._innerShowView(this._view); |
- return false; |
- }, |
+ } |
+ |
+ get itemURL() { |
+ return 'indexedDB://' + this._databaseId.securityOrigin + '/' + this._databaseId.name; |
+ } |
+ |
+ /** |
+ * @override |
+ */ |
+ onattach() { |
+ super.onattach(); |
+ this.listItemElement.addEventListener('contextmenu', this._handleContextMenuEvent.bind(this), true); |
+ } |
+ |
+ _handleContextMenuEvent(event) { |
+ var contextMenu = new WebInspector.ContextMenu(event); |
+ contextMenu.appendItem(WebInspector.UIString('Refresh IndexedDB'), this._refreshIndexedDB.bind(this)); |
+ contextMenu.show(); |
+ } |
+ |
+ _refreshIndexedDB() { |
+ this._model.refreshDatabaseNames(); |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.IndexedDBModel.Database} database |
+ */ |
+ update(database) { |
+ this._database = database; |
+ var objectStoreNames = {}; |
+ for (var objectStoreName in this._database.objectStores) { |
+ var objectStore = this._database.objectStores[objectStoreName]; |
+ objectStoreNames[objectStore.name] = true; |
+ if (!this._idbObjectStoreTreeElements[objectStore.name]) { |
+ var idbObjectStoreTreeElement = |
+ new WebInspector.IDBObjectStoreTreeElement(this._storagePanel, this._model, this._databaseId, objectStore); |
+ this._idbObjectStoreTreeElements[objectStore.name] = idbObjectStoreTreeElement; |
+ this.appendChild(idbObjectStoreTreeElement); |
+ } |
+ this._idbObjectStoreTreeElements[objectStore.name].update(objectStore); |
+ } |
+ for (var objectStoreName in this._idbObjectStoreTreeElements) { |
+ if (!objectStoreNames[objectStoreName]) |
+ this._objectStoreRemoved(objectStoreName); |
+ } |
- /** |
- * @param {string} objectStoreName |
- */ |
- _objectStoreRemoved: function(objectStoreName) |
- { |
- var objectStoreTreeElement = this._idbObjectStoreTreeElements[objectStoreName]; |
- objectStoreTreeElement.clear(); |
- this.removeChild(objectStoreTreeElement); |
- delete this._idbObjectStoreTreeElements[objectStoreName]; |
- }, |
- |
- clear: function() |
- { |
- for (var objectStoreName in this._idbObjectStoreTreeElements) |
- this._objectStoreRemoved(objectStoreName); |
- }, |
- |
- __proto__: WebInspector.BaseStorageTreeElement.prototype |
+ if (this._view) |
+ this._view.update(database); |
+ |
+ this._updateTooltip(); |
+ } |
+ |
+ _updateTooltip() { |
+ this.tooltip = WebInspector.UIString('Version') + ': ' + this._database.version; |
+ } |
+ |
+ /** |
+ * @override |
+ * @return {boolean} |
+ */ |
+ onselect(selectedByUser) { |
+ super.onselect(selectedByUser); |
+ if (!this._view) |
+ this._view = new WebInspector.IDBDatabaseView(this._database); |
+ |
+ this._storagePanel._innerShowView(this._view); |
+ return false; |
+ } |
+ |
+ /** |
+ * @param {string} objectStoreName |
+ */ |
+ _objectStoreRemoved(objectStoreName) { |
+ var objectStoreTreeElement = this._idbObjectStoreTreeElements[objectStoreName]; |
+ objectStoreTreeElement.clear(); |
+ this.removeChild(objectStoreTreeElement); |
+ delete this._idbObjectStoreTreeElements[objectStoreName]; |
+ } |
+ |
+ clear() { |
+ for (var objectStoreName in this._idbObjectStoreTreeElements) |
+ this._objectStoreRemoved(objectStoreName); |
+ } |
}; |
/** |
- * @constructor |
- * @extends {WebInspector.BaseStorageTreeElement} |
- * @param {!WebInspector.ResourcesPanel} storagePanel |
- * @param {!WebInspector.IndexedDBModel} model |
- * @param {!WebInspector.IndexedDBModel.DatabaseId} databaseId |
- * @param {!WebInspector.IndexedDBModel.ObjectStore} objectStore |
+ * @unrestricted |
*/ |
-WebInspector.IDBObjectStoreTreeElement = function(storagePanel, model, databaseId, objectStore) |
-{ |
- WebInspector.BaseStorageTreeElement.call(this, storagePanel, objectStore.name, ["table-tree-item", "resource-tree-item"]); |
+WebInspector.IDBObjectStoreTreeElement = class extends WebInspector.BaseStorageTreeElement { |
+ /** |
+ * @param {!WebInspector.ResourcesPanel} storagePanel |
+ * @param {!WebInspector.IndexedDBModel} model |
+ * @param {!WebInspector.IndexedDBModel.DatabaseId} databaseId |
+ * @param {!WebInspector.IndexedDBModel.ObjectStore} objectStore |
+ */ |
+ constructor(storagePanel, model, databaseId, objectStore) { |
+ super(storagePanel, objectStore.name, ['table-tree-item', 'resource-tree-item']); |
this._model = model; |
this._databaseId = databaseId; |
this._idbIndexTreeElements = {}; |
-}; |
+ } |
-WebInspector.IDBObjectStoreTreeElement.prototype = { |
- get itemURL() |
- { |
- return "indexedDB://" + this._databaseId.securityOrigin + "/" + this._databaseId.name + "/" + this._objectStore.name; |
- }, |
- |
- onattach: function() |
- { |
- WebInspector.BaseStorageTreeElement.prototype.onattach.call(this); |
- this.listItemElement.addEventListener("contextmenu", this._handleContextMenuEvent.bind(this), true); |
- }, |
- |
- _handleContextMenuEvent: function(event) |
- { |
- var contextMenu = new WebInspector.ContextMenu(event); |
- contextMenu.appendItem(WebInspector.UIString("Clear"), this._clearObjectStore.bind(this)); |
- contextMenu.show(); |
- }, |
- |
- _clearObjectStore: function() |
- { |
- /** |
- * @this {WebInspector.IDBObjectStoreTreeElement} |
- */ |
- function callback() { |
- this.update(this._objectStore); |
- } |
- this._model.clearObjectStore(this._databaseId, this._objectStore.name, callback.bind(this)); |
- }, |
+ get itemURL() { |
+ return 'indexedDB://' + this._databaseId.securityOrigin + '/' + this._databaseId.name + '/' + |
+ this._objectStore.name; |
+ } |
- /** |
- * @param {!WebInspector.IndexedDBModel.ObjectStore} objectStore |
- */ |
- update: function(objectStore) |
- { |
- this._objectStore = objectStore; |
- |
- var indexNames = {}; |
- for (var indexName in this._objectStore.indexes) { |
- var index = this._objectStore.indexes[indexName]; |
- indexNames[index.name] = true; |
- if (!this._idbIndexTreeElements[index.name]) { |
- var idbIndexTreeElement = new WebInspector.IDBIndexTreeElement(this._storagePanel, this._model, this._databaseId, this._objectStore, index); |
- this._idbIndexTreeElements[index.name] = idbIndexTreeElement; |
- this.appendChild(idbIndexTreeElement); |
- } |
- this._idbIndexTreeElements[index.name].update(index); |
- } |
- for (var indexName in this._idbIndexTreeElements) { |
- if (!indexNames[indexName]) |
- this._indexRemoved(indexName); |
- } |
- for (var indexName in this._idbIndexTreeElements) { |
- if (!indexNames[indexName]) { |
- this.removeChild(this._idbIndexTreeElements[indexName]); |
- delete this._idbIndexTreeElements[indexName]; |
- } |
- } |
- |
- if (this.childCount()) |
- this.expand(); |
- |
- if (this._view) |
- this._view.update(this._objectStore); |
- |
- this._updateTooltip(); |
- }, |
- |
- _updateTooltip: function() |
- { |
+ /** |
+ * @override |
+ */ |
+ onattach() { |
+ super.onattach(); |
+ this.listItemElement.addEventListener('contextmenu', this._handleContextMenuEvent.bind(this), true); |
+ } |
- var keyPathString = this._objectStore.keyPathString; |
- var tooltipString = keyPathString !== null ? (WebInspector.UIString("Key path: ") + keyPathString) : ""; |
- if (this._objectStore.autoIncrement) |
- tooltipString += "\n" + WebInspector.UIString("autoIncrement"); |
- this.tooltip = tooltipString; |
- }, |
+ _handleContextMenuEvent(event) { |
+ var contextMenu = new WebInspector.ContextMenu(event); |
+ contextMenu.appendItem(WebInspector.UIString('Clear'), this._clearObjectStore.bind(this)); |
+ contextMenu.show(); |
+ } |
+ _clearObjectStore() { |
/** |
- * @override |
- * @return {boolean} |
+ * @this {WebInspector.IDBObjectStoreTreeElement} |
*/ |
- onselect: function(selectedByUser) |
- { |
- WebInspector.BaseStorageTreeElement.prototype.onselect.call(this, selectedByUser); |
- if (!this._view) |
- this._view = new WebInspector.IDBDataView(this._model, this._databaseId, this._objectStore, null); |
+ function callback() { |
+ this.update(this._objectStore); |
+ } |
+ this._model.clearObjectStore(this._databaseId, this._objectStore.name, callback.bind(this)); |
+ } |
- this._storagePanel._innerShowView(this._view); |
- return false; |
- }, |
+ /** |
+ * @param {!WebInspector.IndexedDBModel.ObjectStore} objectStore |
+ */ |
+ update(objectStore) { |
+ this._objectStore = objectStore; |
- /** |
- * @param {string} indexName |
- */ |
- _indexRemoved: function(indexName) |
- { |
- var indexTreeElement = this._idbIndexTreeElements[indexName]; |
- indexTreeElement.clear(); |
- this.removeChild(indexTreeElement); |
+ var indexNames = {}; |
+ for (var indexName in this._objectStore.indexes) { |
+ var index = this._objectStore.indexes[indexName]; |
+ indexNames[index.name] = true; |
+ if (!this._idbIndexTreeElements[index.name]) { |
+ var idbIndexTreeElement = new WebInspector.IDBIndexTreeElement( |
+ this._storagePanel, this._model, this._databaseId, this._objectStore, index); |
+ this._idbIndexTreeElements[index.name] = idbIndexTreeElement; |
+ this.appendChild(idbIndexTreeElement); |
+ } |
+ this._idbIndexTreeElements[index.name].update(index); |
+ } |
+ for (var indexName in this._idbIndexTreeElements) { |
+ if (!indexNames[indexName]) |
+ this._indexRemoved(indexName); |
+ } |
+ for (var indexName in this._idbIndexTreeElements) { |
+ if (!indexNames[indexName]) { |
+ this.removeChild(this._idbIndexTreeElements[indexName]); |
delete this._idbIndexTreeElements[indexName]; |
- }, |
- |
- clear: function() |
- { |
- for (var indexName in this._idbIndexTreeElements) |
- this._indexRemoved(indexName); |
- if (this._view) |
- this._view.clear(); |
- }, |
+ } |
+ } |
- __proto__: WebInspector.BaseStorageTreeElement.prototype |
+ if (this.childCount()) |
+ this.expand(); |
+ |
+ if (this._view) |
+ this._view.update(this._objectStore); |
+ |
+ this._updateTooltip(); |
+ } |
+ |
+ _updateTooltip() { |
+ var keyPathString = this._objectStore.keyPathString; |
+ var tooltipString = keyPathString !== null ? (WebInspector.UIString('Key path: ') + keyPathString) : ''; |
+ if (this._objectStore.autoIncrement) |
+ tooltipString += '\n' + WebInspector.UIString('autoIncrement'); |
+ this.tooltip = tooltipString; |
+ } |
+ |
+ /** |
+ * @override |
+ * @return {boolean} |
+ */ |
+ onselect(selectedByUser) { |
+ super.onselect(selectedByUser); |
+ if (!this._view) |
+ this._view = new WebInspector.IDBDataView(this._model, this._databaseId, this._objectStore, null); |
+ |
+ this._storagePanel._innerShowView(this._view); |
+ return false; |
+ } |
+ |
+ /** |
+ * @param {string} indexName |
+ */ |
+ _indexRemoved(indexName) { |
+ var indexTreeElement = this._idbIndexTreeElements[indexName]; |
+ indexTreeElement.clear(); |
+ this.removeChild(indexTreeElement); |
+ delete this._idbIndexTreeElements[indexName]; |
+ } |
+ |
+ clear() { |
+ for (var indexName in this._idbIndexTreeElements) |
+ this._indexRemoved(indexName); |
+ if (this._view) |
+ this._view.clear(); |
+ } |
}; |
/** |
- * @constructor |
- * @extends {WebInspector.BaseStorageTreeElement} |
- * @param {!WebInspector.ResourcesPanel} storagePanel |
- * @param {!WebInspector.IndexedDBModel} model |
- * @param {!WebInspector.IndexedDBModel.DatabaseId} databaseId |
- * @param {!WebInspector.IndexedDBModel.ObjectStore} objectStore |
- * @param {!WebInspector.IndexedDBModel.Index} index |
+ * @unrestricted |
*/ |
-WebInspector.IDBIndexTreeElement = function(storagePanel, model, databaseId, objectStore, index) |
-{ |
- WebInspector.BaseStorageTreeElement.call(this, storagePanel, index.name, ["index-tree-item", "resource-tree-item"]); |
+WebInspector.IDBIndexTreeElement = class extends WebInspector.BaseStorageTreeElement { |
+ /** |
+ * @param {!WebInspector.ResourcesPanel} storagePanel |
+ * @param {!WebInspector.IndexedDBModel} model |
+ * @param {!WebInspector.IndexedDBModel.DatabaseId} databaseId |
+ * @param {!WebInspector.IndexedDBModel.ObjectStore} objectStore |
+ * @param {!WebInspector.IndexedDBModel.Index} index |
+ */ |
+ constructor(storagePanel, model, databaseId, objectStore, index) { |
+ super(storagePanel, index.name, ['index-tree-item', 'resource-tree-item']); |
this._model = model; |
this._databaseId = databaseId; |
this._objectStore = objectStore; |
this._index = index; |
-}; |
+ } |
-WebInspector.IDBIndexTreeElement.prototype = { |
- get itemURL() |
- { |
- return "indexedDB://" + this._databaseId.securityOrigin + "/" + this._databaseId.name + "/" + this._objectStore.name + "/" + this._index.name; |
- }, |
+ get itemURL() { |
+ return 'indexedDB://' + this._databaseId.securityOrigin + '/' + this._databaseId.name + '/' + |
+ this._objectStore.name + '/' + this._index.name; |
+ } |
- /** |
- * @param {!WebInspector.IndexedDBModel.Index} index |
- */ |
- update: function(index) |
- { |
- this._index = index; |
- |
- if (this._view) |
- this._view.update(this._index); |
- |
- this._updateTooltip(); |
- }, |
- |
- _updateTooltip: function() |
- { |
- var tooltipLines = []; |
- var keyPathString = this._index.keyPathString; |
- tooltipLines.push(WebInspector.UIString("Key path: ") + keyPathString); |
- if (this._index.unique) |
- tooltipLines.push(WebInspector.UIString("unique")); |
- if (this._index.multiEntry) |
- tooltipLines.push(WebInspector.UIString("multiEntry")); |
- this.tooltip = tooltipLines.join("\n"); |
- }, |
+ /** |
+ * @param {!WebInspector.IndexedDBModel.Index} index |
+ */ |
+ update(index) { |
+ this._index = index; |
- /** |
- * @override |
- * @return {boolean} |
- */ |
- onselect: function(selectedByUser) |
- { |
- WebInspector.BaseStorageTreeElement.prototype.onselect.call(this, selectedByUser); |
- if (!this._view) |
- this._view = new WebInspector.IDBDataView(this._model, this._databaseId, this._objectStore, this._index); |
- |
- this._storagePanel._innerShowView(this._view); |
- return false; |
- }, |
- |
- clear: function() |
- { |
- if (this._view) |
- this._view.clear(); |
- }, |
- |
- __proto__: WebInspector.BaseStorageTreeElement.prototype |
+ if (this._view) |
+ this._view.update(this._index); |
+ |
+ this._updateTooltip(); |
+ } |
+ |
+ _updateTooltip() { |
+ var tooltipLines = []; |
+ var keyPathString = this._index.keyPathString; |
+ tooltipLines.push(WebInspector.UIString('Key path: ') + keyPathString); |
+ if (this._index.unique) |
+ tooltipLines.push(WebInspector.UIString('unique')); |
+ if (this._index.multiEntry) |
+ tooltipLines.push(WebInspector.UIString('multiEntry')); |
+ this.tooltip = tooltipLines.join('\n'); |
+ } |
+ |
+ /** |
+ * @override |
+ * @return {boolean} |
+ */ |
+ onselect(selectedByUser) { |
+ super.onselect(selectedByUser); |
+ if (!this._view) |
+ this._view = new WebInspector.IDBDataView(this._model, this._databaseId, this._objectStore, this._index); |
+ |
+ this._storagePanel._innerShowView(this._view); |
+ return false; |
+ } |
+ |
+ clear() { |
+ if (this._view) |
+ this._view.clear(); |
+ } |
}; |
/** |
- * @constructor |
- * @extends {WebInspector.BaseStorageTreeElement} |
+ * @unrestricted |
*/ |
-WebInspector.DOMStorageTreeElement = function(storagePanel, domStorage) |
-{ |
- WebInspector.BaseStorageTreeElement.call(this, storagePanel, domStorage.securityOrigin ? domStorage.securityOrigin : WebInspector.UIString("Local Files"), ["table-tree-item", "resource-tree-item"]); |
+WebInspector.DOMStorageTreeElement = class extends WebInspector.BaseStorageTreeElement { |
+ constructor(storagePanel, domStorage) { |
+ super( |
+ storagePanel, domStorage.securityOrigin ? domStorage.securityOrigin : WebInspector.UIString('Local Files'), |
+ ['table-tree-item', 'resource-tree-item']); |
this._domStorage = domStorage; |
-}; |
- |
-WebInspector.DOMStorageTreeElement.prototype = { |
- get itemURL() |
- { |
- return "storage://" + this._domStorage.securityOrigin + "/" + (this._domStorage.isLocalStorage ? "local" : "session"); |
- }, |
- |
- /** |
- * @override |
- * @return {boolean} |
- */ |
- onselect: function(selectedByUser) |
- { |
- WebInspector.BaseStorageTreeElement.prototype.onselect.call(this, selectedByUser); |
- this._storagePanel._showDOMStorage(this._domStorage); |
- return false; |
- }, |
- |
- __proto__: WebInspector.BaseStorageTreeElement.prototype |
+ } |
+ |
+ get itemURL() { |
+ return 'storage://' + this._domStorage.securityOrigin + '/' + |
+ (this._domStorage.isLocalStorage ? 'local' : 'session'); |
+ } |
+ |
+ /** |
+ * @override |
+ * @return {boolean} |
+ */ |
+ onselect(selectedByUser) { |
+ super.onselect(selectedByUser); |
+ this._storagePanel._showDOMStorage(this._domStorage); |
+ return false; |
+ } |
}; |
/** |
- * @constructor |
- * @extends {WebInspector.BaseStorageTreeElement} |
+ * @unrestricted |
*/ |
-WebInspector.CookieTreeElement = function(storagePanel, cookieDomain) |
-{ |
- WebInspector.BaseStorageTreeElement.call(this, storagePanel, cookieDomain ? cookieDomain : WebInspector.UIString("Local Files"), ["cookie-tree-item", "resource-tree-item"]); |
+WebInspector.CookieTreeElement = class extends WebInspector.BaseStorageTreeElement { |
+ constructor(storagePanel, cookieDomain) { |
+ super( |
+ storagePanel, cookieDomain ? cookieDomain : WebInspector.UIString('Local Files'), |
+ ['cookie-tree-item', 'resource-tree-item']); |
this._cookieDomain = cookieDomain; |
-}; |
- |
-WebInspector.CookieTreeElement.prototype = { |
- get itemURL() |
- { |
- return "cookies://" + this._cookieDomain; |
- }, |
- |
- onattach: function() |
- { |
- WebInspector.BaseStorageTreeElement.prototype.onattach.call(this); |
- this.listItemElement.addEventListener("contextmenu", this._handleContextMenuEvent.bind(this), true); |
- }, |
- |
- /** |
- * @param {!Event} event |
- */ |
- _handleContextMenuEvent: function(event) |
- { |
- var contextMenu = new WebInspector.ContextMenu(event); |
- contextMenu.appendItem(WebInspector.UIString("Clear"), this._clearCookies.bind(this)); |
- contextMenu.show(); |
- }, |
- |
- /** |
- * @param {string} domain |
- */ |
- _clearCookies: function(domain) |
- { |
- this._storagePanel.clearCookies(this._cookieDomain); |
- }, |
- |
- /** |
- * @override |
- * @return {boolean} |
- */ |
- onselect: function(selectedByUser) |
- { |
- WebInspector.BaseStorageTreeElement.prototype.onselect.call(this, selectedByUser); |
- this._storagePanel.showCookies(this, this._cookieDomain); |
- return false; |
- }, |
- |
- __proto__: WebInspector.BaseStorageTreeElement.prototype |
+ } |
+ |
+ get itemURL() { |
+ return 'cookies://' + this._cookieDomain; |
+ } |
+ |
+ /** |
+ * @override |
+ */ |
+ onattach() { |
+ super.onattach(); |
+ this.listItemElement.addEventListener('contextmenu', this._handleContextMenuEvent.bind(this), true); |
+ } |
+ |
+ /** |
+ * @param {!Event} event |
+ */ |
+ _handleContextMenuEvent(event) { |
+ var contextMenu = new WebInspector.ContextMenu(event); |
+ contextMenu.appendItem(WebInspector.UIString('Clear'), this._clearCookies.bind(this)); |
+ contextMenu.show(); |
+ } |
+ |
+ /** |
+ * @param {string} domain |
+ */ |
+ _clearCookies(domain) { |
+ this._storagePanel.clearCookies(this._cookieDomain); |
+ } |
+ |
+ /** |
+ * @override |
+ * @return {boolean} |
+ */ |
+ onselect(selectedByUser) { |
+ super.onselect(selectedByUser); |
+ this._storagePanel.showCookies(this, this._cookieDomain); |
+ return false; |
+ } |
}; |
/** |
- * @constructor |
- * @extends {WebInspector.BaseStorageTreeElement} |
+ * @unrestricted |
*/ |
-WebInspector.ApplicationCacheManifestTreeElement = function(storagePanel, manifestURL) |
-{ |
+WebInspector.ApplicationCacheManifestTreeElement = class extends WebInspector.BaseStorageTreeElement { |
+ constructor(storagePanel, manifestURL) { |
var title = new WebInspector.ParsedURL(manifestURL).displayName; |
- WebInspector.BaseStorageTreeElement.call(this, storagePanel, title, ["application-cache-storage-tree-item"]); |
+ super(storagePanel, title, ['application-cache-storage-tree-item']); |
this.tooltip = manifestURL; |
this._manifestURL = manifestURL; |
-}; |
- |
-WebInspector.ApplicationCacheManifestTreeElement.prototype = { |
- get itemURL() |
- { |
- return "appcache://" + this._manifestURL; |
- }, |
- |
- get manifestURL() |
- { |
- return this._manifestURL; |
- }, |
- |
- /** |
- * @override |
- * @return {boolean} |
- */ |
- onselect: function(selectedByUser) |
- { |
- WebInspector.BaseStorageTreeElement.prototype.onselect.call(this, selectedByUser); |
- this._storagePanel.showCategoryView(this._manifestURL); |
- return false; |
- }, |
- |
- __proto__: WebInspector.BaseStorageTreeElement.prototype |
+ } |
+ |
+ get itemURL() { |
+ return 'appcache://' + this._manifestURL; |
+ } |
+ |
+ get manifestURL() { |
+ return this._manifestURL; |
+ } |
+ |
+ /** |
+ * @override |
+ * @return {boolean} |
+ */ |
+ onselect(selectedByUser) { |
+ super.onselect(selectedByUser); |
+ this._storagePanel.showCategoryView(this._manifestURL); |
+ return false; |
+ } |
}; |
/** |
- * @constructor |
- * @extends {WebInspector.BaseStorageTreeElement} |
- * @param {!WebInspector.ResourcesPanel} storagePanel |
- * @param {!PageAgent.FrameId} frameId |
- * @param {string} manifestURL |
+ * @unrestricted |
*/ |
-WebInspector.ApplicationCacheFrameTreeElement = function(storagePanel, frameId, manifestURL) |
-{ |
- WebInspector.BaseStorageTreeElement.call(this, storagePanel, "", ["navigator-tree-item", "navigator-folder-tree-item"]); |
+WebInspector.ApplicationCacheFrameTreeElement = class extends WebInspector.BaseStorageTreeElement { |
+ /** |
+ * @param {!WebInspector.ResourcesPanel} storagePanel |
+ * @param {!PageAgent.FrameId} frameId |
+ * @param {string} manifestURL |
+ */ |
+ constructor(storagePanel, frameId, manifestURL) { |
+ super(storagePanel, '', ['navigator-tree-item', 'navigator-folder-tree-item']); |
this._frameId = frameId; |
this._manifestURL = manifestURL; |
this._refreshTitles(); |
-}; |
+ } |
-WebInspector.ApplicationCacheFrameTreeElement.prototype = { |
- get itemURL() |
- { |
- return "appcache://" + this._manifestURL + "/" + encodeURI(this.titleAsText()); |
- }, |
- |
- get frameId() |
- { |
- return this._frameId; |
- }, |
- |
- get manifestURL() |
- { |
- return this._manifestURL; |
- }, |
- |
- _refreshTitles: function() |
- { |
- var resourceTreeModel = WebInspector.ResourceTreeModel.fromTarget(this._storagePanel._target); |
- var frame = resourceTreeModel.frameForId(this._frameId); |
- this.title = frame.displayName(); |
- }, |
- |
- frameNavigated: function() |
- { |
- this._refreshTitles(); |
- }, |
+ get itemURL() { |
+ return 'appcache://' + this._manifestURL + '/' + encodeURI(this.titleAsText()); |
+ } |
- /** |
- * @override |
- * @return {boolean} |
- */ |
- onselect: function(selectedByUser) |
- { |
- WebInspector.BaseStorageTreeElement.prototype.onselect.call(this, selectedByUser); |
- this._storagePanel.showApplicationCache(this._frameId); |
- return false; |
- }, |
- |
- __proto__: WebInspector.BaseStorageTreeElement.prototype |
+ get frameId() { |
+ return this._frameId; |
+ } |
+ |
+ get manifestURL() { |
+ return this._manifestURL; |
+ } |
+ |
+ _refreshTitles() { |
+ var resourceTreeModel = WebInspector.ResourceTreeModel.fromTarget(this._storagePanel._target); |
+ var frame = resourceTreeModel.frameForId(this._frameId); |
+ this.title = frame.displayName(); |
+ } |
+ |
+ frameNavigated() { |
+ this._refreshTitles(); |
+ } |
+ |
+ /** |
+ * @override |
+ * @return {boolean} |
+ */ |
+ onselect(selectedByUser) { |
+ super.onselect(selectedByUser); |
+ this._storagePanel.showApplicationCache(this._frameId); |
+ return false; |
+ } |
}; |
/** |
- * @constructor |
- * @extends {WebInspector.VBox} |
+ * @unrestricted |
*/ |
-WebInspector.StorageCategoryView = function() |
-{ |
- WebInspector.VBox.call(this); |
+WebInspector.StorageCategoryView = class extends WebInspector.VBox { |
+ constructor() { |
+ super(); |
- this.element.classList.add("storage-view"); |
- this._emptyWidget = new WebInspector.EmptyWidget(""); |
+ this.element.classList.add('storage-view'); |
+ this._emptyWidget = new WebInspector.EmptyWidget(''); |
this._emptyWidget.show(this.element); |
-}; |
- |
-WebInspector.StorageCategoryView.prototype = { |
- setText: function(text) |
- { |
- this._emptyWidget.text = text; |
- }, |
+ } |
- __proto__: WebInspector.VBox.prototype |
+ setText(text) { |
+ this._emptyWidget.text = text; |
+ } |
}; |
-/** |
- * @return {!WebInspector.ResourcesPanel} |
- */ |
-WebInspector.ResourcesPanel._instance = function() |
-{ |
- return /** @type {!WebInspector.ResourcesPanel} */ (self.runtime.sharedInstance(WebInspector.ResourcesPanel)); |
-}; |
+ |