Bug 1321516 - Take shadow DOM into account when getting paint tree draft
authorAndreas Tolfsen <ato@mozilla.com>
Mon, 17 Apr 2017 17:51:13 +0100
changeset 565894 02d664fd79dc4aea7543eef8357f79cc348b1a7d
parent 565893 636d68286175aca5852a28bef7d9561c6b0052eb
child 565895 2af563e0ec35e72bf37abd7926be06d8add02f88
push id55051
push userbmo:ato@mozilla.com
push dateThu, 20 Apr 2017 17:08:50 +0000
bugs1321516
milestone55.0a1
Bug 1321516 - Take shadow DOM into account when getting paint tree MozReview-Commit-ID: 3HXEnVD1u89
testing/marionette/element.js
--- a/testing/marionette/element.js
+++ b/testing/marionette/element.js
@@ -995,19 +995,27 @@ element.getInViewCentrePoint = function 
  *     Element to determine if is pointer-interactable.
  *
  * @return {Array.<DOMElement>}
  *     Sequence of elements in paint order.
  */
 element.getPointerInteractablePaintTree = function (el) {
   const doc = el.ownerDocument;
   const win = doc.defaultView;
+  const container = {frame: win};
+  const rootNode = el.getRootNode();
+
+  // Include shadow DOM host only if the element's root node is not the
+  // owner document.
+  if (rootNode !== doc) {
+    container.shadowRoot = rootNode;
+  }
 
   // pointer-interactable elements tree, step 1
-  if (element.isDisconnected(el, {frame: win})) {
+  if (element.isDisconnected(el, container)) {
     return [];
   }
 
   // steps 2-3
   let rects = el.getClientRects();
   if (rects.length == 0) {
     return [];
   }