Changeset 116222 in webkit


Ignore:
Timestamp:
May 5, 2012 8:33:10 AM (12 years ago)
Author:
loislo@chromium.org
Message:

Web Inspector: convert standalone functions save/append/savedURL/appendedToURL into WebInspector.FileManager object.
https://bugs.webkit.org/show_bug.cgi?id=85710

The idea is to have an object and be able to add/remove event listeners from it.

Reviewed by Yury Semikhatsky.

  • English.lproj/localizedStrings.js:
  • WebCore.gypi:
  • WebCore.vcproj/WebCore.vcproj:
  • inspector/compile-front-end.py:
  • inspector/front-end/FileManager.js: Copied from Source/WebCore/inspector/front-end/InspectorFrontendHostStub.js.

(WebInspector.FileManager):
(WebInspector.FileManager.prototype.canSave):
(WebInspector.FileManager.prototype.canAppend):
(WebInspector.FileManager.prototype.append):
(WebInspector.FileManager.prototype.appendedToURL):

  • inspector/front-end/HeapSnapshotView.js:

(WebInspector.HeapProfileHeader.prototype.canSave):
(WebInspector.HeapProfileHeader.prototype.save):

  • inspector/front-end/InspectorFrontendHostStub.js:
  • inspector/front-end/WebKit.qrc:
  • inspector/front-end/inspector.html:
