Bug 1253339 - Remove about:feedback code. r=sebastian draft
authorMargaret Leibovic <margaret.leibovic@gmail.com>
Thu, 03 Mar 2016 12:57:54 -0500
changeset 336597 dc6069f44349fa8cf3c1e5728f464dc273c76c9b
parent 336596 fbabfd6e9aea578050ebb41835e3fbc92c189ec6
child 515465 23eef77fb5e759a8618094df7ce35ba37b7fdebd
push id12139
push usermleibovic@mozilla.com
push dateThu, 03 Mar 2016 21:35:07 +0000
reviewerssebastian
bugs1253339
milestone47.0a1
Bug 1253339 - Remove about:feedback code. r=sebastian MozReview-Commit-ID: 3ASVVlDiJph
mobile/android/app/mobile.js
mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
mobile/android/chrome/content/Feedback.js
mobile/android/chrome/content/aboutFeedback.js
mobile/android/chrome/content/aboutFeedback.xhtml
mobile/android/chrome/jar.mn
mobile/android/locales/en-US/chrome/aboutFeedback.dtd
mobile/android/locales/jar.mn
mobile/android/tests/browser/robocop/src/org/mozilla/gecko/tests/StringHelper.java
mobile/android/themes/core/aboutFeedback.css
mobile/android/themes/core/images/5stars.png
mobile/android/themes/core/images/icon_floaty_hdpi.png
mobile/android/themes/core/images/icon_floaty_mdpi.png
mobile/android/themes/core/images/icon_floaty_xhdpi.png
mobile/android/themes/core/images/icon_floaty_xxhdpi.png
mobile/android/themes/core/images/icon_heart_hdpi.png
mobile/android/themes/core/images/icon_heart_mdpi.png
mobile/android/themes/core/images/icon_heart_xhdpi.png
mobile/android/themes/core/images/icon_heart_xxhdpi.png
mobile/android/themes/core/jar.mn
--- a/mobile/android/app/mobile.js
+++ b/mobile/android/app/mobile.js
@@ -476,19 +476,16 @@ pref("plugins.click_to_play", true);
 // The default value for nsIPluginTag.enabledState (STATE_CLICKTOPLAY = 1)
 pref("plugin.default.state", 1);
 
 // product URLs
 // The breakpad report server to link to in about:crashes
 pref("breakpad.reportURL", "https://crash-stats.mozilla.com/report/index/");
 pref("app.support.baseURL", "http://support.mozilla.org/1/mobile/%VERSION%/%OS%/%LOCALE%/");
 
-// Used to submit data to input from about:feedback
-pref("app.feedback.postURL", "https://input.mozilla.org/api/v1/feedback/");
-
 // URL for feedback page
 // This should be kept in sync with the "feedback_link" string defined in strings.xml.in
 pref("app.feedbackURL", "https://input.mozilla.org/feedback/android/%VERSION%/%CHANNEL%/?utm_source=feedback-prompt");
 
 pref("app.privacyURL", "https://www.mozilla.org/privacy/firefox/");
 pref("app.creditsURL", "http://www.mozilla.org/credits/");
 pref("app.channelURL", "http://www.mozilla.org/%LOCALE%/firefox/channel/");
 #if MOZ_UPDATE_CHANNEL == aurora
--- a/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
+++ b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
@@ -679,19 +679,17 @@ public class BrowserApp extends GeckoApp
             "Search:Keyword",
             "Prompt:ShowTop");
 
         EventDispatcher.getInstance().registerGeckoThreadListener((NativeEventListener)this,
             "CharEncoding:Data",
             "CharEncoding:State",
             "Experiments:GetActive",
             "Favicon:CacheLoad",
-            "Feedback:LastUrl",
             "Feedback:MaybeLater",
-            "Feedback:OpenPlayStore",
             "Menu:Add",
             "Menu:Remove",
             "Sanitize:ClearHistory",
             "Sanitize:ClearSyncedTabs",
             "Settings:Show",
             "Telemetry:Gather",
             "Updater:Launch");
 
@@ -1426,19 +1424,17 @@ public class BrowserApp extends GeckoApp
             "Search:Keyword",
             "Prompt:ShowTop");
 
         EventDispatcher.getInstance().unregisterGeckoThreadListener((NativeEventListener) this,
             "CharEncoding:Data",
             "CharEncoding:State",
             "Experiments:GetActive",
             "Favicon:CacheLoad",
-            "Feedback:LastUrl",
             "Feedback:MaybeLater",
-            "Feedback:OpenPlayStore",
             "Menu:Add",
             "Menu:Remove",
             "Sanitize:ClearHistory",
             "Sanitize:ClearSyncedTabs",
             "Settings:Show",
             "Telemetry:Gather",
             "Updater:Launch");
 
