Merge f-t to m-c, a=merge
authorPhil Ringnalda <philringnalda@gmail.com>
Mon, 05 Sep 2016 18:05:38 -0700
changeset 312756 8c9c4e816e86f903c1d820f3f29715dc070a5a4a
parent 312749 188c1f3647bb6114d06d69aef2146c6c945865ea (current diff)
parent 312755 8c8d47b20849c70874f08f4c27e6c157e7f5e01a (diff)
child 312759 5772fc54f3292e2e1fa19830ad978ea78657a458
child 312782 8e8e90b93acf4759ac9f0cd2a0354f935841fa3a
child 312843 863ce9e133e8dd11916315a0d2dab8ec05de2825
push id30656
push userphilringnalda@gmail.com
push dateTue, 06 Sep 2016 01:05:50 +0000
treeherdermozilla-central@8c9c4e816e86 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmerge
milestone51.0a1
first release with
nightly linux32
8c9c4e816e86 / 51.0a1 / 20160906030431 / files
nightly linux64
8c9c4e816e86 / 51.0a1 / 20160906030431 / files
nightly mac
8c9c4e816e86 / 51.0a1 / 20160906030431 / files
nightly win32
8c9c4e816e86 / 51.0a1 / 20160906030431 / files
nightly win64
8c9c4e816e86 / 51.0a1 / 20160906030431 / files
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
releases
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Merge f-t to m-c, a=merge
--- a/devtools/client/locales/en-US/debugger.dtd
+++ b/devtools/client/locales/en-US/debugger.dtd
@@ -49,20 +49,16 @@
 <!-- LOCALIZATION NOTE (debuggerUI.sources.toggleBreakpoints): This is the tooltip for the
   -  button that toggles all breakpoints for all sources. -->
 <!ENTITY debuggerUI.sources.toggleBreakpoints "Enable/disable all breakpoints">
 
 <!-- LOCALIZATION NOTE (debuggerUI.sources.togglePromiseDebugger): This is the
   -  tooltip for the button that toggles the promise debugger. -->
 <!ENTITY debuggerUI.sources.togglePromiseDebugger "Toggle Promise Debugger">
 
-<!-- LOCALIZATION NOTE (debuggerUI.startTracing): This is the text displayed in
-  - the button to start execution tracing. -->
-<!ENTITY debuggerUI.startTracing "Start Tracing">
-
 <!-- LOCALIZATION NOTE (debuggerUI.clearButton): This is the label for
   -  the button that clears the collected tracing data in the tracing tab. -->
 <!ENTITY debuggerUI.clearButton "Clear">
 
 <!-- LOCALIZATION NOTE (debuggerUI.clearButton.tooltip): This is the tooltip for
   -  the button that clears the collected tracing data in the tracing tab. -->
 <!ENTITY debuggerUI.clearButton.tooltip "Clear the collected traces">
 
--- a/devtools/client/locales/en-US/debugger.properties
+++ b/devtools/client/locales/en-US/debugger.properties
@@ -25,68 +25,44 @@ pauseButtonTooltip=Click to pause (%S)
 # LOCALIZATION NOTE (pausePendingButtonTooltip): The tooltip that is displayed for
 # the pause button after it's been clicked but before the next JavaScript to run.
 pausePendingButtonTooltip=Waiting for next execution
 
 # LOCALIZATION NOTE (resumeButtonTooltip): The label that is displayed on the pause
 # button when the debugger is in a paused state.
 resumeButtonTooltip=Click to resume (%S)
 
-# LOCALIZATION NOTE (startTracingTooltip): The label that is displayed on the trace
-# button when execution tracing is stopped.
-startTracingTooltip=Click to start tracing
-
-# LOCALIZATION NOTE (stopTracingTooltip): The label that is displayed on the trace
-# button when execution tracing is started.
-stopTracingTooltip=Click to stop tracing
-
 # LOCALIZATION NOTE (stepOverTooltip): The label that is displayed on the
 # button that steps over a function call.
 stepOverTooltip=Step Over (%S)
 
 # LOCALIZATION NOTE (stepInTooltip): The label that is displayed on the
 # button that steps into a function call.
 stepInTooltip=Step In (%S)
 
 # LOCALIZATION NOTE (stepOutTooltip): The label that is displayed on the
 # button that steps out of a function call.
 stepOutTooltip=Step Out (%S)
 
