Bug 1243415 - Add highlighting of elements for screenshots in chrome scope. draft
authorHenrik Skupin <mail@hskupin.info>
Mon, 05 Dec 2016 21:19:46 +0100
changeset 454204 7044c9e82ec30ee5c230e18169628a83dc0c474c
parent 454203 bdbe76ebd5213068c3a41a6c52fd577786338464
child 454205 e6b3e73db93fbd233b9af327009deaebfa5fc402
push id39865
push userbmo:hskupin@gmail.com
push dateWed, 28 Dec 2016 14:56:14 +0000
bugs1243415
milestone53.0a1
Bug 1243415 - Add highlighting of elements for screenshots in chrome scope. MozReview-Commit-ID: 317tqZWwdQf
testing/marionette/driver.js
--- a/testing/marionette/driver.js
+++ b/testing/marionette/driver.js
@@ -2403,19 +2403,26 @@ GeckoDriver.prototype.clearImportedScrip
  *     string.
  */
 GeckoDriver.prototype.takeScreenshot = function (cmd, resp) {
   let {id, highlights, full, hash} = cmd.parameters;
   highlights = highlights || [];
 
   switch (this.context) {
     case Context.CHROME:
-      let canvas = capture.viewport(this.getCurrentWindow());
-      resp.body.value = capture.toBase64(canvas);
-      break;
+      let container = {frame: this.getCurrentWindow()};
+      let highlightEls = [];
+
+      for (let h of highlights) {
+        let el = this.curBrowser.seenEls.get(h, container);
+        highlightEls.push(el);
+      }
+
+      let canvas = capture.viewport(this.getCurrentWindow(), highlightEls);
+      return capture.toBase64(canvas);
 
     case Context.CONTENT:
       if (hash) {
         return this.listener.getScreenshotHash(id, full, highlights);
       } else {
         return this.listener.takeScreenshot(id, full, highlights);
       }
   }