@@ -1713,28 +1709,18 @@ public class BrowserApp extends GeckoApp
 
         } else if ("Experiments:GetActive".equals(event)) {
             final List<String> experiments = SwitchBoard.getActiveExperiments(this);
             final JSONArray json = new JSONArray(experiments);
             callback.sendSuccess(json.toString());
         } else if ("Favicon:CacheLoad".equals(event)) {
             final String url = message.getString("url");
             getFaviconFromCache(callback, url);
-
-        } else if ("Feedback:LastUrl".equals(event)) {
-            getLastUrl(callback);
-
         } else if ("Feedback:MaybeLater".equals(event)) {
             resetFeedbackLaunchCount();
-
-        } else if ("Feedback:OpenPlayStore".equals(event)) {
-            final Intent intent = new Intent(Intent.ACTION_VIEW);
-            intent.setData(Uri.parse("market://details?id=" + getPackageName()));
-            startActivity(intent);
-
         } else if ("Menu:Add".equals(event)) {
             final MenuItemInfo info = new MenuItemInfo();
             info.label = message.getString("name");
             info.id = message.getInt("id") + ADDON_MENU_OFFSET;
             info.checked = message.optBoolean("checked", false);
             info.enabled = message.optBoolean("enabled", true);
             info.visible = message.optBoolean("visible", true);
             info.checkable = message.optBoolean("checkable", false);
@@ -3805,43 +3791,16 @@ public class BrowserApp extends GeckoApp
         return new ServiceNotificationClient(getApplicationContext());
     }
 
     private void resetFeedbackLaunchCount() {
         SharedPreferences settings = getPreferences(Activity.MODE_PRIVATE);
         settings.edit().putInt(getPackageName() + ".feedback_launch_count", 0).apply();
     }
 
