Bug 1888590 - Mark some subtests on trusted-types-event-handlers.html as failing...
[gecko.git] / toolkit / actors / FinderChild.sys.mjs
blob6a245cd60680ea92d3efa02fd0bf5068b9353045
1 // -*- indent-tabs-mode: nil; js-indent-level: 2 -*-
2 // vim: set ts=2 sw=2 sts=2 et tw=80: */
3 // This Source Code Form is subject to the terms of the Mozilla Public
4 // License, v. 2.0. If a copy of the MPL was not distributed with this
5 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
7 const lazy = {};
9 ChromeUtils.defineESModuleGetters(lazy, {
10   Finder: "resource://gre/modules/Finder.sys.mjs",
11 });
13 export class FinderChild extends JSWindowActorChild {
14   get finder() {
15     if (!this._finder) {
16       this._finder = new lazy.Finder(this.docShell);
17     }
18     return this._finder;
19   }
21   receiveMessage(aMessage) {
22     let data = aMessage.data;
24     switch (aMessage.name) {
25       case "Finder:CaseSensitive":
26         this.finder.caseSensitive = data.caseSensitive;
27         break;
29       case "Finder:MatchDiacritics":
30         this.finder.matchDiacritics = data.matchDiacritics;
31         break;
33       case "Finder:EntireWord":
34         this.finder.entireWord = data.entireWord;
35         break;
37       case "Finder:SetSearchStringToSelection": {
38         return new Promise(resolve => {
39           resolve(this.finder.setSearchStringToSelection());
40         });
41       }
43       case "Finder:GetInitialSelection": {
44         return new Promise(resolve => {
45           resolve(this.finder.getActiveSelectionText());
46         });
47       }
49       case "Finder:Find":
50         return this.finder.find(data);
52       case "Finder:Highlight":
53         return this.finder
54           .highlight(
55             data.highlight,
56             data.searchString,
57             data.linksOnly,
58             data.useSubFrames
59           )
60           .then(result => {
61             if (result) {
62               result.browsingContextId = this.browsingContext.id;
63             }
64             return result;
65           });
67       case "Finder:UpdateHighlightAndMatchCount":
68         return this.finder.updateHighlightAndMatchCount(data).then(result => {
69           if (result) {
70             result.browsingContextId = this.browsingContext.id;
71           }
72           return result;
73         });
75       case "Finder:HighlightAllChange":
76         this.finder.onHighlightAllChange(data.highlightAll);
77         break;
79       case "Finder:EnableSelection":
80         this.finder.enableSelection();
81         break;
83       case "Finder:RemoveSelection":
84         this.finder.removeSelection(data.keepHighlight);
85         break;
87       case "Finder:FocusContent":
88         this.finder.focusContent();
89         break;
91       case "Finder:FindbarClose":
92         this.finder.onFindbarClose();
93         break;
95       case "Finder:FindbarOpen":
96         this.finder.onFindbarOpen();
97         break;
99       case "Finder:KeyPress":
100         var KeyboardEvent = this.finder._getWindow().KeyboardEvent;
101         this.finder.keyPress(new KeyboardEvent("keypress", data));
102         break;
104       case "Finder:MatchesCount":
105         return this.finder
106           .requestMatchesCount(
107             data.searchString,
108             data.linksOnly,
109             data.useSubFrames
110           )
111           .then(result => {
112             if (result) {
113               result.browsingContextId = this.browsingContext.id;
114             }
115             return result;
116           });
118       case "Finder:ModalHighlightChange":
119         this.finder.onModalHighlightChange(data.useModalHighlight);
120         break;
122       case "Finder:EnableMarkTesting":
123         this.finder.highlighter.enableTesting(data.enable);
124         break;
125     }
127     return null;
128   }