Skip to content

Commit

Permalink
[embedlite-components] Listen embedui:runjavascript and reply with em…
Browse files Browse the repository at this point in the history
…bed:runjavascript. JB#53914 OMP#JOLLA-29
  • Loading branch information
rainemak committed Apr 19, 2021
1 parent 5439bb3 commit 7692f0b
Showing 1 changed file with 36 additions and 0 deletions.
36 changes: 36 additions & 0 deletions jsscripts/embedhelper.js
Expand Up @@ -69,6 +69,7 @@ EmbedHelper.prototype = {
// Metrics used when virtual keyboard is open/opening.
addMessageListener("embedui:vkbOpenCompositionMetrics", this);
addMessageListener("embedui:addhistory", this);
addMessageListener("embedui:runjavascript", this);
addMessageListener("Memory:Dump", this);
addMessageListener("Gesture:ContextMenuSynth", this);
addMessageListener("embed:ContextMenuCreate", this);
Expand Down Expand Up @@ -372,6 +373,41 @@ EmbedHelper.prototype = {
docShell.setCurrentURI(initialURI);
break;
}
case "embedui:runjavascript": {
if (aMessage.data && aMessage.data.script) {
let callbackId = aMessage.data.callbackId;
let jsstring = aMessage.data.script;

let promise = new Promise(function(resolve, reject) {
try {
let f = new content.Function(jsstring);
let result = f();
resolve(result);
} catch (e) {
reject(e.toString());
}
}).then(result => {
if (callbackId >= 0) {
let error
sendAsyncMessage("embed:runjavascript", {
"result": result,
"error": error,
"callbackId": callbackId
});
}
}).catch(error => {
let result
sendAsyncMessage("embed:runjavascript", {
"result": result,
"error": error,
"callbackId": callbackId
});
});
}

break;
}

case "Memory:Dump": {
if (aMessage.data && aMessage.data.fileName) {
let memDumper = Cc["@mozilla.org/memory-info-dumper;1"].getService(Ci.nsIMemoryInfoDumper);
Expand Down

0 comments on commit 7692f0b

Please sign in to comment.