Bug 1441535 - Remove unnecessary shadowdom check in isXBLAnonymous;r=bgrins draft
authorJulian Descottes <jdescottes@mozilla.com>
Tue, 24 Jul 2018 15:56:35 +0200
changeset 822007 bb933452d3780fa1c632240314014ad9c605c52a
parent 821963 1e5fa52a612e8985e12212d1950a732954e00e45
child 822077 35a59149e6f5359c8c7de40c5cb4c4ed183e3f36
child 822288 87a548270b329e20db45441bbcfccd6be1b2b43a
child 822871 48bfe41bed8779029edd0520fb14e9a7860e5570
child 822928 b50d2d4ea1aefa0d5721684c226de8b1faf87209
child 823004 e6c4fd13ad514b52b7aa38c0f507cc1438a1e893
push id117250
push userjdescottes@mozilla.com
push dateTue, 24 Jul 2018 14:21:31 +0000
reviewersbgrins
bugs1441535
milestone63.0a1
Bug 1441535 - Remove unnecessary shadowdom check in isXBLAnonymous;r=bgrins doc.getAnonymousNodes no longer returns shadow dom nodes, so no need to filter them out in isXBLAnonymous. This feature is tested in browser_markup_anonymous_02.js so reenabling this test. toolbarbutton has 4 children now, but since our tests are no longer running in non-e10s, the regression was missed! MozReview-Commit-ID: BHYb5ufyQjg
devtools/client/inspector/markup/test/browser.ini
devtools/client/inspector/markup/test/browser_markup_anonymous_02.js
devtools/client/inspector/markup/test/doc_markup_anonymous_xul.xul
devtools/shared/layout/utils.js
--- a/devtools/client/inspector/markup/test/browser.ini
+++ b/devtools/client/inspector/markup/test/browser.ini
@@ -1,13 +1,14 @@
 [DEFAULT]
 tags = devtools
 subsuite = devtools
 support-files =
   doc_markup_anonymous.html
+  doc_markup_anonymous_xul.xul
   doc_markup_dragdrop.html
   doc_markup_dragdrop_autoscroll_01.html
   doc_markup_dragdrop_autoscroll_02.html
   doc_markup_edit.html
   doc_markup_events_01.html
   doc_markup_events_02.html
   doc_markup_events_03.html
   doc_markup_events_04.html
@@ -80,17 +81,16 @@ skip-if = os == "mac" # Full keyboard na
 [browser_markup_accessibility_navigation.js]
 skip-if = os == "mac" # Full keyboard navigation on OSX only works if Full Keyboard Access setting is set to All Control in System Keyboard Preferences
 [browser_markup_accessibility_new_selection.js]
 [browser_markup_accessibility_navigation_after_edit.js]
 skip-if = os == "mac" # Full keyboard navigation on OSX only works if Full Keyboard Access setting is set to All Control in System Keyboard Preferences
 [browser_markup_accessibility_semantics.js]
 [browser_markup_anonymous_01.js]
 [browser_markup_anonymous_02.js]
-skip-if = e10s # index.xul is not loading in e10s window
 [browser_markup_anonymous_03.js]
 [browser_markup_anonymous_04.js]
 [browser_markup_copy_image_data.js]
 subsuite = clipboard
 skip-if = (os == 'linux' && bits == 32 && debug) # bug 1328915, disable linux32 debug devtools for timeouts
 [browser_markup_css_completion_style_attribute_01.js]
 [browser_markup_css_completion_style_attribute_02.js]
 [browser_markup_css_completion_style_attribute_03.js]
--- a/devtools/client/inspector/markup/test/browser_markup_anonymous_02.js
+++ b/devtools/client/inspector/markup/test/browser_markup_anonymous_02.js
@@ -2,26 +2,26 @@
 /* Any copyright is dedicated to the Public Domain.
  http://creativecommons.org/publicdomain/zero/1.0/ */
 
 "use strict";
 
 requestLongerTimeout(2);
 
 // Test XBL anonymous content in the markupview
-const TEST_URL = "chrome://devtools/content/scratchpad/index.xul";
+const TEST_URL = URL_ROOT + "doc_markup_anonymous_xul.xul";
 
 add_task(async function() {
   const {inspector} = await openInspectorForURL(TEST_URL);
 
   const toolbarbutton = await getNodeFront("toolbarbutton", inspector);
   const children = await inspector.walker.children(toolbarbutton);
 
-  is(toolbarbutton.numChildren, 3, "Correct number of children");
-  is(children.nodes.length, 3, "Children returned from walker");
+  is(toolbarbutton.numChildren, 4, "Correct number of children");
+  is(children.nodes.length, 4, "Children returned from walker");
 
   is(toolbarbutton.isAnonymous, false, "Toolbarbutton is not anonymous");
   await isEditingMenuEnabled(toolbarbutton, inspector);
 
   for (const node of children.nodes) {
     ok(node.isAnonymous, "Child is anonymous");
     ok(node._form.isXBLAnonymous, "Child is XBL anonymous");
     ok(!node._form.isShadowAnonymous, "Child is not shadow anonymous");
new file mode 100644
--- /dev/null
+++ b/devtools/client/inspector/markup/test/doc_markup_anonymous_xul.xul
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xul:window xmlns="http://www.w3.org/1999/xhtml"
+            xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+            title="Test anonymous xul nodes.">
+  <xul:toolbarbutton id="test"></xul:toolbarbutton>
+</xul:window>
+
--- a/devtools/shared/layout/utils.js
+++ b/devtools/shared/layout/utils.js
@@ -552,21 +552,16 @@ exports.isNativeAnonymous = isNativeAnon
  *
  */
 function isXBLAnonymous(node) {
   const parent = getBindingParent(node);
   if (!parent) {
     return false;
   }
 
-  // Shadow nodes also show up in getAnonymousNodes, so return false.
-  if (parent.openOrClosedShadowRoot && parent.openOrClosedShadowRoot.contains(node)) {
-    return false;
-  }
-
   const anonNodes = [...node.ownerDocument.getAnonymousNodes(parent) || []];
   return anonNodes.indexOf(node) > -1;
 }
 exports.isXBLAnonymous = isXBLAnonymous;
 
 /**
  * Determine whether a node is a child of a shadow root.
  * See https://w3c.github.io/webcomponents/spec/shadow/