-# LOCALIZATION NOTE (emptyGlobalsText): The text to display in the menulist
-# when there are no chrome globals available.
-noGlobalsText=No globals
-
 # LOCALIZATION NOTE (noWorkersText): The text to display in the workers list
 # when there are no workers.
 noWorkersText=This page has no workers.
 
 # LOCALIZATION NOTE (noSourcesText): The text to display in the sources list
 # when there are no sources.
 noSourcesText=This page has no sources.
 
-# LOCALIZATION NOTE (loadingSourcesText): The text to display in the sources menu
-# when waiting for scripts to load.
-loadingSourcesText=Waiting for sources…
-
 # LOCALIZATION NOTE (noEventListenersText): The text to display in the events tab
 # when there are no events.
 noEventListenersText=No event listeners to display
 
 # LOCALIZATION NOTE (noStackFramesText): The text to display in the call stack tab
 # when there are no stack frames.
 noStackFramesText=No stack frames to display
 
-# LOCALIZATION NOTE (noStackFramesText): The text to display in the traces tab
-# when there are no function calls.
-noFunctionCallsText=No function calls to display
-
-# LOCALIZATION NOTE (tracingNotStartedText): The text to display in the traces tab
-# when when tracing hasn't started yet.
-tracingNotStartedText=Tracing has not started
-
 # LOCALIZATION NOTE (eventCheckboxTooltip): The tooltip text to display when
 # the user hovers over the checkbox used to toggle an event breakpoint.
 eventCheckboxTooltip=Toggle breaking on this event
 
 # LOCALIZATION NOTE (eventOnSelector): The text to display in the events tab
 # for every event item, between the event type and event selector.
 eventOnSelector=on
 
@@ -135,21 +111,16 @@ blackBoxCheckboxTooltip=Toggle black box
 # LOCALIZATION NOTE (noMatchingStringsText): The text to display in the
 # global search results when there are no matching strings after filtering.
 noMatchingStringsText=No matches found
 
 # LOCALIZATION NOTE (emptySearchText): This is the text that appears in the
 # filter text box when it is empty and the scripts container is selected.
 emptySearchText=Search scripts (%S)
 
-# LOCALIZATION NOTE (emptyChromeGlobalsFilterText): This is the text that
-# appears in the filter text box when it is empty and the chrome globals
-# container is selected.
-emptyChromeGlobalsFilterText=Filter chrome globals (%S)
-
 # LOCALIZATION NOTE (emptyVariablesFilterText): This is the text that
 # appears in the filter text box for the variables view container.
 emptyVariablesFilterText=Filter variables
 
 # LOCALIZATION NOTE (emptyPropertiesFilterText): This is the text that
 # appears in the filter text box for the editor's variables view bubble.
 emptyPropertiesFilterText=Filter properties
 
--- a/devtools/client/locales/en-US/storage.properties
+++ b/devtools/client/locales/en-US/storage.properties
@@ -4,22 +4,16 @@
 
 # LOCALIZATION NOTE These strings are used inside the Storage Editor tool.
 # LOCALIZATION NOTE The correct localization of this file might be to keep it
 # in English, or another language commonly spoken among web developers.
 # You want to make that choice consistent across the developer tools.
 # A good criteria is the language in which you'd find the best documentation
 # on web development on the web.
 
-# LOCALIZATION NOTE (storage.tooltip3):
-# This string is displayed in the tooltip of the tab when the storage editor is
-# displayed inside the developer tools window.
-# A keyboard shortcut for Storage Inspector will be shown inside the brackets.
-storage.tooltip3=Storage Inspector (Cookies, Local Storage, …) (%S)
-
 # LOCALIZATION NOTE (storage.filter.key):
 # Key shortcut used to focus the filter box on top of the data view
 storage.filter.key=CmdOrCtrl+F
 
 # LOCALIZATION NOTE (tree.emptyText):
 # This string is displayed when the Storage Tree is empty. This can happen when
 # there are no websites on the current page (about:blank)
 tree.emptyText=No hosts on the page
