| Index: chrome/content/ui/filters-search.js |
| =================================================================== |
| --- a/chrome/content/ui/filters-search.js |
| +++ b/chrome/content/ui/filters-search.js |
| @@ -139,18 +139,35 @@ FilterSearch.fakeBrowser = |
| _resultListeners: [], |
| searchString: null, |
| caseSensitive: false, |
| lastResult: null, |
| _notifyResultListeners: function(result, findBackwards) |
| { |
| this.lastResult = result; |
| - for each (let listener in this._resultListeners) |
| - listener.onFindResult(result, findBackwards); |
| + for (let listener of this._resultListeners) |
| + { |
| + // See https://bugzilla.mozilla.org/show_bug.cgi?id=958101, starting |
| + // with Gecko 29 only one parameter is expected. |
| + try |
| + { |
| + if (listener.onFindResult.length == 1) |
| + { |
| + listener.onFindResult({searchString: this.searchString, |
| + result: result, findBackwards: findBackwards}); |
| + } |
| + else |
| + listener.onFindResult(result, findBackwards); |
| + } |
| + catch (e) |
| + { |
| + Cu.reportError(e); |
| + } |
| + } |
| }, |
| fastFind: function(searchString, linksOnly, drawOutline) |
| { |
| this.searchString = searchString; |
| let result = FilterSearch.search(this.searchString, 0, |
| this.caseSensitive); |
| this._notifyResultListeners(result, false); |
| @@ -173,16 +190,17 @@ FilterSearch.fakeBrowser = |
| removeResultListener: function(listener) |
| { |
| let index = this._resultListeners.indexOf(listener); |
| if (index !== -1) |
| this._resultListeners.splice(index, 1); |
| }, |
| // Irrelevant for us |
| + requestMatchesCount: function(searchString, matchLimit, linksOnly) {}, |
| highlight: function(highlight, word) {}, |
| enableSelection: function() {}, |
| removeSelection: function() {}, |
| focusContent: function() {}, |
| keyPress: function() {} |
| }, |
| get _lastSearchString() |