-    private void getLastUrl(final EventCallback callback) {
-        final BrowserDB db = getProfile().getDB();
-        (new UIAsyncTask.WithoutParams<String>(ThreadUtils.getBackgroundHandler()) {
-            @Override
-            public synchronized String doInBackground() {
-                // Get the most recent URL stored in browser history.
-                final Cursor c = db.getRecentHistory(getContentResolver(), 1);
-                if (c == null) {
-                    return "";
-                }
-                try {
-                    if (c.moveToFirst()) {
-                        return c.getString(c.getColumnIndexOrThrow(Combined.URL));
-                    }
-                    return "";
-                } finally {
-                    c.close();
-                }
-            }
-
-            @Override
-            public void onPostExecute(String url) {
-                callback.sendSuccess(url);
-            }
-        }).execute();
-    }
-
     // HomePager.OnUrlOpenListener
     @Override
     public void onUrlOpen(String url, EnumSet<OnUrlOpenListener.Flags> flags) {
         if (flags.contains(OnUrlOpenListener.Flags.OPEN_WITH_INTENT)) {
             Intent intent = new Intent(Intent.ACTION_VIEW);
             intent.setData(Uri.parse(url));
             startActivity(intent);
         } else if (!maybeSwitchToTab(url, flags)) {
--- a/mobile/android/chrome/content/Feedback.js
+++ b/mobile/android/chrome/content/Feedback.js
@@ -20,37 +20,31 @@ var Feedback = {
       Services.prefs.getCharPref("distribution.id");
       return;
     } catch (e) {}
 
     let url = this._feedbackURL;
     let browser = BrowserApp.selectOrAddTab(url, { parentId: BrowserApp.selectedTab.id }).browser;
     browser.addEventListener("FeedbackClose", this, false, true);
     browser.addEventListener("FeedbackMaybeLater", this, false, true);
-    browser.addEventListener("FeedbackOpenPlay", this, false, true);
   },
 
   handleEvent: function(event) {
     if (!this._isAllowed(event.target)) {
       return;
     }
 
     switch (event.type) {
       case "FeedbackClose":
         // Do nothing.
         break;
 
       case "FeedbackMaybeLater":
         Messaging.sendRequest({ type: "Feedback:MaybeLater" });
         break;
-
-      case "FeedbackOpenPlay":
-        Messaging.sendRequest({ type: "Feedback:OpenPlayStore" });
-        break;
-
     }
 
     let win = event.target.ownerDocument.defaultView.top;
     BrowserApp.closeTab(BrowserApp.getTabForWindow(win));
   },
 
   _isAllowed: function(node) {
     let uri = node.ownerDocument.documentURIObject;
deleted file mode 100644
--- a/mobile/android/chrome/content/aboutFeedback.js
+++ /dev/null
@@ -1,166 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this file,
- * You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-"use strict";
-
-// input.mozilla.org expects "Firefox for Android" as the product.
-const FEEDBACK_PRODUCT_STRING = "Firefox for Android";
-
-var Cc = Components.classes;
-var Ci = Components.interfaces;
-var Cu = Components.utils;
-const HEARTY_ICON_MDPI = "chrome://browser/skin/images/icon_heart_mdpi.png";
-const HEARTY_ICON_HDPI = "chrome://browser/skin/images/icon_heart_hdpi.png";
-const HEARTY_ICON_XHDPI = "chrome://browser/skin/images/icon_heart_xhdpi.png";
-const HEARTY_ICON_XXHDPI = "chrome://browser/skin/images/icon_heart_xxhdpi.png";
-
-const FLOATY_ICON_MDPI = "chrome://browser/skin/images/icon_floaty_mdpi.png";
-const FLOATY_ICON_HDPI = "chrome://browser/skin/images/icon_floaty_hdpi.png";
-const FLOATY_ICON_XHDPI = "chrome://browser/skin/images/icon_floaty_xhdpi.png";
-const FLOATY_ICON_XXHDPI = "chrome://browser/skin/images/icon_floaty_xxhdpi.png";
-
-Cu.import("resource://gre/modules/Services.jsm");
-Cu.import("resource://gre/modules/Messaging.jsm");
-Cu.import("resource://gre/modules/UpdateUtils.jsm");
-document.addEventListener("DOMContentLoaded", init, false);
-
-function dump(a) {
-  Services.console.logStringMessage(a);
-}
-
-function init() {
-  let anchors = document.querySelectorAll(".maybe-later");
-  for(let anchor of anchors) {
-    anchor.addEventListener("click", maybeLater, false);
-  }
-  document.getElementById("happy-link").addEventListener("click", function(evt) {
-    switchSection("happy");
-  }, false);
-  document.getElementById("sad-link").addEventListener("click", function(evt) {
-    switchSection("sad");
-  }, false);
-
-  let helpSectionIcon = FLOATY_ICON_XXHDPI;
-  let sadThanksIcon = HEARTY_ICON_XXHDPI;
-
-  if (window.devicePixelRatio <= 1) {
-    helpSectionIcon = FLOATY_ICON_MDPI;
-    sadThanksIcon = HEARTY_ICON_MDPI;
-  } else if (window.devicePixelRatio <= 1.5) {
-    helpSectionIcon = FLOATY_ICON_HDPI;
-    sadThanksIcon = HEARTY_ICON_HDPI;
-  } else if (window.devicePixelRatio <= 2) {
-    helpSectionIcon = FLOATY_ICON_XHDPI;
-    sadThanksIcon = HEARTY_ICON_XHDPI;
-  }
-
-  document.getElementById("sumo-icon").src = helpSectionIcon;
-  document.getElementById("sad-thanks-icon").src = sadThanksIcon;
-
-  document.getElementById("open-play-store").addEventListener("click", openPlayStore, false);
-  document.forms[0].addEventListener("submit", sendFeedback, false);
-  for (let anchor of document.querySelectorAll(".no-thanks")) {
-    anchor.addEventListener("click", evt => window.close(), false);
-  }
-
-  let sumoLink = Services.urlFormatter.formatURLPref("app.support.baseURL");
-  document.getElementById("help-section").addEventListener("click", function() {
-    window.open(sumoLink, "_blank");
-  }, false);
-
-  window.addEventListener("popstate", function (aEvent) {
-	updateActiveSection(aEvent.state ? aEvent.state.section : "intro")
-  }, false);
-
-  // Fill "Last visited site" input with most recent history entry URL.
-  Messaging.sendRequestForResult({ type: "Feedback:LastUrl" }).then(function(aData) {
-    aData = aData.substring(0, 200);
-    document.getElementById("last-url").value = aData;
-    // Enable the parent div iff the URL is valid.
-    if (aData.length != 0) {
-      document.getElementById("last-url-div").style.display="block";
-    }
-  });
-}
-
-function switchSection(aSection) {
-  history.pushState({ section: aSection }, aSection);
-  updateActiveSection(aSection);
-}
-
-function updateActiveSection(aSection) {
-  document.querySelector("section[active]").removeAttribute("active");
-  document.getElementById(aSection).setAttribute("active", true);
-}
-
-function openPlayStore() {
-  Messaging.sendRequest({ type: "Feedback:OpenPlayStore" });
-
-  window.close();
-}
-
-function maybeLater() {
-  window.close();
-
-  Messaging.sendRequest({ type: "Feedback:MaybeLater" });
-}
-
-function sendFeedback(aEvent) {
-  // Prevent the page from reloading.
-  aEvent.preventDefault();
-
-  let section = history.state.section;
-
-  // Sanity check.
-  if (section != "sad") {
-	Cu.reportError("Trying to send feedback from an invalid section: " + section);
-	return;
-  }
-
-  let sectionElement = document.getElementById(section);
-  let descriptionElement = sectionElement.querySelector(".description");
-
-  let data = {};
-  data["happy"] = false;
-  data["description"] = descriptionElement.value;
-  data["product"] = FEEDBACK_PRODUCT_STRING;
-
-  let urlCheckBox = document.getElementById("last-checkbox");
-  let urlElement = document.getElementById("last-url");
-  // Only send a URL string if the user provided one.
-  if (urlCheckBox.checked) {
-    data["url"] = urlElement.value;
-  }
-
-  data["device"] = Services.sysinfo.get("device");
-  data["manufacturer"] = Services.sysinfo.get("manufacturer");
-  data["platform"] = Services.appinfo.OS;
-  data["version"] = Services.appinfo.version;
-  data["locale"] = Services.locale.getSystemLocale().getCategory("NSILOCALE_CTYPE");
-  data["channel"] = UpdateUtils.UpdateChannel;
-
-  // Source field is added only when Fennec prompts the user.
-  let getParam = window.location.href.split("?");
-  if (getParam.length > 1) {
-    let urlParam = new URLSearchParams(getParam[1]);
-    if(urlParam.get("source")) {
-      data["source"] = urlParam.get("source");
-    }
-  }
-
-  let req = new XMLHttpRequest();
-  req.addEventListener("error", function() {
-	Cu.reportError("Error sending feedback to input.mozilla.org: " + req.statusText);
-  }, false);
-  req.addEventListener("abort", function() {
-	Cu.reportError("Aborted sending feedback to input.mozilla.org: " + req.statusText);
-  }, false);
-
-  let postURL = Services.urlFormatter.formatURLPref("app.feedback.postURL");
-  req.open("POST", postURL, true);
-  req.setRequestHeader("Content-type", "application/json");
-  req.send(JSON.stringify(data));
-
-  switchSection("thanks-" + section);
-}
deleted file mode 100644
--- a/mobile/android/chrome/content/aboutFeedback.xhtml
+++ /dev/null
@@ -1,90 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
-  "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" [
-<!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd" >
-%brandDTD;
-<!ENTITY % globalDTD SYSTEM "chrome://global/locale/global.dtd">
-%globalDTD;
-<!ENTITY % aboutFeedbackDTD SYSTEM "chrome://browser/locale/aboutFeedback.dtd" >
-%aboutFeedbackDTD;
-]>
-
-<!-- This Source Code Form is subject to the terms of the Mozilla Public
-   - License, v. 2.0. If a copy of the MPL was not distributed with this
-   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-  <title>&pageTitle;</title>
-  <meta name="viewport" content="width=device-width; user-scalable=0" />
-  <link rel="stylesheet" href="chrome://browser/skin/aboutFeedback.css" type="text/css"/>
-  <link rel="icon" type="image/png" sizes="64x64" href="chrome://branding/content/favicon64.png" />
-</head>
-
-<body dir="&locale.dir;">
-
-  <section id="intro" active="true">
-    <h1 class="header">&intro.header;</h1>
-    <div class="message">&intro.message;</div>
-    <div id="happy-link" class="link-box">
-      <a>&intro.happyLink;</a>
-    </div>
-    <div id="sad-link" class="link-box-bottom">
-      <a>&intro.sadLink;</a>
-    </div>
-    <div class="bottom-links">
-      <a class="maybe-later">&intro.maybeLater;</a>
-      <a class="no-thanks">&happy.noThanks;</a>
-    </div>
-  </section>
-
-  <section id="happy">
-    <h1 class="header">&happy.header;</h1>
-    <div class="message-box">
-      <div class="message">&happy.message;</div>
-      <div>&happy.finePrint;</div>
-    </div>
-    <div id="open-play-store" class="link-box-bottom">
-      <div class="stars"/>
-      <a>&happy.ratingLink;</a>
-    </div>
-    <div class="bottom-links">
-      <a class="maybe-later">&happy.maybeLater2;</a>
-      <a class="no-thanks">&happy.noThanks;</a>
-    </div>
-  </section>
-
-  <section id="sad">
-    <h1 class="header">&sad.header;</h1>
-    <form>
-      <div class="message">&sad.message;</div>
-      <textarea class="description" placeholder="&sad.placeholder;" rows="4" required="true" maxlength="10000"/>
-      <div class="message" id="last-url-div">
-        <span>&sad.lastSite2;</span>
-        <input id="last-checkbox" type="checkbox" checked="checked"/>
-        <input id="last-url" type="url" placeholder="&sad.urlPlaceholder;" readonly="readonly"/>
-      </div>
-      <input class="send-feedback" type="submit" value="&feedback.send;"/>
-      <div class="privacy">&feedback.privacy2;</div>
-    </form>
-  </section>
-
-  <section id="thanks-sad">
-    <h1 class="header">&sad.thanksHeader2;</h1>
-    <img id="sad-thanks-icon" />
-    <div id="thanks-sad-message">
-      <div class="message">&sad.thanksMessageTop;</div>
-      <div class="message">&sad.thanksMessageBottom;</div>
-    </div>
-  </section>
-
-  <footer>
-    <div id="help-section">
-      <img id="sumo-icon" />
-      <span>&support.pre3;<span class="link">&support.link2;</span>&support.post3;</span>
-    </div>
-  </footer>
-  <script type="application/javascript;version=1.8" src="chrome://browser/content/aboutFeedback.js"></script>
-</body>
-</html>
--- a/mobile/android/chrome/jar.mn
+++ b/mobile/android/chrome/jar.mn
@@ -12,18 +12,16 @@ chrome.jar:
   content/config.xhtml                 (content/config.xhtml)
   content/config.js                    (content/config.js)
   content/content.js                   (content/content.js)
   content/aboutAddons.xhtml            (content/aboutAddons.xhtml)
   content/aboutAddons.js               (content/aboutAddons.js)
   content/aboutCertError.xhtml         (content/aboutCertError.xhtml)
   content/aboutDownloads.xhtml         (content/aboutDownloads.xhtml)
   content/aboutDownloads.js            (content/aboutDownloads.js)
-  content/aboutFeedback.xhtml          (content/aboutFeedback.xhtml)
-  content/aboutFeedback.js             (content/aboutFeedback.js)
   content/aboutPrivateBrowsing.xhtml   (content/aboutPrivateBrowsing.xhtml)
   content/aboutPrivateBrowsing.js      (content/aboutPrivateBrowsing.js)
   content/Reader.js                    (content/Reader.js)
   content/aboutHome.xhtml              (content/aboutHome.xhtml)
   content/aboutRights.xhtml            (content/aboutRights.xhtml)
   content/blockedSite.xhtml            (content/blockedSite.xhtml)
   content/languages.properties         (content/languages.properties)
   content/browser.xul                  (content/browser.xul)
deleted file mode 100644
--- a/mobile/android/locales/en-US/chrome/aboutFeedback.dtd
+++ /dev/null
@@ -1,57 +0,0 @@
-<!-- This Source Code Form is subject to the terms of the Mozilla Public
-   - License, v. 2.0. If a copy of the MPL was not distributed with this
-   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-
-<!-- LOCALIZATION NOTE: The text in some of these strings is supposed to be
-     fun and playful. Please feel free to adjust the tone as works best in
-     your language and/or locale. More detailed notes below. -->
-
-<!ENTITY pageTitle                 "&brandShortName; Feedback">
-
-<!ENTITY intro.header              "Have a minute?">
-<!ENTITY intro.message             "Tell us what you think about &brandShortName; for Android so far.">
-<!ENTITY intro.happyLink           "I love it">
-<!ENTITY intro.sadLink             "I ran into some problems">
-<!ENTITY intro.maybeLater          "Maybe later">
-
-<!-- LOCALIZATION NOTE (support.pre): Include a trailing space as needed. -->
-<!-- LOCALIZATION NOTE (support.link): Avoid leading/trailing spaces, this text is a link. -->
-<!-- LOCALIZATION NOTE (support.post): Include a starting space as needed. -->
-<!ENTITY support.pre3              "Visit our ">
-<!ENTITY support.link2             "Support Site">
-<!ENTITY support.post3             " to get answers for common issues.">
-
-<!ENTITY happy.header              "That's great to hear!">
-
-<!-- LOCALIZATION NOTE (happy.message): "share the love" — This feels purposely exaggerated in English,
-     but essentially it means that we want you to let others know how much you love Firefox. -->
-<!ENTITY happy.message             "Want to share the love by giving us a 5 star rating on Google Play?">
-
-<!-- LOCALIZATION NOTE (happy.finePrint): "feels great" — Another exaggeration where we're trying to
-     get people to rate us by playfully telling them there's a benefit in it for them as well. -->
-<!ENTITY happy.finePrint           "It takes less than a minute and feels great.">
-
-<!ENTITY happy.ratingLink          "Yes, go to Google Play">
-<!ENTITY happy.maybeLater2         "Maybe later">
-<!ENTITY happy.noThanks            "No thanks">
-
-<!ENTITY sad.header                "Oh no!">
-<!ENTITY sad.message               "We're sorry that you had some problems with &brandShortName;. Please tell us what happened so that we can fix it.">
-<!ENTITY sad.placeholder           "Enter your feedback here">
-<!ENTITY sad.lastSite2             "Include last visited site">
-
-<!-- LOCALIZATION NOTE (sad.urlPlaceholder): Placeholder text that appears in "Last visited site" input box when there is no text. -->
-<!ENTITY sad.urlPlaceholder        "http://">
-<!ENTITY sad.thanksHeader2         "Thank you.">
-
-<!-- LOCALIZATION NOTE (sad.thanksMessageTop): "real people" — We're stating that an actual human will look at the feedback
-     and that it doesn't just go to some automated system that looks for keywords, or something like that. -->
-<!ENTITY sad.thanksMessageTop      "We're always working to make &brandShortName; better. Rest assured that real people will look at your feedback and do their very best to resolve your issue.">
-
-<!-- LOCALIZATION NOTE (sad.thanksMessageBottom): We're suggesting that there will be consequences for the people working
-     on Firefox if they don't resolve the user's problem, like "or if they don't fix it, we'll fire them." If this doesn't
-     work in your language, you can change it to something like "no matter what" or just remove it entirely. -->
-<!ENTITY sad.thanksMessageBottom   "Or else.">
-
-<!ENTITY feedback.privacy2         "For your privacy, please do not include any personal information in your feedback.">
-<!ENTITY feedback.send             "Send Feedback">
--- a/mobile/android/locales/jar.mn
+++ b/mobile/android/locales/jar.mn
@@ -12,17 +12,16 @@
   locale/@AB_CD@/browser/aboutAddons.dtd          (%chrome/aboutAddons.dtd)
   locale/@AB_CD@/browser/aboutAddons.properties   (%chrome/aboutAddons.properties)
 #ifdef MOZ_DEVICES
   locale/@AB_CD@/browser/aboutDevices.dtd         (%chrome/aboutDevices.dtd)
 #endif
   locale/@AB_CD@/browser/aboutCertError.dtd       (%chrome/aboutCertError.dtd)
   locale/@AB_CD@/browser/aboutDownloads.dtd       (%chrome/aboutDownloads.dtd)
   locale/@AB_CD@/browser/aboutDownloads.properties (%chrome/aboutDownloads.properties)
-  locale/@AB_CD@/browser/aboutFeedback.dtd        (%chrome/aboutFeedback.dtd)
   locale/@AB_CD@/browser/aboutHome.dtd            (%chrome/aboutHome.dtd)
   locale/@AB_CD@/browser/aboutHome.properties     (%chrome/aboutHome.properties)
   locale/@AB_CD@/browser/aboutPrivateBrowsing.dtd (%chrome/aboutPrivateBrowsing.dtd)
 #ifdef MOZ_SERVICES_HEALTHREPORT
   locale/@AB_CD@/browser/aboutHealthReport.dtd    (%chrome/aboutHealthReport.dtd)
 #endif
   locale/@AB_CD@/browser/browser.properties       (%chrome/browser.properties)
   locale/@AB_CD@/browser/config.dtd               (%chrome/config.dtd)
--- a/mobile/android/tests/browser/robocop/src/org/mozilla/gecko/tests/StringHelper.java
+++ b/mobile/android/tests/browser/robocop/src/org/mozilla/gecko/tests/StringHelper.java
@@ -22,25 +22,18 @@ public class StringHelper {
     // Note: DEFAULT_BOOKMARKS_TITLES.length == DEFAULT_BOOKMARKS_URLS.length
     public final String[] DEFAULT_BOOKMARKS_TITLES;
     public final String[] DEFAULT_BOOKMARKS_URLS;
     public final int DEFAULT_BOOKMARKS_COUNT;
 
     // About pages
     public final String ABOUT_BLANK_URL = "about:blank";
     public final String ABOUT_FIREFOX_URL;
-    public final String ABOUT_RIGHTS_URL = "about:rights";
-    public final String ABOUT_BUILDCONFIG_URL = "about:buildconfig";
-    public final String ABOUT_FEEDBACK_URL = "about:feedback";
-    public final String ABOUT_HEALTHREPORT_URL = "about:healthreport";
-    public final String ABOUT_DOWNLOADS_URL = "about:downloads";
     public final String ABOUT_HOME_URL = "about:home";
     public final String ABOUT_ADDONS_URL = "about:addons";
-    public static final String ABOUT_LOGINS_URL = "about:logins";
-    public final String ABOUT_ABOUT_URL = "about:about";
     public final String ABOUT_SCHEME = "about:";
 
     // About pages' titles
     public final String ABOUT_HOME_TITLE = "";
 
     // Context Menu item strings
     public final String CONTEXT_MENU_BOOKMARK_LINK = "Bookmark Link";
     public final String CONTEXT_MENU_OPEN_LINK_IN_NEW_TAB = "Open Link in New Tab";
deleted file mode 100644
--- a/mobile/android/themes/core/aboutFeedback.css
+++ /dev/null
@@ -1,228 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-body {
-  -moz-text-size-adjust: none;
-  font-family: sans-serif;
-  font-size: 12px;
-  color: #222;
-  background-color: #f5f5f5;
-  margin: 0;
-}
-
-a {
-  color: #0092DB;
-}
-
-section {
-  max-width: 500px;
-  margin-left: auto;
-  margin-right: auto;
-  overflow: auto;
-  height: calc(100% - 80px);
-  padding: 25px;
-}
-
-section:not([active]) {
-  display: none;
-}
-
-footer {
-  display: none;
-  width: 100%;
-  position: fixed;
-  bottom: 0px;
-  font-size: 16px;
-  margin-left: auto;
-  margin-right: auto;
-  background-color: #ebe9f0;
-  border-top: 2px solid #D4D3D8;
-}
-
-.header {
-  font-size: 24px;
-  font-weight: lighter;
-  text-align: center;
-  margin-top: 0;
-}
-
-.message-box,
-.link-box,
-.link-box-bottom {
-  background-color: #ffffff;
-  padding: 15px;
-}
-
-.message-box,
-.link-box {
-  border-bottom: 1px solid #ebebf0;
-}
-
-.link-box-bottom {
-  border-bottom: 2px solid #ebebf0;
-  margin-bottom: 10px;   
-}
-
-.link-box,
-.link-box-bottom {
-  text-align: center;
-}
-
-.link-box:active,
-.link-box-bottom:active {
-  background-color: #a7b0b8;
-}
-
-.message {
-  margin-bottom: 10px;
-  margin-left: auto;
-  margin-right: auto;
-}
-
-.privacy {
-  color: #bebebe;
-  text-align: center;
-  margin-top: 10px;
-  padding: 0px 20px;
-}
-
-.stars {
-  width: 80px;
-  height: 10px;
-  margin: -20px auto 10px auto;
-  background-image: url("chrome://browser/skin/images/5stars.png");
-  background-size: 64px 10px;
-  background-position: center;
-  background-repeat: no-repeat;
-}
-
-.link-box-bottom:active > .stars {
-  background-color: transparent;
-}
-
-#sumo-icon {
-  position: relative;
-  float: left;
-  margin-right: 20px;
-  width: 41px;
-  height: 41px;
-}
-
-#sad-thanks-icon {
-  position: relative;
-  display: block;
-  margin-left: auto;
-  margin-right: auto;
-  margin-bottom: 10px;
-  width: 60px;
-}
-
-.bottom-links {
-  text-align: center;
-  width: 100%;
-}
-
-.bottom-links > a {
-  margin: 0 25px;
-  text-decoration: underline;
-}
-
-.description {
-  font-family: "Clear Sans",sans-serif;
-  font-size: 14px;
-  color: #666;
-  margin-bottom: 10px;
-  padding: 5px;
-  width: calc(100% - 10px);
-  border-radius: 4px;
-  border-width: 1px;
-}
-
-#last-url-div {
-  display: none;
-}
-
-#last-url {
-  color: #bebebe;
-  width: calc(100% - 10px);
-  border: none;
-  background: transparent;
-  /*padding: 0px;*/
-  display: block;
-}
-
-#last-checkbox {
-  position: relative;
-  float: right;
-  margin: 0px;
-  background-image: url("chrome://browser/skin/images/checkbox_unchecked.png");
-}
-
-#last-checkbox:checked {
-  background-image: url("chrome://browser/skin/images/checkbox_checked.png");
-  border: 1px solid #379DE7;
-}
-
-#last-checkbox:not(:checked) ~ #last-url {
-  visibility: hidden;
-}
-
-#help-section {
-  max-width: 500px;
-  margin: 14px 20px 15px;
-  padding: 5px;
-  overflow: hidden;
-}
-
-#thanks-sad-message {
-  margin: 20px 0px;
-}
-
-.send-feedback {
-  padding: 15px;
-  font-size: 16px;
-  width: 100%;
-  border-radius: 4px;
-  border-width: 0;
-  color: #fff;
-}
-
-.link {
-  color: #222;
-  text-decoration: underline;
-}
-
-.description:invalid ~ .send-feedback {
-  background-color: #8698A8;
-}
-
-.description:valid ~ .send-feedback {
-  background-color: #0092DB;
-}
-
-@media screen and (max-height: 400px) {
-  body {
-    padding-top: 40px;
-  }
-
-  .bottom-links {
-    margin-top: 20px;
-  }
-}
-
-@media not screen and (max-height: 400px) {
-  .bottom-links {
-    position: absolute;
-    left: 0;
-    bottom: 40px;
-  }
-
-  #sad[active="true"] ~ footer {
-    display: block;
-  }
-
-  #thanks-sad[active="true"] ~ footer {
-    display: block;
-  }
-}
deleted file mode 100644
index f374e326d8cfcdad543ddc1b454cc1f02ab3e903..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index a85aec3193236f8085b6a450109bb399f7c3b963..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index deaa33353361a0ba51d1c7324be42086aeb67a1c..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index d822eee5ab55a245e7953eb5c44745f60147da7f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 79982875801c732be857724843259667722ab68b..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index b97452336e472e1d2bd07a579eb81080d4afdbec..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 03846509ed70611b2ed84af5112b35ecf77924fb..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 808cdf42a89064715cae7271199fef47b71e7042..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 6ab6ca52f9e8b0034631d1aceb3ffa498dfc3c07..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
--- a/mobile/android/themes/core/jar.mn
+++ b/mobile/android/themes/core/jar.mn
@@ -10,17 +10,16 @@ chrome.jar:
   skin/about.css                            (about.css)
   skin/aboutAccounts.css                    (aboutAccounts.css)
   skin/aboutAddons.css                      (aboutAddons.css)
   skin/aboutBase.css                        (aboutBase.css)
 #ifdef MOZ_DEVICES
   skin/aboutDevices.css                     (aboutDevices.css)
 #endif
   skin/aboutDownloads.css                   (aboutDownloads.css)
