Index: Source/devtools/front_end/sources/AdvancedSearchView.js |
diff --git a/Source/devtools/front_end/sources/AdvancedSearchView.js b/Source/devtools/front_end/sources/AdvancedSearchView.js |
index 2fc1b0e0ca5da730e890299932936176fe9a0312..362b9b78e047d09669a6812d2cb246406b78e3f4 100644 |
--- a/Source/devtools/front_end/sources/AdvancedSearchView.js |
+++ b/Source/devtools/front_end/sources/AdvancedSearchView.js |
@@ -414,3 +414,60 @@ WebInspector.SearchScope.prototype = { |
*/ |
createSearchResultsPane: function(searchConfig) { } |
} |
+ |
+ |
+/** |
+ * @constructor |
+ * @implements {WebInspector.Revealer} |
+ */ |
+WebInspector.AdvancedSearchView.SearchResultsRevealer = function() |
+{ |
+} |
+ |
+WebInspector.AdvancedSearchView.SearchResultsRevealer.prototype = { |
+ /** |
+ * @override |
+ * @param {!Object} results |
+ * @return {!Promise} |
+ */ |
+ reveal: function(results) |
+ { |
+ if (!(results instanceof WebInspector.SearchResultsCollection)) |
+ return Promise.reject(new Error("Internal error: not a search results collection")); |
+ |
+ //TODO: Stop accessing private members |
+ var searchResultsPanel = WebInspector.AdvancedSearchView._instance; |
+ if (!searchResultsPanel) { |
+ searchResultsPanel = new WebInspector.AdvancedSearchView(); |
+ } |
+ |
+ searchResultsPanel._nothingFound(); |
+ searchResultsPanel._searchConfig = new WebInspector.SearchConfig(results.highlightText(), true, false); //TODO: HACK - really should be able to highlight arbitrary spans |
+ searchResultsPanel._searchResultsPane = searchResultsPanel._searchScope.createSearchResultsPane(searchResultsPanel._searchConfig); |
+ searchResultsPanel._resetResults(); |
+ searchResultsPanel._searchResultsElement.appendChild(searchResultsPanel._searchResultsPane.element); |
+ |
+ |
+ WebInspector.inspectorView.setCurrentPanel(WebInspector.SourcesPanel.instance()); |
+ WebInspector.inspectorView.showViewInDrawer("sources.search"); |
+ |
+ results.results().map(function(sourceResult) { //map to file search result |
+ var code = WebInspector.networkMapping.uiSourceCodeForURLForAnyTarget(sourceResult.source) || WebInspector.workspace.uiSourceCodeForFilePath(sourceResult.source); |
+ if (!code) { |
+ return; |
+ } |
+ return new WebInspector.FileBasedSearchResult( |
+ code, |
+ sourceResult.map(function(item){ |
+ return new WebInspector.ContentProvider.SearchMatch(item.line(), item.lineContent()); |
+ }) |
+ ); |
+ }).forEach(function(searchResult) { |
+ if (!searchResult) return; |
+ searchResultsPanel._addSearchResult(searchResult); |
+ searchResultsPanel._searchResultsPane.addSearchResult(searchResult); |
+ }); |
+ |
+ return Promise.resolve(); |
+ } |
+} |