Bug 1434981 - Display fonts for text nodes too; r=gl draft
authorPatrick Brosset <pbrosset@mozilla.com>
Thu, 01 Feb 2018 21:40:21 -0500 (2018-02-02)
changeset 750409 3820f76d37728d57a0a7ae9df594fcd2f3b8d7c2
parent 748372 c0f08b020685f67a7ea08658731adb410f70b7e6
push id97645
push userbmo:pbrosset@mozilla.com
push dateFri, 02 Feb 2018 02:42:32 +0000 (2018-02-02)
reviewersgl
bugs1434981
milestone60.0a1
Bug 1434981 - Display fonts for text nodes too; r=gl MozReview-Commit-ID: 4hzEowvZWk
devtools/client/inspector/fonts/fonts.js
devtools/client/inspector/fonts/test/browser.ini
devtools/client/inspector/fonts/test/browser_fontinspector_text-node.js
--- a/devtools/client/inspector/fonts/fonts.js
+++ b/devtools/client/inspector/fonts/fonts.js
@@ -134,23 +134,25 @@ class FontInspector {
       return;
     }
 
     let node = this.inspector.selection.nodeFront;
     let fonts = [];
     let { fontOptions } = this.store.getState();
     let { showAllFonts, previewText } = fontOptions;
 
-    // Clear the list of fonts if the currently selected node is not connected or an
-    // element node unless all fonts are supposed to be shown.
+    // Clear the list of fonts if the currently selected node is not connected or a text
+    // or element node unless all fonts are supposed to be shown.
+    let isElementOrTextNode = this.inspector.selection.isElementNode() ||
+                              this.inspector.selection.isTextNode();
     if (!showAllFonts &&
         (!node ||
          !this.isPanelVisible() ||
          !this.inspector.selection.isConnected() ||
-         !this.inspector.selection.isElementNode())) {
+         !isElementOrTextNode)) {
       this.store.dispatch(updateFonts(fonts));
       return;
     }
 
     let options = {
       includePreviews: true,
       previewText,
       previewFillStyle: getColor("body-color")
--- a/devtools/client/inspector/fonts/test/browser.ini
+++ b/devtools/client/inspector/fonts/test/browser.ini
@@ -12,9 +12,10 @@ support-files =
   !/devtools/client/inspector/test/head.js
   !/devtools/client/inspector/test/shared-head.js
   !/devtools/client/shared/test/test-actor.js
   !/devtools/client/shared/test/test-actor-registry.js
 
 [browser_fontinspector.js]
 [browser_fontinspector_edit-previews.js]
 [browser_fontinspector_edit-previews-show-all.js]
+[browser_fontinspector_text-node.js]
 [browser_fontinspector_theme-change.js]
new file mode 100644
--- /dev/null
+++ b/devtools/client/inspector/fonts/test/browser_fontinspector_text-node.js
@@ -0,0 +1,22 @@
+/* vim: set ts=2 et sw=2 tw=80: */
+/* Any copyright is dedicated to the Public Domain.
+   http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+// Test that the font-inspector also display fonts when a text node is selected.
+
+const TEST_URI = URL_ROOT + "browser_fontinspector.html";
+
+add_task(function* () {
+  let { inspector, view } = yield openFontInspectorForURL(TEST_URI);
+  let viewDoc = view.document;
+
+  info("Selecting the first text-node first-child of <body>");
+  let bodyNode = yield getNodeFront("body", inspector);
+  let { nodes } = yield inspector.walker.children(bodyNode);
+  yield selectNode(nodes[0], inspector);
+
+  let sections = viewDoc.querySelectorAll("#all-fonts > section");
+  is(sections.length, 1, "Font inspector shows 1 font");
+});