Bug 938845 - Merge StringHelper and org.mozilla.gecko.* Strings. r=mcomella
☠☠ backed out by 910d4e852706 ☠ ☠
authorJalpreet Singh Nanda <jalpreetnanda@gmail.com>
Mon, 23 Feb 2015 14:13:42 +0530
changeset 263736 28b3258bc0dcc4e2c0f952e255db043f2dc0300f
parent 263734 70cf7bc0d63860e28cbb681871c76970a3450d07
child 263737 8e8d8f82f9de64d45ef5faebb8788ea08c6f5d49
push id4718
push userraliiev@mozilla.com
push dateMon, 11 May 2015 18:39:53 +0000
treeherdermozilla-beta@c20c4ef55f08 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmcomella
bugs938845
milestone39.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 938845 - Merge StringHelper and org.mozilla.gecko.* Strings. r=mcomella Due to bitrot, this changeset leaves some loose ends that will be cleaned up in a followup bug.
mobile/android/base/tests/BaseRobocopTest.java
mobile/android/base/tests/BaseTest.java
mobile/android/base/tests/JavascriptTest.java
mobile/android/base/tests/PixelTest.java
mobile/android/base/tests/SessionTest.java
mobile/android/base/tests/StringHelper.java
mobile/android/base/tests/UITest.java
mobile/android/base/tests/components/ToolbarComponent.java
mobile/android/base/tests/testAboutHomeVisibility.java
mobile/android/base/tests/testAboutPage.java
mobile/android/base/tests/testAddSearchEngine.java
mobile/android/base/tests/testAddonManager.java
mobile/android/base/tests/testAdobeFlash.java
mobile/android/base/tests/testAppMenuPathways.java
mobile/android/base/tests/testAwesomebar.java
mobile/android/base/tests/testAxisLocking.java
mobile/android/base/tests/testBookmark.java
mobile/android/base/tests/testBookmarkFolders.java
mobile/android/base/tests/testBookmarkKeyword.java
mobile/android/base/tests/testBookmarklets.java
mobile/android/base/tests/testBookmarksPanel.java
mobile/android/base/tests/testClearPrivateData.java
mobile/android/base/tests/testDistribution.java
mobile/android/base/tests/testDoorHanger.java
mobile/android/base/tests/testEventDispatcher.java
mobile/android/base/tests/testFindInPage.java
mobile/android/base/tests/testFlingCorrectness.java
mobile/android/base/tests/testGeckoRequest.java
mobile/android/base/tests/testHistory.java
mobile/android/base/tests/testHomeBanner.java
mobile/android/base/tests/testImportFromAndroid.java
mobile/android/base/tests/testInputConnection.java
mobile/android/base/tests/testInputUrlBar.java
mobile/android/base/tests/testJavascriptBridge.java
mobile/android/base/tests/testLinkContextMenu.java
mobile/android/base/tests/testLoad.java
mobile/android/base/tests/testMailToContextMenu.java
mobile/android/base/tests/testMasterPassword.java
mobile/android/base/tests/testNewTab.java
mobile/android/base/tests/testPanCorrectness.java
mobile/android/base/tests/testPermissions.java
mobile/android/base/tests/testPictureLinkContextMenu.java
mobile/android/base/tests/testPrivateBrowsing.java
mobile/android/base/tests/testPromptGridInput.java
mobile/android/base/tests/testReaderMode.java
mobile/android/base/tests/testSessionHistory.java
mobile/android/base/tests/testSessionOOMRestore.java
mobile/android/base/tests/testSessionOOMSave.java
mobile/android/base/tests/testSettingsMenuItems.java
mobile/android/base/tests/testShareLink.java
mobile/android/base/tests/testStumblerSetting.java
mobile/android/base/tests/testSystemPages.java
mobile/android/base/tests/testThumbnails.java
mobile/android/base/tests/testTitleBar.java
--- a/mobile/android/base/tests/BaseRobocopTest.java
+++ b/mobile/android/base/tests/BaseRobocopTest.java
@@ -19,16 +19,17 @@ import org.mozilla.gecko.FennecMochitest
 import org.mozilla.gecko.FennecNativeActions;
 import org.mozilla.gecko.FennecNativeDriver;
 import org.mozilla.gecko.FennecTalosAssert;
 import org.mozilla.gecko.updater.UpdateServiceHelper;
 
 import android.app.Activity;
 import android.content.Context;
 import android.content.Intent;
