Changeset 231391 in webkit


Ignore:
Timestamp:
May 4, 2018 4:56:10 PM (6 years ago)
Author:
webkit@devinrousso.com
Message:

Web Inspector: simplify the WI.Collection interface
https://bugs.webkit.org/show_bug.cgi?id=185187

Reviewed by Brian Burg.

Source/WebInspectorUI:

  • UserInterface/Models/Collection.js:

(WI.Collection.prototype.get size): Added.
(WI.Collection.prototype.has): Added.
(WI.Collection.prototype.toJSON):
(WI.Collection.prototype.[Symbol.iterator]): Added.
(WI.Collection.prototype.get items): Deleted.
(WI.Collection.prototype.toArray): Deleted.

  • UserInterface/Controllers/CanvasManager.js:

(WI.CanvasManager.prototype._removeCanvas):

  • UserInterface/Controllers/DOMDebuggerManager.js:

(WebInspector.DOMDebuggerManager.prototype.get domBreakpoints):

  • UserInterface/Models/Frame.js:

(WI.Frame.prototype.removeAllChildFrames):
(WI.Frame.prototype.resourceForURL):
(WI.Frame.prototype.removeAllResources):

  • UserInterface/Models/Script.js:

(WI.Script):

  • UserInterface/Views/CanvasContentView.js:

(WI.CanvasContentView.prototype.initialLayout):

  • UserInterface/Views/CanvasOverviewContentView.js:

(WI.CanvasOverviewContentView.prototype._updateNavigationItems):

  • UserInterface/Views/CanvasSidebarPanel.js:

(WI.CanvasSidebarPanel.prototype._recordingRemoved):
(WI.CanvasSidebarPanel.prototype._canvasChanged):
(WI.CanvasSidebarPanel.prototype._updateRecordingScopeBar):

  • UserInterface/Views/CanvasTabContentView.js:

(WI.CanvasTabContentView.prototype.attached):
(WI.CanvasTabContentView.prototype._addCanvas):
(WI.CanvasTabContentView.prototype._removeCanvas):

  • UserInterface/Views/CanvasTreeElement.js:

(WI.CanvasTreeElement.prototype.onpopulate):

  • UserInterface/Views/CollectionContentView.js:

(WI.CollectionContentView.prototype.initialLayout):
(WI.CollectionContentView.prototype.attached):

  • UserInterface/Views/CookieStorageContentView.js:

(WI.CookieStorageContentView.prototype._filterCookies):

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WI.DebuggerSidebarPanel.prototype._addResourcesRecursivelyForFrame):

  • UserInterface/Views/FolderizedTreeElement.js:

(WI.FolderizedTreeElement.prototype.updateParentStatus):
(WI.FolderizedTreeElement.prototype._shouldGroupIntoFolders):

  • UserInterface/Views/FrameTreeElement.js:

(WI.FrameTreeElement.prototype.onpopulate):

  • UserInterface/Views/NavigationSidebarPanel.js:

(WI.NavigationSidebarPanel.prototype.get contentTreeOutlines):

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView.prototype._populateWithInitialResourcesIfNeeded):

  • UserInterface/Views/OpenResourceDialog.js:

(WI.OpenResourceDialog.prototype._addResourcesForFrame):
(WI.OpenResourceDialog.prototype._addResourcesForTarget):

  • UserInterface/Views/TreeOutlineGroup.js:

(WI.TreeOutlineGroup.prototype.get selectedTreeElement):
(WI.TreeOutlineGroup.prototype._removeConflictingTreeSelections):

  • UserInterface/Views/WorkerTreeElement.js:

(WI.WorkerTreeElement.prototype.onpopulate):

LayoutTests:

  • http/tests/inspector/dom/cross-domain-inspected-node-access.html:
  • http/tests/inspector/dom/disconnect-dom-tree-after-main-frame-navigation.html:
  • http/tests/inspector/network/har/har-page.html:
  • http/tests/inspector/network/har/har-page-expected.txt:
  • http/tests/inspector/network/resource-response-source-memory-cache-revalidate-expired-only.html:
  • http/tests/inspector/network/resource-response-source-memory-cache.html:
  • http/tests/inspector/network/resource-sizes-memory-cache.html:
  • http/tests/inspector/network/set-resource-caching-disabled-memory-cache.html:
  • http/tests/inspector/worker/blob-script-with-cross-domain-imported-scripts.html:
  • http/tests/websocket/tests/hybi/inspector/before-load.html:
  • inspector/canvas/resources/recording-utilities.js:
  • inspector/css/manager-preferredInspectorStyleSheetForFrame.html:
  • inspector/debugger/resources/log-pause-location.js:

(TestPage.registerInitializer.window.findScript):

  • inspector/dom/highlightFrame.html:
  • inspector/dom/highlightNode.html:
  • inspector/dom/highlightNodeList.html:
  • inspector/dom/highlightSelector.html:
  • inspector/model/frame-extra-scripts.html:
  • inspector/page/empty-or-missing-resources.html:
  • inspector/unit-tests/resource-collection.html:
  • inspector/worker/resources-in-worker.html:
