Changeset 140809 in webkit


Ignore:
Timestamp:
Jan 25, 2013 3:14:33 AM (11 years ago)
Author:
commit-queue@webkit.org
Message:

Web Inspector: implement search for workspace sources
https://bugs.webkit.org/show_bug.cgi?id=107814

Patch by Andrey Lushnikov <lushnikov@chromium.org> on 2013-01-25
Reviewed by Pavel Feldman.

Implement generic WebInspector.ContentProvider.performSearchInContent method and use it in both
StaticContentProvider and fileSystemWorkspaceProvider.

No new tests.

  • inspector/front-end/ContentProvider.js:

(WebInspector.ContentProvider.performSearchInContent): Added.

  • inspector/front-end/ContentProviders.js:

(WebInspector.StaticContentProvider.prototype.):
(WebInspector.StaticContentProvider.prototype.searchInContent):

  • inspector/front-end/FileSystemWorkspaceProvider.js:

(WebInspector.FileSystemWorkspaceProvider.prototype.contentCallback):
(WebInspector.FileSystemWorkspaceProvider.prototype.searchInFileContent):

Location:
trunk/Source/WebCore
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r140807 r140809  
     12013-01-25  Andrey Lushnikov  <lushnikov@chromium.org>
     2
     3        Web Inspector: implement search for workspace sources
     4        https://bugs.webkit.org/show_bug.cgi?id=107814
     5
     6        Reviewed by Pavel Feldman.
     7
     8        Implement generic WebInspector.ContentProvider.performSearchInContent method and use it in both
     9        StaticContentProvider and fileSystemWorkspaceProvider.
     10
     11        No new tests.
     12
     13        * inspector/front-end/ContentProvider.js:
     14        (WebInspector.ContentProvider.performSearchInContent): Added.
     15        * inspector/front-end/ContentProviders.js:
     16        (WebInspector.StaticContentProvider.prototype.):
     17        (WebInspector.StaticContentProvider.prototype.searchInContent):
     18        * inspector/front-end/FileSystemWorkspaceProvider.js:
     19        (WebInspector.FileSystemWorkspaceProvider.prototype.contentCallback):
     20        (WebInspector.FileSystemWorkspaceProvider.prototype.searchInFileContent):
     21
    1222013-01-25  Elliott Sprehn  <esprehn@gmail.com>
    223
  • trunk/Source/WebCore/inspector/front-end/ContentProvider.js

    r129625 r140809  
    6868    this.lineContent = lineContent;
    6969}
     70
     71/**
     72 * @param {string} content
     73 * @param {string} query
     74 * @param {boolean} caseSensitive
     75 * @param {boolean} isRegex
     76 * @return {Array.<WebInspector.ContentProvider.SearchMatch>}
     77 */
     78WebInspector.ContentProvider.performSearchInContent = function(content, query, caseSensitive, isRegex)
     79{
     80    var regex = createSearchRegex(query, caseSensitive, isRegex);
     81
     82    var result = [];
     83    var lineEndings = content.lineEndings();
     84    for (var i = 0; i < lineEndings.length; ++i) {
     85        var lineStart = i > 0 ? lineEndings[i - 1] + 1 : 0;
     86        var lineEnd = lineEndings[i];
     87        var lineContent = content.substring(lineStart, lineEnd);
     88        if (lineContent.length > 0 && lineContent.charAt(lineContent.length - 1) === "\r")
     89            lineContent = lineContent.substring(0, lineContent.length - 1)
     90
     91        if (regex.exec(lineContent))
     92            result.push(new WebInspector.ContentProvider.SearchMatch(i, lineContent));
     93    }
     94    return result;
     95}
  • trunk/Source/WebCore/inspector/front-end/ContentProviders.js

    r130149 r140809  
    288288        function performSearch()
    289289        {
    290             var regex = createSearchRegex(query, caseSensitive, isRegex);
    291            
    292             var result = [];
    293             var lineEndings = this._content.lineEndings();
    294             for (var i = 0; i < lineEndings.length; ++i) {
    295                 var lineStart = i > 0 ? lineEndings[i - 1] + 1 : 0;
    296                 var lineEnd = lineEndings[i];
    297                 var lineContent = this._content.substring(lineStart, lineEnd);
    298                 if (lineContent.length > 0 && lineContent.charAt(lineContent.length - 1) === "\r")
    299                     lineContent = lineContent.substring(0, lineContent.length - 1)
    300                
    301                 if (regex.exec(lineContent))
    302                     result.push(new WebInspector.ContentProvider.SearchMatch(i, lineContent));
    303             }
    304             callback(result);
     290            callback(WebInspector.ContentProvider.performSearchInContent(this._content, query, caseSensitive, isRegex));
    305291        }
    306292
  • trunk/Source/WebCore/inspector/front-end/FileSystemWorkspaceProvider.js

    r140124 r140809  
    9292    searchInFileContent: function(uri, query, caseSensitive, isRegex, callback)
    9393    {
    94         callback([]);
     94        this.requestFileContent(uri, contentCallback.bind(this));
     95
     96        /**
     97         * @param {?string} content
     98         * @param {boolean} base64Encoded
     99         * @param {string} mimeType
     100         */
     101        function contentCallback(content, base64Encoded, mimeType)
     102        {
     103            var result = [];
     104            if (content)
     105                result = WebInspector.ContentProvider.performSearchInContent(content, query, caseSensitive, isRegex);
     106            callback(result);
     107        }
    95108    },
    96109
Note: See TracChangeset for help on using the changeset viewer.