From c92e905c2e22deb0e4f522bb0afd15871dfade54 Mon Sep 17 00:00:00 2001 From: Andreas Tolfsen Date: Fri, 21 Aug 2015 15:03:03 +0100 Subject: [PATCH] Bug 1197146: Part 2: Use dispatcher for listener findElementsContent r=dburns --HG-- extra : commitid : 6C4UE1m18Da extra : source : f7e4900ea7ca194f282fae199d64b712aee85251 --- testing/marionette/driver.js | 8 ++++---- testing/marionette/listener.js | 28 +++++++++++++++------------- 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/testing/marionette/driver.js b/testing/marionette/driver.js index b8e717214918..1cde22f81cbe 100644 --- a/testing/marionette/driver.js +++ b/testing/marionette/driver.js @@ -1945,10 +1945,10 @@ GeckoDriver.prototype.findElements = function(cmd, resp) { case Context.CONTENT: resp.value = yield this.listener.findElementsContent({ - value: cmd.parameters.value, - using: cmd.parameters.using, - element: cmd.parameters.element, - searchTimeout: this.searchTimeout}); + value: cmd.parameters.value, + using: cmd.parameters.using, + element: cmd.parameters.element, + searchTimeout: this.searchTimeout}); break; } }; diff --git a/testing/marionette/listener.js b/testing/marionette/listener.js index 79c2197bc5cc..ae2a75bc8532 100644 --- a/testing/marionette/listener.js +++ b/testing/marionette/listener.js @@ -205,6 +205,7 @@ let getElementTagNameFn = dispatch(getElementTagName); let getElementRectFn = dispatch(getElementRect); let isElementEnabledFn = dispatch(isElementEnabled); let getCurrentUrlFn = dispatch(getCurrentUrl); +let findElementsContentFn = dispatch(findElementsContent); /** * Start all message listeners @@ -228,7 +229,7 @@ function startListeners() { addMessageListenerId("Marionette:goForward", goForward); addMessageListenerId("Marionette:refresh", refresh); addMessageListenerId("Marionette:findElementContent", findElementContent); - addMessageListenerId("Marionette:findElementsContent", findElementsContent); + addMessageListenerId("Marionette:findElementsContent", findElementsContentFn); addMessageListenerId("Marionette:getActiveElement", getActiveElementFn); addMessageListenerId("Marionette:clickElement", clickElementFn); addMessageListenerId("Marionette:getElementAttribute", getElementAttributeFn); @@ -333,7 +334,7 @@ function deleteSession(msg) { removeMessageListenerId("Marionette:goForward", goForward); removeMessageListenerId("Marionette:refresh", refresh); removeMessageListenerId("Marionette:findElementContent", findElementContent); - removeMessageListenerId("Marionette:findElementsContent", findElementsContent); + removeMessageListenerId("Marionette:findElementsContent", findElementsContentFn); removeMessageListenerId("Marionette:getActiveElement", getActiveElementFn); removeMessageListenerId("Marionette:clickElement", clickElementFn); removeMessageListenerId("Marionette:getElementAttribute", getElementAttributeFn); @@ -1405,18 +1406,19 @@ function findElementContent(msg) { } /** - * Find elements in the document using requested search strategy + * Find elements in the current browsing context's document using the + * given search strategy. */ -function findElementsContent(msg) { - let command_id = msg.json.command_id; - try { - let onSuccess = (els, id) => sendResponse({value: els}, id); - let onError = (err, id) => sendError(err, id); - elementManager.find(curFrame, msg.json, msg.json.searchTimeout, - true /* all */, onSuccess, onError, command_id); - } catch (e) { - sendError(e, command_id); - } +function findElementsContent(opts) { + return new Promise((resolve, reject) => { + elementManager.find( + curFrame, + opts, + opts.searchTimeout, + true /* all */, + resolve, + reject); + }); } /**