diff --git a/.firefox.metadata b/.firefox.metadata
index 8fd7ec4..81ee5b1 100644
--- a/.firefox.metadata
+++ b/.firefox.metadata
@@ -1,2 +1,2 @@
-7aad03b3152778b1902c102d9c0f99e5528833fa SOURCES/firefox-24.8.0esr.source.tar.bz2
-567daed3dd20872e2fbf53fb3ef258b693b65aee SOURCES/firefox-langpacks-24.8.0esr-20140826.tar.bz2
+d84451f86664b7cc1ef380e735b03db410f48c18 SOURCES/firefox-31.1.0esr.source.tar.bz2
+eeae78d0ce88732439a0be497a50f0f009c63df8 SOURCES/firefox-langpacks-31.1.0esr-20140828.tar.bz2
diff --git a/.gitignore b/.gitignore
index 27667ac..e6a1bf7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,2 @@
-SOURCES/firefox-24.8.0esr.source.tar.bz2
-SOURCES/firefox-langpacks-24.8.0esr-20140826.tar.bz2
+SOURCES/firefox-31.1.0esr.source.tar.bz2
+SOURCES/firefox-langpacks-31.1.0esr-20140828.tar.bz2
diff --git a/SOURCES/disable-webm.patch b/SOURCES/disable-webm.patch
new file mode 100644
index 0000000..570713b
--- /dev/null
+++ b/SOURCES/disable-webm.patch
@@ -0,0 +1,11 @@
+diff -up mozilla-esr31/browser/confvars.sh.webm-fix mozilla-esr31/browser/confvars.sh
+--- mozilla-esr31/browser/confvars.sh.webm-fix	2014-07-21 13:56:53.522253529 +0200
++++ mozilla-esr31/browser/confvars.sh	2014-07-21 13:57:49.983533186 +0200
+@@ -65,6 +65,6 @@ MOZ_PAY=1
+ # Enable activities. These are used for FxOS developers currently.
+ MOZ_ACTIVITIES=1
+ MOZ_JSDOWNLOADS=1
+-MOZ_WEBM_ENCODER=1
++#MOZ_WEBM_ENCODER=1
+ # Enable exact rooting on desktop.
+ JSGC_USE_EXACT_ROOTING=1
diff --git a/SOURCES/firefox-17.0-enable-addons.patch b/SOURCES/firefox-17.0-enable-addons.patch
deleted file mode 100644
index d6044e0..0000000
--- a/SOURCES/firefox-17.0-enable-addons.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff -up mozilla-esr17/browser/app/profile/firefox.js.addons mozilla-esr17/browser/app/profile/firefox.js
---- mozilla-esr17/browser/app/profile/firefox.js.addons	2012-11-29 05:43:51.000000000 +0100
-+++ mozilla-esr17/browser/app/profile/firefox.js	2012-12-21 08:40:51.799335531 +0100
-@@ -61,7 +61,7 @@ pref("extensions.hotfix.certs.1.sha1Fing
- 
- // Disable add-ons that are not installed by the user in all scopes by default.
- // See the SCOPE constants in AddonManager.jsm for values to use here.
--pref("extensions.autoDisableScopes", 15);
-+pref("extensions.autoDisableScopes", 0);
- 
- // Dictionary download preference
- pref("browser.dictionaries.download.url", "https://addons.mozilla.org/%LOCALE%/firefox/dictionaries/");
-diff -up mozilla-esr17/toolkit/mozapps/extensions/XPIProvider.jsm.addons mozilla-esr17/toolkit/mozapps/extensions/XPIProvider.jsm
---- mozilla-esr17/toolkit/mozapps/extensions/XPIProvider.jsm.addons	2012-11-29 05:45:08.000000000 +0100
-+++ mozilla-esr17/toolkit/mozapps/extensions/XPIProvider.jsm	2012-12-21 08:40:14.342341623 +0100
-@@ -1630,8 +1630,8 @@ var XPIProvider = {
-       this.showUpgradeUI();
-       flushCaches = true;
-     }
--    else if (aAppChanged === undefined) {
--      // For new profiles we will never need to show the add-on selection UI
-+    else {
-+      // For all profiles we will never need to show the add-on selection UI
-       Services.prefs.setBoolPref(PREF_SHOWN_SELECTION_UI, true);
-     }
- 
diff --git a/SOURCES/firefox-24.0-default.patch b/SOURCES/firefox-24.0-default.patch
deleted file mode 100644
index 5c1171a..0000000
--- a/SOURCES/firefox-24.0-default.patch
+++ /dev/null
@@ -1,115 +0,0 @@
-diff -up firefox-24.0/mozilla-esr24/browser/components/preferences/advanced.xul.default firefox-24.0/mozilla-esr24/browser/components/preferences/advanced.xul
---- firefox-24.0/mozilla-esr24/browser/components/preferences/advanced.xul.default	2013-09-11 05:22:18.000000000 +0200
-+++ firefox-24.0/mozilla-esr24/browser/components/preferences/advanced.xul	2013-10-31 12:51:28.597413904 +0100
-@@ -40,7 +40,7 @@
- #endif
-       <preference id="layout.spellcheckDefault"        name="layout.spellcheckDefault"        type="int"/>
- 
--#ifdef HAVE_SHELL_SERVICE
-+#ifdef 0
-       <preference id="browser.shell.checkDefaultBrowser"
-                   name="browser.shell.checkDefaultBrowser"
-                   type="bool"/>
-@@ -72,7 +72,7 @@
-                   type="bool"/>
- 
-      <!-- Update tab -->
--#ifdef MOZ_UPDATER
-+#ifdef 0
-       <preference id="app.update.enabled"              name="app.update.enabled"              type="bool"/>
-       <preference id="app.update.auto"                 name="app.update.auto"                 type="bool"/>
- #ifdef XP_WIN
-@@ -106,7 +106,7 @@
-                   type="bool"/>
-     </preferences>
- 
--#ifdef HAVE_SHELL_SERVICE
-+#ifdef 0
-     <stringbundle id="bundleShell" src="chrome://browser/locale/shellservice.properties"/>
-     <stringbundle id="bundleBrand" src="chrome://branding/locale/brand.properties"/>
- #endif
-@@ -174,7 +174,7 @@
-                       preference="layout.spellcheckDefault"/>
-           </groupbox>
- 
--#ifdef HAVE_SHELL_SERVICE
-+#ifdef 0
-           <!-- System Defaults -->
-           <groupbox id="systemDefaultsGroup" orient="vertical">
-             <caption label="&systemDefaults.label;"/>
-diff -up firefox-24.0/mozilla-esr24/browser/components/shell/src/Makefile.in.default firefox-24.0/mozilla-esr24/browser/components/shell/src/Makefile.in
---- firefox-24.0/mozilla-esr24/browser/components/shell/src/Makefile.in.default	2013-10-31 12:49:11.279309914 +0100
-+++ firefox-24.0/mozilla-esr24/browser/components/shell/src/Makefile.in	2013-10-31 12:52:27.772465355 +0100
-@@ -13,7 +13,7 @@ include $(DEPTH)/config/autoconf.mk
- FORCE_STATIC_LIB = 1
- USE_STATIC_LIBS = 1
- 
--DISABLED_EXTRA_COMPONENTS = nsSetDefaultBrowser.js nsSetDefaultBrowser.manifest
-+#DISABLED_EXTRA_COMPONENTS = nsSetDefaultBrowser.js nsSetDefaultBrowser.manifest
- 
- include $(topsrcdir)/config/rules.mk
- 
-diff -up firefox-24.0/mozilla-esr24/browser/components/shell/src/nsGNOMEShellService.cpp.default firefox-24.0/mozilla-esr24/browser/components/shell/src/nsGNOMEShellService.cpp
---- firefox-24.0/mozilla-esr24/browser/components/shell/src/nsGNOMEShellService.cpp.default	2013-09-11 05:22:18.000000000 +0200
-+++ firefox-24.0/mozilla-esr24/browser/components/shell/src/nsGNOMEShellService.cpp	2013-10-31 12:56:17.450679146 +0100
-@@ -149,8 +149,8 @@ nsGNOMEShellService::GetAppPathFromLaunc
- bool
- nsGNOMEShellService::KeyMatchesAppName(const char *aKeyValue) const
- {
-+  nsAutoCString appName;
- 
--  gchar *commandPath;
-   if (mUseLocaleFilenames) {
-     gchar *nativePath = g_filename_from_utf8(aKeyValue, -1, NULL, NULL, NULL);
-     if (!nativePath) {
-@@ -158,17 +158,13 @@ nsGNOMEShellService::KeyMatchesAppName(c
-       return false;
-     }
- 
--    commandPath = g_find_program_in_path(nativePath);
-+    appName.Assign(nativePath);
-     g_free(nativePath);
-   } else {
--    commandPath = g_find_program_in_path(aKeyValue);
-+    appName.Assign(aKeyValue);
-   }
- 
--  if (!commandPath)
--    return false;
--
--  bool matches = mAppPath.Equals(commandPath);
--  g_free(commandPath);
-+  bool matches = mAppPath.Equals(appName);
-   return matches;
- }
- 
-@@ -253,16 +249,7 @@ nsGNOMEShellService::SetDefaultBrowser(b
-   nsCOMPtr<nsIGConfService> gconf = do_GetService(NS_GCONFSERVICE_CONTRACTID);
-   nsCOMPtr<nsIGIOService> giovfs = do_GetService(NS_GIOSERVICE_CONTRACTID);
-   if (gconf) {
--    nsAutoCString appKeyValue;
--    if (mAppIsInPath) {
--      // mAppPath is in the users path, so use only the basename as the launcher
--      gchar *tmp = g_path_get_basename(mAppPath.get());
--      appKeyValue = tmp;
--      g_free(tmp);
--    } else {
--      appKeyValue = mAppPath;
--    }
--
-+    nsAutoCString appKeyValue(MOZ_APP_NAME);
-     appKeyValue.AppendLiteral(" %s");
- 
-     for (unsigned int i = 0; i < ArrayLength(appProtocols); ++i) {
-diff -up firefox-24.0/mozilla-esr24/browser/components/shell/src/nsGNOMEShellService.h.default firefox-24.0/mozilla-esr24/browser/components/shell/src/nsGNOMEShellService.h
---- firefox-24.0/mozilla-esr24/browser/components/shell/src/nsGNOMEShellService.h.default	2013-09-11 05:22:18.000000000 +0200
-+++ firefox-24.0/mozilla-esr24/browser/components/shell/src/nsGNOMEShellService.h	2013-10-31 12:49:11.280309915 +0100
-@@ -13,7 +13,7 @@
- class nsGNOMEShellService MOZ_FINAL : public nsIShellService
- {
- public:
--  nsGNOMEShellService() : mCheckedThisSession(false), mAppIsInPath(false) { }
-+  nsGNOMEShellService() : mCheckedThisSession(true), mAppIsInPath(true) { }
- 
-   NS_DECL_ISUPPORTS
-   NS_DECL_NSISHELLSERVICE
diff --git a/SOURCES/firefox-5.0-asciidel.patch b/SOURCES/firefox-5.0-asciidel.patch
deleted file mode 100644
index 1916cb3..0000000
--- a/SOURCES/firefox-5.0-asciidel.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Patch from: Bill Nottingham <notting@redhat.com>
-
-diff -up mozilla-release/browser/base/Makefile.in.fu mozilla-release/browser/base/Makefile.in
---- mozilla-release/browser/base/Makefile.in.fu	2011-06-24 16:50:23.802042086 -0400
-+++ mozilla-release/browser/base/Makefile.in	2011-06-24 16:50:42.324042096 -0400
-@@ -62,7 +62,7 @@ EXTRA_JS_MODULES = \
- 
- include $(topsrcdir)/config/rules.mk
- 
--PRE_RELEASE_SUFFIX := ""
-+PRE_RELEASE_SUFFIX :=
- 
- DEFINES += \
- 	-DMOZ_APP_VERSION=$(MOZ_APP_VERSION) \
-
diff --git a/SOURCES/firefox-centos-default-prefs.js b/SOURCES/firefox-centos-default-prefs.js
deleted file mode 100644
index ee2943f..0000000
--- a/SOURCES/firefox-centos-default-prefs.js
+++ /dev/null
@@ -1,24 +0,0 @@
-pref("app.update.auto",                     false);
-pref("app.update.enabled",                  false);
-pref("app.update.autoInstallEnabled",       false);
-pref("browser.backspace_action",            2);
-pref("browser.display.use_system_colors",   true);
-pref("browser.download.folderList",         1);
-pref("browser.link.open_external",          3);
-pref("browser.shell.checkDefaultBrowser",   false);
-pref("general.smoothScroll",                true);
-pref("general.useragent.vendor",            "CentOS");
-pref("general.useragent.vendorSub",         "FIREFOX_RPM_VR");
-pref("intl.locale.matchOS",                 true);
-pref("storage.nfs_filesystem",              false);
-pref("dom.ipc.plugins.enabled.nswrapper*",  false);
-pref("network.manage-offline-status",       true);
-pref("toolkit.networkmanager.disable", false);
-pref("browser.startup.homepage",            "data:text/plain,browser.startup.homepage=file:///usr/share/doc/HTML/index.html");
-pref("toolkit.storage.synchronous",         0);
-pref("startup.homepage_override_url",       "http://www.centos.org");
-pref("startup.homepage_welcome_url",        "http://www.centos.org");
-pref("javascript.options.baselinejit.content", false);
-pref("javascript.options.baselinejit.chrome", false);
-pref("extensions.shownSelectionUI",         true);
-pref("layout.imagevisibility.enabled",      false);
diff --git a/SOURCES/firefox-default.patch b/SOURCES/firefox-default.patch
new file mode 100644
index 0000000..51edd59
--- /dev/null
+++ b/SOURCES/firefox-default.patch
@@ -0,0 +1,104 @@
+diff -up mozilla-aurora/browser/components/preferences/advanced.xul.default mozilla-aurora/browser/components/preferences/advanced.xul
+--- mozilla-aurora/browser/components/preferences/advanced.xul.default	2014-05-06 13:17:14.000000000 +0200
++++ mozilla-aurora/browser/components/preferences/advanced.xul	2014-05-06 14:07:22.972356178 +0200
+@@ -40,7 +40,7 @@
+ #endif
+       <preference id="layout.spellcheckDefault"        name="layout.spellcheckDefault"        type="int"/>
+ 
+-#ifdef HAVE_SHELL_SERVICE
++#ifdef 0
+       <preference id="browser.shell.checkDefaultBrowser"
+                   name="browser.shell.checkDefaultBrowser"
+                   type="bool"/>
+@@ -68,7 +68,7 @@
+                   type="bool"/>
+ 
+      <!-- Update tab -->
+-#ifdef MOZ_UPDATER
++#ifdef 0
+       <preference id="app.update.enabled"              name="app.update.enabled"              type="bool"/>
+       <preference id="app.update.auto"                 name="app.update.auto"                 type="bool"/>
+ #ifdef XP_WIN
+@@ -102,7 +102,7 @@
+                   type="bool"/>
+     </preferences>
+ 
+-#ifdef HAVE_SHELL_SERVICE
++#ifdef 0
+     <stringbundle id="bundleShell" src="chrome://browser/locale/shellservice.properties"/>
+     <stringbundle id="bundleBrand" src="chrome://branding/locale/brand.properties"/>
+ #endif
+@@ -170,7 +170,7 @@
+                       preference="layout.spellcheckDefault"/>
+           </groupbox>
+ 
+-#ifdef HAVE_SHELL_SERVICE
++#ifdef 0
+           <!-- System Defaults -->
+           <groupbox id="systemDefaultsGroup" orient="vertical">
+             <caption label="&systemDefaults.label;"/>
+diff -up mozilla-aurora/browser/components/shell/src/Makefile.in.default mozilla-aurora/browser/components/shell/src/Makefile.in
+diff -up mozilla-aurora/browser/components/shell/src/nsGNOMEShellService.cpp.default mozilla-aurora/browser/components/shell/src/nsGNOMEShellService.cpp
+--- mozilla-aurora/browser/components/shell/src/nsGNOMEShellService.cpp.default	2014-05-06 13:17:14.000000000 +0200
++++ mozilla-aurora/browser/components/shell/src/nsGNOMEShellService.cpp	2014-05-06 14:07:22.973356181 +0200
+@@ -149,8 +149,8 @@ nsGNOMEShellService::GetAppPathFromLaunc
+ bool
+ nsGNOMEShellService::KeyMatchesAppName(const char *aKeyValue) const
+ {
++  nsAutoCString appName;
+ 
+-  gchar *commandPath;
+   if (mUseLocaleFilenames) {
+     gchar *nativePath = g_filename_from_utf8(aKeyValue, -1,
+                                              nullptr, nullptr, nullptr);
+@@ -159,17 +159,13 @@ nsGNOMEShellService::KeyMatchesAppName(c
+       return false;
+     }
+ 
+-    commandPath = g_find_program_in_path(nativePath);
++    appName.Assign(nativePath);
+     g_free(nativePath);
+   } else {
+-    commandPath = g_find_program_in_path(aKeyValue);
++    appName.Assign(aKeyValue);
+   }
+ 
+-  if (!commandPath)
+-    return false;
+-
+-  bool matches = mAppPath.Equals(commandPath);
+-  g_free(commandPath);
++  bool matches = mAppPath.Equals(appName);
+   return matches;
+ }
+ 
+@@ -254,16 +250,7 @@ nsGNOMEShellService::SetDefaultBrowser(b
+   nsCOMPtr<nsIGConfService> gconf = do_GetService(NS_GCONFSERVICE_CONTRACTID);
+   nsCOMPtr<nsIGIOService> giovfs = do_GetService(NS_GIOSERVICE_CONTRACTID);
+   if (gconf) {
+-    nsAutoCString appKeyValue;
+-    if (mAppIsInPath) {
+-      // mAppPath is in the users path, so use only the basename as the launcher
+-      gchar *tmp = g_path_get_basename(mAppPath.get());
+-      appKeyValue = tmp;
+-      g_free(tmp);
+-    } else {
+-      appKeyValue = mAppPath;
+-    }
+-
++    nsAutoCString appKeyValue(MOZ_APP_NAME);
+     appKeyValue.AppendLiteral(" %s");
+ 
+     for (unsigned int i = 0; i < ArrayLength(appProtocols); ++i) {
+diff -up mozilla-aurora/browser/components/shell/src/nsGNOMEShellService.h.default mozilla-aurora/browser/components/shell/src/nsGNOMEShellService.h
+--- mozilla-aurora/browser/components/shell/src/nsGNOMEShellService.h.default	2014-05-06 13:17:14.000000000 +0200
++++ mozilla-aurora/browser/components/shell/src/nsGNOMEShellService.h	2014-05-06 14:07:22.973356181 +0200
+@@ -13,7 +13,7 @@
+ class nsGNOMEShellService MOZ_FINAL : public nsIShellService
+ {
+ public:
+-  nsGNOMEShellService() : mCheckedThisSession(false), mAppIsInPath(false) { }
++  nsGNOMEShellService() : mCheckedThisSession(true), mAppIsInPath(true) { }
+ 
+   NS_DECL_ISUPPORTS
+   NS_DECL_NSISHELLSERVICE
diff --git a/SOURCES/firefox-enable-addons.patch b/SOURCES/firefox-enable-addons.patch
new file mode 100644
index 0000000..ba74f5f
--- /dev/null
+++ b/SOURCES/firefox-enable-addons.patch
@@ -0,0 +1,25 @@
+diff -up mozilla-aurora/browser/app/profile/firefox.js.addons mozilla-aurora/browser/app/profile/firefox.js
+--- mozilla-aurora/browser/app/profile/firefox.js.addons	2014-05-06 13:17:13.000000000 +0200
++++ mozilla-aurora/browser/app/profile/firefox.js	2014-05-06 14:16:32.678968008 +0200
+@@ -65,7 +65,8 @@ pref("extensions.hotfix.certs.1.sha1Fing
+ 
+ // Disable add-ons that are not installed by the user in all scopes by default.
+ // See the SCOPE constants in AddonManager.jsm for values to use here.
+-pref("extensions.autoDisableScopes", 15);
++pref("extensions.autoDisableScopes", 0);
++pref("extensions.showMismatchUI", false);
+ 
+ // Dictionary download preference
+ pref("browser.dictionaries.download.url", "https://addons.mozilla.org/%LOCALE%/firefox/dictionaries/");
+diff -up mozilla-aurora/toolkit/mozapps/extensions/internal/XPIProvider.jsm.addons mozilla-aurora/toolkit/mozapps/extensions/internal/XPIProvider.jsm
+--- mozilla-aurora/toolkit/mozapps/extensions/internal/XPIProvider.jsm.addons	2014-05-06 14:16:32.680968014 +0200
++++ mozilla-aurora/toolkit/mozapps/extensions/internal/XPIProvider.jsm	2014-05-06 14:17:29.482132549 +0200
+@@ -1894,7 +1894,7 @@ this.XPIProvider = {
+         this.showUpgradeUI();
+         flushCaches = true;
+       }
+-      else if (aAppChanged === undefined) {
++      else {
+         // For new profiles we will never need to show the add-on selection UI
+         Services.prefs.setBoolPref(PREF_SHOWN_SELECTION_UI, true);
+       }
diff --git a/SOURCES/firefox-enable-plugins.patch b/SOURCES/firefox-enable-plugins.patch
new file mode 100644
index 0000000..a1ee8c5
--- /dev/null
+++ b/SOURCES/firefox-enable-plugins.patch
@@ -0,0 +1,21 @@
+diff -up firefox-31.1.0/mozilla-esr31/browser/app/profile/firefox.js.plugins firefox-31.1.0/mozilla-esr31/browser/app/profile/firefox.js
+--- firefox-31.1.0/mozilla-esr31/browser/app/profile/firefox.js.plugins	2014-09-11 13:47:45.000000000 +0200
++++ firefox-31.1.0/mozilla-esr31/browser/app/profile/firefox.js	2014-09-11 14:42:26.036810267 +0200
+@@ -657,7 +657,7 @@ pref("plugins.click_to_play", true);
+ 
+ pref("plugins.hideMissingPluginsNotification", false);
+ 
+-pref("plugin.default.state", 1);
++pref("plugin.default.state", 2);
+ 
+ // Plugins bundled in XPIs are enabled by default.
+ pref("plugin.defaultXpi.state", 2);
+@@ -665,7 +665,7 @@ pref("plugin.defaultXpi.state", 2);
+ // Flash is enabled by default, and Java is click-to-activate by default on
+ // all channels.
+ pref("plugin.state.flash", 2);
+-pref("plugin.state.java", 1);
++pref("plugin.state.java", 2);
+ 
+ // Whitelist Requests
+ 
diff --git a/SOURCES/firefox-install-dir.patch b/SOURCES/firefox-install-dir.patch
index e788fa0..c962fa5 100644
--- a/SOURCES/firefox-install-dir.patch
+++ b/SOURCES/firefox-install-dir.patch
@@ -1,23 +1,12 @@
-diff -up mozilla-aurora-7676a9a06403/config/baseconfig.mk.dir mozilla-aurora-7676a9a06403/config/baseconfig.mk
---- mozilla-aurora-7676a9a06403/config/baseconfig.mk.dir	2012-09-13 14:18:35.000000000 +0200
-+++ mozilla-aurora-7676a9a06403/config/baseconfig.mk	2012-09-26 10:13:45.258240426 +0200
-@@ -2,7 +2,7 @@ INCLUDED_AUTOCONF_MK = 1
- 
+diff -up mozilla-aurora/config/baseconfig.mk.orig mozilla-aurora/config/baseconfig.mk
+--- mozilla-aurora/config/baseconfig.mk.orig	2014-05-06 13:17:17.000000000 +0200
++++ mozilla-aurora/config/baseconfig.mk	2014-05-27 17:13:05.215503107 +0200
+@@ -4,7 +4,7 @@
+ # whether a normal build is happening or whether the check is running.
  includedir := $(includedir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
  idldir = $(datadir)/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
 -installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
 +installdir = $(libdir)/$(MOZ_APP_NAME)
  sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION)
- DIST = $(DEPTH)/dist
- 
-diff -up mozilla-aurora-7676a9a06403/js/src/config/baseconfig.mk.dir mozilla-aurora-7676a9a06403/js/src/config/baseconfig.mk
---- mozilla-aurora-7676a9a06403/js/src/config/baseconfig.mk.dir	2012-09-13 14:18:35.000000000 +0200
-+++ mozilla-aurora-7676a9a06403/js/src/config/baseconfig.mk	2012-09-26 10:14:07.353351833 +0200
-@@ -1,6 +1,6 @@
- INCLUDED_AUTOCONF_MK = 1
- 
--installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
-+installdir = $(libdir)/$(MOZ_APP_NAME)
- sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION)
- 
- ifneq (,$(filter /%,$(TOP_DIST)))
+ ifndef TOP_DIST
+ TOP_DIST = dist
diff --git a/SOURCES/firefox-redhat-default-prefs.js b/SOURCES/firefox-redhat-default-prefs.js
index 2a22d05..b258458 100644
--- a/SOURCES/firefox-redhat-default-prefs.js
+++ b/SOURCES/firefox-redhat-default-prefs.js
@@ -18,7 +18,9 @@ pref("browser.startup.homepage",            "data:text/plain,browser.startup.hom
 pref("toolkit.storage.synchronous",         0);
 pref("startup.homepage_override_url",       "http://www.redhat.com");
 pref("startup.homepage_welcome_url",        "http://www.redhat.com");
-pref("javascript.options.baselinejit.content", false);
-pref("javascript.options.baselinejit.chrome", false);
+/* Workaround for rhbz#1134876 */
+pref("javascript.options.baselinejit",      false);
 pref("extensions.shownSelectionUI",         true);
-pref("layout.imagevisibility.enabled",      false);
+pref("network.negotiate-auth.allow-insecure-ntlm-v1", true);
+/* Workaround for mozbz#1063315 */
+pref("security.use_mozillapkix_verification", false);
diff --git a/SOURCES/firefox-system-nss-3.16.2.patch b/SOURCES/firefox-system-nss-3.16.2.patch
deleted file mode 100644
index 80a5712..0000000
--- a/SOURCES/firefox-system-nss-3.16.2.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up firefox-24.3.0/mozilla-esr24/configure.in.nss firefox-24.3.0/mozilla-esr24/configure.in
---- firefox-24.3.0/mozilla-esr24/configure.in.nss	2014-01-30 15:46:38.000000000 +0100
-+++ firefox-24.3.0/mozilla-esr24/configure.in	2014-01-30 17:01:30.614179142 +0100
-@@ -3944,7 +3944,7 @@ MOZ_ARG_WITH_BOOL(system-nss,
-     _USE_SYSTEM_NSS=1 )
- 
- if test -n "$_USE_SYSTEM_NSS"; then
--    AM_PATH_NSS(3.16.2, [MOZ_NATIVE_NSS=1], [AC_MSG_ERROR([you don't have NSS installed or your version is too old])])
-+    AM_PATH_NSS(3.15.4, [MOZ_NATIVE_NSS=1], [AC_MSG_ERROR([you don't have NSS installed or your version is too old])])
- fi
- 
- if test -n "$MOZ_NATIVE_NSS"; then
diff --git a/SOURCES/mozilla-906754.patch b/SOURCES/mozilla-906754.patch
deleted file mode 100644
index baf13d7..0000000
--- a/SOURCES/mozilla-906754.patch
+++ /dev/null
@@ -1,204 +0,0 @@
-diff -up mozilla-esr24/xpcom/ds/TimeStamp.cpp.906754 mozilla-esr24/xpcom/ds/TimeStamp.cpp
---- mozilla-esr24/xpcom/ds/TimeStamp.cpp.906754	2013-12-06 03:21:33.000000000 +0100
-+++ mozilla-esr24/xpcom/ds/TimeStamp.cpp	2013-12-20 16:11:06.607243958 +0100
-@@ -13,15 +13,41 @@
- 
- namespace mozilla {
- 
--TimeStamp TimeStamp::sFirstTimeStamp;
--TimeStamp TimeStamp::sProcessCreation;
-+/**
-+ * Wrapper class used to initialize static data used by the TimeStamp class
-+ */
-+struct TimeStampInitialization {
-+  /**
-+   * First timestamp taken when the class static initializers are run. This
-+   * timestamp is used to sanitize timestamps coming from different sources.
-+   */
-+  TimeStamp mFirstTimeStamp;
-+
-+  /**
-+   * Timestamp representing the time when the process was created. This field
-+   * is populated lazily the first time this information is required and is
-+   * replaced every time the process is restarted.
-+   */
-+  TimeStamp mProcessCreation;
-+
-+  TimeStampInitialization() {
-+    TimeStamp::Startup();
-+    mFirstTimeStamp = TimeStamp::Now();
-+  };
-+
-+  ~TimeStampInitialization() {
-+    TimeStamp::Shutdown();
-+  };
-+};
-+
-+static TimeStampInitialization sInitOnce;
- 
- TimeStamp
- TimeStamp::ProcessCreation(bool& aIsInconsistent)
- {
-   aIsInconsistent = false;
- 
--  if (sProcessCreation.IsNull()) {
-+  if (sInitOnce.mProcessCreation.IsNull()) {
-     char *mozAppRestart = PR_GetEnv("MOZ_APP_RESTART");
-     TimeStamp ts;
- 
-@@ -31,7 +57,7 @@ TimeStamp::ProcessCreation(bool& aIsInco
-     if (mozAppRestart && (strcmp(mozAppRestart, "") != 0)) {
-       /* Firefox was restarted, use the first time-stamp we've taken as the new
-        * process startup time and unset MOZ_APP_RESTART. */
--      ts = sFirstTimeStamp;
-+      ts = sInitOnce.mFirstTimeStamp;
-       PR_SetEnv("MOZ_APP_RESTART=");
-     } else {
-       TimeStamp now = Now();
-@@ -39,26 +65,26 @@ TimeStamp::ProcessCreation(bool& aIsInco
- 
-       ts = now - TimeDuration::FromMicroseconds(uptime);
- 
--      if ((ts > sFirstTimeStamp) || (uptime == 0)) {
-+      if ((ts > sInitOnce.mFirstTimeStamp) || (uptime == 0)) {
-         /* If the process creation timestamp was inconsistent replace it with
-          * the first one instead and notify that a telemetry error was
-          * detected. */
-         aIsInconsistent = true;
--        ts = sFirstTimeStamp;
-+        ts = sInitOnce.mFirstTimeStamp;
-       }
-     }
- 
--    sProcessCreation = ts;
-+    sInitOnce.mProcessCreation = ts;
-   }
- 
--  return sProcessCreation;
-+  return sInitOnce.mProcessCreation;
- }
- 
- void
- TimeStamp::RecordProcessRestart()
- {
-   PR_SetEnv("MOZ_APP_RESTART=1");
--  sProcessCreation = TimeStamp();
-+  sInitOnce.mProcessCreation = TimeStamp();
- }
- 
- } // namespace mozilla
-diff -up mozilla-esr24/xpcom/ds/TimeStamp_darwin.cpp.906754 mozilla-esr24/xpcom/ds/TimeStamp_darwin.cpp
---- mozilla-esr24/xpcom/ds/TimeStamp_darwin.cpp.906754	2013-12-06 03:21:33.000000000 +0100
-+++ mozilla-esr24/xpcom/ds/TimeStamp_darwin.cpp	2013-12-20 15:58:50.356993425 +0100
-@@ -114,18 +114,6 @@ TimeDuration::Resolution()
-   return TimeDuration::FromTicks(int64_t(sResolution));
- }
- 
--struct TimeStampInitialization
--{
--  TimeStampInitialization() {
--    TimeStamp::Startup();
--  }
--  ~TimeStampInitialization() {
--    TimeStamp::Shutdown();
--  }
--};
--
--static TimeStampInitialization initOnce;
--
- nsresult
- TimeStamp::Startup()
- {
-@@ -152,8 +140,6 @@ TimeStamp::Startup()
-        sResolutionSigDigs *= 10);
- 
-   gInitialized = true;
--  sFirstTimeStamp = TimeStamp::Now();
--  sProcessCreation = TimeStamp();
- 
-   return NS_OK;
- }
-diff -up mozilla-esr24/xpcom/ds/TimeStamp.h.906754 mozilla-esr24/xpcom/ds/TimeStamp.h
---- mozilla-esr24/xpcom/ds/TimeStamp.h.906754	2013-12-06 03:21:33.000000000 +0100
-+++ mozilla-esr24/xpcom/ds/TimeStamp.h	2013-12-20 15:58:50.356993425 +0100
-@@ -363,19 +363,6 @@ private:
-    * When using a system clock, a value is system dependent.
-    */
-   TimeStampValue mValue;
--
--  /**
--   * First timestamp taken when the class static initializers are run. This
--   * timestamp is used to sanitize timestamps coming from different sources.
--   */
--  static TimeStamp sFirstTimeStamp;
--
--  /**
--   * Timestamp representing the time when the process was created. This field
--   * is populated lazily the first time this information is required and is
--   * replaced every time the process is restarted.
--   */
--  static TimeStamp sProcessCreation;
- };
- 
- }
-diff -up mozilla-esr24/xpcom/ds/TimeStamp_posix.cpp.906754 mozilla-esr24/xpcom/ds/TimeStamp_posix.cpp
---- mozilla-esr24/xpcom/ds/TimeStamp_posix.cpp.906754	2013-12-06 03:21:33.000000000 +0100
-+++ mozilla-esr24/xpcom/ds/TimeStamp_posix.cpp	2013-12-20 15:58:50.356993425 +0100
-@@ -159,17 +159,6 @@ TimeDuration::Resolution()
-   return TimeDuration::FromTicks(int64_t(sResolution));
- }
- 
--struct TimeStampInitialization
--{
--  TimeStampInitialization() {
--    TimeStamp::Startup();
--  }
--  ~TimeStampInitialization() {
--    TimeStamp::Shutdown();
--  }
--};
--
--static TimeStampInitialization initOnce;
- static bool gInitialized = false;
- 
- nsresult
-@@ -192,8 +181,6 @@ TimeStamp::Startup()
-        sResolutionSigDigs *= 10);
- 
-   gInitialized = true;
--  sFirstTimeStamp = TimeStamp::Now();
--  sProcessCreation = TimeStamp();
- 
-   return NS_OK;
- }
-diff -up mozilla-esr24/xpcom/ds/TimeStamp_windows.cpp.906754 mozilla-esr24/xpcom/ds/TimeStamp_windows.cpp
---- mozilla-esr24/xpcom/ds/TimeStamp_windows.cpp.906754	2013-12-06 03:21:33.000000000 +0100
-+++ mozilla-esr24/xpcom/ds/TimeStamp_windows.cpp	2013-12-20 15:58:50.357993430 +0100
-@@ -457,18 +457,6 @@ TimeDuration::Resolution()
-   return TimeDuration::FromTicks(int64_t(sResolution));
- }
- 
--struct TimeStampInitialization
--{
--  TimeStampInitialization() {
--    TimeStamp::Startup();
--  }
--  ~TimeStampInitialization() {
--    TimeStamp::Shutdown();
--  }
--};
--
--static TimeStampInitialization initOnce;
--
- static bool
- HasStableTSC()
- {
-@@ -534,8 +522,6 @@ TimeStamp::Startup()
- 
-   InitThresholds();
-   InitResolution();
--  sFirstTimeStamp = TimeStamp::Now();
--  sProcessCreation = TimeStamp();
- 
-   return NS_OK;
- }
diff --git a/SOURCES/remove-ogg.patch b/SOURCES/remove-ogg.patch
new file mode 100644
index 0000000..9bf924b
--- /dev/null
+++ b/SOURCES/remove-ogg.patch
@@ -0,0 +1,449 @@
+diff -up mozilla-aurora/config/external/moz.build.remove-ogg mozilla-aurora/config/external/moz.build
+--- mozilla-aurora/config/external/moz.build.remove-ogg	2014-05-06 13:17:17.000000000 +0200
++++ mozilla-aurora/config/external/moz.build	2014-06-03 13:51:14.450340480 +0200
+@@ -33,14 +33,15 @@ if CONFIG['MOZ_WEBM_ENCODER']:
+ if CONFIG['MOZ_VPX'] and not CONFIG['MOZ_NATIVE_LIBVPX']:
+     external_dirs += ['media/libvpx']
+ 
++if CONFIG['MOZ_OGG']:
++    external_dirs += ['media/libogg', 'media/libtheora']
++
+ if not CONFIG['MOZ_NATIVE_PNG']:
+     external_dirs += ['media/libpng']
+ 
+ external_dirs += [
+     'media/kiss_fft',
+     'media/libcubeb',
+-    'media/libogg',
+-    'media/libtheora',
+     'media/libspeex_resampler',
+     'media/libsoundtouch',
+ ]
+diff -up mozilla-aurora/configure.in.remove-ogg mozilla-aurora/configure.in
+--- mozilla-aurora/configure.in.remove-ogg	2014-05-06 13:17:17.000000000 +0200
++++ mozilla-aurora/configure.in	2014-06-03 13:51:14.452340483 +0200
+@@ -3938,6 +3938,7 @@ MOZ_FEEDS=1
+ MOZ_WEBAPP_RUNTIME=
+ MOZ_JSDEBUGGER=1
+ MOZ_AUTH_EXTENSION=1
++MOZ_OGG=1
+ MOZ_RAW=
+ MOZ_VORBIS=
+ MOZ_TREMOR=
+@@ -5191,25 +5192,37 @@ fi
+ 
+ AC_SUBST(MOZ_RAW)
+ 
+-dnl Checks for __attribute__(aligned()) directive need by libogg
+-AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
+-    [ac_cv_c_attribute_aligned],
+-    [ac_cv_c_attribute_aligned=0
+-     CFLAGS_save="${CFLAGS}"
+-     CFLAGS="${CFLAGS} -Werror"
+-     for ac_cv_c_attr_align_try in 64 32 16 8; do
+-       echo "trying $ac_cv_c_attr_align_try"
+-       AC_TRY_COMPILE([],
+-                      [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
+-                      [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
+-       if test "$ac_cv_c_attribute_aligned" != 0; then
+-         break;
+-       fi
+-     done
+-       CFLAGS="${CFLAGS_save}"])
+-if test "${ac_cv_c_attribute_aligned}" != "0"; then
+-  AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
+-                     [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
++dnl ========================================================
++dnl = Disable Ogg Codecs
++dnl ========================================================
++MOZ_ARG_DISABLE_BOOL(ogg,
++[  --disable-ogg           Disable support for OGG media (Theora video and Vorbis audio)],
++    MOZ_OGG=,
++    MOZ_OGG=1)
++
++if test -n "$MOZ_OGG"; then
++    AC_DEFINE(MOZ_OGG)
++
++    dnl Checks for __attribute__(aligned()) directive
++    AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
++        [ac_cv_c_attribute_aligned],
++        [ac_cv_c_attribute_aligned=0
++         CFLAGS_save="${CFLAGS}"
++         CFLAGS="${CFLAGS} -Werror"
++         for ac_cv_c_attr_align_try in 64 32 16 8; do
++           echo "trying $ac_cv_c_attr_align_try"
++           AC_TRY_COMPILE([],
++                          [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
++                          [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
++           if test "$ac_cv_c_attribute_aligned" != 0; then
++             break;
++           fi
++         done
++           CFLAGS="${CFLAGS_save}"])
++    if test "${ac_cv_c_attribute_aligned}" != "0"; then
++      AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
++                         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
++    fi
+ fi
+ 
+ dnl ========================================================
+@@ -5426,7 +5439,7 @@ AC_SUBST(MOZ_NATIVE_LIBVPX)
+ AC_SUBST(MOZ_LIBVPX_CFLAGS)
+ AC_SUBST(MOZ_LIBVPX_LIBS)
+ 
+-if test "$MOZ_WEBM"; then
++if test "$MOZ_WEBM" -o "$MOZ_OGG"; then
+     if test "$MOZ_SAMPLE_TYPE_FLOAT32"; then
+         MOZ_VORBIS=1
+     else
+@@ -5533,6 +5546,15 @@ dnl ====================================
+ dnl = Handle dependent MEDIA defines
+ dnl ========================================================
+ 
++if test -n "$MOZ_OPUS" -a -z "$MOZ_OGG"; then
++    AC_MSG_ERROR([MOZ_OPUS requires MOZ_OGG which is disabled.])
++fi
++
++if test -n "$MOZ_VORBIS" -a -z "$MOZ_OGG"; then
++    AC_MSG_ERROR([MOZ_VORBIS requires MOZ_OGG which is disabled.
++Note that you need vorbis support for WebM playback.])
++fi
++
+ if test -n "$MOZ_VORBIS" -a -n "$MOZ_TREMOR"; then
+     AC_MSG_ERROR([MOZ_VORBIS and MOZ_TREMOR are mutually exclusive!  The build system should not allow them both to be set, but they are.  Please file a bug at https://bugzilla.mozilla.org/])
+ fi
+@@ -8842,6 +8864,7 @@ AC_SUBST(MOZ_APPLEMEDIA)
+ AC_SUBST(MOZ_OMX_PLUGIN)
+ AC_SUBST(MOZ_VPX_ERROR_CONCEALMENT)
+ AC_SUBST(MOZ_VPX)
++AC_SUBST(MOZ_OGG)
+ AC_SUBST(VPX_AS)
+ AC_SUBST(VPX_ASFLAGS)
+ AC_SUBST(VPX_DASH_C_FLAG)
+diff -up mozilla-aurora/content/html/content/src/HTMLAudioElement.cpp.remove-ogg mozilla-aurora/content/html/content/src/HTMLAudioElement.cpp
+--- mozilla-aurora/content/html/content/src/HTMLAudioElement.cpp.remove-ogg	2014-05-06 13:17:19.000000000 +0200
++++ mozilla-aurora/content/html/content/src/HTMLAudioElement.cpp	2014-06-03 13:51:14.452340483 +0200
+@@ -81,12 +81,16 @@ nsresult HTMLAudioElement::SetAcceptHead
+ #ifdef MOZ_WEBM
+       "audio/webm,"
+ #endif
++#ifdef MOZ_OGG
+       "audio/ogg,"
++#endif
+ #ifdef MOZ_WAVE
+       "audio/wav,"
+ #endif
+       "audio/*;q=0.9,"
++#ifdef MOZ_OGG
+       "application/ogg;q=0.7,"
++#endif
+       "video/*;q=0.6,*/*;q=0.5");
+ 
+     return aChannel->SetRequestHeader(NS_LITERAL_CSTRING("Accept"),
+diff -up mozilla-aurora/content/html/content/src/HTMLVideoElement.cpp.remove-ogg mozilla-aurora/content/html/content/src/HTMLVideoElement.cpp
+--- mozilla-aurora/content/html/content/src/HTMLVideoElement.cpp.remove-ogg	2014-05-06 13:17:19.000000000 +0200
++++ mozilla-aurora/content/html/content/src/HTMLVideoElement.cpp	2014-06-03 13:51:14.452340483 +0200
+@@ -136,9 +136,13 @@ nsresult HTMLVideoElement::SetAcceptHead
+ #ifdef MOZ_WEBM
+       "video/webm,"
+ #endif
++#ifdef MOZ_OGG
+       "video/ogg,"
++#endif
+       "video/*;q=0.9,"
++#ifdef MOZ_OGG
+       "application/ogg;q=0.7,"
++#endif
+       "audio/*;q=0.6,*/*;q=0.5");
+ 
+   return aChannel->SetRequestHeader(NS_LITERAL_CSTRING("Accept"),
+diff -up mozilla-aurora/content/media/DecoderTraits.cpp.remove-ogg mozilla-aurora/content/media/DecoderTraits.cpp
+--- mozilla-aurora/content/media/DecoderTraits.cpp.remove-ogg	2014-05-06 13:17:20.000000000 +0200
++++ mozilla-aurora/content/media/DecoderTraits.cpp	2014-06-03 13:51:14.452340483 +0200
+@@ -13,8 +13,10 @@
+ #include "MediaPluginHost.h"
+ #endif
+ 
++#ifdef MOZ_OGG
+ #include "OggDecoder.h"
+ #include "OggReader.h"
++#endif
+ #ifdef MOZ_WAVE
+ #include "WaveDecoder.h"
+ #include "WaveReader.h"
+@@ -100,6 +102,7 @@ IsRawType(const nsACString& aType)
+ }
+ #endif
+ 
++#ifdef MOZ_OGG
+ // See http://www.rfc-editor.org/rfc/rfc5334.txt for the definitions
+ // of Ogg media types and codec types
+ static const char* const gOggTypes[4] = {
+@@ -131,6 +134,7 @@ IsOggType(const nsACString& aType)
+ 
+   return CodecListContains(gOggTypes, aType);
+ }
++#endif
+ 
+ #ifdef MOZ_WAVE
+ // See http://www.rfc-editor.org/rfc/rfc2361.txt for the definitions
+@@ -199,8 +203,10 @@ IsGStreamerSupportedType(const nsACStrin
+   if (IsWebMType(aMimeType) && !Preferences::GetBool("media.prefer-gstreamer", false))
+     return false;
+ #endif
++#ifdef MOZ_OGG
+   if (IsOggType(aMimeType) && !Preferences::GetBool("media.prefer-gstreamer", false))
+     return false;
++#endif
+ 
+   return GStreamerDecoder::CanHandleMediaType(aMimeType, nullptr);
+ }
+@@ -370,10 +376,12 @@ DecoderTraits::CanHandleMediaType(const
+     result = CANPLAY_MAYBE;
+   }
+ #endif
++#ifdef MOZ_OGG
+   if (IsOggType(nsDependentCString(aMIMEType))) {
+     codecList = MediaDecoder::IsOpusEnabled() ? gOggCodecsWithOpus : gOggCodecs;
+     result = CANPLAY_MAYBE;
+   }
++#endif
+ #ifdef MOZ_WAVE
+   if (IsWaveType(nsDependentCString(aMIMEType))) {
+     codecList = gWaveCodecs;
+@@ -479,10 +487,12 @@ InstantiateDecoder(const nsACString& aTy
+     return decoder.forget();
+   }
+ #endif
++#ifdef MOZ_OGG
+   if (IsOggType(aType)) {
+     decoder = new OggDecoder();
+     return decoder.forget();
+   }
++#endif
+ #ifdef MOZ_WAVE
+   if (IsWaveType(aType)) {
+     decoder = new WaveDecoder();
+@@ -587,9 +597,11 @@ MediaDecoderReader* DecoderTraits::Creat
+     decoderReader = new RawReader(aDecoder);
+   } else
+ #endif
++#ifdef MOZ_OGG
+   if (IsOggType(aType)) {
+     decoderReader = new OggReader(aDecoder);
+   } else
++#endif
+ #ifdef MOZ_WAVE
+   if (IsWaveType(aType)) {
+     decoderReader = new WaveReader(aDecoder);
+@@ -642,7 +654,9 @@ MediaDecoderReader* DecoderTraits::Creat
+ bool DecoderTraits::IsSupportedInVideoDocument(const nsACString& aType)
+ {
+   return
++#ifdef MOZ_OGG
+     IsOggType(aType) ||
++#endif
+ #ifdef MOZ_OMX_DECODER
+     // We support amr inside WebApps on firefoxOS but not in general web content.
+     // Ensure we dont create a VideoDocument when accessing amr URLs directly.
+diff -up mozilla-aurora/content/media/encoder/MediaEncoder.cpp.remove-ogg mozilla-aurora/content/media/encoder/MediaEncoder.cpp
+--- mozilla-aurora/content/media/encoder/MediaEncoder.cpp.remove-ogg	2014-05-06 13:17:20.000000000 +0200
++++ mozilla-aurora/content/media/encoder/MediaEncoder.cpp	2014-06-03 13:51:14.453340485 +0200
+@@ -9,7 +9,9 @@
+ #include "prlog.h"
+ #include "mozilla/Preferences.h"
+ 
++#ifdef MOZ_OGG
+ #include "OggWriter.h"
++#endif
+ #ifdef MOZ_OPUS
+ #include "OpusTrackEncoder.h"
+ 
+@@ -133,6 +135,7 @@ MediaEncoder::CreateEncoder(const nsAStr
+     mimeType = NS_LITERAL_STRING(AUDIO_3GPP);
+   }
+ #endif // MOZ_OMX_ENCODER
++#ifdef MOZ_OGG
+   else if (MediaDecoder::IsOggEnabled() && MediaDecoder::IsOpusEnabled() &&
+            (aMIMEType.EqualsLiteral(AUDIO_OGG) ||
+            (aTrackTypes & ContainerWriter::CREATE_AUDIO_TRACK))) {
+@@ -142,6 +145,7 @@ MediaEncoder::CreateEncoder(const nsAStr
+     NS_ENSURE_TRUE(audioEncoder, nullptr);
+     mimeType = NS_LITERAL_STRING(AUDIO_OGG);
+   }
++#endif  // MOZ_OGG
+   else {
+     LOG(PR_LOG_ERROR, ("Can not find any encoder to record this media stream"));
+     return nullptr;
+diff -up mozilla-aurora/content/media/MediaDecoder.cpp.remove-ogg mozilla-aurora/content/media/MediaDecoder.cpp
+--- mozilla-aurora/content/media/MediaDecoder.cpp.remove-ogg	2014-05-06 13:17:20.000000000 +0200
++++ mozilla-aurora/content/media/MediaDecoder.cpp	2014-06-03 13:51:14.453340485 +0200
+@@ -1653,6 +1653,7 @@ MediaDecoder::IsRawEnabled()
+ }
+ #endif
+ 
++#ifdef MOZ_OGG
+ bool
+ MediaDecoder::IsOpusEnabled()
+ {
+@@ -1668,6 +1669,7 @@ MediaDecoder::IsOggEnabled()
+ {
+   return Preferences::GetBool("media.ogg.enabled");
+ }
++#endif
+ 
+ #ifdef MOZ_WAVE
+ bool
+diff -up mozilla-aurora/content/media/MediaDecoder.h.remove-ogg mozilla-aurora/content/media/MediaDecoder.h
+--- mozilla-aurora/content/media/MediaDecoder.h.remove-ogg	2014-05-06 13:17:20.000000000 +0200
++++ mozilla-aurora/content/media/MediaDecoder.h	2014-06-03 13:51:14.453340485 +0200
+@@ -844,8 +844,10 @@ public:
+   static bool IsRawEnabled();
+ #endif
+ 
++#ifdef MOZ_OGG
+   static bool IsOggEnabled();
+   static bool IsOpusEnabled();
++#endif
+ 
+ #ifdef MOZ_WAVE
+   static bool IsWaveEnabled();
+diff -up mozilla-aurora/content/media/moz.build.remove-ogg mozilla-aurora/content/media/moz.build
+--- mozilla-aurora/content/media/moz.build.remove-ogg	2014-05-06 13:17:20.000000000 +0200
++++ mozilla-aurora/content/media/moz.build	2014-06-03 13:51:14.453340485 +0200
+@@ -7,7 +7,6 @@
+ PARALLEL_DIRS += [
+   'encoder',
+   'mediasource',
+-  'ogg',
+   'webaudio',
+   'webvtt'
+ ]
+@@ -17,6 +16,9 @@ TEST_TOOL_DIRS += ['compiledtest']
+ if CONFIG['MOZ_RAW']:
+     PARALLEL_DIRS += ['raw']
+ 
++if CONFIG['MOZ_OGG']:
++    PARALLEL_DIRS += ['ogg']
++
+ if CONFIG['MOZ_WAVE']:
+     PARALLEL_DIRS += ['wave']
+ 
+diff -up mozilla-aurora/layout/media/symbols.def.in.remove-ogg mozilla-aurora/layout/media/symbols.def.in
+--- mozilla-aurora/layout/media/symbols.def.in.remove-ogg	2014-05-06 13:17:13.000000000 +0200
++++ mozilla-aurora/layout/media/symbols.def.in	2014-06-03 13:51:14.454340486 +0200
+@@ -145,6 +145,7 @@ cubeb_stream_init
+ cubeb_stream_start
+ cubeb_stream_stop
+ cubeb_stream_get_latency
++#ifdef MOZ_OGG
+ th_comment_clear
+ th_comment_init
+ th_decode_alloc
+@@ -158,6 +159,7 @@ th_info_init
+ th_packet_isheader
+ th_packet_iskeyframe
+ th_setup_free
++#endif
+ #ifdef MOZ_OPUS
+ opus_decoder_create
+ opus_decoder_destroy
+diff -up mozilla-aurora/modules/libpref/src/init/all.js.remove-ogg mozilla-aurora/modules/libpref/src/init/all.js
+--- mozilla-aurora/modules/libpref/src/init/all.js.remove-ogg	2014-05-19 11:43:49.000000000 +0200
++++ mozilla-aurora/modules/libpref/src/init/all.js	2014-06-03 13:51:25.028355239 +0200
+@@ -212,7 +212,9 @@ pref("media.fragmented-mp4.use-blank-dec
+ #ifdef MOZ_RAW
+ pref("media.raw.enabled", true);
+ #endif
++#ifdef MOZ_OGG
+ pref("media.ogg.enabled", true);
++#endif
+ #ifdef MOZ_OPUS
+ pref("media.opus.enabled", true);
+ #endif
+diff -up mozilla-aurora/python/mozbuild/mozbuild/mozinfo.py.remove-ogg mozilla-aurora/python/mozbuild/mozbuild/mozinfo.py
+--- mozilla-aurora/python/mozbuild/mozbuild/mozinfo.py.remove-ogg	2014-05-06 13:17:17.000000000 +0200
++++ mozilla-aurora/python/mozbuild/mozbuild/mozinfo.py	2014-06-03 13:51:25.028355239 +0200
+@@ -84,6 +84,7 @@ def build_dict(config, env=os.environ):
+     d['tests_enabled'] = substs.get('ENABLE_TESTS') == "1"
+     d['bin_suffix'] = substs.get('BIN_SUFFIX', '')
+ 
++    d['ogg'] = bool(substs.get('MOZ_OGG'))
+     d['webm'] = bool(substs.get('MOZ_WEBM'))
+     d['wave'] = bool(substs.get('MOZ_WAVE'))
+ 
+diff -up mozilla-aurora/uriloader/exthandler/nsExternalHelperAppService.cpp.remove-ogg mozilla-aurora/uriloader/exthandler/nsExternalHelperAppService.cpp
+--- mozilla-aurora/uriloader/exthandler/nsExternalHelperAppService.cpp.remove-ogg	2014-05-06 13:17:27.000000000 +0200
++++ mozilla-aurora/uriloader/exthandler/nsExternalHelperAppService.cpp	2014-06-03 13:51:25.030355242 +0200
+@@ -462,6 +462,7 @@ static nsDefaultMimeTypeEntry defaultMim
+   { "application/xhtml+xml", "xhtml" },
+   { "application/xhtml+xml", "xht" },
+   { TEXT_PLAIN, "txt" },
++#ifdef MOZ_OGG
+   { VIDEO_OGG, "ogv" },
+   { VIDEO_OGG, "ogg" },
+   { APPLICATION_OGG, "ogg" },
+@@ -469,6 +470,7 @@ static nsDefaultMimeTypeEntry defaultMim
+ #ifdef MOZ_OPUS
+   { AUDIO_OGG, "opus" },
+ #endif
++#endif
+ #ifdef MOZ_WEBM
+   { VIDEO_WEBM, "webm" },
+   { AUDIO_WEBM, "webm" },
+diff -up mozilla-aurora/xpcom/build/nsXPComInit.cpp.remove-ogg mozilla-aurora/xpcom/build/nsXPComInit.cpp
+--- mozilla-aurora/xpcom/build/nsXPComInit.cpp.remove-ogg	2014-06-03 14:04:38.913464144 +0200
++++ mozilla-aurora/xpcom/build/nsXPComInit.cpp	2014-06-03 14:06:03.282582245 +0200
+@@ -133,7 +133,9 @@ extern nsresult nsStringInputStreamConst
+ #include "mozilla/VisualEventTracer.h"
+ #endif
+ 
++#if MOZ_OGG
+ #include "ogg/ogg.h"
++#endif
+ #if defined(MOZ_VPX) && !defined(MOZ_VPX_NO_MEM_REPORTING)
+ #include "vpx_mem/vpx_mem.h"
+ #endif
+@@ -378,7 +380,7 @@ private:
+ NS_IMPL_ISUPPORTS(ICUReporter, nsIMemoryReporter)
+ 
+ /* static */ template<> Atomic<size_t> CountingAllocatorBase<ICUReporter>::sAmount(0);
+-
++#if MOZ_OGG
+ class OggReporter MOZ_FINAL : public nsIMemoryReporter,
+                               public CountingAllocatorBase<OggReporter>
+ {
+@@ -420,7 +422,7 @@ NS_IMPL_ISUPPORTS(VPXReporter, nsIMemory
+ 
+ /* static */ template<> Atomic<size_t> CountingAllocatorBase<VPXReporter>::sAmount(0);
+ #endif /* MOZ_VPX */
+-
++#endif /* MOZ_OGG */
+ #ifdef MOZ_WEBM
+ class NesteggReporter MOZ_FINAL : public nsIMemoryReporter
+                                 , public CountingAllocatorBase<NesteggReporter>
+@@ -606,12 +608,13 @@ NS_InitXPCOM2(nsIServiceManager* *result
+     // depend on the XPCOM-based memory reporting goop.  So for now, we have
+     // this oddness.
+     mozilla::SetICUMemoryFunctions();
+-
++#if MOZ_OGG
+     // Do the same for libogg.
+     ogg_set_mem_functions(OggReporter::CountingMalloc,
+                           OggReporter::CountingCalloc,
+                           OggReporter::CountingRealloc,
+                           OggReporter::CountingFree);
++#endif
+ 
+ #if defined(MOZ_VPX) && !defined(MOZ_VPX_NO_MEM_REPORTING)
+     // And for VPX.
+@@ -678,7 +681,9 @@ NS_InitXPCOM2(nsIServiceManager* *result
+ 
+     // The memory reporter manager is up and running -- register our reporters.
+     RegisterStrongMemoryReporter(new ICUReporter());
++#if MOZ_OGG
+     RegisterStrongMemoryReporter(new OggReporter());
++#endif
+ #ifdef MOZ_VPX
+     RegisterStrongMemoryReporter(new VPXReporter());
+ #endif
diff --git a/SOURCES/rhbz-1032770.patch b/SOURCES/rhbz-1032770.patch
deleted file mode 100644
index f9f0895..0000000
--- a/SOURCES/rhbz-1032770.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-diff -up mozilla-esr24/storage/src/Makefile.in.rhbz-1032770 mozilla-esr24/storage/src/Makefile.in
---- mozilla-esr24/storage/src/Makefile.in.rhbz-1032770	2013-10-22 08:19:20.000000000 +0200
-+++ mozilla-esr24/storage/src/Makefile.in	2013-12-02 14:33:43.524479615 +0100
-@@ -22,14 +22,21 @@ endif
- # Don't use the jemalloc allocator on Android, because we can't guarantee
- # that Gecko will configure sqlite before it is first used (bug 730495).
- #
-+# Don't use the jemalloc allocator when using system sqlite. Linked in libraries
-+# (such as NSS) might trigger an initialization of sqlite and allocation
-+# of memory using the default allocator, prior to the storage service
-+# registering its allocator, causing memory management failures (bug 938730).
-+#
- # Note: On Windows our sqlite build assumes we use jemalloc.  If you disable
- # MOZ_STORAGE_MEMORY on Windows, you will also need to change the "ifdef
- # MOZ_MEMORY" options in db/sqlite3/src/Makefile.in.
- ifdef MOZ_MEMORY
-+ifndef MOZ_NATIVE_SQLITE
- ifneq ($(OS_TARGET), Android)
- DEFINES += -DMOZ_STORAGE_MEMORY
- endif
- endif
-+endif
- 
- # For nsDependentJSString
- LOCAL_INCLUDES = \
diff --git a/SOURCES/xulrunner-24.0-gcc47.patch b/SOURCES/xulrunner-24.0-gcc47.patch
deleted file mode 100644
index a6bff8e..0000000
--- a/SOURCES/xulrunner-24.0-gcc47.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up xulrunner-24.0/mozilla-release/toolkit/crashreporter/client/Makefile.in.gcc47 xulrunner-24.0/mozilla-release/toolkit/crashreporter/client/Makefile.in
---- xulrunner-24.0/mozilla-release/toolkit/crashreporter/client/Makefile.in.gcc47	2013-09-11 01:15:24.000000000 +0200
-+++ xulrunner-24.0/mozilla-release/toolkit/crashreporter/client/Makefile.in	2013-09-13 13:33:49.866875578 +0200
-@@ -60,6 +60,9 @@ $(DIST)/bin/crashreporter.crt: $(topsrcd
- 	$(PYTHON) $(srcdir)/certdata2pem.py < $< > $@
- endif
- 
-+# Needed for moz_free
-+LIBS += -L$(LIBXUL_DIST)/lib -lmozalloc
-+
- LIBS += \
-   $(DEPTH)/toolkit/crashreporter/google-breakpad/src/common/linux/$(LIB_PREFIX)breakpad_linux_common_s.$(LIB_SUFFIX) \
-   $(NULL)
diff --git a/SPECS/firefox.spec b/SPECS/firefox.spec
index e11b923..badc256 100644
--- a/SPECS/firefox.spec
+++ b/SPECS/firefox.spec
@@ -1,12 +1,12 @@
 # Use system sqlite?
-%define system_sqlite           1
-%define system_ffi              0
+%define system_sqlite           0
+%define system_ffi              1
 
 # Use system nss/nspr?
 %define system_nss              1
 
-# Enable webm for i686/x86_64 only
-%ifarch %{ix86} x86_64
+# Enable webm
+%ifarch %{ix86} x86_64 ppc ppc64
 %define enable_webm             1
 %else
 %define enable_webm             0
@@ -23,12 +23,14 @@
 
 # Minimal required versions
 %if %{?system_nss}
-%define nspr_version 4.10.2
-%define nss_version 3.15.4
+%global nspr_version 4.10.6
+%global nss_version 3.16.2
 %endif
 
 %define cairo_version 1.10.2
 %define freetype_version 2.1.9
+%define ffi_version 3.0.9
+%global libvpx_version 1.3.0
 
 # Bookmark variables
 %define default_bookmarks_file  %{_datadir}/bookmarks/default-bookmarks.html
@@ -38,7 +40,7 @@
 %define langpackdir             %{mozappdir}/langpacks
 
 %if %{?system_sqlite}
-%define sqlite_version 3.6.22
+%define sqlite_version 3.8.4.2
 # The actual sqlite version (see #480989):
 %global sqlite_build_version %(pkg-config --silence-errors --modversion sqlite3 2>/dev/null || echo 65536)
 %endif
@@ -47,25 +49,25 @@
 %define build_langpacks         1
 
 %if %{official_branding}
-%define tarballdir  mozilla-esr24
+%define tarballdir  mozilla-esr31
 %define ext_version esr
 %endif
 
 Summary:        Mozilla Firefox Web browser
 Name:           firefox
-Version:        24.8.0
-Release:        1%{?prever}%{?dist}
+Version:        31.1.0
+Release:        6%{?prever}%{?dist}
 URL:            http://www.mozilla.org/projects/firefox/
 License:        MPLv1.1 or GPLv2+ or LGPLv2+
 Group:          Applications/Internet
 # From ftp://ftp.mozilla.org/pub/firefox/releases/%{version}%{?pretag}/source
 Source0:        firefox-%{version}%{?prever}%{?ext_version}.source.tar.bz2
 %if %{build_langpacks}
-Source1:        firefox-langpacks-%{version}%{?ext_version}-20140826.tar.bz2
+Source1:        firefox-langpacks-%{version}%{?ext_version}-20140828.tar.bz2
 %endif
 Source10:       firefox-mozconfig
 Source11:       firefox-mozconfig-branded
-Source12:       firefox-centos-default-prefs.js
+Source12:       firefox-redhat-default-prefs.js
 Source20:       firefox.desktop
 Source21:       firefox.sh.in
 Source23:       firefox.1
@@ -73,22 +75,18 @@ Source100:      find-external-requires
 
 # Build patches
 Patch0:         firefox-install-dir.patch
-Patch4:         xulrunner-24.0-gcc47.patch
 Patch5:         xulrunner-24.0-jemalloc-ppc.patch
 
 # RPM specific patches
-Patch11:        firefox-24.0-default.patch
-Patch12:        firefox-17.0-enable-addons.patch
+Patch11:        firefox-default.patch
+Patch12:        firefox-enable-addons.patch
 Patch13:        rhbz-966424.patch
-Patch14:        rhbz-1032770.patch
-Patch15:        firefox-system-nss-3.16.2.patch
-
-# RHEL patches
-Patch100:       firefox-5.0-asciidel.patch
-Patch200:       firefox-duckduckgo.patch
+Patch14:        remove-ogg.patch
+Patch15:        disable-webm.patch
+Patch16:        firefox-enable-plugins.patch
 
 # Upstream patches
-Patch300:       mozilla-906754.patch
+Patch200:       firefox-duckduckgo.patch
 
 %if %{official_branding}
 # Required by Mozilla Corporation
@@ -107,35 +105,32 @@ BuildRequires:  mesa-libGL-devel
 BuildRequires:  system-bookmarks
 Requires:       system-bookmarks
 Requires:       redhat-indexhtml
-
-%if %{?enable_webm}
-BuildRequires:  libvpx-devel >= 1.0.0
-Requires:       libvpx >= 1.0.0
-%endif
-
 %if %{?system_sqlite}
 BuildRequires:  sqlite-devel >= %{sqlite_version}
 Requires:       sqlite >= %{sqlite_build_version}
 %endif
-
 %if %{?system_nss}
 BuildRequires:  nspr-devel >= %{nspr_version}
 BuildRequires:  nss-devel >= %{nss_version}
 Requires:       nspr >= %{nspr_version}
 Requires:       nss >= %{nss_version}
 %endif
-
 %if %{?system_cairo}
 BuildRequires:  cairo-devel >= %{cairo_version}
 %endif
-
-BuildRequires:  hunspell-devel
-Requires:       mozilla-filesystem
 %if %{?system_sqlite}
 BuildRequires:  sqlite-devel >= %{sqlite_version}
 Requires:       sqlite >= %{sqlite_build_version}
 %endif
-
+%if %{?system_ffi}
+BuildRequires:  libffi-devel >= %{ffi_version}
+Requires:       libffi >= %{ffi_version}
+%endif
+%if %{?enable_webm}
+BuildRequires:  libvpx-devel >= %{libvpx_version}
+Requires:       libvpx >= %{libvpx_version}
+%endif
+BuildRequires:  hunspell-devel
 BuildRequires:  libpng-devel
 BuildRequires:  libjpeg-devel
 BuildRequires:  zip
@@ -156,7 +151,9 @@ BuildRequires:  alsa-lib-devel
 BuildRequires:  libnotify-devel
 BuildRequires:  autoconf213
 BuildRequires:  mesa-libGL-devel
+BuildRequires:  pulseaudio-libs-devel
 
+Requires:       mozilla-filesystem
 Requires:       liberation-fonts-common
 Requires:       liberation-sans-fonts
 
@@ -183,22 +180,22 @@ cd %{tarballdir}
 # Build patches
 # We have to keep original patch backup extension to go thru configure without problems with tests
 %patch0 -p1 -b .orig
-%patch4 -p2 -b .gcc47.patch
 %patch5 -p2 -b .jemalloc-ppc.patch
 
 # RPM specific patches
-%patch11 -p2 -b .default
+%patch11 -p1 -b .default
 %patch12 -p1 -b .addons
 %patch13 -p1 -b .rhbz-966424
-%patch14 -p1 -b .rhbz-1032770
-%patch15 -p2 -b .nss-3.16.2
+%patch14 -p1 -b .remove-ogg
+%if !%{?enable_webm}
+%patch15 -p1 -b .webm
+%endif
+%patch16 -p2 -b .plugins
 
-# RHEL patches
-%patch100 -p1 -b .asciidel
+# For branding specific patches.
 %patch200 -p1 -b .duckduckgo
 
 # Upstream patches
-%patch300 -p1 -b .906754
 
 %if %{official_branding}
 # Required by Mozilla Corporation
@@ -206,7 +203,6 @@ cd %{tarballdir}
 %else
 # Not yet approved by Mozilla Corporation
 
-
 %endif
 
 
@@ -232,6 +228,7 @@ echo "ac_add_options --without-system-libvpx" >> .mozconfig
 echo "ac_add_options --disable-webm" >> .mozconfig
 echo "ac_add_options --disable-webrtc" >> .mozconfig
 echo "ac_add_options --disable-ogg" >> .mozconfig
+echo "ac_add_options --disable-opus" >> .mozconfig
 %endif
 
 %if %{?system_cairo}
@@ -259,7 +256,7 @@ echo "ac_add_options --disable-polyic" >> .mozconfig
 echo "ac_add_options --disable-tracejit" >> .mozconfig
 %endif
 
-# RHEL 6 mozconfig changes:
+# RHEL 7 mozconfig changes:
 echo "ac_add_options --enable-system-hunspell" >> .mozconfig
 echo "ac_add_options --enable-libnotify" >> .mozconfig
 echo "ac_add_options --enable-startup-notification" >> .mozconfig
@@ -497,6 +494,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
 %{mozappdir}/plugin-container
 %{mozappdir}/dependentlibs.list
 %exclude %{mozappdir}/defaults/pref/channel-prefs.js
+%if !%{?system_nss}
+%{mozappdir}/*.chk
+%endif
 
 #we don't ship firefox-devel package
 %exclude %{_datadir}/idl/*
@@ -506,14 +506,31 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
 #---------------------------------------------------------------------
 
 %changelog
-* Wed Sep 03 2014 CentOS Sources <bugs@centos.org> - 24.8.0-1.el7.centos
-- CentOS default prefs
+* Thu Sep 11 2014 Martin Stransky <stransky@redhat.com> - 31.1.0-6
+- Enable all NPAPI plugins by default to keep compatibility
+  with the FF24 line
+
+* Wed Sep 10 2014 Martin Stransky <stransky@redhat.com> - 31.1.0-5
+- Added workaround for rhbz#1134876
+
+* Mon Sep 8 2014 Martin Stransky <stransky@redhat.com> - 31.1.0-3
+- Disable mozilla::pkix (mozbz#1063315)
+- Enable image cache
+
+* Mon Sep 8 2014 Martin Stransky <stransky@redhat.com> - 31.1.0-2
+- A workaround for rhbz#1110291
 
-* Tue Aug 26 2014 Martin Stransky <stransky@redhat.com> - 24.8.0-1
-- Update to 24.8.0 ESR
+* Thu Aug 28 2014 Martin Stransky <stransky@redhat.com> - 31.1.0-1
+- Update to 31.1.0 ESR
 
-* Thu Jul 17 2014 Jan Horak <jhorak@redhat.com> - 24.7.0-1
-- Update to 24.7.0 ESR
+* Tue Aug 5 2014 Martin Stransky <stransky@redhat.com> - 31.0-3
+- Built with system libvpx/WebM
+
+* Mon Aug 4 2014 Martin Stransky <stransky@redhat.com> - 31.0-2
+- Built with system nss/nspr
+
+* Mon Jul 28 2014 Martin Stransky <stransky@redhat.com> - 31.0-1
+- Update to 31.0 ESR
 
 * Wed Jun  4 2014 Jan Horak <jhorak@redhat.com> - 24.6.0-1
 - Update to 24.6.0 ESR
@@ -684,4 +701,3 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
 
 * Wed Jan 26 2011 Jan Horak <jhorak@redhat.com> - 3.6.14-2
 - Update to 3.6.14
-