Chromium Code Reviews| 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; |
| + } |
| +}; |