| 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));
|
| -};
|
| +
|
|
|