+import android.content.res.Resources;
 import android.os.PowerManager;
 import android.test.ActivityInstrumentationTestCase2;
 import android.util.Log;
 
 import com.jayway.android.robotium.solo.Solo;
 
 @SuppressWarnings("unchecked")
 public abstract class BaseRobocopTest extends ActivityInstrumentationTestCase2<Activity> {
@@ -68,16 +69,18 @@ public abstract class BaseRobocopTest ex
     protected String mRootPath;
 
     protected Solo mSolo;
     protected Driver mDriver;
     protected Actions mActions;
 
     protected String mProfile;
 
+    protected StringHelper mStringHelper;
+
     protected abstract Intent createActivityIntent();
 
     /**
      * The browser is started at the beginning of this test. A single test is a
      * class inheriting from <code>BaseRobocopTest</code> that contains test
      * methods.
      * <p>
      * If a test should not start the browser at the beginning of a test,
@@ -137,19 +140,24 @@ public abstract class BaseRobocopTest ex
         mAsserter.setTestName(getClass().getName());
 
         // Start the activity.
         final Intent intent = createActivityIntent();
         setActivityIntent(intent);
 
         // Set up Robotium.solo and Driver objects
         Activity tempActivity = getActivity();
+
+        StringHelper.initialize(tempActivity.getResources());
+        mStringHelper = StringHelper.get();
+
         mSolo = new Solo(getInstrumentation(), tempActivity);
         mDriver = new FennecNativeDriver(tempActivity, mSolo, mRootPath);
         mActions = new FennecNativeActions(tempActivity, mSolo, getInstrumentation(), mAsserter);
+
     }
 
     /**
      * Function to early abort if we can't reach the given HTTP server. Provides local testers
      * with diagnostic information. Not currently available for TALOS tests, which are rarely run
      * locally in any case.
      */
     public void throwIfHttpGetFails() {
--- a/mobile/android/base/tests/BaseTest.java
+++ b/mobile/android/base/tests/BaseTest.java
@@ -28,16 +28,17 @@ import org.mozilla.gecko.RobocopUtils;
 import org.mozilla.gecko.Tab;
 import org.mozilla.gecko.Tabs;
 
 import android.app.Activity;
 import android.content.ContentValues;
 import android.content.Intent;
 import android.content.pm.ActivityInfo;
 import android.content.res.AssetManager;
+import android.content.res.Resources;
 import android.database.Cursor;
 import android.os.Build;
 import android.os.SystemClock;
 import android.support.v4.app.Fragment;
 import android.support.v4.app.FragmentActivity;
 import android.support.v4.app.FragmentManager;
 import android.text.TextUtils;
 import android.util.DisplayMetrics;
@@ -498,18 +499,18 @@ abstract class BaseTest extends BaseRobo
             mAsserter.ok(rc, "Verify HomePager is hidden", "HomePager is hidden");
         }
     }
 
     public final void verifyUrlBarTitle(String url) {
         mAsserter.isnot(url, null, "The url argument is not null");
 
         final String expected;
-        if (StringHelper.ABOUT_HOME_URL.equals(url)) {
-            expected = StringHelper.ABOUT_HOME_TITLE;
+        if (mStringHelper.ABOUT_HOME_URL.equals(url)) {
+            expected = mStringHelper.ABOUT_HOME_TITLE;
         } else if (url.startsWith(URL_HTTP_PREFIX)) {
             expected = url.substring(URL_HTTP_PREFIX.length());
         } else {
             expected = url;
         }
 
         final TextView urlBarTitle = (TextView) mSolo.getView(R.id.url_bar_title);
         String pageTitle = null;
@@ -544,30 +545,30 @@ abstract class BaseTest extends BaseRobo
         mAsserter.ok(success, "Top site item was pinned: " + isPinned, null);
     }
 
     public void pinTopSite(String gridItemTitle) {
         verifyPinned(false, gridItemTitle);
         mSolo.clickLongOnText(gridItemTitle);
         boolean dialogOpened = mSolo.waitForDialogToOpen();
         mAsserter.ok(dialogOpened, "Pin site dialog opened: " + gridItemTitle, null);
-        boolean pinSiteFound = waitForText(StringHelper.CONTEXT_MENU_PIN_SITE);
+        boolean pinSiteFound = waitForText(mStringHelper.CONTEXT_MENU_PIN_SITE);
         mAsserter.ok(pinSiteFound, "Found pin site menu item", null);
-        mSolo.clickOnText(StringHelper.CONTEXT_MENU_PIN_SITE);
+        mSolo.clickOnText(mStringHelper.CONTEXT_MENU_PIN_SITE);
         verifyPinned(true, gridItemTitle);
     }
 
     public void unpinTopSite(String gridItemTitle) {
         verifyPinned(true, gridItemTitle);
         mSolo.clickLongOnText(gridItemTitle);
         boolean dialogOpened = mSolo.waitForDialogToOpen();
         mAsserter.ok(dialogOpened, "Pin site dialog opened: " + gridItemTitle, null);
-        boolean unpinSiteFound = waitForText(StringHelper.CONTEXT_MENU_UNPIN_SITE);
+        boolean unpinSiteFound = waitForText(mStringHelper.CONTEXT_MENU_UNPIN_SITE);
         mAsserter.ok(unpinSiteFound, "Found unpin site menu item", null);
-        mSolo.clickOnText(StringHelper.CONTEXT_MENU_UNPIN_SITE);
+        mSolo.clickOnText(mStringHelper.CONTEXT_MENU_UNPIN_SITE);
         verifyPinned(false, gridItemTitle);
     }
 
     // Used to perform clicks on pop-up buttons without having to close the virtual keyboard
     public void clickOnButton(String label) {
         final Button button = mSolo.getButton(label);
         try {
             runTestOnUiThread(new Runnable() {
@@ -744,17 +745,17 @@ abstract class BaseTest extends BaseRobo
                 float y = xy[1] + (viewHeight / 2.0f);
 
                 mSolo.clickOnScreen(x, y);
             }
         }
     }
 
     public void clearPrivateData() {
-        selectSettingsItem(StringHelper.PRIVACY_SECTION_LABEL, StringHelper.CLEAR_PRIVATE_DATA_LABEL);
+        selectSettingsItem(mStringHelper.PRIVACY_SECTION_LABEL, mStringHelper.CLEAR_PRIVATE_DATA_LABEL);
         Actions.EventExpecter clearData = mActions.expectGeckoEvent("Sanitize:Finished");
         mSolo.clickOnText("Clear data");
         clearData.blockForEvent();
         clearData.unregisterListener();
     }
 
     class Device {
         public final String version; // 2.x or 3.x or 4.x
--- a/mobile/android/base/tests/JavascriptTest.java
+++ b/mobile/android/base/tests/JavascriptTest.java
@@ -35,17 +35,17 @@ public class JavascriptTest extends Base
 
     protected void doTestJavascript() throws Exception {
         // We want to be waiting for Robocop messages before the page is loaded
         // because the test harness runs each test in the suite (and possibly
         // completes testing) before the page load event is fired.
         final Actions.EventExpecter expecter = mActions.expectGeckoEvent(EVENT_TYPE);
         mAsserter.dumpLog("Registered listener for " + EVENT_TYPE);
 
-        final String url = getAbsoluteUrl(StringHelper.getHarnessUrlForJavascript(javascriptUrl));
+        final String url = getAbsoluteUrl(mStringHelper.getHarnessUrlForJavascript(javascriptUrl));
         mAsserter.dumpLog("Loading JavaScript test from " + url);
         loadUrl(url);
 
         final JavascriptMessageParser testMessageParser =
                 new JavascriptMessageParser(mAsserter, false);
         try {
             while (!testMessageParser.isTestFinished()) {
                 if (logVerbose) {
--- a/mobile/android/base/tests/PixelTest.java
+++ b/mobile/android/base/tests/PixelTest.java
@@ -28,18 +28,18 @@ abstract class PixelTest extends BaseTes
         PaintedSurface painted = loadAndGetPainted(url);
         painted.close();
     }
 
     protected final PaintedSurface reloadAndGetPainted() {
         Actions.RepeatedEventExpecter paintExpecter = mActions.expectPaint();
 
         mActions.sendSpecialKey(Actions.SpecialKey.MENU);
-        waitForText(StringHelper.RELOAD_LABEL);
-        mSolo.clickOnText(StringHelper.RELOAD_LABEL);
+        waitForText(mStringHelper.RELOAD_LABEL);
+        mSolo.clickOnText(mStringHelper.RELOAD_LABEL);
 
         paintExpecter.blockUntilClear(PAINT_CLEAR_DELAY);
         paintExpecter.unregisterListener();
         PaintedSurface p = mDriver.getPaintedSurface();
         if (p == null) {
             mAsserter.ok(p != null, "checking that painted surface loaded", 
                  "painted surface loaded");
         }
@@ -50,23 +50,23 @@ abstract class PixelTest extends BaseTes
         PaintedSurface painted = reloadAndGetPainted();
         painted.close();
     }
 
     public void addTab(String url, String title, boolean isPrivate) {
         Actions.EventExpecter tabEventExpecter = mActions.expectGeckoEvent("Tab:Added");
         Actions.EventExpecter contentEventExpecter = mActions.expectGeckoEvent("DOMContentLoaded");
         if (isPrivate) {
-            selectMenuItem(StringHelper.NEW_PRIVATE_TAB_LABEL);
+            selectMenuItem(mStringHelper.NEW_PRIVATE_TAB_LABEL);
         } else {
-            selectMenuItem(StringHelper.NEW_TAB_LABEL);
+            selectMenuItem(mStringHelper.NEW_TAB_LABEL);
         }
         tabEventExpecter.blockForEvent();
         contentEventExpecter.blockForEvent();
-        waitForText(StringHelper.TITLE_PLACE_HOLDER);
+        waitForText(mStringHelper.TITLE_PLACE_HOLDER);
         loadAndPaint(url);
         tabEventExpecter.unregisterListener();
         contentEventExpecter.unregisterListener();
     }
 
     protected final PaintedSurface waitForPaint(Actions.RepeatedEventExpecter expecter) {
         expecter.blockUntilClear(PAINT_CLEAR_DELAY);
         PaintedSurface p = mDriver.getPaintedSurface();
--- a/mobile/android/base/tests/SessionTest.java
+++ b/mobile/android/base/tests/SessionTest.java
@@ -131,27 +131,27 @@ public abstract class SessionTest extend
     /**
      * Loads a set of tabs in the browser specified by the given session.
      *
      * @param session Session to load
      */
     protected void loadSessionTabs(Session session) {
         // Verify initial about:home tab
         verifyTabCount(1);
-        verifyUrl(StringHelper.ABOUT_HOME_URL);
+        verifyUrl(mStringHelper.ABOUT_HOME_URL);
 
         SessionTab[] tabs = session.getItems();
         for (int i = 0; i < tabs.length; i++) {
             final SessionTab tab = tabs[i];
             final PageInfo[] pages = tab.getItems();
 
             // New tabs always start with about:home, so make sure about:home
             // is always the first entry.
-            mAsserter.is(pages[0].url, StringHelper.ABOUT_HOME_URL, "first page in tab is " +
-                    StringHelper.ABOUT_HOME_URL);
+            mAsserter.is(pages[0].url, mStringHelper.ABOUT_HOME_URL, "first page in tab is " +
+                    mStringHelper.ABOUT_HOME_URL);
 
             // If this is the first tab, the tab already exists, so no need to
             // create a new one. Otherwise, create a new tab if we're loading
             // the first the first page in the set.
             if (i > 0) {
                 addTab();
             }
 
@@ -192,18 +192,18 @@ public abstract class SessionTest extend
                 } else {
                     mFirstTabVisited = true;
                 }
 
                 (new NavigationWalker<PageInfo>(tab) {
                     @Override
                     public void onItem(PageInfo page, int currentIndex) {
                         final String text;
-                        if (StringHelper.ABOUT_HOME_URL.equals(page.url)) {
-                            text = StringHelper.TITLE_PLACE_HOLDER;
+                        if (mStringHelper.ABOUT_HOME_URL.equals(page.url)) {
+                            text = mStringHelper.TITLE_PLACE_HOLDER;
                         } else if (page.url.startsWith(URL_HTTP_PREFIX)) {
                             text = page.url.substring(URL_HTTP_PREFIX.length());
                         } else {
                             text = page.url;
                         }
                         waitForText(text);
 
                         verifyUrlBarTitle(page.url);
--- a/mobile/android/base/tests/StringHelper.java
+++ b/mobile/android/base/tests/StringHelper.java
@@ -1,276 +1,510 @@
 /* -*- Mode: Java; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: nil; -*-
  * 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/. */
 
 package org.mozilla.gecko.tests;
 
 
+import android.content.res.Resources;
+
+import org.mozilla.gecko.R;
+
 public class StringHelper {
-    private StringHelper() {}
+    private static StringHelper instance = null;
 
-    public static final String OK = "OK";
+    public final String OK;
 
     // Note: DEFAULT_BOOKMARKS_TITLES.length == DEFAULT_BOOKMARKS_URLS.length
-    public static final String[] DEFAULT_BOOKMARKS_TITLES = new String[] {
-        "Firefox: About your browser",
-        "Firefox: Support",
-        "Firefox: Customize with add-ons"
-    };
-    public static final String[] DEFAULT_BOOKMARKS_URLS = new String[] {
-        "about:firefox",
-        "https://support.mozilla.org/products/mobile",
-        "https://addons.mozilla.org/android/"
-    };
-    public static final int DEFAULT_BOOKMARKS_COUNT = DEFAULT_BOOKMARKS_TITLES.length;
+    public final String[] DEFAULT_BOOKMARKS_TITLES;
+    public final String[] DEFAULT_BOOKMARKS_URLS;
+    public final int DEFAULT_BOOKMARKS_COUNT;
 
     // About pages
-    public static final String ABOUT_BLANK_URL = "about:blank";
-    public static final String ABOUT_FIREFOX_URL = "about:firefox";
-    public static final String ABOUT_RIGHTS_URL = "about:rights";
-    public static final String ABOUT_BUILDCONFIG_URL = "about:buildconfig";
-    public static final String ABOUT_FEEDBACK_URL = "about:feedback";
-    public static final String ABOUT_HEALTHREPORT_URL = "about:healthreport";
-    public static final String ABOUT_DOWNLOADS_URL = "about:downloads";
-    public static final String ABOUT_HOME_URL = "about:home";
-    public static final String ABOUT_ADDONS_URL = "about:addons";
+    public final String ABOUT_BLANK_URL;
+    public final String ABOUT_FIREFOX_URL;
+    public final String ABOUT_RIGHTS_URL;
+    public final String ABOUT_BUILDCONFIG_URL;
+    public final String ABOUT_FEEDBACK_URL;
+    public final String ABOUT_HEALTHREPORT_URL;
+    public final String ABOUT_DOWNLOADS_URL;
+    public final String ABOUT_HOME_URL;
+    public final String ABOUT_ADDONS_URL;
     public static final String ABOUT_PASSWORDS_URL = "about:passwords";
-    public static final String ABOUT_APPS_URL = "about:apps";
-    public static final String ABOUT_ABOUT_URL = "about:about";
-    public static final String ABOUT_SCHEME = "about:";
+    public final String ABOUT_APPS_URL;
+    public final String ABOUT_ABOUT_URL;
+    public final String ABOUT_SCHEME;
 
     // About pages' titles
-    public static final String ABOUT_HOME_TITLE = "";
+    public final String ABOUT_HOME_TITLE;
 
     // Context Menu item strings
-    public static final String CONTEXT_MENU_BOOKMARK_LINK = "Bookmark Link";
-    public static final String CONTEXT_MENU_OPEN_LINK_IN_NEW_TAB = "Open Link in New Tab";
-    public static final String CONTEXT_MENU_OPEN_IN_NEW_TAB = "Open in New Tab";
-    public static final String CONTEXT_MENU_OPEN_LINK_IN_PRIVATE_TAB = "Open Link in Private Tab";
-    public static final String CONTEXT_MENU_OPEN_IN_PRIVATE_TAB = "Open in Private Tab";
-    public static final String CONTEXT_MENU_COPY_LINK = "Copy Link";
-    public static final String CONTEXT_MENU_SHARE_LINK = "Share Link";
-    public static final String CONTEXT_MENU_EDIT = "Edit";
-    public static final String CONTEXT_MENU_SHARE = "Share";
-    public static final String CONTEXT_MENU_REMOVE = "Remove";
-    public static final String CONTEXT_MENU_COPY_ADDRESS = "Copy Address";
-    public static final String CONTEXT_MENU_EDIT_SITE_SETTINGS = "Edit Site Settings";
-    public static final String CONTEXT_MENU_ADD_TO_HOME_SCREEN = "Add to Home Screen";
-    public static final String CONTEXT_MENU_PIN_SITE = "Pin Site";
-    public static final String CONTEXT_MENU_UNPIN_SITE = "Unpin Site";
+    public final String CONTEXT_MENU_BOOKMARK_LINK;
+    public final String CONTEXT_MENU_OPEN_LINK_IN_NEW_TAB;
+    public final String CONTEXT_MENU_OPEN_IN_NEW_TAB;
+    public final String CONTEXT_MENU_OPEN_LINK_IN_PRIVATE_TAB;
+    public final String CONTEXT_MENU_OPEN_IN_PRIVATE_TAB;
+    public final String CONTEXT_MENU_COPY_LINK;
+    public final String CONTEXT_MENU_SHARE_LINK;
+    public final String CONTEXT_MENU_EDIT;
+    public final String CONTEXT_MENU_SHARE;
+    public final String CONTEXT_MENU_REMOVE;
+    public final String CONTEXT_MENU_COPY_ADDRESS;
+    public final String CONTEXT_MENU_EDIT_SITE_SETTINGS;
+    public final String CONTEXT_MENU_ADD_TO_HOME_SCREEN;
+    public final String CONTEXT_MENU_PIN_SITE;
+    public final String CONTEXT_MENU_UNPIN_SITE;
 
     // Context Menu menu items
-    public static final String[] CONTEXT_MENU_ITEMS_IN_PRIVATE_TAB = new String[] {
-        CONTEXT_MENU_OPEN_LINK_IN_PRIVATE_TAB,
-        CONTEXT_MENU_COPY_LINK,
-        CONTEXT_MENU_SHARE_LINK,
-        CONTEXT_MENU_BOOKMARK_LINK
-    };
+    public final String[] CONTEXT_MENU_ITEMS_IN_PRIVATE_TAB;
 
-    public static final String[] CONTEXT_MENU_ITEMS_IN_NORMAL_TAB = new String[] {
-        CONTEXT_MENU_OPEN_LINK_IN_NEW_TAB,
-        CONTEXT_MENU_OPEN_LINK_IN_PRIVATE_TAB,
-        CONTEXT_MENU_COPY_LINK,
-        CONTEXT_MENU_SHARE_LINK,
-        CONTEXT_MENU_BOOKMARK_LINK
-    };
+    public final String[] CONTEXT_MENU_ITEMS_IN_NORMAL_TAB;
 
-    public static final String[] BOOKMARK_CONTEXT_MENU_ITEMS = new String[] {
-        CONTEXT_MENU_OPEN_IN_NEW_TAB,
-        CONTEXT_MENU_OPEN_IN_PRIVATE_TAB,
-        CONTEXT_MENU_COPY_ADDRESS,
-        CONTEXT_MENU_SHARE,
-        CONTEXT_MENU_EDIT,
-        CONTEXT_MENU_REMOVE,
-        CONTEXT_MENU_ADD_TO_HOME_SCREEN
-    };
+    public final String[] BOOKMARK_CONTEXT_MENU_ITEMS;
 
-    public static final String[] CONTEXT_MENU_ITEMS_IN_URL_BAR = new String[] {
-        CONTEXT_MENU_SHARE,
-        CONTEXT_MENU_COPY_ADDRESS,
-        CONTEXT_MENU_EDIT_SITE_SETTINGS,
-        CONTEXT_MENU_ADD_TO_HOME_SCREEN
-    };
+    public final String[] CONTEXT_MENU_ITEMS_IN_URL_BAR;
 
-    public static final String TITLE_PLACE_HOLDER = "Search or enter address";
+    public final String TITLE_PLACE_HOLDER;
 
     // Robocop page urls
     // Note: please use getAbsoluteUrl(String url) on each robocop url to get the correct url
-    public static final String ROBOCOP_BIG_LINK_URL = "/robocop/robocop_big_link.html";
-    public static final String ROBOCOP_BIG_MAILTO_URL = "/robocop/robocop_big_mailto.html";
-    public static final String ROBOCOP_BLANK_PAGE_01_URL = "/robocop/robocop_blank_01.html";
-    public static final String ROBOCOP_BLANK_PAGE_02_URL = "/robocop/robocop_blank_02.html";
-    public static final String ROBOCOP_BLANK_PAGE_03_URL = "/robocop/robocop_blank_03.html";
-    public static final String ROBOCOP_BLANK_PAGE_04_URL = "/robocop/robocop_blank_04.html";
-    public static final String ROBOCOP_BLANK_PAGE_05_URL = "/robocop/robocop_blank_05.html";
-    public static final String ROBOCOP_BOXES_URL = "/robocop/robocop_boxes.html";
-    public static final String ROBOCOP_GEOLOCATION_URL = "/robocop/robocop_geolocation.html";
-    public static final String ROBOCOP_LOGIN_URL = "/robocop/robocop_login.html";
-    public static final String ROBOCOP_POPUP_URL = "/robocop/robocop_popup.html";
-    public static final String ROBOCOP_OFFLINE_STORAGE_URL = "/robocop/robocop_offline_storage.html";
-    public static final String ROBOCOP_PICTURE_LINK_URL = "/robocop/robocop_picture_link.html";
-    public static final String ROBOCOP_SEARCH_URL = "/robocop/robocop_search.html";
-    public static final String ROBOCOP_TEXT_PAGE_URL = "/robocop/robocop_text_page.html";
-    public static final String ROBOCOP_ADOBE_FLASH_URL = "/robocop/robocop_adobe_flash.html";
-    public static final String ROBOCOP_INPUT_URL = "/robocop/robocop_input.html";
+    public final String ROBOCOP_BIG_LINK_URL;
+    public final String ROBOCOP_BIG_MAILTO_URL;
+    public final String ROBOCOP_BLANK_PAGE_01_URL;
+    public final String ROBOCOP_BLANK_PAGE_02_URL;
+    public final String ROBOCOP_BLANK_PAGE_03_URL;
+    public final String ROBOCOP_BLANK_PAGE_04_URL;
+    public final String ROBOCOP_BLANK_PAGE_05_URL;
+    public final String ROBOCOP_BOXES_URL;
+    public final String ROBOCOP_GEOLOCATION_URL;
+    public final String ROBOCOP_LOGIN_URL;
+    public final String ROBOCOP_POPUP_URL;
+    public final String ROBOCOP_OFFLINE_STORAGE_URL;
+    public final String ROBOCOP_PICTURE_LINK_URL;
+    public final String ROBOCOP_SEARCH_URL;
+    public final String ROBOCOP_TEXT_PAGE_URL;
+    public final String ROBOCOP_ADOBE_FLASH_URL;
+    public final String ROBOCOP_INPUT_URL;
     public static final String ROBOCOP_READER_MODE_BASIC_ARTICLE = "/robocop/reader_mode_pages/basic_article.html";
 
-    private static final String ROBOCOP_JS_HARNESS_URL = "/robocop/robocop_javascript.html";
+    private final String ROBOCOP_JS_HARNESS_URL;
+
+    // Robocop page titles
+    public final String ROBOCOP_BIG_LINK_TITLE;
+    public final String ROBOCOP_BIG_MAILTO_TITLE;
+    public final String ROBOCOP_BLANK_PAGE_01_TITLE;
+    public final String ROBOCOP_BLANK_PAGE_02_TITLE;
+    public final String ROBOCOP_BLANK_PAGE_03_TITLE;
+    public final String ROBOCOP_BLANK_PAGE_04_TITLE;
+    public final String ROBOCOP_BLANK_PAGE_05_TITLE;
+    public final String ROBOCOP_BOXES_TITLE;
+    public final String ROBOCOP_GEOLOCATION_TITLE;
+    public final String ROBOCOP_LOGIN_TITLE;
+    public final String ROBOCOP_OFFLINE_STORAGE_TITLE;
+    public final String ROBOCOP_PICTURE_LINK_TITLE;
+    public final String ROBOCOP_SEARCH_TITLE;
+    public final String ROBOCOP_TEXT_PAGE_TITLE;
+    public final String ROBOCOP_INPUT_TITLE;
+
+    // Distribution tile labels
+    public final String DISTRIBUTION1_LABEL;
+    public final String DISTRIBUTION2_LABEL;
+
+    // Settings menu strings
+    // Section labels - ordered as found in the settings menu
+    public final String CUSTOMIZE_SECTION_LABEL;
+    public final String DISPLAY_SECTION_LABEL;
+    public final String PRIVACY_SECTION_LABEL;
+    public final String MOZILLA_SECTION_LABEL;
+    public final String DEVELOPER_TOOLS_SECTION_LABEL;
+
+    // Option labels
+    // Customize
+    public final String SYNC_LABEL;
+    public final String IMPORT_FROM_ANDROID_LABEL;
+    public final String TABS_LABEL;
+
+    // Display
+    public final String TEXT_SIZE_LABEL;
+    public final String TITLE_BAR_LABEL;
+    public final String SCROLL_TITLE_BAR_LABEL;
+    public final String TEXT_REFLOW_LABEL;
+    public final String CHARACTER_ENCODING_LABEL;
+    public final String PLUGINS_LABEL;
+
+    // Title bar
+    public final String SHOW_PAGE_TITLE_LABEL;
+    public final String SHOW_PAGE_ADDRESS_LABEL;
+
+    // Privacy
+    public final String TRACKING_PROTECTION_LABEL;
+    public final String DNT_LABEL;
+    public final String COOKIES_LABEL;
+    public final String REMEMBER_PASSWORDS_LABEL;
+    public final String MANAGE_LOGINS_LABEL;
+    public final String MASTER_PASSWORD_LABEL;
+    public final String CLEAR_PRIVATE_DATA_LABEL;
+
+    // Mozilla
+    public final String BRAND_NAME;
+    public final String ABOUT_LABEL;
+    public final String FAQS_LABEL;
+    public final String FEEDBACK_LABEL;
+    public final String LOCATION_SERVICES_LABEL;
+    public final String HEALTH_REPORT_LABEL;
+    public final String MY_HEALTH_REPORT_LABEL;
+
+    // Developer tools
+    public final String PAINT_FLASHING_LABEL;
+    public final String REMOTE_DEBUGGING_LABEL;
+    public final String LEARN_MORE_LABEL;
+
+    // Labels for the about:home tabs
+    public final String HISTORY_LABEL;
+    public final String TOP_SITES_LABEL;
+    public final String BOOKMARKS_LABEL;
+    public final String READING_LIST_LABEL;
+    public final String TODAY_LABEL;
+    public final String TABS_FROM_LAST_TIME_LABEL;
+
+    // Desktop default bookmarks folders
+    public final String BOOKMARKS_UP_TO;
+    public final String BOOKMARKS_ROOT_LABEL;
+    public final String DESKTOP_FOLDER_LABEL;
+    public final String TOOLBAR_FOLDER_LABEL;
+    public final String BOOKMARKS_MENU_FOLDER_LABEL;
+    public final String UNSORTED_FOLDER_LABEL;
+
+    // Menu items - some of the items are found only on android 2.3 and lower and some only on android 3.0+
+    public final String NEW_TAB_LABEL;
+    public final String NEW_PRIVATE_TAB_LABEL;
+    public final String SHARE_LABEL;
+    public final String FIND_IN_PAGE_LABEL;
+    public final String DESKTOP_SITE_LABEL;
+    public final String PDF_LABEL;
+    public final String DOWNLOADS_LABEL;
+    public final String ADDONS_LABEL;
+    public final String LOGINS_LABEL;
+    public final String APPS_LABEL;
+    public final String SETTINGS_LABEL;
+    public final String GUEST_MODE_LABEL;
+    public final String TAB_QUEUE_LABEL;
+
+    // Android 3.0+
+    public final String TOOLS_LABEL;
+    public final String PAGE_LABEL;
+
+    // Android 2.3 and lower only
+    public final String MORE_LABEL;
+    public final String RELOAD_LABEL;
+    public final String FORWARD_LABEL;
+    public final String BOOKMARK_LABEL;
+
+    // Bookmark Toast Notification
+    public final String BOOKMARK_ADDED_LABEL;
+    public final String BOOKMARK_REMOVED_LABEL;
+    public final String BOOKMARK_UPDATED_LABEL;
+    public final String BOOKMARK_OPTIONS_LABEL;
+
+    // Edit Bookmark screen
+    public final String EDIT_BOOKMARK;
+
+    // Strings used in doorhanger messages and buttons
+    public final String GEO_MESSAGE;
+    public final String GEO_ALLOW;
+    public final String GEO_DENY;
+
+    public final String OFFLINE_MESSAGE;
+    public final String OFFLINE_ALLOW;
+    public final String OFFLINE_DENY;
+
+    public final String LOGIN_MESSAGE;
+    public final String LOGIN_ALLOW;
+    public final String LOGIN_DENY;
+
+    public final String POPUP_MESSAGE;
+    public final String POPUP_ALLOW;
+    public final String POPUP_DENY;
+
+    // Strings used as content description, e.g. for ImageButtons
+    public final String CONTENT_DESCRIPTION_READER_MODE_BUTTON;
+
+    private StringHelper(final Resources res) {
+
+        OK = res.getString(R.string.button_ok);
+
+        // Note: DEFAULT_BOOKMARKS_TITLES.length == DEFAULT_BOOKMARKS_URLS.length
+        DEFAULT_BOOKMARKS_TITLES = new String[] {
+                res.getString(R.string.bookmarkdefaults_title_aboutfirefox),
+                res.getString(R.string.bookmarkdefaults_title_support),
+                res.getString(R.string.bookmarkdefaults_title_addons)
+        };
+        DEFAULT_BOOKMARKS_URLS = new String[] {
+                res.getString(R.string.bookmarkdefaults_url_aboutfirefox),
+                res.getString(R.string.bookmarkdefaults_url_support),
+                res.getString(R.string.bookmarkdefaults_url_addons)
+        };
+        DEFAULT_BOOKMARKS_COUNT = DEFAULT_BOOKMARKS_TITLES.length;
+
+        // About pages
+        ABOUT_BLANK_URL = "about:blank";
+        ABOUT_FIREFOX_URL = res.getString(R.string.bookmarkdefaults_url_aboutfirefox);
+        ABOUT_RIGHTS_URL = "about:rights";
+        ABOUT_BUILDCONFIG_URL = "about:buildconfig";
+        ABOUT_FEEDBACK_URL = "about:feedback";
+        ABOUT_HEALTHREPORT_URL = "about:healthreport";
+        ABOUT_DOWNLOADS_URL = "about:downloads";
+        ABOUT_HOME_URL = "about:home";
+        ABOUT_ADDONS_URL = "about:addons";
+        ABOUT_APPS_URL = "about:apps";
+        ABOUT_ABOUT_URL = "about:about";
+        ABOUT_SCHEME = "about:";
+
+        // About pages' titles
+        ABOUT_HOME_TITLE = "";
+
+        // Context Menu item strings
+        CONTEXT_MENU_BOOKMARK_LINK = "Bookmark Link";
+        CONTEXT_MENU_OPEN_LINK_IN_NEW_TAB = "Open Link in New Tab";
+        CONTEXT_MENU_OPEN_IN_NEW_TAB = res.getString(R.string.contextmenu_open_new_tab);
+        CONTEXT_MENU_OPEN_LINK_IN_PRIVATE_TAB = "Open Link in Private Tab";
+        CONTEXT_MENU_OPEN_IN_PRIVATE_TAB = res.getString(R.string.contextmenu_open_private_tab);
+        CONTEXT_MENU_COPY_LINK = "Copy Link";
+        CONTEXT_MENU_SHARE_LINK = "Share Link";
+        CONTEXT_MENU_EDIT = res.getString(R.string.contextmenu_top_sites_edit);
+        CONTEXT_MENU_SHARE = res.getString(R.string.contextmenu_share);
+        CONTEXT_MENU_REMOVE = res.getString(R.string.contextmenu_remove);
+        CONTEXT_MENU_COPY_ADDRESS = res.getString(R.string.contextmenu_copyurl);
+        CONTEXT_MENU_EDIT_SITE_SETTINGS = res.getString(R.string.contextmenu_site_settings);
+        CONTEXT_MENU_ADD_TO_HOME_SCREEN = res.getString(R.string.contextmenu_add_to_launcher);
+        CONTEXT_MENU_PIN_SITE = res.getString(R.string.contextmenu_top_sites_pin);
+        CONTEXT_MENU_UNPIN_SITE = res.getString(R.string.contextmenu_top_sites_unpin);
+
+        // Context Menu menu items
+        CONTEXT_MENU_ITEMS_IN_PRIVATE_TAB = new String[] {
+                CONTEXT_MENU_OPEN_LINK_IN_PRIVATE_TAB,
+                CONTEXT_MENU_COPY_LINK,
+                CONTEXT_MENU_SHARE_LINK,
+                CONTEXT_MENU_BOOKMARK_LINK
+        };
+
+        CONTEXT_MENU_ITEMS_IN_NORMAL_TAB = new String[] {
+                CONTEXT_MENU_OPEN_LINK_IN_NEW_TAB,
+                CONTEXT_MENU_OPEN_LINK_IN_PRIVATE_TAB,
+                CONTEXT_MENU_COPY_LINK,
+                CONTEXT_MENU_SHARE_LINK,
+                CONTEXT_MENU_BOOKMARK_LINK
+        };
+
+        BOOKMARK_CONTEXT_MENU_ITEMS = new String[] {
+                CONTEXT_MENU_OPEN_IN_NEW_TAB,
+                CONTEXT_MENU_OPEN_IN_PRIVATE_TAB,
+                CONTEXT_MENU_COPY_ADDRESS,
+                CONTEXT_MENU_SHARE,
+                CONTEXT_MENU_EDIT,
+                CONTEXT_MENU_REMOVE,
+                CONTEXT_MENU_ADD_TO_HOME_SCREEN
+        };
+
+        CONTEXT_MENU_ITEMS_IN_URL_BAR = new String[] {
+                CONTEXT_MENU_SHARE,
+                CONTEXT_MENU_COPY_ADDRESS,
+                CONTEXT_MENU_EDIT_SITE_SETTINGS,
+                CONTEXT_MENU_ADD_TO_HOME_SCREEN
+        };
+
+        TITLE_PLACE_HOLDER = res.getString(R.string.url_bar_default_text);
+
+        // Robocop page urls
+        // Note: please use getAbsoluteUrl(String url) on each robocop url to get the correct url
+        ROBOCOP_BIG_LINK_URL = "/robocop/robocop_big_link.html";
+        ROBOCOP_BIG_MAILTO_URL = "/robocop/robocop_big_mailto.html";
+        ROBOCOP_BLANK_PAGE_01_URL = "/robocop/robocop_blank_01.html";
+        ROBOCOP_BLANK_PAGE_02_URL = "/robocop/robocop_blank_02.html";
+        ROBOCOP_BLANK_PAGE_03_URL = "/robocop/robocop_blank_03.html";
+        ROBOCOP_BLANK_PAGE_04_URL = "/robocop/robocop_blank_04.html";
+        ROBOCOP_BLANK_PAGE_05_URL = "/robocop/robocop_blank_05.html";
+        ROBOCOP_BOXES_URL = "/robocop/robocop_boxes.html";
+        ROBOCOP_GEOLOCATION_URL = "/robocop/robocop_geolocation.html";
+        ROBOCOP_LOGIN_URL = "/robocop/robocop_login.html";
+        ROBOCOP_POPUP_URL = "/robocop/robocop_popup.html";
+        ROBOCOP_OFFLINE_STORAGE_URL = "/robocop/robocop_offline_storage.html";
+        ROBOCOP_PICTURE_LINK_URL = "/robocop/robocop_picture_link.html";
+        ROBOCOP_SEARCH_URL = "/robocop/robocop_search.html";
+        ROBOCOP_TEXT_PAGE_URL = "/robocop/robocop_text_page.html";
+        ROBOCOP_ADOBE_FLASH_URL = "/robocop/robocop_adobe_flash.html";
+        ROBOCOP_INPUT_URL = "/robocop/robocop_input.html";
+
+        ROBOCOP_JS_HARNESS_URL = "/robocop/robocop_javascript.html";
+
+        // Robocop page titles
+        ROBOCOP_BIG_LINK_TITLE = "Big Link";
+        ROBOCOP_BIG_MAILTO_TITLE = "Big Mailto";
+        ROBOCOP_BLANK_PAGE_01_TITLE = "Browser Blank Page 01";
+        ROBOCOP_BLANK_PAGE_02_TITLE = "Browser Blank Page 02";
+        ROBOCOP_BLANK_PAGE_03_TITLE = "Browser Blank Page 03";
+        ROBOCOP_BLANK_PAGE_04_TITLE = "Browser Blank Page 04";
+        ROBOCOP_BLANK_PAGE_05_TITLE = "Browser Blank Page 05";
+        ROBOCOP_BOXES_TITLE = "Browser Box test";
+        ROBOCOP_GEOLOCATION_TITLE = "Geolocation Test Page";
+        ROBOCOP_LOGIN_TITLE = "Robocop Login";
+        ROBOCOP_OFFLINE_STORAGE_TITLE = "Robocop offline storage";
+        ROBOCOP_PICTURE_LINK_TITLE = "Picture Link";
+        ROBOCOP_SEARCH_TITLE = "Robocop Search Engine";
+        ROBOCOP_TEXT_PAGE_TITLE = "Robocop Text Page";
+        ROBOCOP_INPUT_TITLE = "Robocop Input";
+
+        // Distribution tile labels
+        DISTRIBUTION1_LABEL = "Distribution 1";
+        DISTRIBUTION2_LABEL = "Distribution 2";
+
+        // Settings menu strings
+        // Section labels - ordered as found in the settings menu
+        CUSTOMIZE_SECTION_LABEL = res.getString(R.string.pref_category_customize);
+        DISPLAY_SECTION_LABEL = res.getString(R.string.pref_category_display);
+        PRIVACY_SECTION_LABEL = res.getString(R.string.pref_category_privacy_short);
+        MOZILLA_SECTION_LABEL = res.getString(R.string.pref_category_vendor);
+        DEVELOPER_TOOLS_SECTION_LABEL = res.getString(R.string.pref_category_devtools);
+
+        // Option labels
+        // Customize
+        SYNC_LABEL = res.getString(R.string.pref_sync);
+        IMPORT_FROM_ANDROID_LABEL = res.getString(R.string.pref_import_android);
+        TABS_LABEL = res.getString(R.string.pref_restore);
+
+        // Display
+        TEXT_SIZE_LABEL = res.getString(R.string.pref_text_size);
+        TITLE_BAR_LABEL = "Title bar";
+        SCROLL_TITLE_BAR_LABEL = res.getString(R.string.pref_scroll_title_bar2);
+        TEXT_REFLOW_LABEL = res.getString(R.string.pref_reflow_on_zoom);
+        CHARACTER_ENCODING_LABEL = res.getString(R.string.pref_char_encoding);
+        PLUGINS_LABEL = res.getString(R.string.pref_plugins);
+
+        // Title bar
+        SHOW_PAGE_TITLE_LABEL = "Show page title";
+        SHOW_PAGE_ADDRESS_LABEL = "Show page address";
+
+        // Privacy
+        TRACKING_PROTECTION_LABEL = res.getString(R.string.pref_tracking_protection_title);
+        DNT_LABEL = res.getString(R.string.pref_donottrack_title);
+        COOKIES_LABEL = res.getString(R.string.pref_cookies_menu);
+        REMEMBER_PASSWORDS_LABEL = res.getString(R.string.pref_remember_signons);
+        MANAGE_LOGINS_LABEL = res.getString(R.string.pref_manage_logins);
+        MASTER_PASSWORD_LABEL = res.getString(R.string.pref_use_master_password);
+        CLEAR_PRIVATE_DATA_LABEL = res.getString(R.string.pref_clear_private_data);
+
+        // Mozilla
+        BRAND_NAME = "(Fennec|Nightly|Aurora|Firefox Beta|Firefox)";
+        ABOUT_LABEL = "About " + BRAND_NAME;
+        FAQS_LABEL = res.getString(R.string.pref_vendor_faqs);
+        FEEDBACK_LABEL = res.getString(R.string.pref_vendor_feedback);
+        LOCATION_SERVICES_LABEL = "Mozilla Location Service";
+        HEALTH_REPORT_LABEL = BRAND_NAME + " Health Report";
+        MY_HEALTH_REPORT_LABEL = res.getString(R.string.datareporting_abouthr_title);
+
+        // Developer tools
+        PAINT_FLASHING_LABEL = res.getString(R.string.pref_developer_paint_flashing);
+        REMOTE_DEBUGGING_LABEL = res.getString(R.string.pref_developer_remotedebugging);
+        LEARN_MORE_LABEL = res.getString(R.string.pref_learn_more);
+
+        // Labels for the about:home tabs
+        HISTORY_LABEL = res.getString(R.string.home_history_title);
+        TOP_SITES_LABEL = res.getString(R.string.home_top_sites_title);
+        BOOKMARKS_LABEL = res.getString(R.string.bookmarks_title);
+        READING_LIST_LABEL = res.getString(R.string.reading_list_title);
+        TODAY_LABEL = res.getString(R.string.history_today_section);
+        TABS_FROM_LAST_TIME_LABEL = "Open all tabs from last time";
+
+        // Desktop default bookmarks folders
+        BOOKMARKS_UP_TO = res.getString(R.string.home_move_up_to_filter);
+        BOOKMARKS_ROOT_LABEL = res.getString(R.string.bookmarks_title);
+        DESKTOP_FOLDER_LABEL = res.getString(R.string.bookmarks_folder_desktop);
+        TOOLBAR_FOLDER_LABEL = res.getString(R.string.bookmarks_folder_toolbar);
+        BOOKMARKS_MENU_FOLDER_LABEL = res.getString(R.string.bookmarks_folder_menu);
+        UNSORTED_FOLDER_LABEL = res.getString(R.string.bookmarks_folder_unfiled);
+
+        // Menu items - some of the items are found only on android 2.3 and lower and some only on android 3.0+
+        NEW_TAB_LABEL = res.getString(R.string.new_tab);
+        NEW_PRIVATE_TAB_LABEL = res.getString(R.string.new_private_tab);
+        SHARE_LABEL = res.getString(R.string.share);
+        FIND_IN_PAGE_LABEL = res.getString(R.string.find_in_page);
+        DESKTOP_SITE_LABEL = res.getString(R.string.desktop_mode);
+        PDF_LABEL = res.getString(R.string.save_as_pdf);
+        DOWNLOADS_LABEL = res.getString(R.string.downloads);
+        ADDONS_LABEL = res.getString(R.string.addons);
+        LOGINS_LABEL = res.getString(R.string.logins);
+        APPS_LABEL = res.getString(R.string.apps);
+        SETTINGS_LABEL = res.getString(R.string.settings);
+        GUEST_MODE_LABEL = res.getString(R.string.new_guest_session);
+        TAB_QUEUE_LABEL = res.getString(R.string.pref_tab_queue_title);
+
+        // Android 3.0+
+        TOOLS_LABEL = res.getString(R.string.tools);
+        PAGE_LABEL = res.getString(R.string.page);
+
+        // Android 2.3 and lower only
+        MORE_LABEL = "More";
+        RELOAD_LABEL = res.getString(R.string.reload);
+        FORWARD_LABEL = res.getString(R.string.forward);
+        BOOKMARK_LABEL = res.getString(R.string.bookmark);
+
+        // Bookmark Toast Notification
+        BOOKMARK_ADDED_LABEL = res.getString(R.string.bookmark_added);
+        BOOKMARK_REMOVED_LABEL = res.getString(R.string.bookmark_removed);
+        BOOKMARK_UPDATED_LABEL = res.getString(R.string.bookmark_updated);
+        BOOKMARK_OPTIONS_LABEL = res.getString(R.string.bookmark_options);
+
+        // Edit Bookmark screen
+        EDIT_BOOKMARK = res.getString(R.string.bookmark_edit_title);
+
+        // Strings used in doorhanger messages and buttons
+        GEO_MESSAGE = "Share your location with";
+        GEO_ALLOW = res.getString(R.string.share);
+        GEO_DENY = "Don't share";
+
+        OFFLINE_MESSAGE = "to store data on your device for offline use";
+        OFFLINE_ALLOW = "Allow";
+        OFFLINE_DENY = "Don't allow";
+
+        LOGIN_MESSAGE = "Save password";
+        LOGIN_ALLOW = "Save";
+        LOGIN_DENY = "Don't save";
+
+        POPUP_MESSAGE = "prevented this site from opening";
+        POPUP_ALLOW = res.getString(R.string.pref_panels_show);
+        POPUP_DENY = "Don't show";
+
+        CONTENT_DESCRIPTION_READER_MODE_BUTTON = "Enter Reader View";
+    }
+
+    public static void initialize(Resources res) {
+        if (instance != null) {
+            throw new IllegalStateException(StringHelper.class.getSimpleName() + " already Initialized");
+        }
+        instance = new StringHelper(res);
+    }
+
+    public static StringHelper get() {
+        if (instance == null) {
+            throw new IllegalStateException(StringHelper.class.getSimpleName() + " instance is not yet initialized. Use StringHelper.initialize(Resources) first.");
+        }
+        return instance;
+    }
 
     /**
      * Build a URL for loading a Javascript file in the Robocop Javascript
      * harness.
      * <p>
      * We append a random slug to avoid caching: see
      * <a href="https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#Bypassing_the_cache">https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#Bypassing_the_cache</a>.
      *
      * @param javascriptUrl to load.
      * @return URL with harness wrapper.
      */
-    public static String getHarnessUrlForJavascript(String javascriptUrl) {
+    public String getHarnessUrlForJavascript(String javascriptUrl) {
         // We include a slug to make sure we never cache the harness.
         return ROBOCOP_JS_HARNESS_URL +
                 "?slug=" + System.currentTimeMillis() +
                 "&path=" + javascriptUrl;
     }
-
-    // Robocop page titles
-    public static final String ROBOCOP_BIG_LINK_TITLE = "Big Link";
-    public static final String ROBOCOP_BIG_MAILTO_TITLE = "Big Mailto";
-    public static final String ROBOCOP_BLANK_PAGE_01_TITLE = "Browser Blank Page 01";
-    public static final String ROBOCOP_BLANK_PAGE_02_TITLE = "Browser Blank Page 02";
-    public static final String ROBOCOP_BLANK_PAGE_03_TITLE = "Browser Blank Page 03";
-    public static final String ROBOCOP_BLANK_PAGE_04_TITLE = "Browser Blank Page 04";
-    public static final String ROBOCOP_BLANK_PAGE_05_TITLE = "Browser Blank Page 05";
-    public static final String ROBOCOP_BOXES_TITLE = "Browser Box test";
-    public static final String ROBOCOP_GEOLOCATION_TITLE = "Geolocation Test Page";
-    public static final String ROBOCOP_LOGIN_TITLE = "Robocop Login";
-    public static final String ROBOCOP_OFFLINE_STORAGE_TITLE = "Robocop offline storage";
-    public static final String ROBOCOP_PICTURE_LINK_TITLE = "Picture Link";
-    public static final String ROBOCOP_SEARCH_TITLE = "Robocop Search Engine";
-    public static final String ROBOCOP_TEXT_PAGE_TITLE = "Robocop Text Page";
-    public static final String ROBOCOP_INPUT_TITLE = "Robocop Input";
-
-    // Distribution tile labels
-    public static final String DISTRIBUTION1_LABEL = "Distribution 1";
-    public static final String DISTRIBUTION2_LABEL = "Distribution 2";
-
-    // Settings menu strings
-    // Section labels - ordered as found in the settings menu
-    public static final String CUSTOMIZE_SECTION_LABEL = "Customize";
-    public static final String DISPLAY_SECTION_LABEL = "Display";
-    public static final String PRIVACY_SECTION_LABEL = "Privacy";
-    public static final String MOZILLA_SECTION_LABEL = "Mozilla";
-    public static final String DEVELOPER_TOOLS_SECTION_LABEL = "Developer tools";
-
-    // Option labels
-    // Customize
-    public static final String SYNC_LABEL = "Sync";
-    public static final String IMPORT_FROM_ANDROID_LABEL = "Import from Android";
-    public static final String TABS_LABEL = "Tabs";
-
-    // Display
-    public static final String TEXT_SIZE_LABEL = "Text size";
-    public static final String TITLE_BAR_LABEL = "Title bar";
-    public static final String SCROLL_TITLE_BAR_LABEL = "Full-screen browsing";
-    public static final String TEXT_REFLOW_LABEL = "Text reflow";
-    public static final String CHARACTER_ENCODING_LABEL = "Character encoding";
-    public static final String PLUGINS_LABEL = "Plugins";
-
-    // Title bar
-    public static final String SHOW_PAGE_TITLE_LABEL = "Show page title";
-    public static final String SHOW_PAGE_ADDRESS_LABEL = "Show page address";
-
-    // Privacy
-    public static final String TRACKING_PROTECTION_LABEL = "Tracking protection";
-    public static final String DNT_LABEL = "Do not track";
-    public static final String COOKIES_LABEL = "Cookies";
-    public static final String REMEMBER_PASSWORDS_LABEL = "Remember passwords";
-    public static final String MANAGE_LOGINS_LABEL = "Manage logins";
-    public static final String MASTER_PASSWORD_LABEL = "Use master password";
-    public static final String CLEAR_PRIVATE_DATA_LABEL = "Clear now";
-
-    // Mozilla
-    public static final String BRAND_NAME = "(Fennec|Nightly|Aurora|Firefox Beta|Firefox)";
-    public static final String ABOUT_LABEL = "About " + BRAND_NAME;
-    public static final String FAQS_LABEL = "FAQs";
-    public static final String FEEDBACK_LABEL = "Give feedback";
-    public static final String LOCATION_SERVICES_LABEL = "Mozilla Location Service";
-    public static final String HEALTH_REPORT_LABEL = BRAND_NAME + " Health Report";
-    public static final String MY_HEALTH_REPORT_LABEL = "View my Health Report";
-
-    // Developer tools
-    public static final String PAINT_FLASHING_LABEL = "Paint flashing";
-    public static final String REMOTE_DEBUGGING_LABEL = "Remote debugging";
-    public static final String LEARN_MORE_LABEL = "Learn more";
-
-    // Labels for the about:home tabs
-    public static final String HISTORY_LABEL = "HISTORY";
-    public static final String TOP_SITES_LABEL = "TOP SITES";
-    public static final String BOOKMARKS_LABEL = "BOOKMARKS";
-    public static final String READING_LIST_LABEL = "READING LIST";
-    public static final String TODAY_LABEL = "Today";
-    public static final String TABS_FROM_LAST_TIME_LABEL = "Open all tabs from last time";
-
-    // Desktop default bookmarks folders
-    public static final String BOOKMARKS_UP_TO = "Up to %s";
-    public static final String BOOKMARKS_ROOT_LABEL = "Bookmarks";
-    public static final String DESKTOP_FOLDER_LABEL = "Desktop Bookmarks";
-    public static final String TOOLBAR_FOLDER_LABEL = "Bookmarks Toolbar";
-    public static final String BOOKMARKS_MENU_FOLDER_LABEL = "Bookmarks Menu";
-    public static final String UNSORTED_FOLDER_LABEL = "Unsorted Bookmarks";
-
-    // Menu items - some of the items are found only on android 2.3 and lower and some only on android 3.0+
-    public static final String NEW_TAB_LABEL = "New Tab";
-    public static final String NEW_PRIVATE_TAB_LABEL = "New Private Tab";
-    public static final String SHARE_LABEL = "Share";
-    public static final String FIND_IN_PAGE_LABEL = "Find in Page";
-    public static final String DESKTOP_SITE_LABEL = "Request Desktop Site";
-    public static final String PDF_LABEL = "Save as PDF";
-    public static final String DOWNLOADS_LABEL = "Downloads";
-    public static final String ADDONS_LABEL = "Add-ons";
-    public static final String LOGINS_LABEL = "Logins";
-    public static final String APPS_LABEL = "Apps";
-    public static final String SETTINGS_LABEL = "Settings";
-    public static final String GUEST_MODE_LABEL = "New Guest Session";
-    public static final String TAB_QUEUE_LABEL = "Open later";
-
-    // Android 3.0+
-    public static final String TOOLS_LABEL = "Tools";
-    public static final String PAGE_LABEL = "Page";
-
-    // Android 2.3 and lower only
-    public static final String MORE_LABEL = "More";
-    public static final String RELOAD_LABEL = "Reload";
-    public static final String FORWARD_LABEL = "Forward";
-    public static final String BOOKMARK_LABEL = "Bookmark";
-
-    // Bookmark Toast Notification
-    public static final String BOOKMARK_ADDED_LABEL = "Bookmark added";
-    public static final String BOOKMARK_REMOVED_LABEL = "Bookmark removed";
-    public static final String BOOKMARK_UPDATED_LABEL = "Bookmark updated";
-    public static final String BOOKMARK_OPTIONS_LABEL = "Options";
-
-    // Edit Bookmark screen
-    public static final String EDIT_BOOKMARK = "Edit Bookmark";
-
-    // Strings used in doorhanger messages and buttons
-    public static final String GEO_MESSAGE = "Share your location with";
-    public static final String GEO_ALLOW = "Share";
-    public static final String GEO_DENY = "Don't share";
-
-    public static final String OFFLINE_MESSAGE = "to store data on your device for offline use";
-    public static final String OFFLINE_ALLOW = "Allow";
-    public static final String OFFLINE_DENY = "Don't allow";
-
-    public static final String LOGIN_MESSAGE = "Save password";
-    public static final String LOGIN_ALLOW = "Save";
-    public static final String LOGIN_DENY = "Don't save";
-
-    public static final String POPUP_MESSAGE = "prevented this site from opening";
-    public static final String POPUP_ALLOW = "Show";
-    public static final String POPUP_DENY = "Don't show";
-
-    // Strings used as content description, e.g. for ImageButtons
-    public static final String CONTENT_DESCRIPTION_READER_MODE_BUTTON = "Enter Reader View";
 }
--- a/mobile/android/base/tests/UITest.java
+++ b/mobile/android/base/tests/UITest.java
@@ -13,16 +13,17 @@ import org.mozilla.gecko.GeckoEvent;
 import org.mozilla.gecko.tests.components.AboutHomeComponent;
 import org.mozilla.gecko.tests.components.AppMenuComponent;
 import org.mozilla.gecko.tests.components.BaseComponent;
 import org.mozilla.gecko.tests.components.GeckoViewComponent;
 import org.mozilla.gecko.tests.components.ToolbarComponent;
 import org.mozilla.gecko.tests.helpers.HelperInitializer;
 
 import android.content.Intent;
+import android.content.res.Resources;
 import android.text.TextUtils;
 
 import com.jayway.android.robotium.solo.Solo;
 
 /**
  * A base test class for Robocop (UI-centric) tests. This and the related classes attempt to
  * provide a framework to improve upon the issues discovered with the previous BaseTest
  * implementation by providing simple test authorship and framework extension, consistency,
--- a/mobile/android/base/tests/components/ToolbarComponent.java
+++ b/mobile/android/base/tests/components/ToolbarComponent.java
@@ -52,18 +52,19 @@ public class ToolbarComponent extends Ba
         return this;
     }
 
     public ToolbarComponent assertTitle(final String url) {
         fAssertNotNull("The url argument is not null", url);
 
         final String expected;
         final String absoluteURL = NavigationHelper.adjustUrl(url);
-        if (StringHelper.ABOUT_HOME_URL.equals(absoluteURL)) {
-            expected = StringHelper.ABOUT_HOME_TITLE;
+
+        if (StringHelper.get().ABOUT_HOME_URL.equals(absoluteURL)) {
+            expected = StringHelper.get().ABOUT_HOME_TITLE;
         } else if (absoluteURL.startsWith(URL_HTTP_PREFIX)) {
             expected = absoluteURL.substring(URL_HTTP_PREFIX.length());
         } else {
             expected = absoluteURL;
         }
 
         fAssertEquals("The Toolbar title is " + expected, expected, getTitle());
         return this;
@@ -125,17 +126,17 @@ public class ToolbarComponent extends Ba
     }
 
     private ImageButton getReaderModeButton() {
         final PageActionLayout pageActionLayout = getPageActionLayout();
         final int count = pageActionLayout.getChildCount();
 
         for (int i = 0; i < count; i++) {
             final View view = pageActionLayout.getChildAt(i);
-            if (StringHelper.CONTENT_DESCRIPTION_READER_MODE_BUTTON.equals(view.getContentDescription())) {
+            if (StringHelper.get().CONTENT_DESCRIPTION_READER_MODE_BUTTON.equals(view.getContentDescription())) {
                 return (ImageButton) view;
             }
         }
 
         return null;
     }
 
     /**
--- a/mobile/android/base/tests/testAboutHomeVisibility.java
+++ b/mobile/android/base/tests/testAboutHomeVisibility.java
@@ -12,42 +12,42 @@ import org.mozilla.gecko.tests.helpers.N
 /**
  * Tests the visibility of about:home after various interactions with the browser.
  */
 public class testAboutHomeVisibility extends UITest {
     public void testAboutHomeVisibility() {
         GeckoHelper.blockForReady();
 
         // Check initial state on about:home.
-        mToolbar.assertTitle(StringHelper.ABOUT_HOME_URL);
+        mToolbar.assertTitle(mStringHelper.ABOUT_HOME_URL);
         mAboutHome.assertVisible()
                   .assertCurrentPanel(PanelType.TOP_SITES);
 
         // Go to blank 01.
-        NavigationHelper.enterAndLoadUrl(StringHelper.ROBOCOP_BLANK_PAGE_01_URL);
-        mToolbar.assertTitle(StringHelper.ROBOCOP_BLANK_PAGE_01_URL);
+        NavigationHelper.enterAndLoadUrl(mStringHelper.ROBOCOP_BLANK_PAGE_01_URL);
+        mToolbar.assertTitle(mStringHelper.ROBOCOP_BLANK_PAGE_01_URL);
         mAboutHome.assertNotVisible();
 
         // Go to blank 02.
-        NavigationHelper.enterAndLoadUrl(StringHelper.ROBOCOP_BLANK_PAGE_02_URL);
-        mToolbar.assertTitle(StringHelper.ROBOCOP_BLANK_PAGE_02_URL);
+        NavigationHelper.enterAndLoadUrl(mStringHelper.ROBOCOP_BLANK_PAGE_02_URL);
+        mToolbar.assertTitle(mStringHelper.ROBOCOP_BLANK_PAGE_02_URL);
         mAboutHome.assertNotVisible();
 
         // Enter editing mode, where the about:home UI should be visible.
         mToolbar.enterEditingMode();
         mAboutHome.assertVisible()
                   .assertCurrentPanel(PanelType.TOP_SITES);
 
         // Dismiss editing mode, where the about:home UI should be gone.
         mToolbar.dismissEditingMode();
         mAboutHome.assertNotVisible();
 
         // Loading about:home should show about:home again.
-        NavigationHelper.enterAndLoadUrl(StringHelper.ABOUT_HOME_URL);
-        mToolbar.assertTitle(StringHelper.ABOUT_HOME_URL);
+        NavigationHelper.enterAndLoadUrl(mStringHelper.ABOUT_HOME_URL);
+        mToolbar.assertTitle(mStringHelper.ABOUT_HOME_URL);
         mAboutHome.assertVisible()
                   .assertCurrentPanel(PanelType.TOP_SITES);
 
         // We can navigate to about:home panels by panel UUID.
         mAboutHome.navigateToBuiltinPanelType(PanelType.BOOKMARKS)
                   .assertVisible()
                   .assertCurrentPanel(PanelType.BOOKMARKS);
         mAboutHome.navigateToBuiltinPanelType(PanelType.HISTORY)
--- a/mobile/android/base/tests/testAboutPage.java
+++ b/mobile/android/base/tests/testAboutPage.java
@@ -16,37 +16,37 @@ import android.app.Activity;
  *  - check that about: loads from Settings/About...
  */
 public class testAboutPage extends PixelTest {
 
     public void testAboutPage() {
         blockForGeckoReady();
 
         // Load the about: page and verify its title.
-        String url = StringHelper.ABOUT_SCHEME;
+        String url = mStringHelper.ABOUT_SCHEME;
         loadAndPaint(url);
 
         verifyUrlBarTitle(url);
 
         // Open a new page to remove the about: page from the current tab.
-        url = getAbsoluteUrl(StringHelper.ROBOCOP_BLANK_PAGE_01_URL);
+        url = getAbsoluteUrl(mStringHelper.ROBOCOP_BLANK_PAGE_01_URL);
         inputAndLoadUrl(url);
 
         // At this point the page title should have been set.
         verifyUrlBarTitle(url);
 
         // Set up listeners to catch the page load we're about to do.
         Actions.EventExpecter tabEventExpecter = mActions.expectGeckoEvent("Tab:Added");
         Actions.EventExpecter contentEventExpecter = mActions.expectGeckoEvent("DOMContentLoaded");
 
-        selectSettingsItem(StringHelper.MOZILLA_SECTION_LABEL, StringHelper.ABOUT_LABEL);
+        selectSettingsItem(mStringHelper.MOZILLA_SECTION_LABEL, mStringHelper.ABOUT_LABEL);
 
         // Wait for the new tab and page to load
         tabEventExpecter.blockForEvent();
         contentEventExpecter.blockForEvent();
 
         tabEventExpecter.unregisterListener();
         contentEventExpecter.unregisterListener();
 
         // Make sure the about: page was loaded.
-        verifyUrlBarTitle(StringHelper.ABOUT_SCHEME);
+        verifyUrlBarTitle(mStringHelper.ABOUT_SCHEME);
     }
 }
--- a/mobile/android/base/tests/testAddSearchEngine.java
+++ b/mobile/android/base/tests/testAddSearchEngine.java
@@ -27,25 +27,25 @@ import com.jayway.android.robotium.solo.
  * 3. Get the number of search engines after adding the new one and verify it has increased by 1.
  */
 public class testAddSearchEngine extends AboutHomeTest {
     private final int MAX_WAIT_TEST_MS = 5000;
     private final String SEARCH_TEXT = "Firefox for Android";
     private final String ADD_SEARCHENGINE_OPTION_TEXT = "Add as Search Engine";
 
     public void testAddSearchEngine() {
-        String blankPageURL = getAbsoluteUrl(StringHelper.ROBOCOP_BLANK_PAGE_01_URL);
-        String searchEngineURL = getAbsoluteUrl(StringHelper.ROBOCOP_SEARCH_URL);
+        String blankPageURL = getAbsoluteUrl(mStringHelper.ROBOCOP_BLANK_PAGE_01_URL);
+        String searchEngineURL = getAbsoluteUrl(mStringHelper.ROBOCOP_SEARCH_URL);
 
         blockForGeckoReady();
         int height = mDriver.getGeckoTop() + 150;
         int width = mDriver.getGeckoLeft() + 150;
 
         inputAndLoadUrl(blankPageURL);
-        waitForText(StringHelper.ROBOCOP_BLANK_PAGE_01_TITLE);
+        waitForText(mStringHelper.ROBOCOP_BLANK_PAGE_01_TITLE);
 
         // Get the searchengine data by clicking the awesomebar - this causes Gecko to send Java the list
         // of search engines.
         Actions.EventExpecter searchEngineDataEventExpector = mActions.expectGeckoEvent("SearchEngines:Data");
         focusUrlBar();
         mActions.sendKeys(SEARCH_TEXT);
         String eventData = searchEngineDataEventExpector.blockForEventData();
         searchEngineDataEventExpector.unregisterListener();
@@ -76,22 +76,22 @@ public class testAddSearchEngine extends
         ImageView view = waitForViewWithDescription(ImageView.class, ADD_SEARCHENGINE_OPTION_TEXT);
         mAsserter.isnot(view, null, "The action mode was opened");
 
         // Add the search engine
         mSolo.clickOnView(view);
         waitForText("Cancel");
         clickOnButton("OK");
         mAsserter.ok(!mSolo.searchText(ADD_SEARCHENGINE_OPTION_TEXT), "Adding the Search Engine", "The add Search Engine pop-up has been closed");
-        waitForText(StringHelper.ROBOCOP_SEARCH_TITLE); // Make sure the pop-up is closed and we are back at the searchengine page
+        waitForText(mStringHelper.ROBOCOP_SEARCH_TITLE); // Make sure the pop-up is closed and we are back at the searchengine page
 
         // Load Robocop Blank 1 again to give the time for the searchengine to be added
         // TODO: This is a potential source of intermittent oranges - it's a race condition!
         loadUrl(blankPageURL);
-        waitForText(StringHelper.ROBOCOP_BLANK_PAGE_01_TITLE);
+        waitForText(mStringHelper.ROBOCOP_BLANK_PAGE_01_TITLE);
 
         // Load search engines again and check that the quantity of engines has increased by 1.
         searchEngineDataEventExpector = mActions.expectGeckoEvent("SearchEngines:Data");
         focusUrlBar();
         mActions.sendKeys(SEARCH_TEXT);
         eventData = searchEngineDataEventExpector.blockForEventData();
 
         try {
@@ -154,12 +154,12 @@ public class testAddSearchEngine extends
                     return false;
                 }
                 return (adapter.getCount() == expectedCount);
             }
         }, MAX_WAIT_TEST_MS);
 
         // Exit about:home
         mActions.sendSpecialKey(Actions.SpecialKey.BACK);
-        waitForText(StringHelper.ROBOCOP_BLANK_PAGE_01_TITLE);
+        waitForText(mStringHelper.ROBOCOP_BLANK_PAGE_01_TITLE);
         mAsserter.ok(correctNumSearchEnginesDisplayed, expectedCount + " Search Engines should be displayed" , "The correct number of Search Engines has been displayed");
     }
 }
--- a/mobile/android/base/tests/testAddonManager.java
+++ b/mobile/android/base/tests/testAddonManager.java
@@ -16,22 +16,22 @@ import android.util.DisplayMetrics;
  * 2) Open the Add-on Manager by visiting about:addons in the URL bar.
  * 3) Open a new tab, select the Add-ons menu item, then verify that the existing
  *    Add-on Manager tab was selected, instead of opening a new tab.
  */
 public class testAddonManager extends PixelTest  {
     public void testAddonManager() {
         Actions.EventExpecter tabEventExpecter;
         Actions.EventExpecter contentEventExpecter;
-        final String aboutAddonsURL = StringHelper.ABOUT_ADDONS_URL;
+        final String aboutAddonsURL = mStringHelper.ABOUT_ADDONS_URL;
 
         blockForGeckoReady();
 
         // Use the menu to open the Addon Manger
-        selectMenuItem(StringHelper.ADDONS_LABEL);
+        selectMenuItem(mStringHelper.ADDONS_LABEL);
 
         // Set up listeners to catch the page load we're about to do
         tabEventExpecter = mActions.expectGeckoEvent("Tab:Added");
         contentEventExpecter = mActions.expectGeckoEvent("DOMContentLoaded");
 
         // Wait for the new tab and page to load
         tabEventExpecter.blockForEvent();
         contentEventExpecter.blockForEvent();
@@ -49,31 +49,31 @@ public class testAddonManager extends Pi
         loadAndPaint(aboutAddonsURL);
         verifyUrlBarTitle(aboutAddonsURL);
 
         // Setup wait for tab to spawn and load
         tabEventExpecter = mActions.expectGeckoEvent("Tab:Added");
         contentEventExpecter = mActions.expectGeckoEvent("DOMContentLoaded");
 
         // Open a new tab
-        final String blankURL = getAbsoluteUrl(StringHelper.ROBOCOP_BLANK_PAGE_01_URL);
+        final String blankURL = getAbsoluteUrl(mStringHelper.ROBOCOP_BLANK_PAGE_01_URL);
         addTab(blankURL);
 
         // Wait for the new tab and page to load
         tabEventExpecter.blockForEvent();
         contentEventExpecter.blockForEvent();
 
         tabEventExpecter.unregisterListener();
         contentEventExpecter.unregisterListener();
 
         // Verify tab count has increased
         verifyTabCount(2);
 
         // Verify the page was opened
         verifyUrlBarTitle(blankURL);
 
         // Addons Manager is not opened 2 separate times when opened from the menu
-        selectMenuItem(StringHelper.ADDONS_LABEL);
+        selectMenuItem(mStringHelper.ADDONS_LABEL);
 
         // Verify tab count not increased
         verifyTabCount(2);
     }
 }
--- a/mobile/android/base/tests/testAdobeFlash.java
+++ b/mobile/android/base/tests/testAdobeFlash.java
@@ -30,17 +30,17 @@ public class testAdobeFlash extends Pixe
             jsonPref.put("value", "1");
             setPreferenceAndWaitForChange(jsonPref);
         } catch (Exception ex) {
             mAsserter.ok(false, "exception in testAdobeFlash", ex.toString());
         }
 
         blockForGeckoReady();
 
-        String url = getAbsoluteUrl(StringHelper.ROBOCOP_ADOBE_FLASH_URL);
+        String url = getAbsoluteUrl(mStringHelper.ROBOCOP_ADOBE_FLASH_URL);
         PaintedSurface painted = loadAndGetPainted(url);
 
         mAsserter.ispixel(painted.getPixelAt(0, 0), 0, 0xff, 0, "Pixel at 0, 0");
         mAsserter.ispixel(painted.getPixelAt(50, 50), 0, 0xff, 0, "Pixel at 50, 50");
         mAsserter.ispixel(painted.getPixelAt(101, 0), 0xff, 0xff, 0xff, "Pixel at 101, 0");
         mAsserter.ispixel(painted.getPixelAt(0, 101), 0xff, 0xff, 0xff, "Pixel at 0, 101");
 
     }
--- a/mobile/android/base/tests/testAppMenuPathways.java
+++ b/mobile/android/base/tests/testAppMenuPathways.java
@@ -46,17 +46,17 @@ public class testAppMenuPathways extends
         // Mock video playback with the generated message and Content:LocationChange event.
         Tabs.getInstance().handleMessage("Content:LocationChange", message);
 
         // Save as pdf menu is disabled while playing video.
         mAppMenu.assertMenuItemIsDisabledAndVisible(AppMenuComponent.PageMenuItem.SAVE_AS_PDF);
 
         // The above mock video playback test changes Java state, but not the associated JS state.
         // Navigate to a new page so that the Java state is cleared.
-        NavigationHelper.enterAndLoadUrl(StringHelper.ROBOCOP_BLANK_PAGE_01_URL);
-        mToolbar.assertTitle(StringHelper.ROBOCOP_BLANK_PAGE_01_URL);
+        NavigationHelper.enterAndLoadUrl(mStringHelper.ROBOCOP_BLANK_PAGE_01_URL);
+        mToolbar.assertTitle(mStringHelper.ROBOCOP_BLANK_PAGE_01_URL);
 
         // Test save as pdf functionality.
         // The following call doesn't wait for the resulting pdf but checks that no exception are thrown.
         // NOTE: save as pdf functionality must be done at the end as it is slow and cause other test operations to fail.
         mAppMenu.pressMenuItem(AppMenuComponent.PageMenuItem.SAVE_AS_PDF);
     }
 }
--- a/mobile/android/base/tests/testAwesomebar.java
+++ b/mobile/android/base/tests/testAwesomebar.java
@@ -3,17 +3,17 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 package org.mozilla.gecko.tests;
 
 public class testAwesomebar extends BaseTest {
     public void testAwesomebar() {
         blockForGeckoReady();
 
-        String url = getAbsoluteUrl(StringHelper.ROBOCOP_BLANK_PAGE_01_URL);
+        String url = getAbsoluteUrl(mStringHelper.ROBOCOP_BLANK_PAGE_01_URL);
         inputAndLoadUrl(url);
 
         mDriver.setupScrollHandling();
         // Calculate where we should be dragging.
         int midX = mDriver.getGeckoLeft() + mDriver.getGeckoWidth()/2;
         int midY = mDriver.getGeckoTop() + mDriver.getGeckoHeight()/2;
         int endY = mDriver.getGeckoTop() + mDriver.getGeckoHeight()/10;
         for (int i = 0; i < 10; i++) {
--- a/mobile/android/base/tests/testAxisLocking.java
+++ b/mobile/android/base/tests/testAxisLocking.java
@@ -12,17 +12,17 @@ import org.mozilla.gecko.PaintedSurface;
  * - Load page and verify it draws
  * - Drag page upwards 100 pixels at a 5-degree angle off the vertical axis
  * - Verify that the 5-degree angle was thrown out and it dragged vertically
  * - Drag page upwards at a 45-degree angle
  * - Verify that the 45-degree angle was not thrown out and it dragged diagonally
  */
 public class testAxisLocking extends PixelTest {
     public void testAxisLocking() {
-        String url = getAbsoluteUrl(StringHelper.ROBOCOP_BOXES_URL);
+        String url = getAbsoluteUrl(mStringHelper.ROBOCOP_BOXES_URL);
 
         MotionEventHelper meh = new MotionEventHelper(getInstrumentation(), mDriver.getGeckoLeft(), mDriver.getGeckoTop());
 
         blockForGeckoReady();
 
         // load page and check we're at 0,0
         loadAndVerifyBoxes(url);
 
--- a/mobile/android/base/tests/testBookmark.java
+++ b/mobile/android/base/tests/testBookmark.java
@@ -6,42 +6,42 @@ package org.mozilla.gecko.tests;
 
 import com.jayway.android.robotium.solo.Condition;
 
 public class testBookmark extends AboutHomeTest {
     private static String BOOKMARK_URL;
     private static final int WAIT_FOR_BOOKMARKED_TIMEOUT = 10000;
 
     public void testBookmark() {
-        BOOKMARK_URL = getAbsoluteUrl(StringHelper.ROBOCOP_BLANK_PAGE_01_URL);
+        BOOKMARK_URL = getAbsoluteUrl(mStringHelper.ROBOCOP_BLANK_PAGE_01_URL);
         runAboutHomeTest();
         runMenuTest();
     }
 
     public void runMenuTest() {
         mAsserter.is(mDatabaseHelper.isBookmark(BOOKMARK_URL), false, "Page is not bookmarked initially");
         setUpBookmark(); // loads the page, taps the star button, and waits for the "Bookmark Added" message
         waitForBookmarked(true);
 
         cleanUpBookmark(); // loads the page, taps the star button, and waits for the "Bookmark Removed" message
         waitForBookmarked(false);
     }
 
     public void runAboutHomeTest() {
         blockForGeckoReady();
-        for (String url:StringHelper.DEFAULT_BOOKMARKS_URLS) {
+        for (String url : mStringHelper.DEFAULT_BOOKMARKS_URLS) {
             mAsserter.ok(mDatabaseHelper.isBookmark(url), "Checking that " + url + " is bookmarked by default", url + " is bookmarked");
         }
 
-        mDatabaseHelper.addOrUpdateMobileBookmark(StringHelper.ROBOCOP_BLANK_PAGE_01_TITLE, BOOKMARK_URL);
+        mDatabaseHelper.addOrUpdateMobileBookmark(mStringHelper.ROBOCOP_BLANK_PAGE_01_TITLE, BOOKMARK_URL);
         waitForBookmarked(true);
 
         isBookmarkDisplayed(BOOKMARK_URL);
         loadBookmark(BOOKMARK_URL);
-        verifyUrlBarTitle(StringHelper.ROBOCOP_BLANK_PAGE_01_URL);
+        verifyUrlBarTitle(mStringHelper.ROBOCOP_BLANK_PAGE_01_URL);
 
         mDatabaseHelper.deleteBookmark(BOOKMARK_URL);
         waitForBookmarked(false);
     }
 
     private void waitForBookmarked(final boolean isBookmarked) {
         boolean bookmarked = waitForCondition(new Condition() {
             @Override
@@ -52,21 +52,21 @@ public class testBookmark extends AboutH
             }
         }, WAIT_FOR_BOOKMARKED_TIMEOUT);
         mAsserter.is(bookmarked, true, BOOKMARK_URL + " was " + (isBookmarked ? "added as a bookmark" : "removed from bookmarks"));
     }
 
     private void setUpBookmark() {
         // Bookmark a page for the test
         loadUrl(BOOKMARK_URL);
-        waitForText(StringHelper.ROBOCOP_BLANK_PAGE_01_TITLE);
+        waitForText(mStringHelper.ROBOCOP_BLANK_PAGE_01_TITLE);
         toggleBookmark();
-        mAsserter.is(waitForText(StringHelper.BOOKMARK_ADDED_LABEL), true, "bookmark added successfully");
+        mAsserter.is(waitForText(mStringHelper.BOOKMARK_ADDED_LABEL), true, "bookmark added successfully");
     }
 
     private void cleanUpBookmark() {
         // Go back to the page we bookmarked
         loadUrl(BOOKMARK_URL);
-        waitForText(StringHelper.ROBOCOP_BLANK_PAGE_01_TITLE);
+        waitForText(mStringHelper.ROBOCOP_BLANK_PAGE_01_TITLE);
         toggleBookmark();
-        mAsserter.is(waitForText(StringHelper.BOOKMARK_REMOVED_LABEL), true, "bookmark removed successfully");
+        mAsserter.is(waitForText(mStringHelper.BOOKMARK_REMOVED_LABEL), true, "bookmark removed successfully");
     }
 }
--- a/mobile/android/base/tests/testBookmarkFolders.java
+++ b/mobile/android/base/tests/testBookmarkFolders.java
@@ -16,72 +16,72 @@ import android.widget.ListView;
 import android.widget.TextView;
 
 import com.jayway.android.robotium.solo.Condition;
 
 public class testBookmarkFolders extends AboutHomeTest {
     private static String DESKTOP_BOOKMARK_URL;
 
     public void testBookmarkFolders() {
-        DESKTOP_BOOKMARK_URL = getAbsoluteUrl(StringHelper.ROBOCOP_BLANK_PAGE_02_URL);
+        DESKTOP_BOOKMARK_URL = getAbsoluteUrl(mStringHelper.ROBOCOP_BLANK_PAGE_02_URL);
 
         setUpDesktopBookmarks();
         checkBookmarkList();
     }
 
     private void checkBookmarkList() {
         openAboutHomeTab(AboutHomeTabs.BOOKMARKS);
-        waitForText(StringHelper.DESKTOP_FOLDER_LABEL);
-        clickOnBookmarkFolder(StringHelper.DESKTOP_FOLDER_LABEL);
-        waitForText(StringHelper.TOOLBAR_FOLDER_LABEL);
+        waitForText(mStringHelper.DESKTOP_FOLDER_LABEL);
+        clickOnBookmarkFolder(mStringHelper.DESKTOP_FOLDER_LABEL);
+        waitForText(mStringHelper.TOOLBAR_FOLDER_LABEL);
 
         // Verify the number of folders displayed in the Desktop Bookmarks folder is correct
         ListView desktopFolderContent = findListViewWithTag(HomePager.LIST_TAG_BOOKMARKS);
         ListAdapter adapter = desktopFolderContent.getAdapter();
 
         // Three folders and "Up to Bookmarks".
         mAsserter.is(adapter.getCount(), 4, "Checking that the correct number of folders is displayed in the Desktop Bookmarks folder");
 
-        clickOnBookmarkFolder(StringHelper.TOOLBAR_FOLDER_LABEL);
+        clickOnBookmarkFolder(mStringHelper.TOOLBAR_FOLDER_LABEL);
 
         // Go up in the bookmark folder hierarchy
-        clickOnBookmarkFolder(String.format(StringHelper.BOOKMARKS_UP_TO, StringHelper.DESKTOP_FOLDER_LABEL));
-        mAsserter.ok(waitForText(StringHelper.BOOKMARKS_MENU_FOLDER_LABEL), "Going up in the folder hierarchy", "We are back in the Desktop Bookmarks folder");
+        clickOnBookmarkFolder(String.format(mStringHelper.BOOKMARKS_UP_TO, mStringHelper.DESKTOP_FOLDER_LABEL));
+        mAsserter.ok(waitForText(mStringHelper.BOOKMARKS_MENU_FOLDER_LABEL), "Going up in the folder hierarchy", "We are back in the Desktop Bookmarks folder");
 
-        clickOnBookmarkFolder(String.format(StringHelper.BOOKMARKS_UP_TO, StringHelper.BOOKMARKS_ROOT_LABEL));
-        mAsserter.ok(waitForText(StringHelper.DESKTOP_FOLDER_LABEL), "Going up in the folder hierarchy", "We are back in the main Bookmarks List View");
+        clickOnBookmarkFolder(String.format(mStringHelper.BOOKMARKS_UP_TO, mStringHelper.BOOKMARKS_ROOT_LABEL));
+        mAsserter.ok(waitForText(mStringHelper.DESKTOP_FOLDER_LABEL), "Going up in the folder hierarchy", "We are back in the main Bookmarks List View");
 
-        clickOnBookmarkFolder(StringHelper.DESKTOP_FOLDER_LABEL);
-        clickOnBookmarkFolder(StringHelper.TOOLBAR_FOLDER_LABEL);
+        clickOnBookmarkFolder(mStringHelper.DESKTOP_FOLDER_LABEL);
+        clickOnBookmarkFolder(mStringHelper.TOOLBAR_FOLDER_LABEL);
         isBookmarkDisplayed(DESKTOP_BOOKMARK_URL);
 
         // Open the bookmark from a bookmark folder hierarchy
         loadBookmark(DESKTOP_BOOKMARK_URL);
         verifyUrlBarTitle(DESKTOP_BOOKMARK_URL);
         openAboutHomeTab(AboutHomeTabs.BOOKMARKS);
 
         // Check that folders don't have a context menu
         boolean success = waitForCondition(new Condition() {
             @Override
             public boolean isSatisfied() {
-                View desktopFolder = getBookmarkFolderView(StringHelper.DESKTOP_FOLDER_LABEL);
+                View desktopFolder = getBookmarkFolderView(mStringHelper.DESKTOP_FOLDER_LABEL);
                 if (desktopFolder == null) {
                     return false;
                 }
                 mSolo.clickLongOnView(desktopFolder);
                 return true;            }
         }, MAX_WAIT_MS);
 
         mAsserter.ok(success, "Trying to long click on the Desktop Bookmarks","Desktop Bookmarks folder could not be long clicked");
 
-        final String contextMenuString = StringHelper.BOOKMARK_CONTEXT_MENU_ITEMS[0];
+        final String contextMenuString = mStringHelper.BOOKMARK_CONTEXT_MENU_ITEMS[0];
         mAsserter.ok(!waitForText(contextMenuString), "Folders do not have context menus", "The context menu was not opened");
 
         // Even if no context menu is opened long clicking a folder still opens it. We need to close it.
-        clickOnBookmarkFolder(String.format(StringHelper.BOOKMARKS_UP_TO, StringHelper.BOOKMARKS_ROOT_LABEL));
+        clickOnBookmarkFolder(String.format(mStringHelper.BOOKMARKS_UP_TO, mStringHelper.BOOKMARKS_ROOT_LABEL));
     }
 
     private void clickOnBookmarkFolder(final String folderName) {
         boolean success = waitForCondition(new Condition() {
             @Override
             public boolean isSatisfied() {
                 View bookmarksFolder = getBookmarkFolderView(folderName);
                 if (bookmarksFolder == null) {
@@ -122,30 +122,30 @@ public class testBookmarkFolders extends
 
         return null;
     }
 
     // Add a bookmark in the Desktop folder so we can check the folder navigation in the bookmarks page
     private void setUpDesktopBookmarks() {
         blockForGeckoReady();
 
-        // Get the folder id of the StringHelper.DESKTOP_FOLDER_LABEL folder
+        // Get the folder id of the mStringHelper.DESKTOP_FOLDER_LABEL folder
         Long desktopFolderId = mDatabaseHelper.getFolderIdFromGuid("toolbar");
 
         // Generate a Guid for the bookmark
         final String generatedGuid = Utils.generateGuid();
         mAsserter.ok((generatedGuid != null), "Generating a random Guid for the bookmark", "We could not generate a Guid for the bookmark");
 
         // Insert the bookmark
         ContentResolver resolver = getActivity().getContentResolver();
         Uri bookmarksUri = mDatabaseHelper.buildUri(DatabaseHelper.BrowserDataType.BOOKMARKS);
 
         long now = System.currentTimeMillis();
         ContentValues values = new ContentValues();
-        values.put("title", StringHelper.ROBOCOP_BLANK_PAGE_02_TITLE);
+        values.put("title", mStringHelper.ROBOCOP_BLANK_PAGE_02_TITLE);
         values.put("url", DESKTOP_BOOKMARK_URL);
         values.put("parent", desktopFolderId);
         values.put("modified", now);
         values.put("type", 1);
         values.put("guid", generatedGuid);
         values.put("position", 10);
         values.put("created", now);
 
--- a/mobile/android/base/tests/testBookmarkKeyword.java
+++ b/mobile/android/base/tests/testBookmarkKeyword.java
@@ -4,25 +4,25 @@
 
 package org.mozilla.gecko.tests;
 
 
 public class testBookmarkKeyword extends AboutHomeTest {
     public void testBookmarkKeyword() {
         blockForGeckoReady();
 
-        final String url = getAbsoluteUrl(StringHelper.ROBOCOP_BLANK_PAGE_01_URL);
+        final String url = getAbsoluteUrl(mStringHelper.ROBOCOP_BLANK_PAGE_01_URL);
         final String keyword = "testkeyword";
 
         // Add a bookmark, and update it to have a keyword.
-        mDatabaseHelper.addOrUpdateMobileBookmark(StringHelper.ROBOCOP_BLANK_PAGE_01_TITLE, url);
-        mDatabaseHelper.updateBookmark(url, StringHelper.ROBOCOP_BLANK_PAGE_01_TITLE, keyword);
+        mDatabaseHelper.addOrUpdateMobileBookmark(mStringHelper.ROBOCOP_BLANK_PAGE_01_TITLE, url);
+        mDatabaseHelper.updateBookmark(url, mStringHelper.ROBOCOP_BLANK_PAGE_01_TITLE, keyword);
 
         // Enter the keyword in the urlbar.
         inputAndLoadUrl(keyword);
 
         // Make sure the title of the page appeared.
-        verifyUrlBarTitle(StringHelper.ROBOCOP_BLANK_PAGE_01_URL);
+        verifyUrlBarTitle(mStringHelper.ROBOCOP_BLANK_PAGE_01_URL);
 
         // Delete the bookmark to clean up.
         mDatabaseHelper.deleteBookmark(url);
     }
 }
--- a/mobile/android/base/tests/testBookmarklets.java
+++ b/mobile/android/base/tests/testBookmarklets.java
@@ -10,27 +10,27 @@ import org.mozilla.gecko.home.HomePager;
 import android.database.Cursor;
 import android.widget.ListView;
 
 import com.jayway.android.robotium.solo.Condition;
 
 
 public class testBookmarklets extends AboutHomeTest {
     public void testBookmarklets() {
-        final String url = getAbsoluteUrl(StringHelper.ROBOCOP_BLANK_PAGE_01_URL);
+        final String url = getAbsoluteUrl(mStringHelper.ROBOCOP_BLANK_PAGE_01_URL);
         final String title = "alertBookmarklet";
         final String js = "javascript:alert(12 + .34)";
         boolean alerted;
 
         blockForGeckoReady();
 
         // load a standard page so bookmarklets work
         inputAndLoadUrl(url);
         // Waiting for page title to ensure the page is loaded
-        verifyUrlBarTitle(StringHelper.ROBOCOP_BLANK_PAGE_01_URL);
+        verifyUrlBarTitle(mStringHelper.ROBOCOP_BLANK_PAGE_01_URL);
 
         // verify that user-entered bookmarklets do *not* work
         enterUrl(js);
         mActions.sendSpecialKey(Actions.SpecialKey.ENTER);
         alerted = waitForCondition(new Condition() {
             @Override
             public boolean isSatisfied() {
                 return mSolo.searchButton("OK", true) || mSolo.searchText("12.34", true);
--- a/mobile/android/base/tests/testBookmarksPanel.java
+++ b/mobile/android/base/tests/testBookmarksPanel.java
@@ -8,117 +8,117 @@ import org.json.JSONException;
 import org.json.JSONObject;
 import org.mozilla.gecko.Actions;
 import org.mozilla.gecko.Element;
 import org.mozilla.gecko.R;
 import org.mozilla.gecko.util.StringUtils;
 
 public class testBookmarksPanel extends AboutHomeTest {
     public void testBookmarksPanel() {
-        final String BOOKMARK_URL = getAbsoluteUrl(StringHelper.ROBOCOP_BLANK_PAGE_01_URL);
+        final String BOOKMARK_URL = getAbsoluteUrl(mStringHelper.ROBOCOP_BLANK_PAGE_01_URL);
         JSONObject data = null;
 
         // Make sure our default bookmarks are loaded.
         // Technically this will race with the check below.
         initializeProfile();
 
         // Add a mobile bookmark.
-        mDatabaseHelper.addOrUpdateMobileBookmark(StringHelper.ROBOCOP_BLANK_PAGE_01_TITLE, BOOKMARK_URL);
+        mDatabaseHelper.addOrUpdateMobileBookmark(mStringHelper.ROBOCOP_BLANK_PAGE_01_TITLE, BOOKMARK_URL);
 
         openAboutHomeTab(AboutHomeTabs.BOOKMARKS);
 
         // Check that the default bookmarks are displayed.
         // We need to wait for the distribution to have been processed
         // before this will succeed.
-        for (String url : StringHelper.DEFAULT_BOOKMARKS_URLS) {
+        for (String url : mStringHelper.DEFAULT_BOOKMARKS_URLS) {
             isBookmarkDisplayed(url);
         }
 
-        assertAllContextMenuOptionsArePresent(StringHelper.DEFAULT_BOOKMARKS_URLS[1],
-                StringHelper.DEFAULT_BOOKMARKS_URLS[0]);
+        assertAllContextMenuOptionsArePresent(mStringHelper.DEFAULT_BOOKMARKS_URLS[1],
+                mStringHelper.DEFAULT_BOOKMARKS_URLS[0]);
 
-        openBookmarkContextMenu(StringHelper.DEFAULT_BOOKMARKS_URLS[0]);
+        openBookmarkContextMenu(mStringHelper.DEFAULT_BOOKMARKS_URLS[0]);
 
         // Test that "Open in New Tab" works
         final Element tabCount = mDriver.findElement(getActivity(), R.id.tabs_counter);
         final int tabCountInt = Integer.parseInt(tabCount.getText());
         Actions.EventExpecter tabEventExpecter = mActions.expectGeckoEvent("Tab:Added");
-        mSolo.clickOnText(StringHelper.BOOKMARK_CONTEXT_MENU_ITEMS[0]);
+        mSolo.clickOnText(mStringHelper.BOOKMARK_CONTEXT_MENU_ITEMS[0]);
         try {
             data = new JSONObject(tabEventExpecter.blockForEventData());
         } catch (JSONException e) {
             mAsserter.ok(false, "exception getting event data", e.toString());
         }
         tabEventExpecter.unregisterListener();
-        mAsserter.ok(mSolo.searchText(StringHelper.TITLE_PLACE_HOLDER), "Checking that the tab is not changed", "The tab was not changed");
+        mAsserter.ok(mSolo.searchText(mStringHelper.TITLE_PLACE_HOLDER), "Checking that the tab is not changed", "The tab was not changed");
         // extra check here on the Tab:Added message to be sure the right tab opened
         int tabID = 0;
         try {
-            mAsserter.is(StringHelper.ABOUT_FIREFOX_URL, data.getString("uri"), "Checking tab uri");
+            mAsserter.is(mStringHelper.ABOUT_FIREFOX_URL, data.getString("uri"), "Checking tab uri");
             tabID = data.getInt("tabID");
         } catch (JSONException e) {
             mAsserter.ok(false, "exception accessing event data", e.toString());
         }
         // close tab so about:firefox can be selected again
         closeTab(tabID);
 
         // Test that "Open in Private Tab" works
-        openBookmarkContextMenu(StringHelper.DEFAULT_BOOKMARKS_URLS[0]);
+        openBookmarkContextMenu(mStringHelper.DEFAULT_BOOKMARKS_URLS[0]);
         tabEventExpecter = mActions.expectGeckoEvent("Tab:Added");
-        mSolo.clickOnText(StringHelper.BOOKMARK_CONTEXT_MENU_ITEMS[1]);
+        mSolo.clickOnText(mStringHelper.BOOKMARK_CONTEXT_MENU_ITEMS[1]);
         try {
             data = new JSONObject(tabEventExpecter.blockForEventData());
         } catch (JSONException e) {
             mAsserter.ok(false, "exception getting event data", e.toString());
         }
         tabEventExpecter.unregisterListener();
-        mAsserter.ok(mSolo.searchText(StringHelper.TITLE_PLACE_HOLDER), "Checking that the tab is not changed", "The tab was not changed");
+        mAsserter.ok(mSolo.searchText(mStringHelper.TITLE_PLACE_HOLDER), "Checking that the tab is not changed", "The tab was not changed");
         // extra check here on the Tab:Added message to be sure the right tab opened, again
         try {
-            mAsserter.is(StringHelper.ABOUT_FIREFOX_URL, data.getString("uri"), "Checking tab uri");
+            mAsserter.is(mStringHelper.ABOUT_FIREFOX_URL, data.getString("uri"), "Checking tab uri");
         } catch (JSONException e) {
             mAsserter.ok(false, "exception accessing event data", e.toString());
         }
 
         // Test that "Edit" works
         String[] editedBookmarkValues = new String[] { "New bookmark title", "www.NewBookmark.url", "newBookmarkKeyword" };
         editBookmark(BOOKMARK_URL, editedBookmarkValues);
         checkBookmarkEdit(editedBookmarkValues[1], editedBookmarkValues);
 
         // Test that "Remove" works
         openBookmarkContextMenu(editedBookmarkValues[1]);
-        mSolo.clickOnText(StringHelper.BOOKMARK_CONTEXT_MENU_ITEMS[5]);
-        waitForText(StringHelper.BOOKMARK_REMOVED_LABEL);
+        mSolo.clickOnText(mStringHelper.BOOKMARK_CONTEXT_MENU_ITEMS[5]);
+        waitForText(mStringHelper.BOOKMARK_REMOVED_LABEL);
         mAsserter.ok(!mDatabaseHelper.isBookmark(editedBookmarkValues[1]), "Checking that the bookmark was removed", "The bookmark was removed");
     }
 
     /**
      * Asserts that all context menu items are present on the given links. For one link,
      * the context menu is expected to not have the "Share" context menu item.
      *
      * @param shareableURL A URL that is expected to have the "Share" context menu item
      * @param nonShareableURL A URL that is expected not to have the "Share" context menu item.
      */
     private void assertAllContextMenuOptionsArePresent(final String shareableURL,
             final String nonShareableURL) {
         mAsserter.ok(StringUtils.isShareableUrl(shareableURL), "Ensuring url is shareable", "");
         mAsserter.ok(!StringUtils.isShareableUrl(nonShareableURL), "Ensuring url is not shareable", "");
 
         openBookmarkContextMenu(shareableURL);
-        for (String contextMenuOption : StringHelper.BOOKMARK_CONTEXT_MENU_ITEMS) {
+        for (String contextMenuOption : mStringHelper.BOOKMARK_CONTEXT_MENU_ITEMS) {
             mAsserter.ok(mSolo.searchText(contextMenuOption),
                     "Checking that the context menu option is present",
                     contextMenuOption + " is present");
         }
 
         // Close the menu.
         mActions.sendSpecialKey(Actions.SpecialKey.BACK);
 
         openBookmarkContextMenu(nonShareableURL);
-        for (String contextMenuOption : StringHelper.BOOKMARK_CONTEXT_MENU_ITEMS) {
+        for (String contextMenuOption : mStringHelper.BOOKMARK_CONTEXT_MENU_ITEMS) {
             // This link is not shareable: skip the "Share" option.
             if ("Share".equals(contextMenuOption)) {
                 continue;
             }
 
             mAsserter.ok(mSolo.searchText(contextMenuOption),
                     "Checking that the context menu option is present",
                     contextMenuOption + " is present");
@@ -135,40 +135,40 @@ public class testBookmarksPanel extends 
     }
 
    /**
     * @param bookmarkUrl URL of the bookmark to edit
     * @param values String array with the new values for all fields
     */
     private void editBookmark(String bookmarkUrl, String[] values) {
         openBookmarkContextMenu(bookmarkUrl);
-        mSolo.clickOnText(StringHelper.CONTEXT_MENU_EDIT);
-        waitForText(StringHelper.EDIT_BOOKMARK);
+        mSolo.clickOnText(mStringHelper.CONTEXT_MENU_EDIT);
+        waitForText(mStringHelper.EDIT_BOOKMARK);
 
         // Update the fields with the new values
         for (int i = 0; i < values.length; i++) {
             mSolo.clearEditText(i);
             mSolo.clickOnEditText(i);
             mActions.sendKeys(values[i]);
         }
 
-        mSolo.clickOnButton(StringHelper.OK);
-        waitForText(StringHelper.BOOKMARK_UPDATED_LABEL);
+        mSolo.clickOnButton(mStringHelper.OK);
+        waitForText(mStringHelper.BOOKMARK_UPDATED_LABEL);
     }
 
    /**
     * @param bookmarkUrl String with the original url
     * @param values String array with the new values for all fields
     */
     private void checkBookmarkEdit(String bookmarkUrl, String[] values) {
         openBookmarkContextMenu(bookmarkUrl);
-        mSolo.clickOnText(StringHelper.CONTEXT_MENU_EDIT);
-        waitForText(StringHelper.EDIT_BOOKMARK);
+        mSolo.clickOnText(mStringHelper.CONTEXT_MENU_EDIT);
+        waitForText(mStringHelper.EDIT_BOOKMARK);
 
         // Check the values of the fields
         for (String value : values) {
             mAsserter.ok(mSolo.searchText(value), "Checking that the value is correct", "The value = " + value + " is correct");
         }
 
         mSolo.clickOnButton("Cancel");
-        waitForText(StringHelper.BOOKMARKS_LABEL);
+        waitForText(mStringHelper.BOOKMARKS_LABEL);
     }
 }
--- a/mobile/android/base/tests/testClearPrivateData.java
+++ b/mobile/android/base/tests/testClearPrivateData.java
@@ -3,17 +3,16 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 package org.mozilla.gecko.tests;
 
 import org.mozilla.gecko.Actions;
 import org.mozilla.gecko.R;
 
 import com.jayway.android.robotium.solo.Condition;
-
 import android.view.View;
 
 /**
  * This patch tests the clear private data options:
  * - clear history option by: adding and checking that clear private
  * data option removes the history items but not the users bookmarks
  * - clear site settings and clear saved password by: checking
  * each option present in the doorhanger and clearing the settings from
@@ -28,23 +27,22 @@ public class testClearPrivateData extend
         clearHistory();
         clearSiteSettings();
         clearPassword();
     }
 
     private void clearHistory() {
 
         // Loading a page and adding a second one as bookmark to have user made bookmarks and history
-        String blank1 = getAbsoluteUrl(StringHelper.ROBOCOP_BLANK_PAGE_01_URL);
-        String blank2 = getAbsoluteUrl(StringHelper.ROBOCOP_BLANK_PAGE_02_URL);
-        String title = StringHelper.ROBOCOP_BLANK_PAGE_01_TITLE;
-
+        String blank1 = getAbsoluteUrl(mStringHelper.ROBOCOP_BLANK_PAGE_01_URL);
+        String blank2 = getAbsoluteUrl(mStringHelper.ROBOCOP_BLANK_PAGE_02_URL);
+        String title = mStringHelper.ROBOCOP_BLANK_PAGE_01_TITLE;
         inputAndLoadUrl(blank1);
         verifyUrlBarTitle(blank1);
-        mDatabaseHelper.addOrUpdateMobileBookmark(StringHelper.ROBOCOP_BLANK_PAGE_02_TITLE, blank2);
+        mDatabaseHelper.addOrUpdateMobileBookmark(mStringHelper.ROBOCOP_BLANK_PAGE_02_TITLE, blank2);
 
         // Checking that the history list is not empty
         verifyHistoryCount(1);
 
         //clear and check for device
         checkDevice(title, blank1);
 
         // Checking that history list is empty
@@ -61,44 +59,42 @@ public class testClearPrivateData extend
                 return mDatabaseHelper.getBrowserDBUrls(DatabaseHelper.BrowserDataType.HISTORY).size() == expectedCount;
             }
         }, TEST_WAIT_MS);
         mAsserter.ok(match, "Checking that the number of history items is correct", String.valueOf(expectedCount) + " history items present in the database");
     }
 
     public void clearSiteSettings() {
         String shareStrings[] = {"Share your location with", "Share", "Don't share", "There are no settings to clear"};
-        String titleGeolocation = StringHelper.ROBOCOP_GEOLOCATION_TITLE;
-        String url = getAbsoluteUrl(StringHelper.ROBOCOP_GEOLOCATION_URL);
-
+        String titleGeolocation = mStringHelper.ROBOCOP_GEOLOCATION_TITLE;
+        String url = getAbsoluteUrl(mStringHelper.ROBOCOP_GEOLOCATION_URL);
         loadCheckDismiss(shareStrings[1], url, shareStrings[0]);
         checkOption(shareStrings[1], "Clear");
         checkOption(shareStrings[3], "Cancel");
         loadCheckDismiss(shareStrings[2], url, shareStrings[0]);
         checkOption(shareStrings[2], "Cancel");
         checkDevice(titleGeolocation, url);
     }
 
     public void clearPassword(){
         String passwordStrings[] = {"Save password", "Save", "Don't save"};
-        String title = StringHelper.ROBOCOP_BLANK_PAGE_01_TITLE;
-        String loginUrl = getAbsoluteUrl(StringHelper.ROBOCOP_LOGIN_URL);
-
+        String title = mStringHelper.ROBOCOP_BLANK_PAGE_01_TITLE;
+        String loginUrl = getAbsoluteUrl(mStringHelper.ROBOCOP_LOGIN_URL);
         loadCheckDismiss(passwordStrings[1], loginUrl, passwordStrings[0]);
         checkOption(passwordStrings[1], "Clear");
         loadCheckDismiss(passwordStrings[2], loginUrl, passwordStrings[0]);
-        checkDevice(title, getAbsoluteUrl(StringHelper.ROBOCOP_BLANK_PAGE_01_URL));
+        checkDevice(title, getAbsoluteUrl(mStringHelper.ROBOCOP_BLANK_PAGE_01_URL));
     }
 
     // clear private data and verify the device type because for phone there is an extra back action to exit the settings menu
     public void checkDevice(final String title, final String url) {
         clearPrivateData();
         if (mDevice.type.equals("phone")) {
             mActions.sendSpecialKey(Actions.SpecialKey.BACK);
-            mAsserter.ok(waitForText(StringHelper.PRIVACY_SECTION_LABEL), "waiting to perform one back", "one back");
+            mAsserter.ok(waitForText(mStringHelper.PRIVACY_SECTION_LABEL), "waiting to perform one back", "one back");
         }
         mActions.sendSpecialKey(Actions.SpecialKey.BACK);
         verifyUrlBarTitle(url);
     }
 
     // Load a URL, verify that the doorhanger appears and dismiss it
     public void loadCheckDismiss(String option, String url, String message) {
         inputAndLoadUrl(url);
@@ -109,20 +105,20 @@ public class testClearPrivateData extend
     }
 
     //Verify if there are settings to be clear if so clear them from the URL bar context menu
     public void checkOption(String option, String button) {
         if (mDevice.version.equals("2.x")) {
             // Use the context menu in pre-11
             final View toolbarView = mSolo.getView(R.id.browser_toolbar);
             mSolo.clickLongOnView(toolbarView);
-            mAsserter.ok(waitForText(StringHelper.CONTEXT_MENU_ITEMS_IN_URL_BAR[2]), "Waiting for the pop-up to open", "Pop up was opened");
+            mAsserter.ok(waitForText(mStringHelper.CONTEXT_MENU_ITEMS_IN_URL_BAR[2]), "Waiting for the pop-up to open", "Pop up was opened");
         } else {
             // Use the Page menu in 11+
-            selectMenuItem(StringHelper.PAGE_LABEL);
-            mAsserter.ok(waitForText(StringHelper.CONTEXT_MENU_ITEMS_IN_URL_BAR[2]), "Waiting for the submenu to open", "Submenu was opened");
+            selectMenuItem(mStringHelper.PAGE_LABEL);
+            mAsserter.ok(waitForText(mStringHelper.CONTEXT_MENU_ITEMS_IN_URL_BAR[2]), "Waiting for the submenu to open", "Submenu was opened");
         }
 
-        mSolo.clickOnText(StringHelper.CONTEXT_MENU_ITEMS_IN_URL_BAR[2]);
+	mSolo.clickOnText(mStringHelper.CONTEXT_MENU_ITEMS_IN_URL_BAR[2]);
         mAsserter.ok(waitForText(option), "Verify that the option: " + option + " is in the list", "The option is in the list. There are settings to clear");
         mSolo.clickOnButton(button);
     }
 }
--- a/mobile/android/base/tests/testDistribution.java
+++ b/mobile/android/base/tests/testDistribution.java
@@ -457,39 +457,39 @@ public class testDistribution extends Co
         SharedPreferences settings = mActivity.getSharedPreferences("GeckoApp", Activity.MODE_PRIVATE);
         String keyName = mActivity.getPackageName() + ".distribution_state";
         settings.edit().remove(keyName).commit();
         TestableDistribution.clearReferrerDescriptorForTesting();
     }
 
     public void checkTilesReporting(String localeCode) throws JSONException {
         // Slight hack: Force top sites grid to reload.
-        inputAndLoadUrl(StringHelper.ABOUT_BLANK_URL);
-        inputAndLoadUrl(StringHelper.ABOUT_HOME_URL);
+        inputAndLoadUrl(mStringHelper.ABOUT_BLANK_URL);
+        inputAndLoadUrl(mStringHelper.ABOUT_HOME_URL);
 
         // Click the first tracking tile and verify the posted data.
-        JSONObject response = clickTrackingTile(StringHelper.DISTRIBUTION1_LABEL);
+        JSONObject response = clickTrackingTile(mStringHelper.DISTRIBUTION1_LABEL);
         mAsserter.is(response.getInt("click"), 0, "JSON click index matched");
         mAsserter.is(response.getString("locale"), localeCode, "JSON locale code matched");
         mAsserter.is(response.getString("tiles"), "[{\"id\":123},{\"id\":456},{\"id\":632},{\"id\":629},{\"id\":630},{\"id\":631}]", "JSON tiles data matched");
 
-        inputAndLoadUrl(StringHelper.ABOUT_HOME_URL);
+        inputAndLoadUrl(mStringHelper.ABOUT_HOME_URL);
 
         // Pin the second tracking tile.
-        pinTopSite(StringHelper.DISTRIBUTION2_LABEL);
+        pinTopSite(mStringHelper.DISTRIBUTION2_LABEL);
 
         // Click the second tracking tile and verify the posted data.
-        response = clickTrackingTile(StringHelper.DISTRIBUTION2_LABEL);
+        response = clickTrackingTile(mStringHelper.DISTRIBUTION2_LABEL);
         mAsserter.is(response.getInt("click"), 1, "JSON click index matched");
         mAsserter.is(response.getString("tiles"), "[{\"id\":123},{\"id\":456,\"pin\":true},{\"id\":632},{\"id\":629},{\"id\":630},{\"id\":631}]", "JSON tiles data matched");
 
-        inputAndLoadUrl(StringHelper.ABOUT_HOME_URL);
+        inputAndLoadUrl(mStringHelper.ABOUT_HOME_URL);
 
         // Unpin the second tracking tile.
-        unpinTopSite(StringHelper.DISTRIBUTION2_LABEL);
+        unpinTopSite(mStringHelper.DISTRIBUTION2_LABEL);
     }
 
     private JSONObject clickTrackingTile(String text) throws JSONException {
         boolean tileFound = waitForText(text);
         mAsserter.ok(tileFound, "Found tile: " + text, null);
 
         Actions.EventExpecter loadExpecter = mActions.expectGeckoEvent("Robocop:TilesResponse");
         mSolo.clickOnText(text);
--- a/mobile/android/base/tests/testDoorHanger.java
+++ b/mobile/android/base/tests/testDoorHanger.java
@@ -16,45 +16,45 @@ import org.mozilla.gecko.Actions;
    The test will test:
    * geolocation doorhangers - sharing and not sharing the location dismisses the doorhanger
    * opening a new tab hides the doorhanger
    * offline storage permission doorhangers - allowing and not allowing offline storage dismisses the doorhanger
    * Password Manager doorhangers - Remember and Not Now options dismiss the doorhanger
 */
 public class testDoorHanger extends BaseTest {
     public void testDoorHanger() {
-        String GEO_URL = getAbsoluteUrl(StringHelper.ROBOCOP_GEOLOCATION_URL);
-        String BLANK_URL = getAbsoluteUrl(StringHelper.ROBOCOP_BLANK_PAGE_01_URL);
-        String OFFLINE_STORAGE_URL = getAbsoluteUrl(StringHelper.ROBOCOP_OFFLINE_STORAGE_URL);
-        String LOGIN_URL = getAbsoluteUrl(StringHelper.ROBOCOP_LOGIN_URL);
+        String GEO_URL = getAbsoluteUrl(mStringHelper.ROBOCOP_GEOLOCATION_URL);
+        String BLANK_URL = getAbsoluteUrl(mStringHelper.ROBOCOP_BLANK_PAGE_01_URL);
+        String OFFLINE_STORAGE_URL = getAbsoluteUrl(mStringHelper.ROBOCOP_OFFLINE_STORAGE_URL);
+        String LOGIN_URL = getAbsoluteUrl(mStringHelper.ROBOCOP_LOGIN_URL);
 
         blockForGeckoReady();
 
         // Test geolocation notification
         inputAndLoadUrl(GEO_URL);
-        waitForText(StringHelper.GEO_MESSAGE);
-        mAsserter.is(mSolo.searchText(StringHelper.GEO_MESSAGE), true, "Geolocation doorhanger has been displayed");
+        waitForText(mStringHelper.GEO_MESSAGE);
+        mAsserter.is(mSolo.searchText(mStringHelper.GEO_MESSAGE), true, "Geolocation doorhanger has been displayed");
 
         // Test "Share" button hides the notification
         waitForCheckBox();
         mSolo.clickOnCheckBox(0);
-        mSolo.clickOnButton(StringHelper.GEO_ALLOW);
-        waitForTextDismissed(StringHelper.GEO_MESSAGE);
-        mAsserter.is(mSolo.searchText(StringHelper.GEO_MESSAGE), false, "Geolocation doorhanger has been hidden when allowing share");
+        mSolo.clickOnButton(mStringHelper.GEO_ALLOW);
+        waitForTextDismissed(mStringHelper.GEO_MESSAGE);
+        mAsserter.is(mSolo.searchText(mStringHelper.GEO_MESSAGE), false, "Geolocation doorhanger has been hidden when allowing share");
 
         // Re-trigger geolocation notification
         inputAndLoadUrl(GEO_URL);
-        waitForText(StringHelper.GEO_MESSAGE);
+        waitForText(mStringHelper.GEO_MESSAGE);
 
         // Test "Don't share" button hides the notification
         waitForCheckBox();
         mSolo.clickOnCheckBox(0);
-        mSolo.clickOnButton(StringHelper.GEO_DENY);
-        waitForTextDismissed(StringHelper.GEO_MESSAGE);
-        mAsserter.is(mSolo.searchText(StringHelper.GEO_MESSAGE), false, "Geolocation doorhanger has been hidden when denying share");
+        mSolo.clickOnButton(mStringHelper.GEO_DENY);
+        waitForTextDismissed(mStringHelper.GEO_MESSAGE);
+        mAsserter.is(mSolo.searchText(mStringHelper.GEO_MESSAGE), false, "Geolocation doorhanger has been hidden when denying share");
 
         /* FIXME: disabled on fig - bug 880060 (for some reason this fails because of some raciness)
         // Re-trigger geolocation notification
         inputAndLoadUrl(GEO_URL);
         waitForText(GEO_MESSAGE);
 
         // Add a new tab
         addTab(BLANK_URL);
@@ -94,95 +94,95 @@ public class testDoorHanger extends Base
             jsonPref.put("value", false);
             setPreferenceAndWaitForChange(jsonPref);
         } catch (JSONException e) {
             mAsserter.ok(false, "exception getting preference", e.toString());
         }
 
         // Load offline storage page
         inputAndLoadUrl(OFFLINE_STORAGE_URL);
-        waitForText(StringHelper.OFFLINE_MESSAGE);
+        waitForText(mStringHelper.OFFLINE_MESSAGE);
 
         // Test doorhanger dismissed when tapping "Don't share"
         waitForCheckBox();
         mSolo.clickOnCheckBox(0);
-        mSolo.clickOnButton(StringHelper.OFFLINE_DENY);
-        waitForTextDismissed(StringHelper.OFFLINE_MESSAGE);
-        mAsserter.is(mSolo.searchText(StringHelper.OFFLINE_MESSAGE), false, "Offline storage doorhanger notification is hidden when denying storage");
+        mSolo.clickOnButton(mStringHelper.OFFLINE_DENY);
+        waitForTextDismissed(mStringHelper.OFFLINE_MESSAGE);
+        mAsserter.is(mSolo.searchText(mStringHelper.OFFLINE_MESSAGE), false, "Offline storage doorhanger notification is hidden when denying storage");
 
         // Load offline storage page
         inputAndLoadUrl(OFFLINE_STORAGE_URL);
-        waitForText(StringHelper.OFFLINE_MESSAGE);
+        waitForText(mStringHelper.OFFLINE_MESSAGE);
 
         // Test doorhanger dismissed when tapping "Allow" and is not displayed again
-        mSolo.clickOnButton(StringHelper.OFFLINE_ALLOW);
-        waitForTextDismissed(StringHelper.OFFLINE_MESSAGE);
-        mAsserter.is(mSolo.searchText(StringHelper.OFFLINE_MESSAGE), false, "Offline storage doorhanger notification is hidden when allowing storage");
+        mSolo.clickOnButton(mStringHelper.OFFLINE_ALLOW);
+        waitForTextDismissed(mStringHelper.OFFLINE_MESSAGE);
+        mAsserter.is(mSolo.searchText(mStringHelper.OFFLINE_MESSAGE), false, "Offline storage doorhanger notification is hidden when allowing storage");
         inputAndLoadUrl(OFFLINE_STORAGE_URL);
-        mAsserter.is(mSolo.searchText(StringHelper.OFFLINE_MESSAGE), false, "Offline storage doorhanger is no longer triggered");
+        mAsserter.is(mSolo.searchText(mStringHelper.OFFLINE_MESSAGE), false, "Offline storage doorhanger is no longer triggered");
 
         try {
             // Revert offline setting
             JSONObject jsonPref = new JSONObject();
             jsonPref.put("name", "offline-apps.allow_by_default");
             jsonPref.put("type", "bool");
             jsonPref.put("value", offlineAllowedByDefault);
             setPreferenceAndWaitForChange(jsonPref);
         } catch (JSONException e) {
             mAsserter.ok(false, "exception setting preference", e.toString());
         }
 
 
         // Load login page
         inputAndLoadUrl(LOGIN_URL);
-        waitForText(StringHelper.LOGIN_MESSAGE);
+        waitForText(mStringHelper.LOGIN_MESSAGE);
 
         // Test doorhanger is dismissed when tapping "Don't save"
-        mSolo.clickOnButton(StringHelper.LOGIN_DENY);
-        waitForTextDismissed(StringHelper.LOGIN_MESSAGE);
-        mAsserter.is(mSolo.searchText(StringHelper.LOGIN_MESSAGE), false, "Login doorhanger notification is hidden when denying saving password");
+        mSolo.clickOnButton(mStringHelper.LOGIN_DENY);
+        waitForTextDismissed(mStringHelper.LOGIN_MESSAGE);
+        mAsserter.is(mSolo.searchText(mStringHelper.LOGIN_MESSAGE), false, "Login doorhanger notification is hidden when denying saving password");
 
         // Load login page
         inputAndLoadUrl(LOGIN_URL);
-        waitForText(StringHelper.LOGIN_MESSAGE);
+        waitForText(mStringHelper.LOGIN_MESSAGE);
 
         // Test doorhanger is dismissed when tapping "Save" and is no longer triggered
-        mSolo.clickOnButton(StringHelper.LOGIN_ALLOW);
-        waitForTextDismissed(StringHelper.LOGIN_MESSAGE);
-        mAsserter.is(mSolo.searchText(StringHelper.LOGIN_MESSAGE), false, "Login doorhanger notification is hidden when allowing saving password");
+        mSolo.clickOnButton(mStringHelper.LOGIN_ALLOW);
+        waitForTextDismissed(mStringHelper.LOGIN_MESSAGE);
+        mAsserter.is(mSolo.searchText(mStringHelper.LOGIN_MESSAGE), false, "Login doorhanger notification is hidden when allowing saving password");
 
         testPopupBlocking();
     }
 
     private void testPopupBlocking() {
-        String POPUP_URL = getAbsoluteUrl(StringHelper.ROBOCOP_POPUP_URL);
+        String POPUP_URL = getAbsoluteUrl(mStringHelper.ROBOCOP_POPUP_URL);
 
         try {
             JSONObject jsonPref = new JSONObject();
             jsonPref.put("name", "dom.disable_open_during_load");
             jsonPref.put("type", "bool");
             jsonPref.put("value", true);
             setPreferenceAndWaitForChange(jsonPref);
         } catch (JSONException e) {
             mAsserter.ok(false, "exception setting preference", e.toString());
         }
 
         // Load page with popup
         inputAndLoadUrl(POPUP_URL);
-        waitForText(StringHelper.POPUP_MESSAGE);
-        mAsserter.is(mSolo.searchText(StringHelper.POPUP_MESSAGE), true, "Popup blocker is displayed");
+        waitForText(mStringHelper.POPUP_MESSAGE);
+        mAsserter.is(mSolo.searchText(mStringHelper.POPUP_MESSAGE), true, "Popup blocker is displayed");
 
         // Wait for the popup to be shown.
         Actions.EventExpecter tabEventExpecter = mActions.expectGeckoEvent("Tab:Added");
 
         waitForCheckBox();
         mSolo.clickOnCheckBox(0);
-        mSolo.clickOnButton(StringHelper.POPUP_ALLOW);
-        waitForTextDismissed(StringHelper.POPUP_MESSAGE);
-        mAsserter.is(mSolo.searchText(StringHelper.POPUP_MESSAGE), false, "Popup blocker is hidden when popup allowed");
+        mSolo.clickOnButton(mStringHelper.POPUP_ALLOW);
+        waitForTextDismissed(mStringHelper.POPUP_MESSAGE);
+        mAsserter.is(mSolo.searchText(mStringHelper.POPUP_MESSAGE), false, "Popup blocker is hidden when popup allowed");
 
         try {
             final JSONObject data = new JSONObject(tabEventExpecter.blockForEventData());
 
             // Check to make sure the popup window was opened.
             mAsserter.is("data:text/plain;charset=utf-8,a", data.getString("uri"), "Checking popup URL");
 
             // Close the popup window.
@@ -190,24 +190,24 @@ public class testDoorHanger extends Base
 
         } catch (JSONException e) {
             mAsserter.ok(false, "exception getting event data", e.toString());
         }
         tabEventExpecter.unregisterListener();
 
         // Load page with popup
         inputAndLoadUrl(POPUP_URL);
-        waitForText(StringHelper.POPUP_MESSAGE);
-        mAsserter.is(mSolo.searchText(StringHelper.POPUP_MESSAGE), true, "Popup blocker is displayed");
+        waitForText(mStringHelper.POPUP_MESSAGE);
+        mAsserter.is(mSolo.searchText(mStringHelper.POPUP_MESSAGE), true, "Popup blocker is displayed");
 
         waitForCheckBox();
         mSolo.clickOnCheckBox(0);
-        mSolo.clickOnButton(StringHelper.POPUP_DENY);
-        waitForTextDismissed(StringHelper.POPUP_MESSAGE);
-        mAsserter.is(mSolo.searchText(StringHelper.POPUP_MESSAGE), false, "Popup blocker is hidden when popup denied");
+        mSolo.clickOnButton(mStringHelper.POPUP_DENY);
+        waitForTextDismissed(mStringHelper.POPUP_MESSAGE);
+        mAsserter.is(mSolo.searchText(mStringHelper.POPUP_MESSAGE), false, "Popup blocker is hidden when popup denied");
 
         // Check that we're on the same page to verify that the popup was not shown.
         verifyUrl(POPUP_URL);
 
         try {
             JSONObject jsonPref = new JSONObject();
             jsonPref.put("name", "dom.disable_open_during_load");
             jsonPref.put("type", "bool");
--- a/mobile/android/base/tests/testEventDispatcher.java
+++ b/mobile/android/base/tests/testEventDispatcher.java
@@ -58,17 +58,17 @@ public class testEventDispatcher extends
                 NATIVE_EVENT, NATIVE_RESPONSE_EVENT, NATIVE_EXCEPTION_EVENT);
 
         js.disconnect();
         super.tearDown();
     }
 
     public void testEventDispatcher() {
         GeckoHelper.blockForReady();
-        NavigationHelper.enterAndLoadUrl(StringHelper.getHarnessUrlForJavascript(TEST_JS));
+        NavigationHelper.enterAndLoadUrl(mStringHelper.getHarnessUrlForJavascript(TEST_JS));
 
         js.syncCall("send_test_message", GECKO_EVENT);
         js.syncCall("send_message_for_response", GECKO_RESPONSE_EVENT, "success");
         js.syncCall("send_message_for_response", GECKO_RESPONSE_EVENT, "error");
         js.syncCall("send_test_message", NATIVE_EVENT);
         js.syncCall("send_message_for_response", NATIVE_RESPONSE_EVENT, "success");
         js.syncCall("send_message_for_response", NATIVE_RESPONSE_EVENT, "error");
         js.syncCall("send_test_message", NATIVE_EXCEPTION_EVENT);
--- a/mobile/android/base/tests/testFindInPage.java
+++ b/mobile/android/base/tests/testFindInPage.java
@@ -47,31 +47,31 @@ public class testFindInPage extends Java
         }
     }
 
     @Override
     public void setUp() throws Exception {
         super.setUp();
 
         EventDispatcher.getInstance().registerGeckoThreadListener(this,
-            "Test:FindInPage",
-            "Test:CloseFindInPage");
+                "Test:FindInPage",
+                "Test:CloseFindInPage");
     }
 
     @Override
     public void tearDown() throws Exception {
         super.tearDown();
 
         EventDispatcher.getInstance().unregisterGeckoThreadListener(this,
-            "Test:FindInPage",
-            "Test:CloseFindInPage");
+                "Test:FindInPage",
+                "Test:CloseFindInPage");
     }
 
     public void findText(String text, int nrOfMatches){
-        selectMenuItem(StringHelper.FIND_IN_PAGE_LABEL);
+        selectMenuItem(mStringHelper.FIND_IN_PAGE_LABEL);
         close = mDriver.findElement(getActivity(), R.id.find_close);
         boolean success = waitForCondition ( new Condition() {
             @Override
             public boolean isSatisfied() {
                 next = mDriver.findElement(getActivity(), R.id.find_next);
                 if (next != null) {
                     return true;
                 } else {
@@ -99,9 +99,9 @@ public class testFindInPage extends Java
                         return false;
                     }
                 }
             }, WAIT_FOR_CONDITION_MS);
             mSolo.sleep(500); // TODO: Find a better way to wait here because waitForCondition is not enough
             mAsserter.ok(success, "Checking if the next button was clicked", "button was clicked");
         }
     }
-}
+}
\ No newline at end of file
--- a/mobile/android/base/tests/testFlingCorrectness.java
+++ b/mobile/android/base/tests/testFlingCorrectness.java
@@ -10,17 +10,17 @@ import org.mozilla.gecko.PaintedSurface;
 /**
  * Basic fling correctness test.
  * - Loads a page and verifies it draws
  * - Drags page upwards by 200 pixels to get ready for a fling
  * - Fling the page downwards so we get back to the top and verify.
  */
 public class testFlingCorrectness extends PixelTest {
     public void testFlingCorrectness() {
-        String url = getAbsoluteUrl(StringHelper.ROBOCOP_BOXES_URL);
+        String url = getAbsoluteUrl(mStringHelper.ROBOCOP_BOXES_URL);
 
         MotionEventHelper meh = new MotionEventHelper(getInstrumentation(), mDriver.getGeckoLeft(), mDriver.getGeckoTop());
 
         blockForGeckoReady();
 
         // load page and check we're at 0,0
         loadAndVerifyBoxes(url);
 
--- a/mobile/android/base/tests/testGeckoRequest.java
+++ b/mobile/android/base/tests/testGeckoRequest.java
@@ -37,17 +37,17 @@ public class testGeckoRequest extends UI
     @Override
     public void tearDown() throws Exception {
         js.disconnect();
         super.tearDown();
     }
 
     public void testGeckoRequest() {
         GeckoHelper.blockForReady();
-        NavigationHelper.enterAndLoadUrl(StringHelper.getHarnessUrlForJavascript(TEST_JS));
+        NavigationHelper.enterAndLoadUrl(mStringHelper.getHarnessUrlForJavascript(TEST_JS));
 
         // Register a listener for this request.
         js.syncCall("add_request_listener", REQUEST_EVENT);
 
         // Make sure we receive the expected response.
         checkFooRequest();
 
         // Try registering a second listener for this request, which should fail.
--- a/mobile/android/base/tests/testHistory.java
+++ b/mobile/android/base/tests/testHistory.java
@@ -13,19 +13,19 @@ import org.mozilla.gecko.home.HomePager;
 import com.jayway.android.robotium.solo.Condition;
 
 public class testHistory extends AboutHomeTest {
     private View mFirstChild;
 
     public void testHistory() {
         blockForGeckoReady();
 
-        String url = getAbsoluteUrl(StringHelper.ROBOCOP_BLANK_PAGE_01_URL);
-        String url2 = getAbsoluteUrl(StringHelper.ROBOCOP_BLANK_PAGE_02_URL);
-        String url3 = getAbsoluteUrl(StringHelper.ROBOCOP_BLANK_PAGE_03_URL);
+        String url = getAbsoluteUrl(mStringHelper.ROBOCOP_BLANK_PAGE_01_URL);
+        String url2 = getAbsoluteUrl(mStringHelper.ROBOCOP_BLANK_PAGE_02_URL);
+        String url3 = getAbsoluteUrl(mStringHelper.ROBOCOP_BLANK_PAGE_03_URL);
 
         inputAndLoadUrl(url);
         verifyUrlBarTitle(url);
         inputAndLoadUrl(url2);
         verifyUrlBarTitle(url2);
         inputAndLoadUrl(url3);
         verifyUrlBarTitle(url3);
 
@@ -63,12 +63,12 @@ public class testHistory extends AboutHo
             }
         }, MAX_WAIT_MS);
 
         mAsserter.isnot(mFirstChild, null, "Got history item");
         mSolo.clickOnView(mFirstChild);
 
         // The first item here (since it was just visited) should be a "Switch to tab" item
         // i.e. don't expect a DOMContentLoaded event
-        verifyUrlBarTitle(StringHelper.ROBOCOP_BLANK_PAGE_03_URL);
+        verifyUrlBarTitle(mStringHelper.ROBOCOP_BLANK_PAGE_03_URL);
         verifyUrl(url3);
     }
 }
--- a/mobile/android/base/tests/testHomeBanner.java
+++ b/mobile/android/base/tests/testHomeBanner.java
@@ -36,30 +36,30 @@ public class testHomeBanner extends UITe
      * onshown/onclick handlers are called in JS.
      *
      * Note: This test does not remove the message after it is done.
      */
     private void addBannerTest() {
         // Load about:home and make sure the onshown handler is called.
         Actions.EventExpecter eventExpecter = getActions().expectGeckoEvent("TestHomeBanner:MessageShown");
         addBannerMessage();
-        NavigationHelper.enterAndLoadUrl(StringHelper.ABOUT_HOME_URL);
+        NavigationHelper.enterAndLoadUrl(mStringHelper.ABOUT_HOME_URL);
         eventExpecter.blockForEvent();
 
         // Verify that the banner is visible with the correct text.
         mAboutHome.assertBannerText(TEXT);
 
         // Verify that the banner isn't visible after navigating away from about:home.
-        NavigationHelper.enterAndLoadUrl(StringHelper.ABOUT_FIREFOX_URL);
+        NavigationHelper.enterAndLoadUrl(mStringHelper.ABOUT_FIREFOX_URL);
         mAboutHome.assertBannerNotVisible();
     }
 
 
     private void hideOnToolbarFocusTest() {
-        NavigationHelper.enterAndLoadUrl(StringHelper.ABOUT_HOME_URL);
+        NavigationHelper.enterAndLoadUrl(mStringHelper.ABOUT_HOME_URL);
         mAboutHome.assertVisible()
                   .assertBannerVisible();
 
         mToolbar.enterEditingMode();
         mAboutHome.assertBannerNotVisible();
 
         mToolbar.dismissEditingMode();
         mAboutHome.assertBannerVisible();
@@ -67,17 +67,17 @@ public class testHomeBanner extends UITe
 
     /**
      * Adds a banner message, verifies that its ondismiss handler is called in JS,
      * and verifies that the banner is no longer shown after it is dismissed.
      *
      * Note: This test does not remove the message after it is done.
      */
     private void dismissBannerTest() {
-        NavigationHelper.enterAndLoadUrl(StringHelper.ABOUT_HOME_URL);
+        NavigationHelper.enterAndLoadUrl(mStringHelper.ABOUT_HOME_URL);
         mAboutHome.assertVisible();
 
         // Test to make sure the ondismiss handler is called when the close button is clicked.
         final Actions.EventExpecter eventExpecter = getActions().expectGeckoEvent("TestHomeBanner:MessageDismissed");
         mAboutHome.dismissBanner();
         eventExpecter.blockForEvent();
 
         mAboutHome.assertBannerNotVisible();
--- a/mobile/android/base/tests/testImportFromAndroid.java
+++ b/mobile/android/base/tests/testImportFromAndroid.java
@@ -131,18 +131,18 @@ public class testImportFromAndroid exten
                  values.put("date", System.currentTimeMillis());
                  values.put("visits", androidData.indexOf(url));
                  resolver.insert(uri, values);
             }
         }
     }
 
     private void importDataFromAndroid() {
-        waitForText(StringHelper.TITLE_PLACE_HOLDER);
-        selectSettingsItem(StringHelper.CUSTOMIZE_SECTION_LABEL, StringHelper.IMPORT_FROM_ANDROID_LABEL);
+        waitForText(mStringHelper.TITLE_PLACE_HOLDER);
+        selectSettingsItem(mStringHelper.CUSTOMIZE_SECTION_LABEL, mStringHelper.IMPORT_FROM_ANDROID_LABEL);
 
         // Wait for the Import form Android pop-up to be opened. It has the same title as the option so waiting for the "Cancel" button
         waitForText("Cancel");
         mSolo.clickOnButton("Import");
 
         // Wait until the import pop-up is dismissed. This depending on the number of items in the android history can take up to a few seconds
         boolean importComplete = waitForCondition(new Condition() {
             @Override
@@ -151,23 +151,23 @@ public class testImportFromAndroid exten
             }
         }, MAX_WAIT_TIMEOUT);
 
         mAsserter.ok(importComplete, "Waiting for import to finish and the pop-up to be dismissed", "Import was completed and the pop-up was dismissed");
 
         // Import has finished. Waiting to get back to the Settings Menu and looking for the Import&Export subsection
         if ("phone".equals(mDevice.type)) {
             // Phones don't have headers like tablets, so we need to pop up one more level.
-            waitForText(StringHelper.IMPORT_FROM_ANDROID_LABEL);
+            waitForText(mStringHelper.IMPORT_FROM_ANDROID_LABEL);
             mActions.sendSpecialKey(Actions.SpecialKey.BACK);
         }
-        waitForText(StringHelper.PRIVACY_SECTION_LABEL); // Settings is a header for the settings menu page. Waiting for Privacy ensures we are back in the top Settings view
+        waitForText(mStringHelper.PRIVACY_SECTION_LABEL); // Settings is a header for the settings menu page. Waiting for Privacy ensures we are back in the top Settings view
         mActions.sendSpecialKey(Actions.SpecialKey.BACK); // Exit Settings
         // Make sure the settings menu has been closed.
-        mAsserter.ok(mSolo.waitForText(StringHelper.TITLE_PLACE_HOLDER), "Waiting for search bar", "Search bar found");
+        mAsserter.ok(mSolo.waitForText(mStringHelper.TITLE_PLACE_HOLDER), "Waiting for search bar", "Search bar found");
 
     }
 
     public ArrayList<String> getAndroidUrls(String data) {
         // Return bookmarks or history depending on what the user asks for
         ArrayList<String> urls = new ArrayList<String>();
         ContentResolver resolver = getActivity().getContentResolver();
         Cursor cursor = null;
--- a/mobile/android/base/tests/testInputConnection.java
+++ b/mobile/android/base/tests/testInputConnection.java
@@ -23,17 +23,17 @@ import android.view.inputmethod.InputCon
  */
 public class testInputConnection extends UITest {
 
     private static final String INITIAL_TEXT = "foo";
 
     public void testInputConnection() throws InterruptedException {
         GeckoHelper.blockForReady();
 
-        final String url = StringHelper.ROBOCOP_INPUT_URL + "#" + INITIAL_TEXT;
+        final String url = mStringHelper.ROBOCOP_INPUT_URL + "#" + INITIAL_TEXT;
         NavigationHelper.enterAndLoadUrl(url);
         mToolbar.assertTitle(url);
 
         mGeckoView.mTextInput
             .waitForInputConnection()
             .testInputConnection(new BasicInputConnectionTest());
     }
 
--- a/mobile/android/base/tests/testInputUrlBar.java
+++ b/mobile/android/base/tests/testInputUrlBar.java
@@ -18,17 +18,17 @@ import android.widget.EditText;
 public final class testInputUrlBar extends BaseTest {
     private Element mUrlBarEditElement;
     private EditText mUrlBarEditView;
 
     public void testInputUrlBar() {
         blockForGeckoReady();
 
         startEditingMode();
-        assertUrlBarText(StringHelper.ABOUT_HOME_URL);
+        assertUrlBarText(mStringHelper.ABOUT_HOME_URL);
 
         // Avoid any auto domain completion by using a prefix that matches
         //  nothing, including about: pages
         mActions.sendKeys("zy");
         assertUrlBarText("zy");
 
         mActions.sendKeys("cd");
         assertUrlBarText("zycd");
@@ -88,21 +88,21 @@ public final class testInputUrlBar exten
         assertUrlBarText("uv");
 
         // Dismiss the VKB
         mActions.sendSpecialKey(Actions.SpecialKey.BACK);
 
         // Dismiss editing mode
         mActions.sendSpecialKey(Actions.SpecialKey.BACK);
 
-        waitForText(StringHelper.TITLE_PLACE_HOLDER);
+        waitForText(mStringHelper.TITLE_PLACE_HOLDER);
 
         // URL bar should have forgotten about "uv" text.
         startEditingMode();
-        assertUrlBarText(StringHelper.ABOUT_HOME_URL);
+        assertUrlBarText(mStringHelper.ABOUT_HOME_URL);
 
         int width = mDriver.getGeckoWidth() / 2;
         int y = mDriver.getGeckoHeight() / 2;
 
         // Slide to the right, force URL bar entry to lose input focus
         mActions.drag(width, 0, y, y);
 
         // Select text and replace the content
--- a/mobile/android/base/tests/testJavascriptBridge.java
+++ b/mobile/android/base/tests/testJavascriptBridge.java
@@ -31,17 +31,17 @@ public class testJavascriptBridge extend
     @Override
     public void tearDown() throws Exception {
         js.disconnect();
         super.tearDown();
     }
 
     public void testJavascriptBridge() {
         GeckoHelper.blockForReady();
-        NavigationHelper.enterAndLoadUrl(StringHelper.getHarnessUrlForJavascript(TEST_JS));
+        NavigationHelper.enterAndLoadUrl(mStringHelper.getHarnessUrlForJavascript(TEST_JS));
         js.syncCall("check_js_int_arg", 1);
     }
 
     public void checkJavaIntArg(final int int2) {
         // Async call from JS
         fAssertEquals("Integer argument matches", 2, int2);
         js.syncCall("check_js_double_arg", 3.0D);
     }
--- a/mobile/android/base/tests/testLinkContextMenu.java
+++ b/mobile/android/base/tests/testLinkContextMenu.java
@@ -1,28 +1,28 @@
 /* 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/. */
 
 package org.mozilla.gecko.tests;
 
-
 public class testLinkContextMenu extends ContentContextMenuTest {
 
     // Test website strings
     private static String LINK_PAGE_URL;
     private static String BLANK_PAGE_URL;
     private static final String LINK_PAGE_TITLE = "Big Link";
-    private static final String linkMenuItems [] = StringHelper.CONTEXT_MENU_ITEMS_IN_NORMAL_TAB;
 
     public void testLinkContextMenu() {
+        final String linkMenuItems [] = mStringHelper.CONTEXT_MENU_ITEMS_IN_NORMAL_TAB;
+
         blockForGeckoReady();
 
-        LINK_PAGE_URL=getAbsoluteUrl(StringHelper.ROBOCOP_BIG_LINK_URL);
-        BLANK_PAGE_URL=getAbsoluteUrl(StringHelper.ROBOCOP_BLANK_PAGE_01_URL);
+        LINK_PAGE_URL=getAbsoluteUrl(mStringHelper.ROBOCOP_BIG_LINK_URL);
+        BLANK_PAGE_URL=getAbsoluteUrl(mStringHelper.ROBOCOP_BLANK_PAGE_01_URL);
         inputAndLoadUrl(LINK_PAGE_URL);
         waitForText(LINK_PAGE_TITLE);
 
         verifyContextMenuItems(linkMenuItems); // Verify context menu items are correct
         openTabFromContextMenu(linkMenuItems[0],2); // Test the "Open in New Tab" option - expecting 2 tabs: the original and the new one
         openTabFromContextMenu(linkMenuItems[1],2); // Test the "Open in Private Tab" option - expecting only 2 tabs in normal mode
         verifyCopyOption(linkMenuItems[2], BLANK_PAGE_URL); // Test the "Copy Link" option
         verifyShareOption(linkMenuItems[3], LINK_PAGE_TITLE); // Test the "Share Link" option
--- a/mobile/android/base/tests/testLoad.java
+++ b/mobile/android/base/tests/testLoad.java
@@ -7,17 +7,17 @@ package org.mozilla.gecko.tests;
 /**
  * A basic page load test.
  * - loads a page
  * - verifies it rendered properly
  * - verifies the displayed url is correct
  */
 public class testLoad extends PixelTest {
     public void testLoad() {
-        String url = getAbsoluteUrl(StringHelper.ROBOCOP_BOXES_URL);
+        String url = getAbsoluteUrl(mStringHelper.ROBOCOP_BOXES_URL);
 
         blockForGeckoReady();
 
         loadAndVerifyBoxes(url);
 
         verifyUrl(url);
     }
 }
--- a/mobile/android/base/tests/testMailToContextMenu.java
+++ b/mobile/android/base/tests/testMailToContextMenu.java
@@ -1,26 +1,26 @@
 /* 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/. */
 
 package org.mozilla.gecko.tests;
 
-
 public class testMailToContextMenu extends ContentContextMenuTest {
 
     // Test website strings
     private static String MAILTO_PAGE_URL;
-    private static final String MAILTO_PAGE_TITLE = StringHelper.ROBOCOP_BIG_MAILTO_TITLE;
     private static final String mailtoMenuItems [] = {"Copy Email Address", "Share Email Address"};
 
     public void testMailToContextMenu() {
+        final String MAILTO_PAGE_TITLE = mStringHelper.ROBOCOP_BIG_MAILTO_TITLE;
+
         blockForGeckoReady();
 
-        MAILTO_PAGE_URL=getAbsoluteUrl(StringHelper.ROBOCOP_BIG_MAILTO_URL);
+        MAILTO_PAGE_URL=getAbsoluteUrl(mStringHelper.ROBOCOP_BIG_MAILTO_URL);
         inputAndLoadUrl(MAILTO_PAGE_URL);
         waitForText(MAILTO_PAGE_TITLE);
 
         verifyContextMenuItems(mailtoMenuItems);
         verifyCopyOption(mailtoMenuItems[0], "foo.bar@example.com"); // Test the "Copy Email Address" option
         verifyShareOption(mailtoMenuItems[1], MAILTO_PAGE_TITLE); // Test the "Share Email Address" option
     }
 }
--- a/mobile/android/base/tests/testMasterPassword.java
+++ b/mobile/android/base/tests/testMasterPassword.java
@@ -21,17 +21,17 @@ public class testMasterPassword extends 
         enableMasterPassword(password, badPassword);
         verifyLoginPage(password, badPassword);
         disableMasterPassword(password, badPassword);
     }
 
     public void enableMasterPassword(String password, String badPassword) {
 
         // Look for the 'Settings' menu if this device/OS uses it
-        selectSettingsItem(StringHelper.PRIVACY_SECTION_LABEL, StringHelper.MASTER_PASSWORD_LABEL);
+        selectSettingsItem(mStringHelper.PRIVACY_SECTION_LABEL, mStringHelper.MASTER_PASSWORD_LABEL);
         waitForText("^Create Master Password$");
 
         // Verify that the OK button is not activated until both fields are filled
         closeTabletKeyboard();
         mAsserter.ok(!mSolo.getButton("OK").isEnabled(), "Verify if the OK button is inactive", "The OK button is inactive until both fields are filled");
 
         // Verify that the OK button is not activated until the Confirm password field is filled
         editPasswordField(0, password);
@@ -48,18 +48,18 @@ public class testMasterPassword extends 
         // Check that the Master Password is not set when canceling the action
         mSolo.clickOnEditText(0);
         mActions.sendKeys(password);
         mSolo.clearEditText(1);
         mSolo.clickOnEditText(1);
         mActions.sendKeys(password);
         waitForText("^Cancel$");
         mSolo.clickOnText("^Cancel$");
-        waitForText("^" + StringHelper.MASTER_PASSWORD_LABEL + "$");
-        mSolo.clickOnText("^" + StringHelper.MASTER_PASSWORD_LABEL + "$");
+        waitForText("^" + mStringHelper.MASTER_PASSWORD_LABEL + "$");
+        mSolo.clickOnText("^" + mStringHelper.MASTER_PASSWORD_LABEL + "$");
         mAsserter.ok(mSolo.waitForText("^Create Master Password$"), "Checking if no password was set if the action was canceled", "No password was set");
 
         // Enable Master Password
         mSolo.clickOnEditText(0);
         mActions.sendKeys(password);
         mSolo.clickOnEditText(1);
         mActions.sendKeys(password);
 
@@ -74,24 +74,24 @@ public class testMasterPassword extends 
         mAsserter.ok(mSolo.waitForText("Remove Master Password"), "Checking if the password is enabled", "The password is enabled");
         clickOnButton("Cancel"); // Go back to settings menu
 
         if ("phone".equals(mDevice.type)) {
             // Phones don't have headers like tablets, so we need to pop up one more level.
             waitForText("Use master password");
             mActions.sendSpecialKey(Actions.SpecialKey.BACK);
         }
-        waitForText(StringHelper.SETTINGS_LABEL);
+        waitForText(mStringHelper.SETTINGS_LABEL);
         mActions.sendSpecialKey(Actions.SpecialKey.BACK);// Close the Settings Menu
     }
 
     public void disableMasterPassword(String password, String badPassword) {
 
         // Look for the 'Settings' menu if this device/OS uses it
-        selectSettingsItem(StringHelper.PRIVACY_SECTION_LABEL, StringHelper.MASTER_PASSWORD_LABEL);
+        selectSettingsItem(mStringHelper.PRIVACY_SECTION_LABEL, mStringHelper.MASTER_PASSWORD_LABEL);
         waitForText("^Remove Master Password$");
 
         // Verify that the OK button is not activated if the password field is empty
         closeTabletKeyboard();
         mAsserter.ok(!mSolo.getButton("OK").isEnabled(), "Verify if the OK button is inactive", "The OK button is inactive if the password field is empty");
 
         // Verify that the OK button is activated if the password field contains characters
         editPasswordField(0, badPassword);
@@ -139,17 +139,17 @@ public class testMasterPassword extends 
             toggleVKB();// Close the keyboard for tablets
         }
     }
 
     @Override
     public void clearPrivateData() {
 
         // Look for the 'Settings' menu if this device/OS uses it
-        selectSettingsItem(StringHelper.PRIVACY_SECTION_LABEL, StringHelper.CLEAR_PRIVATE_DATA_LABEL);
+        selectSettingsItem(mStringHelper.PRIVACY_SECTION_LABEL, mStringHelper.CLEAR_PRIVATE_DATA_LABEL);
 
         waitForText("Browsing history"); // Make sure the Clear private data pop-up is displayed
         Actions.EventExpecter clearPrivateDataEventExpecter = mActions.expectGeckoEvent("Sanitize:Finished");
         if (mSolo.searchText("Clear data") && !mSolo.searchText("Cookies")) {
             mSolo.clickOnText("^Clear data$");
             clearPrivateDataEventExpecter.blockForEvent();
         } else { // For some reason the pop-up was not opened
             if (mSolo.searchText("Cookies")) {
@@ -168,17 +168,17 @@ public class testMasterPassword extends 
         mAsserter.ok(mSolo.searchText("^Remove Master Password$"), "Checking if the master password was disabled by clearing private data", "The master password is not disabled by clearing private data");
         clickOnButton("Cancel"); // Close the Master Password menu
 
         if ("phone".equals(mDevice.type)) {
             // Phones don't have headers like tablets, so we need to pop up one more level.
             waitForText("Use master password");
             mActions.sendSpecialKey(Actions.SpecialKey.BACK);
         }
-        waitForText(StringHelper.SETTINGS_LABEL);
+        waitForText(mStringHelper.SETTINGS_LABEL);
         mActions.sendSpecialKey(Actions.SpecialKey.BACK);// Close the Settings Menu
         // Make sure the settings menu has been closed.
         mAsserter.ok(mSolo.waitForText("Browser Blank Page 01"), "Waiting for blank browser page after exiting settings", "Blank browser page present");
     }
 
     public void verifyLoginPage(String password, String badPassword) {
         String LOGIN_URL = getAbsoluteUrl("/robocop/robocop_login.html");
         String option [] = {"Save", "Don't save"};
--- a/mobile/android/base/tests/testNewTab.java
+++ b/mobile/android/base/tests/testNewTab.java
@@ -15,18 +15,18 @@ import com.jayway.android.robotium.solo.
 /* A simple test that creates 2 new tabs and checks that the tab count increases. */
 public class testNewTab extends BaseTest {
     private Element tabCount = null;
     private Element tabs = null;
     private final Element closeTab = null;
     private int tabCountInt = 0;
 
     public void testNewTab() {
-        String url = getAbsoluteUrl(StringHelper.ROBOCOP_BLANK_PAGE_01_URL);
-        String url2 = getAbsoluteUrl(StringHelper.ROBOCOP_BLANK_PAGE_02_URL);
+        String url = getAbsoluteUrl(mStringHelper.ROBOCOP_BLANK_PAGE_01_URL);
+        String url2 = getAbsoluteUrl(mStringHelper.ROBOCOP_BLANK_PAGE_02_URL);
 
         blockForGeckoReady();
 
         Activity activity = getActivity();
         tabCount = mDriver.findElement(activity, R.id.tabs_counter);
         tabs = mDriver.findElement(activity, R.id.tabs);
         mAsserter.ok(tabCount != null && tabs != null,
                      "Checking elements", "all elements present");
--- a/mobile/android/base/tests/testPanCorrectness.java
+++ b/mobile/android/base/tests/testPanCorrectness.java
@@ -10,17 +10,17 @@ import org.mozilla.gecko.PaintedSurface;
 /**
  * A basic panning correctness test.
  * - Loads a page and verifies it draws
  * - drags page upwards by 100 pixels and verifies it draws
  * - drags page leftwards by 100 pixels and verifies it draws
  */
 public class testPanCorrectness extends PixelTest {
     public void testPanCorrectness() {
-        String url = getAbsoluteUrl(StringHelper.ROBOCOP_BOXES_URL);
+        String url = getAbsoluteUrl(mStringHelper.ROBOCOP_BOXES_URL);
 
         MotionEventHelper meh = new MotionEventHelper(getInstrumentation(), mDriver.getGeckoLeft(), mDriver.getGeckoTop());
 
         blockForGeckoReady();
 
         // load page and check we're at 0,0
         loadAndVerifyBoxes(url);
 
--- a/mobile/android/base/tests/testPermissions.java
+++ b/mobile/android/base/tests/testPermissions.java
@@ -17,17 +17,17 @@ public class testPermissions extends Pix
 
         geolocationTest();
     }
 
     private void geolocationTest() {
         Actions.RepeatedEventExpecter paintExpecter;
 
         // Test geolocation notification
-        loadAndPaint(getAbsoluteUrl(StringHelper.ROBOCOP_GEOLOCATION_URL));
+        loadAndPaint(getAbsoluteUrl(mStringHelper.ROBOCOP_GEOLOCATION_URL));
         waitForText("wants your location");
 
         // Uncheck the "Don't ask again for this site" checkbox
         ArrayList<CheckBox> checkBoxes = mSolo.getCurrentViews(CheckBox.class);
         mAsserter.ok(checkBoxes.size() == 1, "checkbox count", "only one checkbox visible");
         mAsserter.ok(mSolo.isCheckBoxChecked(0), "checkbox checked", "checkbox is checked");
         mSolo.clickOnCheckBox(0);
         mAsserter.ok(!mSolo.isCheckBoxChecked(0), "checkbox not checked", "checkbox is not checked");
--- a/mobile/android/base/tests/testPictureLinkContextMenu.java
+++ b/mobile/android/base/tests/testPictureLinkContextMenu.java
@@ -1,31 +1,31 @@
 /* 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/. */
 
 package org.mozilla.gecko.tests;
 
-
 public class testPictureLinkContextMenu extends ContentContextMenuTest {
 
     // Test website strings
     private static String PICTURE_PAGE_URL;
     private static String BLANK_PAGE_URL;
-    private static final String PICTURE_PAGE_TITLE = StringHelper.ROBOCOP_PICTURE_LINK_TITLE;
     private static final String tabs [] = { "Image", "Link" };
     private static final String photoMenuItems [] = { "Copy Image Location", "Share Image", "Set Image As", "Save Image" };
-    private static final String linkMenuItems [] = StringHelper.CONTEXT_MENU_ITEMS_IN_NORMAL_TAB;
     private static final String imageTitle = "^Image$";
 
     public void testPictureLinkContextMenu() {
+        final String PICTURE_PAGE_TITLE = mStringHelper.ROBOCOP_PICTURE_LINK_TITLE;
+        final String linkMenuItems [] = mStringHelper.CONTEXT_MENU_ITEMS_IN_NORMAL_TAB;
+
         blockForGeckoReady();
 
-        PICTURE_PAGE_URL=getAbsoluteUrl(StringHelper.ROBOCOP_PICTURE_LINK_URL);
-        BLANK_PAGE_URL=getAbsoluteUrl(StringHelper.ROBOCOP_BLANK_PAGE_02_URL);
+        PICTURE_PAGE_URL=getAbsoluteUrl(mStringHelper.ROBOCOP_PICTURE_LINK_URL);
+        BLANK_PAGE_URL=getAbsoluteUrl(mStringHelper.ROBOCOP_BLANK_PAGE_02_URL);
         loadAndPaint(PICTURE_PAGE_URL);
         verifyUrlBarTitle(PICTURE_PAGE_URL);
 
         switchTabs(imageTitle);
         verifyContextMenuItems(photoMenuItems);
         verifyTabs(tabs);
         switchTabs(imageTitle);
         verifyCopyOption(photoMenuItems[0], "Firefox.jpg"); // Test the "Copy Image Location" option
--- a/mobile/android/base/tests/testPrivateBrowsing.java
+++ b/mobile/android/base/tests/testPrivateBrowsing.java
@@ -14,45 +14,45 @@ import org.mozilla.gecko.Actions;
  * The test loads a new private tab and loads a page with a big link on it
  * Opens the link in a new private tab and checks that it is private
  * Adds a new normal tab and loads a 3rd URL
  * Checks that the bigLinkUrl loaded in the normal tab is present in the browsing history but the 2 urls opened in private tabs are not
  */
 public class testPrivateBrowsing extends ContentContextMenuTest {
 
     public void testPrivateBrowsing() {
-        String bigLinkUrl = getAbsoluteUrl(StringHelper.ROBOCOP_BIG_LINK_URL);
-        String blank1Url = getAbsoluteUrl(StringHelper.ROBOCOP_BLANK_PAGE_01_URL);
-        String blank2Url = getAbsoluteUrl(StringHelper.ROBOCOP_BLANK_PAGE_02_URL);
+        String bigLinkUrl = getAbsoluteUrl(mStringHelper.ROBOCOP_BIG_LINK_URL);
+        String blank1Url = getAbsoluteUrl(mStringHelper.ROBOCOP_BLANK_PAGE_01_URL);
+        String blank2Url = getAbsoluteUrl(mStringHelper.ROBOCOP_BLANK_PAGE_02_URL);
 
         blockForGeckoReady();
 
-        inputAndLoadUrl(StringHelper.ABOUT_BLANK_URL);
+        inputAndLoadUrl(mStringHelper.ABOUT_BLANK_URL);
 
-        addTab(bigLinkUrl, StringHelper.ROBOCOP_BIG_LINK_TITLE, true);
+        addTab(bigLinkUrl, mStringHelper.ROBOCOP_BIG_LINK_TITLE, true);
 
         verifyTabCount(1);
 
         // Open the link context menu and verify the options
-        verifyContextMenuItems(StringHelper.CONTEXT_MENU_ITEMS_IN_PRIVATE_TAB);
+        verifyContextMenuItems(mStringHelper.CONTEXT_MENU_ITEMS_IN_PRIVATE_TAB);
 
         // Check that "Open Link in New Tab" is not in the menu
-        mAsserter.ok(!mSolo.searchText(StringHelper.CONTEXT_MENU_ITEMS_IN_NORMAL_TAB[0]), "Checking that 'Open Link in New Tab' is not displayed in the context menu", "'Open Link in New Tab' is not displayed in the context menu");
+        mAsserter.ok(!mSolo.searchText(mStringHelper.CONTEXT_MENU_ITEMS_IN_NORMAL_TAB[0]), "Checking that 'Open Link in New Tab' is not displayed in the context menu", "'Open Link in New Tab' is not displayed in the context menu");
 
         // Open the link in a new private tab and check that it is private
         Actions.EventExpecter privateTabEventExpector = mActions.expectGeckoEvent("Tab:Added");
-        mSolo.clickOnText(StringHelper.CONTEXT_MENU_ITEMS_IN_PRIVATE_TAB[0]);
+        mSolo.clickOnText(mStringHelper.CONTEXT_MENU_ITEMS_IN_PRIVATE_TAB[0]);
         String eventData = privateTabEventExpector.blockForEventData();
         privateTabEventExpector.unregisterListener();
 
         mAsserter.ok(isTabPrivate(eventData), "Checking if the new tab opened from the context menu was a private tab", "The tab was a private tab");
         verifyTabCount(2);
 
         // Open a normal tab to check later that it was registered in the Firefox Browser History
-        addTab(blank2Url, StringHelper.ROBOCOP_BLANK_PAGE_02_TITLE, false);
+        addTab(blank2Url, mStringHelper.ROBOCOP_BLANK_PAGE_02_TITLE, false);
         verifyTabCount(2);
 
         // Get the history list and check that the links open in private browsing are not saved
         final ArrayList<String> firefoxHistory = mDatabaseHelper.getBrowserDBUrls(DatabaseHelper.BrowserDataType.HISTORY);
 
         mAsserter.ok(!firefoxHistory.contains(bigLinkUrl), "Check that the link opened in the first private tab was not saved", bigLinkUrl + " was not added to history");
         mAsserter.ok(!firefoxHistory.contains(blank1Url), "Check that the link opened in the private tab from the context menu was not saved", blank1Url + " was not added to history");
         mAsserter.ok(firefoxHistory.contains(blank2Url), "Check that the link opened in the normal tab was saved", blank2Url + " was added to history");
--- a/mobile/android/base/tests/testPromptGridInput.java
+++ b/mobile/android/base/tests/testPromptGridInput.java
@@ -35,15 +35,15 @@ public class testPromptGridInput extends
     public void testGridItem(String title) {
         // Force the list to scroll if necessary
         mSolo.waitForText(title, 1, 500, true);
         mAsserter.ok(waitForText(title), "Found grid item", title);
     }
 
     public void test(final int num) {
         // Load about:blank between each test to ensure we reset state
-        loadUrl(StringHelper.ABOUT_BLANK_URL);
-        mAsserter.ok(waitForText(StringHelper.ABOUT_BLANK_URL), "Loaded blank page",
-                StringHelper.ABOUT_BLANK_URL);
+        loadUrl(mStringHelper.ABOUT_BLANK_URL);
+        mAsserter.ok(waitForText(mStringHelper.ABOUT_BLANK_URL), "Loaded blank page",
+                mStringHelper.ABOUT_BLANK_URL);
 
         loadUrl("chrome://roboextender/content/robocop_prompt_gridinput.html#test" + num);
     }
 }
--- a/mobile/android/base/tests/testReaderMode.java
+++ b/mobile/android/base/tests/testReaderMode.java
@@ -33,17 +33,17 @@ public class testReaderMode extends Abou
         Actions.EventExpecter contentEventExpecter;
         Actions.EventExpecter contentReaderAddedExpecter;
         Actions.EventExpecter faviconExpecter;
         Actions.EventExpecter contentPageShowExpecter;
         Actions.RepeatedEventExpecter paintExpecter;
         ListView list;
         View child;
         View readerIcon;
-        String textUrl = getAbsoluteUrl(StringHelper.ROBOCOP_TEXT_PAGE_URL);
+        String textUrl = getAbsoluteUrl(mStringHelper.ROBOCOP_TEXT_PAGE_URL);
         String devType = mDevice.type;
         int childNo;
         int height;
         int width;
 
         loadAndPaint(textUrl);
 
         // Add the page to the Reading List using long click on the reader icon
@@ -72,17 +72,17 @@ public class testReaderMode extends Abou
         // Changing devices orientation to be sure that all devices are in portrait when will access the reader toolbar
         mSolo.setActivityOrientation(Solo.PORTRAIT);
         faviconExpecter.blockForEvent();
         faviconExpecter.unregisterListener();
         contentPageShowExpecter.blockForEvent();
         contentPageShowExpecter.unregisterListener();
         paintExpecter.blockUntilClear(EVENT_CLEAR_DELAY_MS);
         paintExpecter.unregisterListener();
-        verifyUrlBarTitle(StringHelper.ROBOCOP_TEXT_PAGE_URL);
+        verifyUrlBarTitle(mStringHelper.ROBOCOP_TEXT_PAGE_URL);
 
         // Open the share menu for the reader toolbar
         height = mDriver.getGeckoTop() + mDriver.getGeckoHeight() - 10;
         width = mDriver.getGeckoLeft() + mDriver.getGeckoWidth() - 10;
         mAsserter.dumpLog("Long Clicking at width = " + String.valueOf(width) + " and height = " + String.valueOf(height));
         mSolo.clickOnScreen(width,height);
         mAsserter.ok(mSolo.waitForText("Share via"), "Waiting for the share menu", "The share menu is present");
         mActions.sendSpecialKey(Actions.SpecialKey.BACK); // Close the share menu
@@ -103,29 +103,29 @@ public class testReaderMode extends Abou
         width = mDriver.getGeckoLeft() + mDriver.getGeckoWidth()/2 - 10;
         mAsserter.dumpLog("Long Clicking at width = " + String.valueOf(width) + " and height = " + String.valueOf(height));
         contentEventExpecter = mActions.expectGeckoEvent("DOMContentLoaded");
         mSolo.clickOnScreen(width,height);
         contentEventExpecter.blockForEvent();
         contentEventExpecter.unregisterListener();
 
         // Check if the page is present in the Reading List
-        mAsserter.ok(mSolo.waitForText(StringHelper.ROBOCOP_TEXT_PAGE_TITLE),
+        mAsserter.ok(mSolo.waitForText(mStringHelper.ROBOCOP_TEXT_PAGE_TITLE),
                 "Verify if the page is added to your Reading List",
-                StringHelper.ROBOCOP_TEXT_PAGE_TITLE);
+                mStringHelper.ROBOCOP_TEXT_PAGE_TITLE);
 
         // Check if the page is added in History tab like a Reading List item
         openAboutHomeTab(AboutHomeTabs.HISTORY);
         list = findListViewWithTag(HomePager.LIST_TAG_HISTORY);
         child = list.getChildAt(1);
         mAsserter.ok(child != null, "item can be retrieved", child != null ? child.toString() : "null!");
         mSolo.clickLongOnView(child);
         mAsserter.ok(mSolo.waitForText("Open in Reader"), "Verify if the page is present in history as a Reading List item", "The page is present in history as a Reading List item");
         mActions.sendSpecialKey(Actions.SpecialKey.BACK); // Dismiss the context menu
-        mSolo.waitForText(StringHelper.ROBOCOP_TEXT_PAGE_TITLE);
+        mSolo.waitForText(mStringHelper.ROBOCOP_TEXT_PAGE_TITLE);
 
         // Verify separately the Reading List entries for tablets and phone because for tablets there is an extra child in UI design
         if (devType.equals("phone")) {
             childNo = 1;
         }
         else {
             childNo = 2;
         }
@@ -133,25 +133,25 @@ public class testReaderMode extends Abou
         openAboutHomeTab(AboutHomeTabs.READING_LIST);
         list = findListViewWithTag(HomePager.LIST_TAG_READING_LIST);
         child = list.getChildAt(childNo-1);
         mAsserter.ok(child != null, "Verify if the page is present to your Reading List", "The page is present in your Reading List");
         contentEventExpecter = mActions.expectGeckoEvent("DOMContentLoaded");
         mSolo.clickOnView(child);
         contentEventExpecter.blockForEvent();
         contentEventExpecter.unregisterListener();
-        verifyUrlBarTitle(StringHelper.ROBOCOP_TEXT_PAGE_URL);
+        verifyUrlBarTitle(mStringHelper.ROBOCOP_TEXT_PAGE_URL);
 
         // Verify that we are in reader mode and remove the page from Reading List
         height = mDriver.getGeckoTop() + mDriver.getGeckoHeight() - 10;
         width = mDriver.getGeckoLeft() + 50;
         mAsserter.dumpLog("Long Clicking at width = " + String.valueOf(width) + " and height = " + String.valueOf(height));
         mSolo.clickOnScreen(width,height);
         mAsserter.ok(mSolo.waitForText("Page removed from your Reading List"), "Waiting for the page to removed from your Reading List", "The page is removed from your Reading List");
-        verifyUrlBarTitle(StringHelper.ROBOCOP_TEXT_PAGE_URL);
+        verifyUrlBarTitle(mStringHelper.ROBOCOP_TEXT_PAGE_URL);
 
         //Check if the Reading List is empty
         openAboutHomeTab(AboutHomeTabs.READING_LIST);
         list = findListViewWithTag(HomePager.LIST_TAG_READING_LIST);
         child = list.getChildAt(childNo-1);
         mAsserter.ok(child == null, "Verify if the Reading List is empty", "The Reading List is empty");
     }
 
--- a/mobile/android/base/tests/testSessionHistory.java
+++ b/mobile/android/base/tests/testSessionHistory.java
@@ -5,33 +5,33 @@ import org.mozilla.gecko.tests.helpers.N
 
 /**
  * Tests that navigating through session history (ex: forward, back) sets the correct UI state.
  */
 public class testSessionHistory extends UITest {
     public void testSessionHistory() {
         GeckoHelper.blockForReady();
 
-        String url = StringHelper.ROBOCOP_BLANK_PAGE_01_URL;
+        String url = mStringHelper.ROBOCOP_BLANK_PAGE_01_URL;
         NavigationHelper.enterAndLoadUrl(url);
         mToolbar.assertTitle(url);
 
-        url = StringHelper.ROBOCOP_BLANK_PAGE_02_URL;
+        url = mStringHelper.ROBOCOP_BLANK_PAGE_02_URL;
         NavigationHelper.enterAndLoadUrl(url);
         mToolbar.assertTitle(url);
 
-        url = StringHelper.ROBOCOP_BLANK_PAGE_03_URL;
+        url = mStringHelper.ROBOCOP_BLANK_PAGE_03_URL;
         NavigationHelper.enterAndLoadUrl(url);
         mToolbar.assertTitle(url);
 
         NavigationHelper.goBack();
-        mToolbar.assertTitle(StringHelper.ROBOCOP_BLANK_PAGE_02_URL);
+        mToolbar.assertTitle(mStringHelper.ROBOCOP_BLANK_PAGE_02_URL);
 
         NavigationHelper.goBack();
-        mToolbar.assertTitle(StringHelper.ROBOCOP_BLANK_PAGE_01_URL);
+        mToolbar.assertTitle(mStringHelper.ROBOCOP_BLANK_PAGE_01_URL);
 
         NavigationHelper.goForward();
-        mToolbar.assertTitle(StringHelper.ROBOCOP_BLANK_PAGE_02_URL);
+        mToolbar.assertTitle(mStringHelper.ROBOCOP_BLANK_PAGE_02_URL);
 
         NavigationHelper.reload();
-        mToolbar.assertTitle(StringHelper.ROBOCOP_BLANK_PAGE_02_URL);
+        mToolbar.assertTitle(mStringHelper.ROBOCOP_BLANK_PAGE_02_URL);
     }
 }
--- a/mobile/android/base/tests/testSessionOOMRestore.java
+++ b/mobile/android/base/tests/testSessionOOMRestore.java
@@ -12,17 +12,17 @@ import android.os.Bundle;
  */
 public class testSessionOOMRestore extends SessionTest {
     private Session mSession;
     private static final String PREFS_NAME = "GeckoApp";
     private static final String PREFS_ALLOW_STATE_BUNDLE = "allowStateBundle";
 
     @Override
     public void setActivityIntent(Intent intent) {
-        PageInfo home = new PageInfo(StringHelper.ABOUT_HOME_URL);
+        PageInfo home = new PageInfo(mStringHelper.ABOUT_HOME_URL);
         PageInfo page1 = new PageInfo("page1");
         PageInfo page2 = new PageInfo("page2");
         PageInfo page3 = new PageInfo("page3");
         PageInfo page4 = new PageInfo("page4");
         PageInfo page5 = new PageInfo("page5");
         PageInfo page6 = new PageInfo("page6");
 
         SessionTab tab1 = new SessionTab(0, home, page1, page2);
--- a/mobile/android/base/tests/testSessionOOMSave.java
+++ b/mobile/android/base/tests/testSessionOOMSave.java
@@ -12,17 +12,17 @@ import com.jayway.android.robotium.solo.
 public class testSessionOOMSave extends SessionTest {
     private final static int SESSION_TIMEOUT = 25000;
 
     public void testSessionOOMSave() {
         Actions.EventExpecter pageShowExpecter = mActions.expectGeckoEvent("Content:PageShow");
         pageShowExpecter.blockForEvent();
         pageShowExpecter.unregisterListener();
 
-        PageInfo home = new PageInfo(StringHelper.ABOUT_HOME_URL);
+        PageInfo home = new PageInfo(mStringHelper.ABOUT_HOME_URL);
         PageInfo page1 = new PageInfo("page1");
         PageInfo page2 = new PageInfo("page2");
         PageInfo page3 = new PageInfo("page3");
         PageInfo page4 = new PageInfo("page4");
         PageInfo page5 = new PageInfo("page5");
         PageInfo page6 = new PageInfo("page6");
 
         SessionTab tab1 = new SessionTab(0, home, page1, page2);
--- a/mobile/android/base/tests/testSettingsMenuItems.java
+++ b/mobile/android/base/tests/testSettingsMenuItems.java
@@ -23,75 +23,75 @@ public class testSettingsMenuItems exten
      *
      * where defaultValue is optional, and there can be multiple options.
      *
      * These menu items are the ones that are always present - to test menu items that differ
      * based on build (e.g., release vs. nightly), add the items in <code>addConditionalSettings</code>.
      */
 
     // Customize menu items.
-    String[] PATH_CUSTOMIZE = { StringHelper.CUSTOMIZE_SECTION_LABEL };
+    String[] PATH_CUSTOMIZE = { mStringHelper.CUSTOMIZE_SECTION_LABEL };
     String[][] OPTIONS_CUSTOMIZE = {
         { "Home" },
         { "Search", "", "Show search suggestions", "Installed search engines"},
-        { StringHelper.TABS_LABEL, "Don't restore after quitting " + StringHelper.BRAND_NAME, "Always restore", "Don't restore after quitting " + StringHelper.BRAND_NAME },
-        { StringHelper.IMPORT_FROM_ANDROID_LABEL, "", "Bookmarks", "History", "Import" },
+        { mStringHelper.TABS_LABEL, "Don't restore after quitting " + mStringHelper.BRAND_NAME, "Always restore", "Don't restore after quitting " + mStringHelper.BRAND_NAME },
+        { mStringHelper.IMPORT_FROM_ANDROID_LABEL, "", "Bookmarks", "History", "Import" },
     };
 
     // Home panel menu items.
-    String[] PATH_HOME = { StringHelper.CUSTOMIZE_SECTION_LABEL, "Home" };
+    String[] PATH_HOME = { mStringHelper.CUSTOMIZE_SECTION_LABEL, "Home" };
     String[][] OPTIONS_HOME = {
       { "Panels" },
       { "Automatic updates", "Enabled", "Enabled", "Only over Wi-Fi" },
     };
 
     // Display menu items.
-    String[] PATH_DISPLAY = { StringHelper.DISPLAY_SECTION_LABEL };
-    final String[] TITLE_BAR_LABEL_ARR = { StringHelper.TITLE_BAR_LABEL, StringHelper.SHOW_PAGE_ADDRESS_LABEL,
-        StringHelper.SHOW_PAGE_TITLE_LABEL, StringHelper.SHOW_PAGE_ADDRESS_LABEL };
+    String[] PATH_DISPLAY = { mStringHelper.DISPLAY_SECTION_LABEL };
+    final String[] TITLE_BAR_LABEL_ARR = { mStringHelper.TITLE_BAR_LABEL, mStringHelper.SHOW_PAGE_ADDRESS_LABEL,
+        mStringHelper.SHOW_PAGE_TITLE_LABEL, mStringHelper.SHOW_PAGE_ADDRESS_LABEL };
     String[][] OPTIONS_DISPLAY = {
-        { StringHelper.TEXT_SIZE_LABEL },
+        { mStringHelper.TEXT_SIZE_LABEL },
         TITLE_BAR_LABEL_ARR,
-        { StringHelper.SCROLL_TITLE_BAR_LABEL, "Hide the " + StringHelper.BRAND_NAME + " title bar when scrolling down a page" },
+        { mStringHelper.SCROLL_TITLE_BAR_LABEL, "Hide the " + mStringHelper.BRAND_NAME + " title bar when scrolling down a page" },
         { "Advanced" },
-        { StringHelper.CHARACTER_ENCODING_LABEL, "Don't show menu", "Show menu", "Don't show menu" },
-        { StringHelper.PLUGINS_LABEL, "Tap to play", "Enabled", "Tap to play", "Disabled" },
+        { mStringHelper.CHARACTER_ENCODING_LABEL, "Don't show menu", "Show menu", "Don't show menu" },
+        { mStringHelper.PLUGINS_LABEL, "Tap to play", "Enabled", "Tap to play", "Disabled" },
     };
 
     // Privacy menu items.
-    String[] PATH_PRIVACY = { StringHelper.PRIVACY_SECTION_LABEL };
-    final String[] TRACKING_PROTECTION_LABEL_ARR = { StringHelper.TRACKING_PROTECTION_LABEL };
-    final String[] MANAGE_LOGINS_ARR = { StringHelper.MANAGE_LOGINS_LABEL };
+    String[] PATH_PRIVACY = { mStringHelper.PRIVACY_SECTION_LABEL };
+    final String[] TRACKING_PROTECTION_LABEL_ARR = { mStringHelper.TRACKING_PROTECTION_LABEL };
+    final String[] MANAGE_LOGINS_ARR = { mStringHelper.MANAGE_LOGINS_LABEL };
     String[][] OPTIONS_PRIVACY = {
         TRACKING_PROTECTION_LABEL_ARR,
-        { StringHelper.DNT_LABEL },
-        { StringHelper.COOKIES_LABEL, "Enabled", "Enabled, excluding 3rd party", "Disabled" },
-        { StringHelper.REMEMBER_PASSWORDS_LABEL },
+        { mStringHelper.DNT_LABEL },
+        { mStringHelper.COOKIES_LABEL, "Enabled", "Enabled, excluding 3rd party", "Disabled" },
+        { mStringHelper.REMEMBER_PASSWORDS_LABEL },
         MANAGE_LOGINS_ARR,
-        { StringHelper.MASTER_PASSWORD_LABEL },
-        { StringHelper.CLEAR_PRIVATE_DATA_LABEL, "", "Browsing history", "Downloads", "Form & search history", "Cookies & active logins", "Saved passwords", "Cache", "Offline website data", "Site settings", "Clear data" },
+        { mStringHelper.MASTER_PASSWORD_LABEL },
+        { mStringHelper.CLEAR_PRIVATE_DATA_LABEL, "", "Browsing history", "Downloads", "Form & search history", "Cookies & active logins", "Saved passwords", "Cache", "Offline website data", "Site settings", "Clear data" },
     };
 
     // Mozilla/vendor menu items.
-    String[] PATH_MOZILLA = { StringHelper.MOZILLA_SECTION_LABEL };
+    String[] PATH_MOZILLA = { mStringHelper.MOZILLA_SECTION_LABEL };
     String[][] OPTIONS_MOZILLA = {
-        { StringHelper.ABOUT_LABEL },
-        { StringHelper.FAQS_LABEL },
-        { StringHelper.FEEDBACK_LABEL },
+        { mStringHelper.ABOUT_LABEL },
+        { mStringHelper.FAQS_LABEL },
+        { mStringHelper.FEEDBACK_LABEL },
         { "Data choices" },
-        { StringHelper.HEALTH_REPORT_LABEL, "Shares data with Mozilla about your browser health and helps you understand your browser performance" },
-        { StringHelper.MY_HEALTH_REPORT_LABEL },
+        { mStringHelper.HEALTH_REPORT_LABEL, "Shares data with Mozilla about your browser health and helps you understand your browser performance" },
+        { mStringHelper.MY_HEALTH_REPORT_LABEL },
     };
 
     // Developer menu items.
-    String[] PATH_DEVELOPER = { StringHelper.DEVELOPER_TOOLS_SECTION_LABEL };
+    String[] PATH_DEVELOPER = { mStringHelper.DEVELOPER_TOOLS_SECTION_LABEL };
     String[][] OPTIONS_DEVELOPER = {
-        { StringHelper.PAINT_FLASHING_LABEL },
-        { StringHelper.REMOTE_DEBUGGING_LABEL },
-        { StringHelper.LEARN_MORE_LABEL },
+        { mStringHelper.PAINT_FLASHING_LABEL },
+        { mStringHelper.REMOTE_DEBUGGING_LABEL },
+        { mStringHelper.LEARN_MORE_LABEL },
     };
 
     /*
      * This sets up a hierarchy of settings to test.
      *
      * The keys are String arrays representing the path through menu items
      * (the single-item arrays being top-level categories), and each value
      * is a List of menu items contained within each category.
@@ -114,57 +114,57 @@ public class testSettingsMenuItems exten
         blockForGeckoReady();
 
         Map<String[], List<String[]>> settingsMenuItems = new HashMap<String[], List<String[]>>();
         setupSettingsMap(settingsMenuItems);
 
         // Set special handling for Settings items that are conditionally built.
         updateConditionalSettings(settingsMenuItems);
 
-        selectMenuItem(StringHelper.SETTINGS_LABEL);
-        mAsserter.ok(mSolo.waitForText(StringHelper.SETTINGS_LABEL),
-                "The Settings menu did not load", StringHelper.SETTINGS_LABEL);
+        selectMenuItem(mStringHelper.SETTINGS_LABEL);
+        mAsserter.ok(mSolo.waitForText(mStringHelper.SETTINGS_LABEL),
+                "The Settings menu did not load", mStringHelper.SETTINGS_LABEL);
 
         // Dismiss the Settings screen and verify that the view is returned to about:home page
         mActions.sendSpecialKey(Actions.SpecialKey.BACK);
 
         // Waiting for page title to appear to be sure that is fully loaded before opening the menu
-        mAsserter.ok(mSolo.waitForText(StringHelper.TITLE_PLACE_HOLDER), "about:home did not load",
-                StringHelper.TITLE_PLACE_HOLDER);
-        verifyUrl(StringHelper.ABOUT_HOME_URL);
+        mAsserter.ok(mSolo.waitForText(mStringHelper.TITLE_PLACE_HOLDER), "about:home did not load",
+                mStringHelper.TITLE_PLACE_HOLDER);
+        verifyUrl(mStringHelper.ABOUT_HOME_URL);
 
-        selectMenuItem(StringHelper.SETTINGS_LABEL);
-        mAsserter.ok(mSolo.waitForText(StringHelper.SETTINGS_LABEL),
-                "The Settings menu did not load", StringHelper.SETTINGS_LABEL);
+        selectMenuItem(mStringHelper.SETTINGS_LABEL);
+        mAsserter.ok(mSolo.waitForText(mStringHelper.SETTINGS_LABEL),
+                "The Settings menu did not load", mStringHelper.SETTINGS_LABEL);
 
         checkForSync(mDevice);
 
         checkMenuHierarchy(settingsMenuItems);
     }
 
     /**
      * Check for Sync in settings.
      *
      * Sync location is a top level menu item on phones and small tablets,
      * but is under "Customize" on large tablets.
      */
     public void checkForSync(Device device) {
-        mAsserter.ok(mSolo.waitForText(StringHelper.SYNC_LABEL), "Waiting for Sync option",
-                StringHelper.SYNC_LABEL);
+        mAsserter.ok(mSolo.waitForText(mStringHelper.SYNC_LABEL), "Waiting for Sync option",
+                mStringHelper.SYNC_LABEL);
     }
 
     /**
      * Check for conditions for building certain settings, and add them to be tested
      * if they are present.
      */
     public void updateConditionalSettings(Map<String[], List<String[]>> settingsMap) {
         // Preferences dependent on RELEASE_BUILD
         if (!AppConstants.RELEASE_BUILD) {
             // Text reflow - only built if *not* release build
-            String[] textReflowUi = { StringHelper.TEXT_REFLOW_LABEL };
+            String[] textReflowUi = { mStringHelper.TEXT_REFLOW_LABEL };
             settingsMap.get(PATH_DISPLAY).add(textReflowUi);
 
             if (AppConstants.MOZ_STUMBLER_BUILD_TIME_ENABLED) {
                 // Anonymous cell tower/wifi collection
                 String[] networkReportingUi = { "Mozilla Location Service", "Help Mozilla map the world! Share approximate Wi-Fi and cellular location of your device to improve our geolocation service" };
                 settingsMap.get(PATH_MOZILLA).add(networkReportingUi);
 
                 String[] learnMoreUi = { "Learn more" };
@@ -181,29 +181,29 @@ public class testSettingsMenuItems exten
         // Automatic updates
         if (AppConstants.MOZ_UPDATER) {
             String[] autoUpdateUi = { "Download updates automatically", "Only over Wi-Fi", "Always", "Only over Wi-Fi", "Never" };
             settingsMap.get(PATH_CUSTOMIZE).add(autoUpdateUi);
         }
 
         // Tab Queue
         if (AppConstants.NIGHTLY_BUILD && AppConstants.MOZ_ANDROID_TAB_QUEUE) {
-            String[] tabQueue = { StringHelper.TAB_QUEUE_LABEL, "Prevent tabs from opening immediately, but open all queued tabs the next time " + StringHelper.BRAND_NAME + " loads." };
+            String[] tabQueue = { mStringHelper.TAB_QUEUE_LABEL, "Prevent tabs from opening immediately, but open all queued tabs the next time " + mStringHelper.BRAND_NAME + " loads." };
             settingsMap.get(PATH_CUSTOMIZE).add(tabQueue);
         }
 
         // Crash reporter
         if (AppConstants.MOZ_CRASHREPORTER) {
-            String[] crashReporterUi = { "Crash Reporter", StringHelper.BRAND_NAME + " submits crash reports to help Mozilla make your browser more stable and secure" };
+            String[] crashReporterUi = { "Crash Reporter", mStringHelper.BRAND_NAME + " submits crash reports to help Mozilla make your browser more stable and secure" };
             settingsMap.get(PATH_MOZILLA).add(crashReporterUi);
         }
 
         // Telemetry
         if (AppConstants.MOZ_TELEMETRY_REPORTING) {
-            String[] telemetryUi = { "Telemetry", "Shares performance, usage, hardware and customization data about your browser with Mozilla to help us make " + StringHelper.BRAND_NAME + " better" };
+            String[] telemetryUi = { "Telemetry", "Shares performance, usage, hardware and customization data about your browser with Mozilla to help us make " + mStringHelper.BRAND_NAME + " better" };
             settingsMap.get(PATH_MOZILLA).add(telemetryUi);
         }
 
         // Tablet: we don't allow a page title option.
         if (HardwareUtils.isTablet()) {
             settingsMap.get(PATH_DISPLAY).remove(TITLE_BAR_LABEL_ARR);
         }
     }
--- a/mobile/android/base/tests/testShareLink.java
+++ b/mobile/android/base/tests/testShareLink.java
@@ -21,30 +21,30 @@ import android.widget.TextView;
 import com.jayway.android.robotium.solo.Condition;
 
 /**
  * This test covers the opening and content of the Share Link pop-up list
  * The test opens the Share menu from the app menu, the URL bar, a link context menu and the Awesomescreen tabs
  */
 public class testShareLink extends AboutHomeTest {
     String url;
-    String urlTitle = StringHelper.ROBOCOP_BIG_LINK_TITLE;
+    String urlTitle = mStringHelper.ROBOCOP_BIG_LINK_TITLE;
 
     public void testShareLink() {
-        url = getAbsoluteUrl(StringHelper.ROBOCOP_BIG_LINK_URL);
+        url = getAbsoluteUrl(mStringHelper.ROBOCOP_BIG_LINK_URL);
         ArrayList<String> shareOptions;
         blockForGeckoReady();
 
         // FIXME: This is a temporary hack workaround for a permissions problem.
         openAboutHomeTab(AboutHomeTabs.READING_LIST);
 
         inputAndLoadUrl(url);
         verifyUrlBarTitle(url); // Waiting for page title to ensure the page is loaded
 
-        selectMenuItem(StringHelper.SHARE_LABEL);
+        selectMenuItem(mStringHelper.SHARE_LABEL);
         if (Build.VERSION.SDK_INT >= 14) {
             // Check for our own sync in the submenu.
             waitForText("Sync$");
         } else {
             waitForText("Share via");
         }
 
         // Get list of current available share activities and verify them
@@ -89,26 +89,26 @@ public class testShareLink extends About
             bookmarksItem = bookmarksList.getChildAt(headerViewsCount);
         }
 
         mSolo.clickLongOnView(bookmarksItem);
         verifySharePopup(shareOptions,"bookmarks");
 
         // Prepopulate top sites with history items to overflow tiles.
         // We are trying to move away from using reflection and doing more black-box testing.
-        inputAndLoadUrl(getAbsoluteUrl(StringHelper.ROBOCOP_BLANK_PAGE_01_URL));
-        inputAndLoadUrl(getAbsoluteUrl(StringHelper.ROBOCOP_BLANK_PAGE_02_URL));
-        inputAndLoadUrl(getAbsoluteUrl(StringHelper.ROBOCOP_BLANK_PAGE_03_URL));
-        inputAndLoadUrl(getAbsoluteUrl(StringHelper.ROBOCOP_BLANK_PAGE_04_URL));
+        inputAndLoadUrl(getAbsoluteUrl(mStringHelper.ROBOCOP_BLANK_PAGE_01_URL));
+        inputAndLoadUrl(getAbsoluteUrl(mStringHelper.ROBOCOP_BLANK_PAGE_02_URL));
+        inputAndLoadUrl(getAbsoluteUrl(mStringHelper.ROBOCOP_BLANK_PAGE_03_URL));
+        inputAndLoadUrl(getAbsoluteUrl(mStringHelper.ROBOCOP_BLANK_PAGE_04_URL));
         if (mDevice.type.equals("tablet")) {
             // Tablets have more tile spaces to fill.
-            inputAndLoadUrl(getAbsoluteUrl(StringHelper.ROBOCOP_BLANK_PAGE_05_URL));
-            inputAndLoadUrl(getAbsoluteUrl(StringHelper.ROBOCOP_BOXES_URL));
-            inputAndLoadUrl(getAbsoluteUrl(StringHelper.ROBOCOP_SEARCH_URL));
-            inputAndLoadUrl(getAbsoluteUrl(StringHelper.ROBOCOP_TEXT_PAGE_URL));
+            inputAndLoadUrl(getAbsoluteUrl(mStringHelper.ROBOCOP_BLANK_PAGE_05_URL));
+            inputAndLoadUrl(getAbsoluteUrl(mStringHelper.ROBOCOP_BOXES_URL));
+            inputAndLoadUrl(getAbsoluteUrl(mStringHelper.ROBOCOP_SEARCH_URL));
+            inputAndLoadUrl(getAbsoluteUrl(mStringHelper.ROBOCOP_TEXT_PAGE_URL));
         }
 
         // Test the share popup in Top Sites.
         openAboutHomeTab(AboutHomeTabs.TOP_SITES);
 
         // Scroll down a bit so that the top sites list has more items on screen.
         int width = mDriver.getGeckoWidth();
         int height = mDriver.getGeckoHeight();
--- a/mobile/android/base/tests/testStumblerSetting.java
+++ b/mobile/android/base/tests/testStumblerSetting.java
@@ -24,25 +24,25 @@ public class testStumblerSetting extends
     public void testStumblerSetting() {
         if (!AppConstants.MOZ_STUMBLER_BUILD_TIME_ENABLED) {
             mAsserter.info("Checking stumbler build config.", "Skipping test as Stumbler is not enabled in this build.");
             return;
         }
 
         blockForGeckoReady();
 
-        selectMenuItem(StringHelper.SETTINGS_LABEL);
-        mAsserter.ok(mSolo.waitForText(StringHelper.SETTINGS_LABEL),
-                "The Settings menu did not load", StringHelper.SETTINGS_LABEL);
+        selectMenuItem(mStringHelper.SETTINGS_LABEL);
+        mAsserter.ok(mSolo.waitForText(mStringHelper.SETTINGS_LABEL),
+                "The Settings menu did not load", mStringHelper.SETTINGS_LABEL);
 
-        String section = "^" + StringHelper.MOZILLA_SECTION_LABEL + "$";
+        String section = "^" + mStringHelper.MOZILLA_SECTION_LABEL + "$";
         waitForEnabledText(section);
         mSolo.clickOnText(section);
 
-        String itemTitle = "^" + StringHelper.LOCATION_SERVICES_LABEL + "$";
+        String itemTitle = "^" + mStringHelper.LOCATION_SERVICES_LABEL + "$";
         boolean foundText = waitForPreferencesText(itemTitle);
         mAsserter.ok(foundText, "Waiting for settings item " + itemTitle + " in section " + section,
                 "The " + itemTitle + " option is present in section " + section);
 
         BroadcastReceiver enabledDisabledReceiver = new BroadcastReceiver() {
             @Override
             public void onReceive(Context context, Intent intent) {
                 if (intent.getAction().equals(AppGlobals.ACTION_TEST_SETTING_ENABLED)) {
--- a/mobile/android/base/tests/testSystemPages.java
+++ b/mobile/android/base/tests/testSystemPages.java
@@ -8,45 +8,45 @@ import org.mozilla.gecko.AppConstants;
  */
 public class testSystemPages extends PixelTest {
     final int mExpectedTabCount = 1;
     private static final int AFTER_BACK_SLEEP_MS = 500;
 
     public void testSystemPages() {
         blockForGeckoReady();
 
-        final String urls [] = { StringHelper.ABOUT_FIREFOX_URL, StringHelper.ABOUT_RIGHTS_URL,
-                StringHelper.ABOUT_ADDONS_URL, StringHelper.ABOUT_DOWNLOADS_URL, StringHelper.ABOUT_PASSWORDS_URL,
-                StringHelper.ABOUT_BUILDCONFIG_URL, StringHelper.ABOUT_FEEDBACK_URL,
-                StringHelper.ABOUT_HEALTHREPORT_URL, StringHelper.ABOUT_SCHEME
+        final String urls [] = { mStringHelper.ABOUT_FIREFOX_URL, mStringHelper.ABOUT_RIGHTS_URL,
+                mStringHelper.ABOUT_ADDONS_URL, mStringHelper.ABOUT_DOWNLOADS_URL, StringHelper.ABOUT_PASSWORDS_URL,
+                mStringHelper.ABOUT_BUILDCONFIG_URL, mStringHelper.ABOUT_FEEDBACK_URL,
+                mStringHelper.ABOUT_HEALTHREPORT_URL, mStringHelper.ABOUT_SCHEME
         };
         // Pages to be tested from the menu and their expected urls. This if of the form { {{ <path to item> }, { <expected url> }}* }
-        String menuItems [][][] = {{{ StringHelper.APPS_LABEL }, { StringHelper.ABOUT_APPS_URL }},
-                                  {{ StringHelper.DOWNLOADS_LABEL }, { StringHelper.ABOUT_DOWNLOADS_URL}},
-                                  {{ StringHelper.LOGINS_LABEL}, { StringHelper.ABOUT_PASSWORDS_URL }},
-                                  {{ StringHelper.ADDONS_LABEL }, { StringHelper.ABOUT_ADDONS_URL }},
-                                  {{ StringHelper.SETTINGS_LABEL, StringHelper.MOZILLA_SECTION_LABEL, StringHelper.ABOUT_LABEL }, { StringHelper.ABOUT_SCHEME }},
-                                  {{ StringHelper.SETTINGS_LABEL, StringHelper.MOZILLA_SECTION_LABEL, StringHelper.FEEDBACK_LABEL }, { StringHelper.ABOUT_FEEDBACK_URL }},
-                                  {{ StringHelper.SETTINGS_LABEL, StringHelper.MOZILLA_SECTION_LABEL, StringHelper.MY_HEALTH_REPORT_LABEL }, { StringHelper.ABOUT_HEALTHREPORT_URL }}};
+        String menuItems [][][] = {{{ mStringHelper.APPS_LABEL }, { mStringHelper.ABOUT_APPS_URL }},
+                                  {{ mStringHelper.DOWNLOADS_LABEL }, { mStringHelper.ABOUT_DOWNLOADS_URL}},
+                                  {{ mStringHelper.LOGINS_LABEL}, { StringHelper.ABOUT_PASSWORDS_URL }},
+                                  {{ mStringHelper.ADDONS_LABEL }, { mStringHelper.ABOUT_ADDONS_URL }},
+                                  {{ mStringHelper.SETTINGS_LABEL, mStringHelper.MOZILLA_SECTION_LABEL, mStringHelper.ABOUT_LABEL }, { mStringHelper.ABOUT_SCHEME }},
+                                  {{ mStringHelper.SETTINGS_LABEL, mStringHelper.MOZILLA_SECTION_LABEL, mStringHelper.FEEDBACK_LABEL }, { mStringHelper.ABOUT_FEEDBACK_URL }},
+                                  {{ mStringHelper.SETTINGS_LABEL, mStringHelper.MOZILLA_SECTION_LABEL, mStringHelper.MY_HEALTH_REPORT_LABEL }, { mStringHelper.ABOUT_HEALTHREPORT_URL }}};
 
         /* Load system pages from url and check that the pages are loaded in the same tab */
         checkUrl(urls);
 
         /* Verify that the search field is not in the focus by pressing back. That will load the previous
            about: page if there is no the keyboard to dismiss, meaning that the search field was not in focus */
-        loadAndPaint(StringHelper.ABOUT_ABOUT_URL);
+        loadAndPaint(mStringHelper.ABOUT_ABOUT_URL);
 
         // Press back to verify if the keyboard is dismissed or the previous about: page loads
         mActions.sendSpecialKey(Actions.SpecialKey.BACK);
         // may not get a paint on Back...pause briefly to make sure it completes
         mSolo.sleep(AFTER_BACK_SLEEP_MS);
 
         // We will use the "about:" page as our reference page.
-        loadAndPaint(StringHelper.ABOUT_SCHEME);
-        verifyUrl(StringHelper.ABOUT_SCHEME); // Verify that the previous about: page is loaded, meaning no keyboard was present
+        loadAndPaint(mStringHelper.ABOUT_SCHEME);
+        verifyUrl(mStringHelper.ABOUT_SCHEME); // Verify that the previous about: page is loaded, meaning no keyboard was present
 
         // Load system pages by navigating through the UI.
         loadItemsByLevel(menuItems);
     }
 
     // Load from Url the about: pages,verify the Url and the tabs number
     public void checkUrl(String urls []) {
         for (String url:urls) {
@@ -76,28 +76,28 @@ public class testSystemPages extends Pix
             expectedTabCount++;
 
             // Set up listeners to catch the page load we're about to do
             tabEventExpecter = mActions.expectGeckoEvent("Tab:Added");
             contentEventExpecter = mActions.expectGeckoEvent("DOMContentLoaded");
             selectMenuItemByPath(pathToItem);
 
             // Wait for the new tab and page to load
-            if (StringHelper.ABOUT_SCHEME.equals(expectedUrl)) {
+            if (mStringHelper.ABOUT_SCHEME.equals(expectedUrl)) {
                 waitForPaint(paintExpecter); // Waiting for the page to load
                 paintExpecter.unregisterListener();
             } else {
                 tabEventExpecter.blockForEvent();
                 contentEventExpecter.blockForEvent();
             }
             tabEventExpecter.unregisterListener();
             contentEventExpecter.unregisterListener();
 
             verifyUrl(expectedUrl);
-            if (StringHelper.ABOUT_SCHEME.equals(expectedUrl)) {
+            if (mStringHelper.ABOUT_SCHEME.equals(expectedUrl)) {
                 // Decreasing because we do not expect this to be in a different tab.
                 expectedTabCount--;
             }
             verifyTabCount(expectedTabCount);
         }
     }
 
     private boolean skipItemURL(String item) {
--- a/mobile/android/base/tests/testThumbnails.java
+++ b/mobile/android/base/tests/testThumbnails.java
@@ -29,28 +29,28 @@ public class testThumbnails extends Base
 
         blockForGeckoReady();
 
         // load sites; both will return HTTP 200 with a green background
         inputAndLoadUrl(site1Url);
         mSolo.sleep(thumbnailDelay);
         inputAndLoadUrl(site2Url);
         mSolo.sleep(thumbnailDelay);
-        inputAndLoadUrl(StringHelper.ABOUT_HOME_URL);
+        inputAndLoadUrl(mStringHelper.ABOUT_HOME_URL);
         waitForCondition(new ThumbnailTest(site1Title, Color.GREEN), 5000);
         mAsserter.is(getTopSiteThumbnailColor(site1Title), Color.GREEN, "Top site thumbnail updated for HTTP 200");
         waitForCondition(new ThumbnailTest(site2Title, Color.GREEN), 5000);
         mAsserter.is(getTopSiteThumbnailColor(site2Title), Color.GREEN, "Top site thumbnail updated for HTTP 200");
 
         // load sites again; both will have red background, and do404 will return HTTP 404
         inputAndLoadUrl(site1Url);
         mSolo.sleep(thumbnailDelay);
         inputAndLoadUrl(site2Url);
         mSolo.sleep(thumbnailDelay);
-        inputAndLoadUrl(StringHelper.ABOUT_HOME_URL);
+        inputAndLoadUrl(mStringHelper.ABOUT_HOME_URL);
         waitForCondition(new ThumbnailTest(site1Title, Color.RED), 5000);
         mAsserter.is(getTopSiteThumbnailColor(site1Title), Color.RED, "Top site thumbnail updated for HTTP 200");
         waitForCondition(new ThumbnailTest(site2Title, Color.GREEN), 5000);
         mAsserter.is(getTopSiteThumbnailColor(site2Title), Color.GREEN, "Top site thumbnail not updated for HTTP 404");
 
         // test dropping thumbnails
         final ContentResolver resolver = getActivity().getContentResolver();
         final DatabaseHelper helper = new DatabaseHelper(getActivity(), mAsserter);
--- a/mobile/android/base/tests/testTitleBar.java
+++ b/mobile/android/base/tests/testTitleBar.java
@@ -15,44 +15,44 @@ public class testTitleBar extends PixelT
         }
 
         blockForGeckoReady();
         checkOption();
     }
 
     public void checkOption() {
 
-        String blank1 = getAbsoluteUrl(StringHelper.ROBOCOP_BLANK_PAGE_01_URL);
-        String title = StringHelper.ROBOCOP_BLANK_PAGE_01_TITLE;
+        String blank1 = getAbsoluteUrl(mStringHelper.ROBOCOP_BLANK_PAGE_01_URL);
+        String title = mStringHelper.ROBOCOP_BLANK_PAGE_01_TITLE;
 
         // Loading a page
         inputAndLoadUrl(blank1);
         verifyUrlBarTitle(blank1);
 
         // Ensure the title is displayed in the URL Bar
-        selectOption(StringHelper.SHOW_PAGE_TITLE_LABEL);
+        selectOption(mStringHelper.SHOW_PAGE_TITLE_LABEL);
         inputAndLoadUrl(blank1);
         verifyUrlBarTitle(title);
 
         // Ensure the full URL is displayed in the URL Bar
-        selectOption(StringHelper.SHOW_PAGE_ADDRESS_LABEL);
+        selectOption(mStringHelper.SHOW_PAGE_ADDRESS_LABEL);
         inputAndLoadUrl(blank1);
         verifyUrlBarTitle(blank1);
     }
 
     // Entering settings, changing the options: show title/page address option and verifing the device type because for phone there is an extra back action to exit the settings menu
     public void selectOption(String option) {
-        selectSettingsItem(StringHelper.DISPLAY_SECTION_LABEL, StringHelper.TITLE_BAR_LABEL);
-        mAsserter.ok(waitForText(StringHelper.SHOW_PAGE_TITLE_LABEL), "Waiting for the pop-up to open", "Pop up with the options was openend");
+        selectSettingsItem(mStringHelper.DISPLAY_SECTION_LABEL, mStringHelper.TITLE_BAR_LABEL);
+        mAsserter.ok(waitForText(mStringHelper.SHOW_PAGE_TITLE_LABEL), "Waiting for the pop-up to open", "Pop up with the options was openend");
         mSolo.clickOnText(option);
-        mAsserter.ok(waitForText(StringHelper.CHARACTER_ENCODING_LABEL), "Waiting to press the option", "The pop-up is dismissed once clicked");
+        mAsserter.ok(waitForText(mStringHelper.CHARACTER_ENCODING_LABEL), "Waiting to press the option", "The pop-up is dismissed once clicked");
         if (mDevice.type.equals("phone")) {
             mActions.sendSpecialKey(Actions.SpecialKey.BACK);
-            mAsserter.ok(waitForText(StringHelper.CUSTOMIZE_SECTION_LABEL), "Waiting to perform one back", "One back performed");
+            mAsserter.ok(waitForText(mStringHelper.CUSTOMIZE_SECTION_LABEL), "Waiting to perform one back", "One back performed");
             mActions.sendSpecialKey(Actions.SpecialKey.BACK);
-            mAsserter.ok(waitForText(StringHelper.ROBOCOP_BLANK_PAGE_01_URL), "Waiting to exit settings", "Exit settings done");
+            mAsserter.ok(waitForText(mStringHelper.ROBOCOP_BLANK_PAGE_01_URL), "Waiting to exit settings", "Exit settings done");
         }
         else {
             mActions.sendSpecialKey(Actions.SpecialKey.BACK);
-            mAsserter.ok(waitForText(StringHelper.ROBOCOP_BLANK_PAGE_01_URL), "Waiting to exit settings", "Exit settings done");
+            mAsserter.ok(waitForText(mStringHelper.ROBOCOP_BLANK_PAGE_01_URL), "Waiting to exit settings", "Exit settings done");
         }
     }
 }