Bug 1374588 - Labels aren't highlighted after performing a search r?mconley draft
authorRicky Chien <ricky060709@gmail.com>
Fri, 23 Jun 2017 13:37:57 +0800
changeset 599443 7d7d3cccd9e141d8a01429d9680ddcfb6550f064
parent 599255 b1b9129838ade91684574f42219b2010928d7db4
child 634776 3657ba2d7b70c653138ecc617322224d0ef7f727
push id65525
push userbmo:rchien@mozilla.com
push dateFri, 23 Jun 2017 05:38:40 +0000
reviewersmconley
bugs1374588
milestone56.0a1
Bug 1374588 - Labels aren't highlighted after performing a search r?mconley MozReview-Commit-ID: 5S9nGqEnv6a
browser/components/preferences/in-content-new/findInPage.js
--- a/browser/components/preferences/in-content-new/findInPage.js
+++ b/browser/components/preferences/in-content-new/findInPage.js
@@ -270,30 +270,37 @@ var gSearchResultsPane = {
    * @param Node nodeObject
    *    DOM Element
    * @param String searchPhrase
    * @returns boolean
    *    Returns true when found in at least one childNode, false otherwise
    */
   searchWithinNode(nodeObject, searchPhrase) {
     let matchesFound = false;
-    if (nodeObject.childElementCount == 0 || nodeObject.tagName == "menulist") {
+    if (nodeObject.childElementCount == 0 ||
+        nodeObject.tagName == "label" ||
+        nodeObject.tagName == "description" ||
+        nodeObject.tagName == "menulist") {
       let simpleTextNodes = this.textNodeDescendants(nodeObject);
 
       for (let node of simpleTextNodes) {
         let result = this.highlightMatches([node], [node.length], node.textContent.toLowerCase(), searchPhrase);
         matchesFound = matchesFound || result;
       }
 
-      // Collecting data from boxObject
+      // Collecting data from boxObject / label / description
       let nodeSizes = [];
       let allNodeText = "";
       let runningSize = 0;
       let accessKeyTextNodes = this.textNodeDescendants(nodeObject.boxObject);
 
+      if (nodeObject.tagName == "label" || nodeObject.tagName == "description") {
+        accessKeyTextNodes.push(...this.textNodeDescendants(nodeObject));
+      }
+
       for (let node of accessKeyTextNodes) {
         runningSize += node.textContent.length;
         allNodeText += node.textContent;
         nodeSizes.push(runningSize);
       }
 
       // Access key are presented
       let complexTextNodesResult = this.highlightMatches(accessKeyTextNodes, nodeSizes, allNodeText.toLowerCase(), searchPhrase);