-  skin/aboutFeedback.css                    (aboutFeedback.css)
 #ifdef MOZ_SERVICES_HEALTHREPORT
   skin/aboutHealthReport.css                (aboutHealthReport.css)
 #endif
   skin/aboutMemory.css                      (aboutMemory.css)
   skin/aboutPrivateBrowsing.css             (aboutPrivateBrowsing.css)
   skin/aboutReader.css                      (aboutReader.css)
   skin/aboutReaderContent.css               (aboutReaderContent.css)
   skin/aboutReaderControls.css              (aboutReaderControls.css)
@@ -47,17 +46,16 @@ chrome.jar:
 % override chrome://global/skin/netError.css chrome://browser/skin/netError.css
 
   skin/aboutLogins.css                      (aboutLogins.css)
 
   skin/images/search.png                    (images/search.png)
   skin/images/lock.png                      (images/lock.png)
   skin/images/textfield.png                 (images/textfield.png)
 
-  skin/images/5stars.png                    (images/5stars.png)
   skin/images/amo-logo.png                  (images/amo-logo.png)
   skin/images/arrowdown-16.png              (images/arrowdown-16.png)
   skin/images/arrowup-16.png                (images/arrowup-16.png)
   skin/images/blocked-warning.png           (images/blocked-warning.png)
   skin/images/checkbox_checked.png          (images/checkbox_checked.png)
   skin/images/checkbox_checked_disabled.png (images/checkbox_checked_disabled.png)
   skin/images/checkbox_checked_pressed.png  (images/checkbox_checked_pressed.png)
   skin/images/checkbox_unchecked.png          (images/checkbox_unchecked.png)
