Changeset 76497 in webkit


Ignore:
Timestamp:
Jan 24, 2011 2:38:43 AM (13 years ago)
Author:
podivilov@chromium.org
Message:

2011-01-21 Pavel Podivilov <podivilov@chromium.org>

Reviewed by Pavel Feldman.

Web Inspector: eliminate SourceView and ScriptView classes.
https://bugs.webkit.org/show_bug.cgi?id=52896

SourceView and ScriptView delegate everything to SourceFrame and should be eliminated.

  • WebCore.gypi:
  • WebCore.vcproj/WebCore.vcproj:
  • inspector/front-end/GoToLineDialog.js: (WebInspector.GoToLineDialog.prototype._highlightSelectedLine):
  • inspector/front-end/ResourceView.js: (WebInspector.ResourceView.createResourceView): (WebInspector.ResourceView.resourceViewTypeMatchesResource): (WebInspector.SourceFrameContentProviderForResource): Moved from SourceView.
  • inspector/front-end/ResourcesPanel.js: (WebInspector.ResourcesPanel.prototype.show): (WebInspector.ResourcesPanel.prototype._applyDiffMarkup): (WebInspector.FrameResourceTreeElement.prototype._errorsWarningsUpdated):
  • inspector/front-end/ScriptView.js: Removed.
  • inspector/front-end/ScriptsPanel.js: (WebInspector.ScriptsPanel.prototype._scriptSourceChanged): (WebInspector.ScriptsPanel.prototype._sourceFrameForScriptOrResource): (WebInspector.ScriptsPanel.prototype._showScriptOrResource): (WebInspector.ScriptsPanel.prototype._setPauseOnExceptions): (WebInspector.ScriptsPanel.prototype._formatScript): (WebInspector.SourceFrameContentProviderForScript): Moved from ScriptView.
  • inspector/front-end/SourceFrame.js: (WebInspector.SourceFrame): (WebInspector.SourceFrame.prototype.show): (WebInspector.SourceFrame.prototype.hide): (WebInspector.SourceFrame.prototype.hasContent): (WebInspector.SourceFrame.prototype._createTextViewer): (WebInspector.SourceFrame.prototype.performSearch.doFindSearchMatches): (WebInspector.SourceFrame.prototype.performSearch):
  • inspector/front-end/SourceView.js: Removed.
  • inspector/front-end/WebKit.qrc:
  • inspector/front-end/inspector.html:
