Bug 1352374 - Part 1: Exclude element with data-hidden-from-search=true from search results, r?jaws draft
authorFischer.json <fischer.json@gmail.com>
Fri, 31 Mar 2017 18:46:31 +0800
changeset 554765 746cfc7922f94ad7727e3ce33a8f235c90478b08
parent 553822 8df9fabf2587b7020889755acb9e75b664fe13cf
child 554766 dfcb9d5dcb986af68867592d42120c05868de263
child 555576 779da92ef41c39573dc181390dfdf74353bd03cf
push id52048
push userbmo:fliu@mozilla.com
push dateSun, 02 Apr 2017 16:44:02 +0000
reviewersjaws
bugs1352374
milestone55.0a1
Bug 1352374 - Part 1: Exclude element with data-hidden-from-search=true from search results, r?jaws MozReview-Commit-ID: AS1EMkfyH9b
browser/components/preferences/in-content/preferences.js
browser/components/preferences/in-content/privacy.js
browser/components/preferences/in-content/privacy.xul
--- a/browser/components/preferences/in-content/preferences.js
+++ b/browser/components/preferences/in-content/preferences.js
@@ -174,18 +174,24 @@ function gotoPref(aCategory) {
           .getHistogramById("FX_PREFERENCES_CATEGORY_OPENED_V2")
           .add(telemetryBucketForCategory(friendlyName));
 }
 
 function search(aQuery, aAttribute) {
   let mainPrefPane = document.getElementById("mainPrefPane");
   let elements = mainPrefPane.children;
   for (let element of elements) {
-    let attributeValue = element.getAttribute(aAttribute);
-    element.hidden = (attributeValue != aQuery);
+    // If the "data-hidden-from-search" is "true", the
+    // element will not get considered during search. This
+    // should only be used when an element is still under
+    // development and should not be shown for any reason.
+    if (element.getAttribute("data-hidden-from-search") != "true") {
+      let attributeValue = element.getAttribute(aAttribute);
+      element.hidden = (attributeValue != aQuery);
+    }
   }
 
   let keysets = mainPrefPane.getElementsByTagName("keyset");
   for (let element of keysets) {
     let attributeValue = element.getAttribute(aAttribute);
     if (attributeValue == aQuery)
       element.removeAttribute("disabled");
     else
--- a/browser/components/preferences/in-content/privacy.js
+++ b/browser/components/preferences/in-content/privacy.js
@@ -257,16 +257,17 @@ var gPrivacyPane = {
                        gPrivacyPane.removeOfflineApp);
       setEventListener("clearOfflineAppCacheButton", "command",
                        gPrivacyPane.clearOfflineAppCache);
       let bundlePrefs = document.getElementById("bundlePreferences");
       document.getElementById("offlineAppsList")
               .style.height = bundlePrefs.getString("offlineAppsList.height");
       let offlineGroup = document.getElementById("offlineGroup");
       offlineGroup.hidden = false;
+      offlineGroup.removeAttribute("data-hidden-from-search");
     }
 
     if (Services.prefs.getBoolPref("browser.storageManager.enabled")) {
       Services.obs.addObserver(this, "sitedatamanager:sites-updated", false);
       let unload = () => {
         window.removeEventListener("unload", unload);
         Services.obs.removeObserver(this, "sitedatamanager:sites-updated");
       };
@@ -1165,29 +1166,30 @@ var gPrivacyPane = {
     var list = document.getElementById("offlineAppsList");
     if (list.selectedItem) {
       removeButton.setAttribute("disabled", "false");
     } else {
       removeButton.setAttribute("disabled", "true");
     }
   },
 
-    showSiteDataSettings() {
+  showSiteDataSettings() {
     gSubDialog.open("chrome://browser/content/preferences/siteDataSettings.xul");
   },
 
   updateTotalSiteDataSize() {
     SiteDataManager.getTotalUsage()
       .then(usage => {
         let size = DownloadUtils.convertByteUnits(usage);
         let prefStrBundle = document.getElementById("bundlePreferences");
         let totalSiteDataSizeLabel = document.getElementById("totalSiteDataSize");
         totalSiteDataSizeLabel.textContent = prefStrBundle.getFormattedString("totalSiteDataSize", size);
         let siteDataGroup = document.getElementById("siteDataGroup");
         siteDataGroup.hidden = false;
+        siteDataGroup.removeAttribute("data-hidden-from-search");
       });
   },
 
   // Retrieves the amount of space currently used by disk cache
   updateActualCacheSize() {
     var actualSizeLabel = document.getElementById("actualDiskCacheSize");
     var prefStrBundle = document.getElementById("bundlePreferences");
 
--- a/browser/components/preferences/in-content/privacy.xul
+++ b/browser/components/preferences/in-content/privacy.xul
@@ -622,17 +622,17 @@
     </label>
     <textbox id="cacheSize" type="number" size="4" max="1024"
               aria-labelledby="useCacheBefore cacheSize useCacheAfter"/>
     <label id="useCacheAfter" flex="1">&limitCacheSizeAfter.label;</label>
   </hbox>
 </groupbox>
 
 <!-- Offline apps -->
-<groupbox id="offlineGroup" data-category="panePrivacy" hidden="true">
+<groupbox id="offlineGroup" data-category="panePrivacy" hidden="true" data-hidden-from-search="true">
   <caption><label>&offlineStorage2.label;</label></caption>
 
   <hbox align="center">
     <label id="actualAppCacheSize" flex="1"/>
     <button id="clearOfflineAppCacheButton" icon="clear"
             label="&clearOfflineAppCacheNow.label;" accesskey="&clearOfflineAppCacheNow.accesskey;"/>
   </hbox>
   <hbox align="center">
@@ -658,17 +658,17 @@
               disabled="true"
               label="&offlineAppsListRemove.label;"
               accesskey="&offlineAppsListRemove.accesskey;"/>
     </vbox>
   </hbox>
 </groupbox>
 
 <!-- Site Data -->
-<groupbox id="siteDataGroup" hidden="true" data-category="panePrivacy">
+<groupbox id="siteDataGroup" hidden="true" data-category="panePrivacy" data-hidden-from-search="true">
   <caption><label>&siteData.label;</label></caption>
 
   <hbox align="center">
     <label id="totalSiteDataSize" flex="1"></label>
     <button id="clearSiteDataButton" icon="clear"
             label="&clearSiteData.label;" accesskey="&clearSiteData.accesskey;"/>
   </hbox>
   <vbox align="end">