--- a/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
+++ b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
@@ -3351,20 +3351,17 @@ public class BrowserApp extends GeckoApp
                     }
                     return false;
                 }
             });
         }
 
         String url = tab.getURL();
         if (AboutPages.isAboutReader(url)) {
-            String urlFromReader = ReaderModeUtils.getUrlFromAboutReader(url);
-            if (urlFromReader != null) {
-                url = urlFromReader;
-            }
+            url = ReaderModeUtils.stripAboutReaderUrl(url);
         }
 
         // Disable share menuitem for about:, chrome:, file:, and resource: URIs
         final boolean shareVisible = Restrictions.isAllowed(this, Restrictable.SHARE);
         share.setVisible(shareVisible);
         final boolean shareEnabled = StringUtils.isShareableUrl(url) && shareVisible;
         share.setEnabled(shareEnabled);
         MenuUtils.safeSetEnabled(aMenu, R.id.downloads, Restrictions.isAllowed(this, Restrictable.DOWNLOAD));
@@ -3533,19 +3530,17 @@ public class BrowserApp extends GeckoApp
             return true;
         }
 
         if (itemId == R.id.share) {
             tab = Tabs.getInstance().getSelectedTab();
             if (tab != null) {
                 String url = tab.getURL();
                 if (url != null) {
-                    if (AboutPages.isAboutReader(url)) {
-                        url = ReaderModeUtils.getUrlFromAboutReader(url);
-                    }
+                    url = ReaderModeUtils.stripAboutReaderUrl(url);
 
                     // Context: Sharing via chrome list (no explicit session is active)
                     Telemetry.sendUIEvent(TelemetryContract.Event.SHARE, TelemetryContract.Method.LIST, "menu");
 
                     IntentHelper.openUriExternal(url, "text/plain", "", "", Intent.ACTION_SEND, tab.getDisplayTitle(), false);
                 }
             }
             return true;
--- a/mobile/android/base/java/org/mozilla/gecko/Tabs.java
+++ b/mobile/android/base/java/org/mozilla/gecko/Tabs.java
@@ -740,26 +740,25 @@ public class Tabs implements GeckoEventL
      * @return The first Tab with the given URL, or null if there is no such
      *         tab.
      */
     public Tab getFirstReaderTabForUrl(String url, boolean isPrivate) {
         if (url == null) {
             return null;
         }
 
-        if (AboutPages.isAboutReader(url)) {
-            url = ReaderModeUtils.getUrlFromAboutReader(url);
-        }
+        url = ReaderModeUtils.stripAboutReaderUrl(url);
+
         for (Tab tab : mOrder) {
             if (isPrivate != tab.isPrivate()) {
                 continue;
             }
             String tabUrl = tab.getURL();
             if (AboutPages.isAboutReader(tabUrl)) {
-                tabUrl = ReaderModeUtils.getUrlFromAboutReader(tabUrl);
+                tabUrl = ReaderModeUtils.stripAboutReaderUrl(tabUrl);
                 if (url.equals(tabUrl)) {
                     return tab;
                 }
             }
         }
 
         return null;
     }
--- a/mobile/android/base/java/org/mozilla/gecko/reader/ReaderModeUtils.java
+++ b/mobile/android/base/java/org/mozilla/gecko/reader/ReaderModeUtils.java
@@ -15,17 +15,17 @@ public class ReaderModeUtils {
     /**
      * Extract the URL from a valid about:reader URL. You may want to use stripAboutReaderUrl
      * instead to always obtain a valid String.
      *
      * @see #stripAboutReaderUrl(String) for a safer version that returns the original URL for malformed/invalid
      *     URLs.
      * @return <code>null</code> if the URL is malformed or doesn't contain a URL parameter.
      */
-    public static String getUrlFromAboutReader(String aboutReaderUrl) {
+    private static String getUrlFromAboutReader(String aboutReaderUrl) {
         return StringUtils.getQueryParameter(aboutReaderUrl, "url");
     }
 
     public static boolean isEnteringReaderMode(String currentUrl, String newUrl) {
         if (currentUrl == null || newUrl == null) {
             return false;
         }
 
@@ -40,16 +40,22 @@ public class ReaderModeUtils {
 
         return urlFromAboutReader.equals(currentUrl);
     }
 
     public static String getAboutReaderForUrl(String url) {
         return getAboutReaderForUrl(url, -1);
     }
 
+    /**
+     * Obtain the underlying URL from an about:reader URL.
+     * This will return the input URL if either of the following is true:
+     * 1. the input URL is a non about:reader URL
+     * 2. the input URL is an invalid/unparseable about:reader URL
+     */
     public static String stripAboutReaderUrl(String url) {
         if (!AboutPages.isAboutReader(url)) {
             return url;
         }
 
         final String strippedUrl = getUrlFromAboutReader(url);
         return strippedUrl != null ? strippedUrl : url;
     }