@@ -91,24 +89,16 @@ chrome.jar:
   skin/images/reader-plus-hdpi.png               (images/reader-plus-hdpi.png)
   skin/images/reader-plus-xhdpi.png              (images/reader-plus-xhdpi.png)
   skin/images/reader-plus-xxhdpi.png             (images/reader-plus-xxhdpi.png)
   skin/images/reader-style-icon-hdpi.png         (images/reader-style-icon-hdpi.png)
   skin/images/reader-style-icon-xhdpi.png        (images/reader-style-icon-xhdpi.png)
   skin/images/reader-style-icon-xxhdpi.png       (images/reader-style-icon-xxhdpi.png)
   skin/images/privatebrowsing-mask.png           (images/privatebrowsing-mask.png)
   skin/images/privatebrowsing-mask-and-shield.svg (images/privatebrowsing-mask-and-shield.svg)
-  skin/images/icon_floaty_hdpi.png               (images/icon_floaty_hdpi.png)
-  skin/images/icon_floaty_mdpi.png               (images/icon_floaty_mdpi.png)
-  skin/images/icon_floaty_xhdpi.png              (images/icon_floaty_xhdpi.png)
-  skin/images/icon_floaty_xxhdpi.png             (images/icon_floaty_xxhdpi.png)
-  skin/images/icon_heart_hdpi.png                (images/icon_heart_hdpi.png)
-  skin/images/icon_heart_mdpi.png                (images/icon_heart_mdpi.png)
-  skin/images/icon_heart_xhdpi.png               (images/icon_heart_xhdpi.png)
-  skin/images/icon_heart_xxhdpi.png              (images/icon_heart_xxhdpi.png)
   skin/images/icon_key_emptypage.svg             (images/icon_key_emptypage.svg)
   skin/images/accessiblecaret-normal-hdpi.png       (images/accessiblecaret-normal-hdpi.png)
   skin/images/accessiblecaret-normal-xhdpi.png      (images/accessiblecaret-normal-xhdpi.png)
   skin/images/accessiblecaret-normal-xxhdpi.png     (images/accessiblecaret-normal-xxhdpi.png)
   skin/images/accessiblecaret-tilt-left-hdpi.png    (images/accessiblecaret-tilt-left-hdpi.png)
   skin/images/accessiblecaret-tilt-left-xhdpi.png   (images/accessiblecaret-tilt-left-xhdpi.png)
   skin/images/accessiblecaret-tilt-left-xxhdpi.png  (images/accessiblecaret-tilt-left-xxhdpi.png)
   skin/images/accessiblecaret-tilt-right-hdpi.png   (images/accessiblecaret-tilt-right-hdpi.png)