Location:
trunk
Files:
43 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r231388 r231391  
     12018-05-04  Devin Rousso  <webkit@devinrousso.com>
     2
     3        Web Inspector: simplify the WI.Collection interface
     4        https://bugs.webkit.org/show_bug.cgi?id=185187
     5
     6        Reviewed by Brian Burg.
     7
     8        * http/tests/inspector/dom/cross-domain-inspected-node-access.html:
     9        * http/tests/inspector/dom/disconnect-dom-tree-after-main-frame-navigation.html:
     10        * http/tests/inspector/network/har/har-page.html:
     11        * http/tests/inspector/network/har/har-page-expected.txt:
     12        * http/tests/inspector/network/resource-response-source-memory-cache-revalidate-expired-only.html:
     13        * http/tests/inspector/network/resource-response-source-memory-cache.html:
     14        * http/tests/inspector/network/resource-sizes-memory-cache.html:
     15        * http/tests/inspector/network/set-resource-caching-disabled-memory-cache.html:
     16        * http/tests/inspector/worker/blob-script-with-cross-domain-imported-scripts.html:
     17        * http/tests/websocket/tests/hybi/inspector/before-load.html:
     18        * inspector/canvas/resources/recording-utilities.js:
     19        * inspector/css/manager-preferredInspectorStyleSheetForFrame.html:
     20        * inspector/debugger/resources/log-pause-location.js:
     21        (TestPage.registerInitializer.window.findScript):
     22        * inspector/dom/highlightFrame.html:
     23        * inspector/dom/highlightNode.html:
     24        * inspector/dom/highlightNodeList.html:
     25        * inspector/dom/highlightSelector.html:
     26        * inspector/model/frame-extra-scripts.html:
     27        * inspector/page/empty-or-missing-resources.html:
     28        * inspector/unit-tests/resource-collection.html:
     29        * inspector/worker/resources-in-worker.html:
     30
    1312018-05-04  Youenn Fablet  <youenn@apple.com>
    232
  • trunk/LayoutTests/http/tests/inspector/dom/cross-domain-inspected-node-access.html

    r222486 r231391  
    99
    1010    let mainFrame = WI.frameResourceManager.mainFrame;
    11     let childFrames = mainFrame.childFrameCollection.toArray();
     11    let childFrames = Array.from(mainFrame.childFrameCollection);
    1212    InspectorTest.expectEqual(childFrames.length, 1, "Page should have a subframe.");
    1313
  • trunk/LayoutTests/http/tests/inspector/dom/disconnect-dom-tree-after-main-frame-navigation.html

    r220119 r231391  
    3131
    3232            // Force creation of child DOM trees.
    33             let childrenLevel1 = mainFrame.childFrameCollection.toArray();
     33            let childrenLevel1 = Array.from(mainFrame.childFrameCollection);
    3434            childrenLevel1[0].domTree;
    3535
    36             let childrenLevel2 = childrenLevel1[0].childFrameCollection.toArray();
     36            let childrenLevel2 = Array.from(childrenLevel1[0].childFrameCollection);
    3737            childrenLevel2[0].domTree;
    3838
    39             let childrenLevel3 = childrenLevel2[0].childFrameCollection.toArray();
     39            let childrenLevel3 = Array.from(childrenLevel2[0].childFrameCollection);
    4040            childrenLevel3[0].domTree;
    4141
  • trunk/LayoutTests/http/tests/inspector/network/har/har-page-expected.txt

    r229027 r231391  
    4444          "headers": "<filtered>",
    4545          "content": {
    46             "size": 3042,
     46            "size": "<filtered>",
    4747            "compression": 0,
    4848            "mimeType": "text/html",
    49             "text": "<filtered text (3042)>"
     49            "text": "<filtered>"
    5050          },
    5151          "redirectURL": "",
     
    8585          "headers": "<filtered>",
    8686          "content": {
    87             "size": 0,
     87            "size": "<filtered>",
    8888            "compression": 0,
    8989            "mimeType": "application/x-javascript",
    90             "text": "<filtered text (7039)>"
     90            "text": "<filtered>"
    9191          },
    9292          "redirectURL": "",
  • trunk/LayoutTests/http/tests/inspector/network/har/har-page.html

    r229027 r231391  
    3636            return "<filtered>";
    3737
     38        // If any files are modified, we'd need to update the test without this filter.
     39        if (key == "size")
     40            return "<filtered>";
     41
    3842        // Size data may or may not be available, but could change based on headers.
    3943        if (key.endsWith("Size"))
     
    4145
    4246        // Reduce the file contents.
    43         if (key === "text")
    44             return "<filtered text (" + value.length + ")>";
     47        if (key === "text") {
     48            InspectorTest.assert(value.length > 0, "The file should have contents.");
     49            return "<filtered>";
     50        }
    4551
    4652        // Since cache may or may not be used, timing data may be variable.
     
    7379            await InspectorTest.awaitEvent("LoadComplete");
    7480
    75             let resources = [];
    76             resources.push(WI.frameResourceManager.mainFrame.mainResource);
    77             for (let resource of WI.frameResourceManager.mainFrame.resourceCollection.items)
    78                 resources.push(resource);
    79 
     81            let resources = [WI.frameResourceManager.mainFrame.mainResource, ...WI.frameResourceManager.mainFrame.resourceCollection];
    8082            let har = await WI.HARBuilder.buildArchive(resources);
    8183            InspectorTest.json(har, HARJSONFilter);
  • trunk/LayoutTests/http/tests/inspector/network/resource-response-source-memory-cache-revalidate-expired-only.html

    r225007 r231391  
    1919                InspectorTest.awaitEvent("LoadComplete").then((event) => {
    2020                    let resource = null;
    21                     for (let item of WI.frameResourceManager.mainFrame.resourceCollection.items) {
     21                    for (let item of WI.frameResourceManager.mainFrame.resourceCollection) {
    2222                        if (pattern.test(item.url)) {
    2323                            resource = item;
  • trunk/LayoutTests/http/tests/inspector/network/resource-response-source-memory-cache.html

    r225007 r231391  
    1919                InspectorTest.awaitEvent("LoadComplete").then((event) => {
    2020                    let resource = null;
    21                     for (let item of WI.frameResourceManager.mainFrame.resourceCollection.items) {
     21                    for (let item of WI.frameResourceManager.mainFrame.resourceCollection) {
    2222                        if (pattern.test(item.url)) {
    2323                            resource = item;
  • trunk/LayoutTests/http/tests/inspector/network/resource-sizes-memory-cache.html

    r220119 r231391  
    3030            return InspectorTest.awaitEvent("LoadComplete").then((event) => {
    3131                let resource = null;
    32                 for (let item of WI.frameResourceManager.mainFrame.resourceCollection.items) {
     32                for (let item of WI.frameResourceManager.mainFrame.resourceCollection) {
    3333                    if (pattern.test(item.url)) {
    3434                        resource = item;
  • trunk/LayoutTests/http/tests/inspector/network/set-resource-caching-disabled-memory-cache.html

    r225007 r231391  
    2222                InspectorTest.awaitEvent("LoadComplete").then((event) => {
    2323                    let resource = null;
    24                     for (let item of WI.frameResourceManager.mainFrame.resourceCollection.items) {
     24                    for (let item of WI.frameResourceManager.mainFrame.resourceCollection) {
    2525                        if (pattern.test(item.url)) {
    2626                            resource = item;
  • trunk/LayoutTests/http/tests/inspector/worker/blob-script-with-cross-domain-imported-scripts.html

    r220119 r231391  
    4747        InspectorTest.log("RESOURCES:");
    4848        let urls = [];
    49         for (let resource of workerTarget.resourceCollection.items)
     49        for (let resource of workerTarget.resourceCollection)
    5050            urls.push(sanitizeURL(resource.url));
    5151        dumpURLs(urls);
  • trunk/LayoutTests/http/tests/websocket/tests/hybi/inspector/before-load.html

    r220119 r231391  
    4747            const url = "ws://127.0.0.1:8880/websocket/tests/hybi/inspector/echo";
    4848            let webSocketResources = WI.frameResourceManager.mainFrame.resourceCollectionForType(WI.Resource.Type.WebSocket);
    49             InspectorTest.expectEqual(webSocketResources.items.size, 1, "Should have 1 WebSocketResource");
     49            InspectorTest.expectEqual(webSocketResources.size, 1, "Should have 1 WebSocketResource");
    5050
    51             let webSocketResource = webSocketResources.toArray()[0];
     51            let webSocketResource = Array.from(webSocketResources)[0];
    5252            if (!webSocketResource) {
    5353                reject("Missing WebSocket resource.");
  • trunk/LayoutTests/inspector/canvas/resources/recording-utilities.js

    r231218 r231391  
    122122            InspectorTest.assert(recording.source === canvas, "Recording should be of the given canvas.");
    123123            InspectorTest.assert(recording.source.contextType === type, `Recording should be of a canvas with type "${type}".`);
    124             InspectorTest.assert(recording.source.recordingCollection.items.has(recording), "Recording should be in the canvas' list of recordings.");
     124            InspectorTest.assert(recording.source.recordingCollection.has(recording), "Recording should be in the canvas' list of recordings.");
    125125            InspectorTest.assert(recording.frames.length === frameCount, `Recording should have ${frameCount} frames.`)
    126126
  • trunk/LayoutTests/inspector/css/manager-preferredInspectorStyleSheetForFrame.html

    r220119 r231391  
    77{
    88    let mainFrame = WI.frameResourceManager.mainFrame;
    9     let childFrames = mainFrame.childFrameCollection.toArray();
     9    let childFrames = Array.from(mainFrame.childFrameCollection);
    1010    InspectorTest.expectEqual(childFrames.length, 1, "Page should have a subframe.");
    1111
  • trunk/LayoutTests/inspector/debugger/resources/log-pause-location.js

    r220119 r231391  
    88
    99    window.findScript = function(regex) {
    10         let resources = WI.frameResourceManager.mainFrame.resourceCollection.items;
    11         for (let resource of resources) {
     10        for (let resource of WI.frameResourceManager.mainFrame.resourceCollection) {
    1211            if (regex.test(resource.url))
    1312                return resource.scripts[0];
  • trunk/LayoutTests/inspector/dom/highlightFrame.html

    r225950 r231391  
    99
    1010    let mainFrame = WI.frameResourceManager.mainFrame;
    11     let childFrames = mainFrame.childFrameCollection.toArray();
     11    let childFrames = Array.from(mainFrame.childFrameCollection);
    1212    InspectorTest.expectEqual(childFrames.length, 2, "Page should have subframes.");
    1313
  • trunk/LayoutTests/inspector/dom/highlightNode.html

    r225950 r231391  
    99
    1010    let mainFrame = WI.frameResourceManager.mainFrame;
    11     let childFrames = mainFrame.childFrameCollection.toArray();
     11    let childFrames = Array.from(mainFrame.childFrameCollection);
    1212    InspectorTest.expectEqual(childFrames.length, 1, "Page should have a subframe.");
    1313
  • trunk/LayoutTests/inspector/dom/highlightNodeList.html

    r225950 r231391  
    99
    1010    let mainFrame = WI.frameResourceManager.mainFrame;
    11     let childFrames = mainFrame.childFrameCollection.toArray();
     11    let childFrames = Array.from(mainFrame.childFrameCollection);
    1212    InspectorTest.expectEqual(childFrames.length, 1, "Page should have a subframe.");
    1313
  • trunk/LayoutTests/inspector/dom/highlightSelector.html

    r225950 r231391  
    99
    1010    let mainFrame = WI.frameResourceManager.mainFrame;
    11     let childFrames = mainFrame.childFrameCollection.toArray();
     11    let childFrames = Array.from(mainFrame.childFrameCollection);
    1212    InspectorTest.expectEqual(childFrames.length, 1, "Page should have a subframe.");
    1313
  • trunk/LayoutTests/inspector/model/frame-extra-scripts.html

    r220119 r231391  
    2020        description: "No extra scripts yet.",
    2121        test(resolve, reject) {
    22             InspectorTest.expectEqual(mainFrame.extraScriptCollection.items.size, 0, "Main frame should have no dynamic scripts.");
     22            InspectorTest.expectEqual(mainFrame.extraScriptCollection.size, 0, "Main frame should have no dynamic scripts.");
    2323            resolve();
    2424        }
     
    3333                InspectorTest.pass("ExtraScriptAdded event fired.");
    3434                InspectorTest.expectThat(event.data.script.dynamicallyAddedScriptElement, "Script should identify as dynamic.");
    35                 InspectorTest.expectEqual(mainFrame.extraScriptCollection.items.size, 1, "Main frame should have 1 dynamic script.");
     35                InspectorTest.expectEqual(mainFrame.extraScriptCollection.size, 1, "Main frame should have 1 dynamic script.");
    3636            })
    3737            .then(resolve, reject);
  • trunk/LayoutTests/inspector/page/empty-or-missing-resources.html

    r225892 r231391  
    1616        description: "Should not crash if there are empty or missing resources.",
    1717        async test(resolve, reject) {
    18             let resources = [...WI.frameResourceManager.mainFrame.resourceCollection.items];
     18            let resources = Array.from(WI.frameResourceManager.mainFrame.resourceCollection);
    1919            let resourceURLs = resources.map(x => x.url).filter(x => /(empty|missing)/.test(x)).sort();
    2020            for (let url of resourceURLs)
  • trunk/LayoutTests/inspector/unit-tests/resource-collection.html

    r220119 r231391  
    1313
    1414    function logResourceNames(collection) {
    15         let items = Array.from(collection.items);
    16         InspectorTest.log(items.map((resource) => resource.displayName));
     15        InspectorTest.log(Array.from(collection).map((resource) => resource.displayName));
    1716    }
    1817
  • trunk/LayoutTests/inspector/worker/resources-in-worker.html

    r225892 r231391  
    4242    function dumpWorkerResources() {
    4343        InspectorTest.log("RESOURCES:");
    44         for (let resource of workerTarget.resourceCollection.items)
     44        for (let resource of workerTarget.resourceCollection)
    4545            InspectorTest.log(sanitizeURL(resource.url));
    46         if (!workerTarget.resourceCollection.items.size)
     46        if (!workerTarget.resourceCollection.size)
    4747            InspectorTest.log("-- No Resources --");
    4848    }
     
    7272        description: "Worker XHRs are tied to the Worker Target.",
    7373        test(resolve, reject) {
    74             InspectorTest.expectEqual(workerTarget.resourceCollection.items.size, 1, "Worker Target should have 1 resource.");
     74            InspectorTest.expectEqual(workerTarget.resourceCollection.size, 1, "Worker Target should have 1 resource.");
    7575            InspectorTest.evaluateInPage("triggerWorkerResourceLoadXHR()");
    7676            workerTarget.awaitEvent(WI.Target.Event.ResourceAdded)
     
    8181                    InspectorTest.expectEqual(resource.target, workerTarget, "Resource should be tied to the Worker Target.");
    8282                    InspectorTest.expectNull(resource.parentFrame, "Resource has no parent frame.");
    83                     InspectorTest.expectEqual(workerTarget.resourceCollection.items.size, 2, "Worker Target should have 2 resources.");
     83                    InspectorTest.expectEqual(workerTarget.resourceCollection.size, 2, "Worker Target should have 2 resources.");
    8484                    dumpWorkerResources();
    8585                    resolve();
     
    9393        test(resolve, reject) {
    9494            InspectorTest.evaluateInPage("triggerMainResourceLoadXHR()");
    95             InspectorTest.expectEqual(workerTarget.resourceCollection.items.size, 2, "Worker Target should still have 2 resources.");
     95            InspectorTest.expectEqual(workerTarget.resourceCollection.size, 2, "Worker Target should still have 2 resources.");
    9696            WI.Frame.awaitEvent(WI.Frame.Event.ResourceWasAdded)
    9797                .then((event) => {
     
    101101                    InspectorTest.expectEqual(resource.target, mainTarget, "Resource should be tied to the Main Target.");
    102102                    InspectorTest.expectEqual(resource.parentFrame, WI.frameResourceManager.mainFrame, "Resource parentFrame is the main frame.");
    103                     InspectorTest.expectEqual(workerTarget.resourceCollection.items.size, 2, "Worker Target should still have 2 resources.");
     103                    InspectorTest.expectEqual(workerTarget.resourceCollection.size, 2, "Worker Target should still have 2 resources.");
    104104                    dumpWorkerResources();
    105105                    resolve();
     
    112112        description: "Worker fetch requests are tied to the Worker Target.",
    113113        test(resolve, reject) {
    114             InspectorTest.expectEqual(workerTarget.resourceCollection.items.size, 2, "Worker Target should have 2 resources.");
     114            InspectorTest.expectEqual(workerTarget.resourceCollection.size, 2, "Worker Target should have 2 resources.");
    115115            InspectorTest.evaluateInPage("triggerWorkerResourceLoadFetch()");
    116116            workerTarget.awaitEvent(WI.Target.Event.ResourceAdded)
     
    121121                    InspectorTest.expectEqual(resource.target, workerTarget, "Resource should be tied to the Worker Target.");
    122122                    InspectorTest.expectNull(resource.parentFrame, "Resource has no parent frame.");
    123                     InspectorTest.expectEqual(workerTarget.resourceCollection.items.size, 3, "Worker Target should have 3 resources.");
     123                    InspectorTest.expectEqual(workerTarget.resourceCollection.size, 3, "Worker Target should have 3 resources.");
    124124                    dumpWorkerResources();
    125125                    resolve();
     
    133133        test(resolve, reject) {
    134134            InspectorTest.evaluateInPage("triggerMainResourceLoadFetch()");
    135             InspectorTest.expectEqual(workerTarget.resourceCollection.items.size, 3, "Worker Target should still have 3 resources.");
     135            InspectorTest.expectEqual(workerTarget.resourceCollection.size, 3, "Worker Target should still have 3 resources.");
    136136            WI.Frame.awaitEvent(WI.Frame.Event.ResourceWasAdded)
    137137                .then((event) => {
     
    141141                    InspectorTest.expectEqual(resource.target, mainTarget, "Resource should be tied to the Main Target.");
    142142                    InspectorTest.expectEqual(resource.parentFrame, WI.frameResourceManager.mainFrame, "Resource parentFrame is the main frame.");
    143                     InspectorTest.expectEqual(workerTarget.resourceCollection.items.size, 3, "Worker Target should still have 3 resources.");
     143                    InspectorTest.expectEqual(workerTarget.resourceCollection.size, 3, "Worker Target should still have 3 resources.");
    144144                    dumpWorkerResources();
    145145                    resolve();
     
    152152        description: "Worker imported scripts are Resources tied to the Worker Target.",
    153153        test(resolve, reject) {
    154             InspectorTest.expectEqual(workerTarget.resourceCollection.items.size, 3, "Worker Target should still have 3 resources.");
     154            InspectorTest.expectEqual(workerTarget.resourceCollection.size, 3, "Worker Target should still have 3 resources.");
    155155            InspectorTest.evaluateInPage("triggerWorkerImportScript()");
    156156            workerTarget.awaitEvent(WI.Target.Event.ResourceAdded)
     
    161161                    InspectorTest.expectEqual(resource.target, workerTarget, "Resource should be tied to the Worker Target.");
    162162                    InspectorTest.expectNull(resource.parentFrame, "Resource has no parent frame.");
    163                     InspectorTest.expectEqual(workerTarget.resourceCollection.items.size, 4, "Worker Target should have 4 resources.");
     163                    InspectorTest.expectEqual(workerTarget.resourceCollection.size, 4, "Worker Target should have 4 resources.");
    164164                    dumpWorkerResources();
    165165                    resolve();
  • trunk/Source/WebInspectorUI/ChangeLog

    r231377 r231391  
     12018-05-04  Devin Rousso  <webkit@devinrousso.com>
     2
     3        Web Inspector: simplify the WI.Collection interface
     4        https://bugs.webkit.org/show_bug.cgi?id=185187
     5
     6        Reviewed by Brian Burg.
     7
     8        * UserInterface/Models/Collection.js:
     9        (WI.Collection.prototype.get size): Added.
     10        (WI.Collection.prototype.has): Added.
     11        (WI.Collection.prototype.toJSON):
     12        (WI.Collection.prototype.[Symbol.iterator]): Added.
     13        (WI.Collection.prototype.get items): Deleted.
     14        (WI.Collection.prototype.toArray): Deleted.
     15
     16        * UserInterface/Controllers/CanvasManager.js:
     17        (WI.CanvasManager.prototype._removeCanvas):
     18        * UserInterface/Controllers/DOMDebuggerManager.js:
     19        (WebInspector.DOMDebuggerManager.prototype.get domBreakpoints):
     20        * UserInterface/Models/Frame.js:
     21        (WI.Frame.prototype.removeAllChildFrames):
     22        (WI.Frame.prototype.resourceForURL):
     23        (WI.Frame.prototype.removeAllResources):
     24        * UserInterface/Models/Script.js:
     25        (WI.Script):
     26        * UserInterface/Views/CanvasContentView.js:
     27        (WI.CanvasContentView.prototype.initialLayout):
     28        * UserInterface/Views/CanvasOverviewContentView.js:
     29        (WI.CanvasOverviewContentView.prototype._updateNavigationItems):
     30        * UserInterface/Views/CanvasSidebarPanel.js:
     31        (WI.CanvasSidebarPanel.prototype._recordingRemoved):
     32        (WI.CanvasSidebarPanel.prototype._canvasChanged):
     33        (WI.CanvasSidebarPanel.prototype._updateRecordingScopeBar):
     34        * UserInterface/Views/CanvasTabContentView.js:
     35        (WI.CanvasTabContentView.prototype.attached):
     36        (WI.CanvasTabContentView.prototype._addCanvas):
     37        (WI.CanvasTabContentView.prototype._removeCanvas):
     38        * UserInterface/Views/CanvasTreeElement.js:
     39        (WI.CanvasTreeElement.prototype.onpopulate):
     40        * UserInterface/Views/CollectionContentView.js:
     41        (WI.CollectionContentView.prototype.initialLayout):
     42        (WI.CollectionContentView.prototype.attached):
     43        * UserInterface/Views/CookieStorageContentView.js:
     44        (WI.CookieStorageContentView.prototype._filterCookies):
     45        * UserInterface/Views/DebuggerSidebarPanel.js:
     46        (WI.DebuggerSidebarPanel.prototype._addResourcesRecursivelyForFrame):
     47        * UserInterface/Views/FolderizedTreeElement.js:
     48        (WI.FolderizedTreeElement.prototype.updateParentStatus):
     49        (WI.FolderizedTreeElement.prototype._shouldGroupIntoFolders):
     50        * UserInterface/Views/FrameTreeElement.js:
     51        (WI.FrameTreeElement.prototype.onpopulate):
     52        * UserInterface/Views/NavigationSidebarPanel.js:
     53        (WI.NavigationSidebarPanel.prototype.get contentTreeOutlines):
     54        * UserInterface/Views/NetworkTableContentView.js:
     55        (WI.NetworkTableContentView.prototype._populateWithInitialResourcesIfNeeded):
     56        * UserInterface/Views/OpenResourceDialog.js:
     57        (WI.OpenResourceDialog.prototype._addResourcesForFrame):
     58        (WI.OpenResourceDialog.prototype._addResourcesForTarget):
     59        * UserInterface/Views/TreeOutlineGroup.js:
     60        (WI.TreeOutlineGroup.prototype.get selectedTreeElement):
     61        (WI.TreeOutlineGroup.prototype._removeConflictingTreeSelections):
     62        * UserInterface/Views/WorkerTreeElement.js:
     63        (WI.WorkerTreeElement.prototype.onpopulate):
     64
    1652018-05-04  Nikita Vasilyev  <nvasilyev@apple.com>
    266
  • trunk/Source/WebInspectorUI/UserInterface/Controllers/CanvasManager.js

    r229620 r231391  
    269269    _removeCanvas(canvas)
    270270    {
    271         for (let program of canvas.shaderProgramCollection.items) {
     271        for (let program of canvas.shaderProgramCollection) {
    272272            this._shaderProgramIdentifierMap.delete(program.identifier);
    273273            this._dispatchShaderProgramRemoved(program);
  • trunk/Source/WebInspectorUI/UserInterface/Controllers/DOMDebuggerManager.js

    r223308 r231391  
    9797            }
    9898
    99             frames = frames.concat(frame.childFrameCollection.toArray());
     99            frames.push(...frame.childFrameCollection);
    100100        }
    101101
  • trunk/Source/WebInspectorUI/UserInterface/Models/Collection.js

    r223997 r231391  
    3838    // Public
    3939
    40     get items() { return this._items; }
     40    get size()
     41    {
     42        return this._items.size;
     43    }
    4144
    4245    get displayName()
     
    7578    }
    7679
     80    has(...args)
     81    {
     82        return this._items.has(...args);
     83    }
     84
    7785    clear()
    7886    {
     
    8795    }
    8896
    89     toArray()
     97    toJSON()
    9098    {
    91         return Array.from(this._items);
     99        return Array.from(this);
    92100    }
    93101
    94     toJSON()
     102    [Symbol.iterator]()
    95103    {
    96         return this.toArray();
     104        return this._items[Symbol.iterator]();
    97105    }
    98106
  • trunk/Source/WebInspectorUI/UserInterface/Models/Frame.js

    r223997 r231391  
    342342        this._detachFromParentFrame();
    343343
    344         for (let childFrame of this._childFrameCollection.items)
     344        for (let childFrame of this._childFrameCollection)
    345345            childFrame.removeAllChildFrames();
    346346
     
    358358
    359359        // Check the main resources of the child frames for the requested URL.
    360         for (let childFrame of this._childFrameCollection.items) {
     360        for (let childFrame of this._childFrameCollection) {
    361361            resource = childFrame.mainResource;
    362362            if (resource.url === url)
     
    368368
    369369        // Recursively search resources of child frames.
    370         for (let childFrame of this._childFrameCollection.items) {
     370        for (let childFrame of this._childFrameCollection) {
    371371            resource = childFrame.resourceForURL(url, true);
    372372            if (resource)
     
    420420        // This does not remove provisional resources, use clearProvisionalLoad for that.
    421421
    422         let resources = this._resourceCollection.items;
    423         if (!resources.size)
    424             return;
    425 
    426         for (let resource of resources)
     422        if (!this._resourceCollection.size)
     423            return;
     424
     425        for (let resource of this._resourceCollection)
    427426            this._disassociateWithResource(resource);
    428427
  • trunk/Source/WebInspectorUI/UserInterface/Models/Script.js

    r223308 r231391  
    5656            this._dynamicallyAddedScriptElement = true;
    5757            documentResource.parentFrame.addExtraScript(this);
    58             this._dynamicallyAddedScriptElementNumber = documentResource.parentFrame.extraScriptCollection.items.size;
     58            this._dynamicallyAddedScriptElementNumber = documentResource.parentFrame.extraScriptCollection.size;
    5959        } else if (this._resource)
    6060            this._resource.associateWithScript(this);
  • trunk/Source/WebInspectorUI/UserInterface/Views/CanvasContentView.js

    r229044 r231391  
    136136        this._recordingSelectElement.addEventListener("change", this._handleRecordingSelectElementChange.bind(this));
    137137
    138         for (let recording of this.representedObject.recordingCollection.items)
     138        for (let recording of this.representedObject.recordingCollection)
    139139            this._addRecording(recording);
    140140
  • trunk/Source/WebInspectorUI/UserInterface/Views/CanvasOverviewContentView.js

    r228301 r231391  
    122122    _updateNavigationItems()
    123123    {
    124         let hasItems = !!this.representedObject.items.size;
     124        let hasItems = !!this.representedObject.size;
    125125        this._refreshButtonNavigationItem.enabled = hasItems;
    126126        this._showGridButtonNavigationItem.enabled = hasItems;
  • trunk/Source/WebInspectorUI/UserInterface/Views/CanvasSidebarPanel.js

    r231218 r231391  
    214214        let recording = event.data.item;
    215215        if (recording === this.recording)
    216             this.recording = this._canvas ? this._canvas.recordingCollection.toArray().lastValue : null;
     216            this.recording = this._canvas ? Array.from(this._canvas.recordingCollection).lastValue : null;
    217217
    218218        this._updateRecordingScopeBar();
     
    318318
    319319        let defaultSelectedRecording = null;
    320         if (this._canvas.recordingCollection.items.size)
    321             defaultSelectedRecording = this._canvas.recordingCollection.toArray().lastValue;
     320        if (this._canvas.recordingCollection.size)
     321            defaultSelectedRecording = Array.from(this._canvas.recordingCollection).lastValue;
    322322
    323323        this.recording = defaultSelectedRecording;
     
    416416        let scopeBarItems = [];
    417417        let selectedScopeBarItem = null;
    418         for (let recording of this._canvas.recordingCollection.items) {
     418        for (let recording of this._canvas.recordingCollection) {
    419419            let scopeBarItem = new WI.ScopeBarItem(recording.displayName, recording.displayName);
    420420            if (recording === this._recording)
  • trunk/Source/WebInspectorUI/UserInterface/Views/CanvasTabContentView.js

    r228722 r231391  
    128128        WI.canvasManager.addEventListener(WI.CanvasManager.Event.RecordingStopped, this._recordingImportedOrStopped, this);
    129129
    130         let canvases = new Set(Array.from(this._canvasCollection.items).concat(WI.canvasManager.canvases));
    131 
    132         for (let canvas of this._canvasCollection.items) {
     130        let canvases = new Set([...this._canvasCollection, ...WI.canvasManager.canvases]);
     131
     132        for (let canvas of this._canvasCollection) {
    133133            if (!canvases.has(canvas))
    134134                this._removeCanvas(canvas);
     
    136136
    137137        for (let canvas of canvases) {
    138             if (!this._canvasCollection.items.has(canvas))
     138            if (!this._canvasCollection.has(canvas))
    139139                this._addCanvas(canvas);
    140140        }
     
    156156        this._canvasCollection.add(canvas);
    157157
    158         for (let recording of canvas.recordingCollection.items)
     158        for (let recording of canvas.recordingCollection)
    159159            this._recordingAdded(recording, {suppressShowRecording: true});
    160160    }
     
    170170
    171171        let currentContentView = this.contentBrowser.currentContentView;
    172         if (currentContentView instanceof WI.RecordingContentView && canvas.recordingCollection.items.has(currentContentView.representedObject))
     172        if (currentContentView instanceof WI.RecordingContentView && canvas.recordingCollection.has(currentContentView.representedObject))
    173173            this.contentBrowser.updateHierarchicalPathForCurrentContentView();
    174174    }
  • trunk/Source/WebInspectorUI/UserInterface/Views/CanvasTreeElement.js

    r228301 r231391  
    7676        this.removeChildren();
    7777
    78         for (let program of this.representedObject.shaderProgramCollection.items)
     78        for (let program of this.representedObject.shaderProgramCollection)
    7979            this.addChildForRepresentedObject(program);
    8080
    8181        if (this._showRecordings) {
    82             for (let recording of this.representedObject.recordingCollection.items)
     82            for (let recording of this.representedObject.recordingCollection)
    8383                this.addChildForRepresentedObject(recording);
    8484        }
  • trunk/Source/WebInspectorUI/UserInterface/Views/CollectionContentView.js

    r228362 r231391  
    187187    initialLayout()
    188188    {
    189         let items = this.representedObject.items;
    190         if (!items.size || !this._contentViewConstructor) {
     189        if (!this.representedObject.size || !this._contentViewConstructor) {
    191190            this._showContentPlaceholder();
    192191            return;
     
    202201
    203202        for (let item of this._contentViewMap.keys()) {
    204             if (this.representedObject.items.has(item))
     203            if (this.representedObject.has(item))
    205204                continue;
    206205
     
    210209        }
    211210
    212         for (let item of this.representedObject.items) {
     211        for (let item of this.representedObject) {
    213212            if (!this._contentViewMap.has(item))
    214213                this.addContentViewForItem(item);
  • trunk/Source/WebInspectorUI/UserInterface/Views/CookieStorageContentView.js

    r222001 r231391  
    159159        for (let frame of WI.frameResourceManager.frames) {
    160160            // The main resource isn't in the list of resources, so add it as a candidate.
    161             allResources.push(frame.mainResource);
    162             allResources = allResources.concat(frame.resourceCollection.toArray());
     161            allResources.push(frame.mainResource, ...frame.resourceCollection);
    163162        }
    164163
  • trunk/Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js

    r226768 r231391  
    496496        this._addResource(frame.mainResource);
    497497
    498         for (let resource of frame.resourceCollection.items)
     498        for (let resource of frame.resourceCollection)
    499499            this._addResource(resource);
    500500
    501         for (let childFrame of frame.childFrameCollection.items)
     501        for (let childFrame of frame.childFrameCollection)
    502502            this._addResourcesRecursivelyForFrame(childFrame);
    503503    }
  • trunk/Source/WebInspectorUI/UserInterface/Views/FolderizedTreeElement.js

    r223997 r231391  
    149149        let hasChildren = false;
    150150        for (let settings of this._folderizeSettingsMap.values()) {
    151             if (settings.representedObject.items.size) {
     151            if (settings.representedObject.size) {
    152152                hasChildren = true;
    153153                break;
     
    381381        // Iterate over all the available child object types.
    382382        for (var settings of this._folderizeSettingsMap.values()) {
    383             if (pushCategory(settings.representedObject.items.size))
     383            if (pushCategory(settings.representedObject.size))
    384384                return true;
    385385        }
  • trunk/Source/WebInspectorUI/UserInterface/Views/FrameTreeElement.js

    r223920 r231391  
    161161        this.prepareToPopulate();
    162162
    163         for (let frame of this._frame.childFrameCollection.items)
     163        for (let frame of this._frame.childFrameCollection)
    164164            this.addChildForRepresentedObject(frame);
    165165
    166         for (let resource of this._frame.resourceCollection.items)
     166        for (let resource of this._frame.resourceCollection)
    167167            this.addChildForRepresentedObject(resource);
    168168
     
    174174        }
    175175
    176         for (let extraScript of this._frame.extraScriptCollection.items) {
     176        for (let extraScript of this._frame.extraScriptCollection) {
    177177            if (extraScript.sourceURL || extraScript.sourceMappingURL)
    178178                this.addChildForRepresentedObject(extraScript);
  • trunk/Source/WebInspectorUI/UserInterface/Views/NavigationSidebarPanel.js

    r228722 r231391  
    9696    get contentTreeOutlines()
    9797    {
    98         return this._contentTreeOutlineGroup.items;
     98        return Array.from(this._contentTreeOutlineGroup);
    9999    }
    100100
  • trunk/Source/WebInspectorUI/UserInterface/Views/NetworkTableContentView.js

    r230618 r231391  
    882882                this._pendingInsertions.push(frame.mainResource);
    883883
    884             for (let resource of frame.resourceCollection.items)
     884            for (let resource of frame.resourceCollection)
    885885                this._pendingInsertions.push(resource);
    886886
    887             for (let childFrame of frame.childFrameCollection.items)
     887            for (let childFrame of frame.childFrameCollection)
    888888                populateResourcesForFrame(childFrame);
    889889        };
     
    892892            if (target.mainResource instanceof WI.Resource)
    893893                this._pendingInsertions.push(target.mainResource);
    894             for (let resource of target.resourceCollection.items)
     894            for (let resource of target.resourceCollection)
    895895                this._pendingInsertions.push(resource);
    896896        };
  • trunk/Source/WebInspectorUI/UserInterface/Views/OpenResourceDialog.js

    r223164 r231391  
    286286        while (frames.length) {
    287287            let currentFrame = frames.shift();
    288             let resources = [currentFrame.mainResource].concat(Array.from(currentFrame.resourceCollection.items));
    289             for (let resource of resources)
     288            this._addResource(currentFrame.mainResource, suppressFilterUpdate);
     289            for (let resource of currentFrame.resourceCollection)
    290290                this._addResource(resource, suppressFilterUpdate);
    291291
    292             frames = frames.concat(currentFrame.childFrameCollection.toArray());
     292            frames.push(...currentFrame.childFrameCollection);
    293293        }
    294294    }
     
    300300        this._addResource(target.mainResource);
    301301
    302         for (let resource of target.resourceCollection.items)
     302        for (let resource of target.resourceCollection)
    303303            this._addResource(resource, suppressFilterUpdate);
    304304
  • trunk/Source/WebInspectorUI/UserInterface/Views/TreeOutlineGroup.js

    r223997 r231391  
    4242    get selectedTreeElement()
    4343    {
    44         for (let treeOutline of this.items) {
     44        for (let treeOutline of this) {
    4545            if (treeOutline.selectedTreeElement)
    4646                return treeOutline.selectedTreeElement;
     
    8484        console.assert(selectedTreeOutline, "Should have a parent tree outline.");
    8585
    86         for (let treeOutline of this.items) {
     86        for (let treeOutline of this) {
    8787            if (selectedTreeOutline === treeOutline)
    8888                continue;
  • trunk/Source/WebInspectorUI/UserInterface/Views/WorkerTreeElement.js

    r225244 r231391  
    8888        this.prepareToPopulate();
    8989
    90         for (let resource of this._target.resourceCollection.items)
     90        for (let resource of this._target.resourceCollection)
    9191            this.addChildForRepresentedObject(resource);
    9292
    93         for (let script of this._target.extraScriptCollection.items)
     93        for (let script of this._target.extraScriptCollection)
    9494            this.addChildForRepresentedObject(script);
    9595
Note: See TracChangeset for help on using the changeset viewer.