Index: third_party/WebKit/Source/devtools/front_end/quick_open/HelpQuickOpen.js |
diff --git a/third_party/WebKit/Source/devtools/front_end/quick_open/HelpQuickOpen.js b/third_party/WebKit/Source/devtools/front_end/quick_open/HelpQuickOpen.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..32aed6dd872b52790c1454f9fbd17a1d797c2105 |
--- /dev/null |
+++ b/third_party/WebKit/Source/devtools/front_end/quick_open/HelpQuickOpen.js |
@@ -0,0 +1,91 @@ |
+// Copyright 2017 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+QuickOpen.HelpQuickOpen = class extends QuickOpen.FilteredListWidget.Provider { |
+ constructor() { |
+ super(); |
+ /** @type {!Array<{prefix: string, title: string}>} */ |
+ this._providers = []; |
+ self.runtime.extensions(QuickOpen.FilteredListWidget.Provider).forEach(this._addProvider.bind(this)); |
+ } |
+ |
+ /** |
+ * @param {!Runtime.Extension} extension |
+ */ |
+ _addProvider(extension) { |
+ if (extension.descriptor()['title']) |
+ this._providers.push({prefix: extension.descriptor()['prefix'], title: extension.descriptor()['title']}); |
+ } |
+ |
+ /** |
+ * @override |
+ * @return {number} |
+ */ |
+ itemCount() { |
+ return this._providers.length; |
+ } |
+ |
+ /** |
+ * @override |
+ * @param {number} itemIndex |
+ * @return {string} |
+ */ |
+ itemKeyAt(itemIndex) { |
+ return this._providers[itemIndex].prefix; |
+ } |
+ |
+ /** |
+ * @override |
+ * @param {number} itemIndex |
+ * @param {string} query |
+ * @return {number} |
+ */ |
+ itemScoreAt(itemIndex, query) { |
+ return -this._providers[itemIndex].prefix.length; |
+ } |
+ |
+ /** |
+ * @override |
+ * @param {number} itemIndex |
+ * @param {string} query |
+ * @param {!Element} titleElement |
+ * @param {!Element} subtitleElement |
+ */ |
+ renderItem(itemIndex, query, titleElement, subtitleElement) { |
+ var provider = this._providers[itemIndex]; |
+ var prefixElement = titleElement.createChild('span', 'monospace'); |
+ prefixElement.textContent = (provider.prefix || '\u2026') + ' '; |
+ titleElement.createTextChild(provider.title); |
+ } |
+ |
+ /** |
+ * @override |
+ * @param {?number} itemIndex |
+ * @param {string} promptValue |
+ */ |
+ selectItem(itemIndex, promptValue) { |
+ if (itemIndex === null) { |
+ InspectorFrontendHost.openInNewTab( |
einbinder
2017/04/12 21:37:50
I'm not sure how I feel about this, but it was eas
pfeldman
2017/04/13 00:30:51
Don't do that, just the line 72?
einbinder
2017/04/13 01:22:24
Done.
|
+ 'https://developers.google.com/s/results/?q=' + encodeURIComponent(promptValue) + '&p=%2Fweb%2F'); |
+ return; |
+ } |
+ QuickOpen.QuickOpen.show(this._providers[itemIndex].prefix); |
+ } |
+ |
+ /** |
+ * @override |
+ * @param {string} query |
+ * @return {string} |
+ */ |
+ notFoundText(query) { |
+ return Common.UIString('Search for %s.', query); |
+ } |
+ |
+ /** |
+ * @override |
+ * @return {boolean} |
+ */ |
+ renderAsTwoRows() { |
+ return false; |
+ } |
+}; |