Location:
trunk/Source/WebCore
Files:
2 deleted
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r76496 r76497  
     12011-01-21  Pavel Podivilov  <podivilov@chromium.org>
     2
     3        Reviewed by Pavel Feldman.
     4
     5        Web Inspector: eliminate SourceView and ScriptView classes.
     6        https://bugs.webkit.org/show_bug.cgi?id=52896
     7
     8        SourceView and ScriptView delegate everything to SourceFrame and should be eliminated.
     9
     10        * WebCore.gypi:
     11        * WebCore.vcproj/WebCore.vcproj:
     12        * inspector/front-end/GoToLineDialog.js:
     13        (WebInspector.GoToLineDialog.prototype._highlightSelectedLine):
     14        * inspector/front-end/ResourceView.js:
     15        (WebInspector.ResourceView.createResourceView):
     16        (WebInspector.ResourceView.resourceViewTypeMatchesResource):
     17        (WebInspector.SourceFrameContentProviderForResource):  Moved from SourceView.
     18        * inspector/front-end/ResourcesPanel.js:
     19        (WebInspector.ResourcesPanel.prototype.show):
     20        (WebInspector.ResourcesPanel.prototype._applyDiffMarkup):
     21        (WebInspector.FrameResourceTreeElement.prototype._errorsWarningsUpdated):
     22        * inspector/front-end/ScriptView.js: Removed.
     23        * inspector/front-end/ScriptsPanel.js:
     24        (WebInspector.ScriptsPanel.prototype._scriptSourceChanged):
     25        (WebInspector.ScriptsPanel.prototype._sourceFrameForScriptOrResource):
     26        (WebInspector.ScriptsPanel.prototype._showScriptOrResource):
     27        (WebInspector.ScriptsPanel.prototype._setPauseOnExceptions):
     28        (WebInspector.ScriptsPanel.prototype._formatScript):
     29        (WebInspector.SourceFrameContentProviderForScript): Moved from ScriptView.
     30        * inspector/front-end/SourceFrame.js:
     31        (WebInspector.SourceFrame):
     32        (WebInspector.SourceFrame.prototype.show):
     33        (WebInspector.SourceFrame.prototype.hide):
     34        (WebInspector.SourceFrame.prototype.hasContent):
     35        (WebInspector.SourceFrame.prototype._createTextViewer):
     36        (WebInspector.SourceFrame.prototype.performSearch.doFindSearchMatches):
     37        (WebInspector.SourceFrame.prototype.performSearch):
     38        * inspector/front-end/SourceView.js: Removed.
     39        * inspector/front-end/WebKit.qrc:
     40        * inspector/front-end/inspector.html:
     41
    1422011-01-24  Andras Becsi  <abecsi@webkit.org>
    243
  • trunk/Source/WebCore/WebCore.gypi

    r76493 r76497  
    47174717            'inspector/front-end/ScriptFormatterWorker.js',
    47184718            'inspector/front-end/ScriptsPanel.js',
    4719             'inspector/front-end/ScriptView.js',
    47204719            'inspector/front-end/ShortcutsHelp.js',
    47214720            'inspector/front-end/Section.js',
     
    47284727            'inspector/front-end/SourceJavaScriptTokenizer.js',
    47294728            'inspector/front-end/SourceTokenizer.js',
    4730             'inspector/front-end/SourceView.js',
    47314729            'inspector/front-end/StatusBarButton.js',
    47324730            'inspector/front-end/StylesSidebarPane.js',
  • trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj

    r76493 r76497  
    6570265702                                </File>
    6570365703                                <File
    65704                                         RelativePath="..\inspector\front-end\ScriptView.js"
    65705                                         >
    65706                                 </File>
    65707                                 <File
    6570865704                                        RelativePath="..\inspector\front-end\Section.js"
    6570965705                                        >
     
    6574365739                                <File
    6574465740                                        RelativePath="..\inspector\front-end\SourceTokenizer.js"
    65745                                         >
    65746                                 </File>
    65747                                 <File
    65748                                         RelativePath="..\inspector\front-end\SourceView.js"
    6574965741                                        >
    6575065742                                </File>
  • trunk/Source/WebCore/inspector/front-end/GoToLineDialog.js

    r68398 r76497  
    4646    this._input.setAttribute("type", "text");
    4747    this._input.setAttribute("size", 6);
    48     var linesCount = view.sourceFrame.textModel.linesCount;
     48    var linesCount = view.textModel.linesCount;
    4949    if (linesCount)
    5050        this._input.setAttribute("title", WebInspector.UIString("1 - %d", linesCount));
     
    121121        var lineNumber = parseInt(value, 10);
    122122        if (!isNaN(lineNumber) && lineNumber > 0) {
    123             lineNumber = Math.min(lineNumber, this._view.sourceFrame.textModel.linesCount);
     123            lineNumber = Math.min(lineNumber, this._view.textModel.linesCount);
    124124            this._view.highlightLine(lineNumber);
    125125        }
  • trunk/Source/WebCore/inspector/front-end/ResourceView.js

    r74709 r76497  
    5151    case WebInspector.resourceCategories.scripts:
    5252    case WebInspector.resourceCategories.xhr:
    53         return new WebInspector.SourceView(resource);
     53        var contentProvider = new WebInspector.SourceFrameContentProviderForResource(resource);
     54        var isScript = resource.type === WebInspector.Resource.Type.Script;
     55        var view = new WebInspector.SourceFrame(contentProvider, resource.url, isScript);
     56        view.resource = resource;
     57        return view;
    5458    case WebInspector.resourceCategories.images:
    5559        return new WebInspector.ImageView(resource);
     
    6973    case WebInspector.resourceCategories.scripts:
    7074    case WebInspector.resourceCategories.xhr:
    71         return resourceView.__proto__ === WebInspector.SourceView.prototype;
     75        return resourceView.__proto__ === WebInspector.SourceFrame.prototype;
    7276    case WebInspector.resourceCategories.images:
    7377        return resourceView.__proto__ === WebInspector.ImageView.prototype;
     
    116120    return resource._resourcesView;
    117121}
     122
     123
     124WebInspector.SourceFrameContentProviderForResource = function(resource)
     125{
     126    WebInspector.SourceFrameContentProvider.call(this);
     127    this._resource = resource;
     128}
     129
     130//This is a map from resource.type to mime types
     131//found in WebInspector.SourceTokenizer.Registry.
     132WebInspector.SourceFrameContentProviderForResource.DefaultMIMETypeForResourceType = {
     133    0: "text/html",
     134    1: "text/css",
     135    4: "text/javascript"
     136}
     137
     138WebInspector.SourceFrameContentProviderForResource.prototype = {
     139    requestContent: function(callback)
     140    {
     141        function contentLoaded(content)
     142        {
     143            var mimeType = WebInspector.SourceFrameContentProviderForResource.DefaultMIMETypeForResourceType[this._resource.type] || this._resource.mimeType;
     144            callback(mimeType, content);
     145        }
     146        this._resource.requestContent(contentLoaded.bind(this));
     147    },
     148
     149    scripts: function()
     150    {
     151        return WebInspector.debuggerModel.scriptsForURL(this._resource.url);
     152    }
     153}
     154
     155WebInspector.SourceFrameContentProviderForResource.prototype.__proto__ = WebInspector.SourceFrameContentProvider.prototype;
  • trunk/Source/WebCore/inspector/front-end/ResourcesPanel.js

    r76022 r76497  
    103103        WebInspector.Panel.prototype.show.call(this);
    104104
    105         if (this.visibleView instanceof WebInspector.ResourceView)
     105        if (this.visibleView.resource)
    106106            this._showResourceView(this.visibleView.resource);
    107107
     
    379379
    380380        // Consider rendering diff markup here.
    381         if (resource.baseRevision && view instanceof WebInspector.SourceView) {
     381        if (resource.baseRevision && view instanceof WebInspector.SourceFrame) {
    382382            function callback(baseContent)
    383383            {
     
    414414                offset = i - right[i].row;
    415415        }
    416         view.sourceFrame.markDiff(diffData);
     416        view.markDiff(diffData);
    417417    },
    418418
     
    691691
    692692        const visibleView = this.visibleView;
    693         if (visibleView instanceof WebInspector.ResourceView && visibleView.performSearch)
     693        if (visibleView.performSearch)
    694694            views.push(visibleView);
    695695
     
    10771077    _errorsWarningsUpdated: function()
    10781078    {
    1079         // FIXME: move to the Script/SourceView.
     1079        // FIXME: move to the SourceFrame.
    10801080        if (!this._resource.warnings && !this._resource.errors) {
    10811081            var view = WebInspector.ResourceView.existingResourceViewForResource(this._resource);
  • trunk/Source/WebCore/inspector/front-end/ScriptsPanel.js

    r76341 r76497  
    259259
    260260        var script = WebInspector.debuggerModel.scriptForSourceID(sourceID);
    261         var oldView = script._scriptView;
     261        var oldView = script._sourceFrame
    262262        if (oldView) {
    263             script._scriptView = new WebInspector.ScriptView(script);
    264             this.viewRecreated(oldView, script._scriptView);
     263            delete script._sourceFrame;
     264            this.viewRecreated(oldView, this._sourceFrameForScriptOrResource(script));
    265265        }
    266266        if (script.resource) {
     
    485485    },
    486486
    487     scriptViewForScript: function(script)
    488     {
    489         if (!script)
    490             return null;
    491         if (!script._scriptView)
    492             script._scriptView = new WebInspector.ScriptView(script);
    493         return script._scriptView;
    494     },
    495 
    496     sourceFrameForScript: function(script)
    497     {
    498         var view = this.scriptViewForScript(script);
    499         if (!view)
    500             return null;
    501 
    502         // Setting up the source frame requires that we be attached.
    503         if (!this.element.parentNode)
    504             this.attach();
    505 
    506         return view.sourceFrame;
    507     },
    508 
    509487    _sourceFrameForScriptOrResource: function(scriptOrResource)
    510488    {
     489        if (scriptOrResource._sourceFrame)
     490            return scriptOrResource._sourceFrame;
    511491        if (scriptOrResource instanceof WebInspector.Resource)
    512             return this._sourceFrameForResource(scriptOrResource);
    513         if (scriptOrResource instanceof WebInspector.Script)
    514             return this.sourceFrameForScript(scriptOrResource);
    515     },
    516 
    517     _sourceFrameForResource: function(resource)
    518     {
    519         var view = WebInspector.ResourceView.resourceViewForResource(resource);
    520         if (!view)
    521             return null;
    522 
    523         return view.sourceFrame;
     492            scriptOrResource._sourceFrame = WebInspector.ResourceView.resourceViewForResource(scriptOrResource);
     493        else if (scriptOrResource instanceof WebInspector.Script) {
     494            var contentProvider = new WebInspector.SourceFrameContentProviderForScript(scriptOrResource);
     495            scriptOrResource._sourceFrame = new WebInspector.SourceFrame(contentProvider, scriptOrResource.sourceURL, true);
     496        }
     497        return scriptOrResource._sourceFrame;
    524498    },
    525499
     
    532506            return;
    533507
    534         var view;
    535         if (scriptOrResource instanceof WebInspector.Resource)
    536             view = WebInspector.ResourceView.resourceViewForResource(scriptOrResource);
    537         else if (scriptOrResource instanceof WebInspector.Script)
    538             view = this.scriptViewForScript(scriptOrResource);
    539 
     508        var view = this._sourceFrameForScriptOrResource(scriptOrResource);
    540509        if (!view)
    541510            return;
     
    739708            else if (pauseOnExceptionsState == WebInspector.ScriptsPanel.PauseOnExceptionsState.PauseOnUncaughtExceptions)
    740709                this._pauseOnExceptionButton.title = WebInspector.UIString("Pause on uncaught exceptions.\nClick to Not pause on exceptions.");
    741    
     710
    742711            this._pauseOnExceptionButton.state = pauseOnExceptionsState;
    743712            WebInspector.settings.pauseOnExceptionState = pauseOnExceptionsState;
     
    825794    _formatScript: function()
    826795    {
    827         if (this.visibleView && this.visibleView.sourceFrame)
    828             this.visibleView.sourceFrame.formatSource();
     796        if (this.visibleView)
     797            this.visibleView.formatSource();
    829798    },
    830799
     
    10441013
    10451014WebInspector.ScriptsPanel.prototype.__proto__ = WebInspector.Panel.prototype;
     1015
     1016
     1017WebInspector.SourceFrameContentProviderForScript = function(script)
     1018{
     1019    WebInspector.SourceFrameContentProvider.call(this);
     1020    this._script = script;
     1021}
     1022
     1023WebInspector.SourceFrameContentProviderForScript.prototype = {
     1024    requestContent: function(callback)
     1025    {
     1026        if (this._script.source) {
     1027            callback("text/javascript", this._script.source);
     1028            return;
     1029        }
     1030
     1031        function didRequestSource(content)
     1032        {
     1033            var source;
     1034            if (content) {
     1035                var prefix = "";
     1036                for (var i = 0; i < this._script.startingLine - 1; ++i)
     1037                    prefix += "\n";
     1038                source = prefix + content;
     1039            } else
     1040                source = WebInspector.UIString("<source is not available>");
     1041            callback("text/javascript", source);
     1042        }
     1043        this._script.requestSource(didRequestSource.bind(this));
     1044    },
     1045
     1046    scripts: function()
     1047    {
     1048        return [this._script];
     1049    }
     1050}
     1051
     1052WebInspector.SourceFrameContentProviderForScript.prototype.__proto__ = WebInspector.SourceFrameContentProvider.prototype;
  • trunk/Source/WebCore/inspector/front-end/SourceFrame.js

    r76488 r76497  
    2929 */
    3030
    31 WebInspector.SourceFrame = function(parentElement, contentProvider, url, isScript)
     31WebInspector.SourceFrame = function(contentProvider, url, isScript)
    3232{
    33     this._parentElement = parentElement;
     33    WebInspector.View.call(this);
     34
     35    this.element.addStyleClass("script-view");
     36
    3437    this._contentProvider = contentProvider;
    3538    this._url = url;
    3639    this._isScript = isScript;
    3740
    38 
    3941    this._textModel = new WebInspector.TextEditorModel();
    4042    this._textModel.replaceTabsWithSpaces = true;
     43
     44    this._currentSearchResultIndex = -1;
     45    this._searchResults = [];
    4146
    4247    this._messages = [];
     
    4954WebInspector.SourceFrame.prototype = {
    5055
    51     set visible(visible)
    52     {
     56    show: function(parentElement)
     57    {
     58        WebInspector.View.prototype.show.call(this, parentElement);
     59
    5360        if (!this._contentRequested) {
    5461            this._contentRequested = true;
     
    5663        }
    5764
    58         if (visible) {
    59             if (this._textViewer && this._scrollTop)
     65        if (this._textViewer) {
     66            if (this._scrollTop)
    6067                this._textViewer.element.scrollTop = this._scrollTop;
    61             if (this._textViewer && this._scrollLeft)
     68            if (this._scrollLeft)
    6269                this._textViewer.element.scrollLeft = this._scrollLeft;
    63             if (this._textViewer)
    64                 this._textViewer.resize();
    65         } else {
    66             this._hidePopup();
    67             this._clearLineHighlight();
    68             if (this._textViewer) {
    69                 this._scrollTop = this._textViewer.element.scrollTop;
    70                 this._scrollLeft = this._textViewer.element.scrollLeft;
    71                 this._textViewer.freeCachedElements();
    72             }
    73         }
     70            this._textViewer.resize();
     71        }
     72    },
     73
     74    hide: function()
     75    {
     76        WebInspector.View.prototype.hide.call(this);
     77
     78        this._hidePopup();
     79        this._clearLineHighlight();
     80
     81        if (this._textViewer) {
     82            this._scrollTop = this._textViewer.element.scrollTop;
     83            this._scrollLeft = this._textViewer.element.scrollLeft;
     84            this._textViewer.freeCachedElements();
     85        }
     86    },
     87
     88    hasContent: function()
     89    {
     90        return true;
    7491    },
    7592
     
    167184        element.addEventListener("scroll", this._scroll.bind(this), true);
    168185        element.addEventListener("dblclick", this._doubleClick.bind(this), true);
    169         this._parentElement.appendChild(element);
     186        this.element.appendChild(element);
    170187
    171188        this._textViewer.beginUpdates();
     
    241258            }
    242259
    243             callback(this._searchResults.length);
     260            callback(this, this._searchResults.length);
    244261        }
    245262
     
    911928}
    912929
    913 WebInspector.SourceFrame.prototype.__proto__ = WebInspector.Object.prototype;
     930WebInspector.SourceFrame.prototype.__proto__ = WebInspector.View.prototype;
    914931
    915932
  • trunk/Source/WebCore/inspector/front-end/WebKit.qrc

    r76246 r76497  
    8585    <file>ScriptFormatterWorker.js</file>
    8686    <file>ScriptsPanel.js</file>
    87     <file>ScriptView.js</file>
    8887    <file>Section.js</file>
    8988    <file>Settings.js</file>
     
    9695    <file>SourceJavaScriptTokenizer.js</file>
    9796    <file>SourceTokenizer.js</file>
    98     <file>SourceView.js</file>
    9997    <file>StatusBarButton.js</file>
    10098    <file>StylesSidebarPane.js</file>
  • trunk/Source/WebCore/inspector/front-end/inspector.html

    r76116 r76497  
    102102    <script type="text/javascript" src="NetworkPanel.js"></script>
    103103    <script type="text/javascript" src="InjectedFakeWorker.js"></script>
     104    <script type="text/javascript" src="SourceFrame.js"></script>
     105    <script type="text/javascript" src="ResourceView.js"></script>
    104106    <script type="text/javascript" src="ScriptsPanel.js"></script>
    105107    <script type="text/javascript" src="ResourcesPanel.js"></script>
     
    121123    <script type="text/javascript" src="ResourceTimingView.js"></script>
    122124    <script type="text/javascript" src="NetworkItemView.js"></script>
    123     <script type="text/javascript" src="ResourceView.js"></script>
    124     <script type="text/javascript" src="SourceFrame.js"></script>
    125125    <script type="text/javascript" src="ScriptFormatter.js"></script>
    126126    <script type="text/javascript" src="DOMSyntaxHighlighter.js"></script>
     
    132132    <script type="text/javascript" src="SourceHTMLTokenizer.js"></script>
    133133    <script type="text/javascript" src="SourceJavaScriptTokenizer.js"></script>
    134     <script type="text/javascript" src="SourceView.js"></script>
    135134    <script type="text/javascript" src="FontView.js"></script>
    136135    <script type="text/javascript" src="ImageView.js"></script>
    137136    <script type="text/javascript" src="DatabaseTableView.js"></script>
    138137    <script type="text/javascript" src="DatabaseQueryView.js"></script>
    139     <script type="text/javascript" src="ScriptView.js"></script>
    140138    <script type="text/javascript" src="ProfileDataGridTree.js"></script>
    141139    <script type="text/javascript" src="BottomUpProfileDataGridTree.js"></script>
Note: See TracChangeset for help on using the changeset viewer.