Location:
trunk/Source/WebCore
Files:
1 added
15 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r116221 r116222  
     12012-05-05  Ilya Tikhonovsky  <loislo@chromium.org>
     2
     3        Web Inspector: convert standalone functions save/append/savedURL/appendedToURL into WebInspector.FileManager object.
     4        https://bugs.webkit.org/show_bug.cgi?id=85710
     5
     6        The idea is to have an object and be able to add/remove event listeners from it.
     7
     8        Reviewed by Yury Semikhatsky.
     9
     10        * English.lproj/localizedStrings.js:
     11        * WebCore.gypi:
     12        * WebCore.vcproj/WebCore.vcproj:
     13        * inspector/compile-front-end.py:
     14        * inspector/front-end/FileManager.js: Copied from Source/WebCore/inspector/front-end/InspectorFrontendHostStub.js.
     15        (WebInspector.FileManager):
     16        (WebInspector.FileManager.prototype.canSave):
     17        (WebInspector.FileManager.prototype.canAppend):
     18        (WebInspector.FileManager.prototype.append):
     19        (WebInspector.FileManager.prototype.appendedToURL):
     20        * inspector/front-end/HeapSnapshotView.js:
     21        (WebInspector.HeapProfileHeader.prototype.canSave):
     22        (WebInspector.HeapProfileHeader.prototype.save):
     23        * inspector/front-end/InspectorFrontendHostStub.js:
     24        * inspector/front-end/WebKit.qrc:
     25        * inspector/front-end/inspector.html:
     26
    1272012-05-05  Zhenyao Mo  <zmo@google.com>
    228
  • trunk/Source/WebCore/WebCore.gypi

    r116204 r116222  
    63656365            'inspector/front-end/ExtensionRegistryStub.js',
    63666366            'inspector/front-end/ExtensionServer.js',
     6367            'inspector/front-end/FileManager.js',
    63676368            'inspector/front-end/FilteredItemSelectionDialog.js',
    63686369            'inspector/front-end/FontView.js',
  • trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj

    r115956 r116222  
    7423474234                                </File>
    7423574235                                <File
     74236                                        RelativePath="..\inspector\front-end\FileManager.js"
     74237                                        >
     74238                                </File>
     74239                                <File
    7423674240                                        RelativePath="..\inspector\front-end\FilteredItemSelectionDialog.js"
    7423774241                                        >
  • trunk/Source/WebCore/inspector/compile-front-end.py

    r115427 r116222  
    7575            "DebuggerModel.js",
    7676            "DebuggerPresentationModel.js",
     77            "FileManager.js",
    7778            "HAREntry.js",
    7879            "IndexedDBModel.js",
  • trunk/Source/WebCore/inspector/front-end/HeapSnapshotView.js

    r116218 r116222  
    789789
    790790WebInspector.HeapProfileHeader.prototype = {
     791    /**
     792     * @override
     793     * @param {Function} callback
     794     */
    791795    load: function(callback)
    792796    {
     
    816820    },
    817821
    818     _saveStatusUpdate: function()
    819     {
    820         ++this._savedChunksCount;
    821         if (this._savedChunksCount === this._totalNumberOfChunks) {
     822    /**
     823     * @param {WebInspector.Event} event
     824     */
     825    _saveStatusUpdate: function(event)
     826    {
     827        if (event.data !== this._fileName)
     828            return;
     829        if (++this._savedChunksCount === this._totalNumberOfChunks) {
    822830            this.sidebarElement.subtitle = Number.bytesToString(this._proxy.totalSize);
    823831            this.sidebarElement.wait = false;
     832            this._savedChunksCount = 0;
     833            WebInspector.fileManager.removeEventListener(WebInspector.FileManager.EventTypes.AppendedToURL, this._saveStatusUpdate, this);
    824834        } else
    825835            this.sidebarElement.subtitle = WebInspector.UIString("Saving\u2026 %d\%", Math.floor(this._savedChunksCount * 100 / this._totalNumberOfChunks));
    826836    },
    827837
     838    /**
     839     * @param {string} chunk
     840     */
    828841    pushJSONChunk: function(chunk)
    829842    {
    830843        if (this._loaded) {
    831844            this.sidebarElement.wait = true;
    832             WebInspector.append(this._fileName, chunk, this._saveStatusUpdate.bind(this));
     845            WebInspector.fileManager.append(this._fileName, chunk);
    833846        } else {
    834847            ++this._totalNumberOfChunks;
     
    851864    },
    852865
     866    /**
     867     * @override
     868     * @return {boolean}
     869     */
    853870    canSave: function()
    854871    {
    855         return this._loaded && InspectorFrontendHost.canSave() && ("append" in InspectorFrontendHost);
    856     },
    857 
     872        return this._loaded && !this._savedChunksCount && WebInspector.fileManager.canAppend();
     873    },
     874
     875    /**
     876     * @override
     877     */
    858878    save: function()
    859879    {
    860         function startWritingSnapshot()
     880        /**
     881         * @param {WebInspector.Event} event
     882         */
     883        function startWritingSnapshot(event)
    861884        {
     885            if (event.data !== this._fileName)
     886                return;
    862887            this.sidebarElement.wait = true;
    863             this.sidebarElement.subtitle = WebInspector.UIString("Saving\u2026 0\%");
     888            this.sidebarElement.subtitle = WebInspector.UIString("Saving\u2026 %d\%", 0);
    864889            this._savedChunksCount = 0;
     890            WebInspector.fileManager.removeEventListener(WebInspector.FileManager.EventTypes.SavedURL, startWritingSnapshot, this);
     891            WebInspector.fileManager.addEventListener(WebInspector.FileManager.EventTypes.AppendedToURL, this._saveStatusUpdate, this);
    865892            ProfilerAgent.getProfile(this.typeId, this.uid);
    866893        }
     894
    867895        this._fileName = this._fileName || "Heap-" + new Date().toISO8601Compact() + ".json";
    868         WebInspector.save(this._fileName, "", true, startWritingSnapshot.bind(this));
     896        WebInspector.fileManager.addEventListener(WebInspector.FileManager.EventTypes.SavedURL, startWritingSnapshot, this);
     897        WebInspector.fileManager.save(this._fileName, "", true);
    869898    }
    870899}
  • trunk/Source/WebCore/inspector/front-end/InspectorFrontendAPI.js

    r116218 r116222  
    108108    savedURL: function(url)
    109109    {
    110         WebInspector.savedURL(url);
     110        WebInspector.fileManager.savedURL(url);
    111111    },
    112112
    113113    appendedToURL: function(url)
    114114    {
    115         WebInspector.appendedToURL(url);
     115        WebInspector.fileManager.appendedToURL(url);
    116116    },
    117117
  • trunk/Source/WebCore/inspector/front-end/InspectorFrontendHostStub.js

    r113192 r116222  
    138138    },
    139139
     140    canAppend: function()
     141    {
     142        return false;
     143    },
     144
     145    append: function(url, content)
     146    {
     147    },
     148
    140149    sendMessageToBackend: function(message)
    141150    {
     
    168177
    169178}
     179
  • trunk/Source/WebCore/inspector/front-end/ProfilesPanel.js

    r116218 r116222  
    137137}
    138138
     139WebInspector.ProfileHeader.prototype = {
     140    /**
     141     * @param {Function} callback
     142     */
     143    load: function(callback) { },
     144
     145    /**
     146     * @return {boolean}
     147     */
     148    canSave: function() { return false; },
     149
     150    save: function() { throw new Error("Needs implemented"); }
     151}
     152
    139153/**
    140154 * @constructor
     
    10961110    {
    10971111        var profile = this.profile;
    1098         if (!profile.canSave || !profile.canSave())
     1112        if (!profile.canSave())
    10991113            return;
    11001114        var contextMenu = new WebInspector.ContextMenu();
  • trunk/Source/WebCore/inspector/front-end/TextViewer.js

    r114740 r116222  
    305305
    306306        this._delegate.commitEditing();
    307         if (this._url && WebInspector.isURLSaved(this._url))
    308             WebInspector.save(this._url, this._textModel.text, false);
     307        if (this._url && WebInspector.fileManager.isURLSaved(this._url))
     308            WebInspector.fileManager.save(this._url, this._textModel.text, false);
    309309        return true;
    310310    },
  • trunk/Source/WebCore/inspector/front-end/TimelineModel.js

    r113435 r116222  
    204204        var now = new Date();
    205205        var fileName = "TimelineRawData-" + now.toISO8601Compact() + ".json";
    206         WebInspector.save(fileName, records.join(",\n"), true);
     206        WebInspector.fileManager.save(fileName, records.join(",\n"), true);
     207
    207208    },
    208209
  • trunk/Source/WebCore/inspector/front-end/WebKit.qrc

    r115427 r116222  
    5656    <file>ExtensionRegistryStub.js</file>
    5757    <file>ExtensionServer.js</file>
     58    <file>FileManager.js</file>
    5859    <file>FilteredItemSelectionDialog.js</file>
    5960    <file>FontView.js</file>
  • trunk/Source/WebCore/inspector/front-end/externs.js

    r113994 r116222  
    157157WebInspector.evaluateInConsole = function(expression, showResultOnly) {}
    158158
    159 WebInspector.isURLSaved = function(url) {}
    160 
    161159var InjectedFakeWorker = function() {}
    162160
  • trunk/Source/WebCore/inspector/front-end/inspector.html

    r115427 r116222  
    4848    <script type="text/javascript" src="Settings.js"></script>
    4949    <script type="text/javascript" src="InspectorFrontendHostStub.js"></script>
     50    <script type="text/javascript" src="FileManager.js"></script>
    5051    <script type="text/javascript" src="Checkbox.js"></script>
    5152    <script type="text/javascript" src="ContextMenu.js"></script>
  • trunk/Source/WebCore/inspector/front-end/inspector.js

    r116218 r116222  
    10331033}
    10341034
    1035 WebInspector._saveCallbacks = [];
    1036 
    1037 WebInspector.save = function(url, content, forceSaveAs, callback)
    1038 {
    1039     // Remove this url from the saved URLs while it is being saved.
    1040     var savedURLs = WebInspector.settings.savedURLs.get();
    1041     delete savedURLs[url];
    1042     WebInspector.settings.savedURLs.set(savedURLs);
    1043     if (callback)
    1044         WebInspector._saveCallbacks[url] = callback;
    1045     InspectorFrontendHost.save(url, content, forceSaveAs);
    1046 }
    1047 
    1048 WebInspector.savedURL = function(url)
    1049 {
    1050     var savedURLs = WebInspector.settings.savedURLs.get();
    1051     savedURLs[url] = true;
    1052     WebInspector.settings.savedURLs.set(savedURLs);
    1053     var callback = WebInspector._saveCallbacks[url];
    1054     if (!callback)
    1055         return;
    1056     delete WebInspector._saveCallbacks[url];
    1057     callback.call(null, url);
    1058 }
    1059 
    1060 WebInspector.isURLSaved = function(url)
    1061 {
    1062     var savedURLs = WebInspector.settings.savedURLs.get();
    1063     return savedURLs[url];
    1064 }
    1065 
    1066 WebInspector._appendCallbacks = [];
    1067 
    1068 WebInspector.append = function(url, content, callback)
    1069 {
    1070     if (callback)
    1071         WebInspector._appendCallbacks[url] = callback;
    1072     InspectorFrontendHost.append(url, content);
    1073 }
    1074 
    1075 WebInspector.appendedToURL = function(url)
    1076 {
    1077     var callback = WebInspector._appendCallbacks[url];
    1078     if (callback)
    1079         callback.call(null, url);
    1080 }
    1081 
Note: See TracChangeset for help on using the changeset viewer.