first building version of FF21
authorWolfgang Rosenauer <wr@rosenauer.org>
Mon, 25 Mar 2013 23:57:09 +0100
changeset 637 73640b76d6c3
parent 636 0dd4ede5105c
child 641 8d4c4f06e0e4
first building version of FF21
MozillaFirefox/MozillaFirefox.spec
MozillaFirefox/firefox-712763.patch
MozillaFirefox/mozilla-disable-neon-option.patch
firefox-712763.patch
firefox-branded-icons.patch
firefox-kde.patch
mozilla-disable-neon-option.patch
mozilla-gstreamer-1.patch
mozilla-gstreamer-760140.patch
mozilla-kde.patch
mozilla-repo.patch
mozilla-shared-nss-db.patch
series
--- a/MozillaFirefox/MozillaFirefox.spec	Tue Mar 19 09:18:24 2013 +0100
+++ b/MozillaFirefox/MozillaFirefox.spec	Mon Mar 25 23:57:09 2013 +0100
@@ -99,7 +99,6 @@
 Patch8:         mozilla-ntlm-full-path.patch
 Patch9:         mozilla-repo.patch
 Patch10:        mozilla-sle11.patch
-Patch11:        mozilla-disable-neon-option.patch
 Patch12:        mozilla-arm-disable-edsp.patch
 Patch13:        mozilla-ppc.patch
 Patch14:        mozilla-gstreamer-760140.patch
@@ -112,11 +111,10 @@
 Patch33:        firefox-no-default-ualocale.patch
 Patch34:        firefox-multilocale-chrome.patch
 Patch35:        firefox-branded-icons.patch
-Patch36:        firefox-712763.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 Requires(post):   coreutils shared-mime-info desktop-file-utils
 Requires(postun): shared-mime-info desktop-file-utils
-Requires:       %{name}-branding > 4.0
+Requires:       %{name}-branding > 20.0
 Requires:       mozilla-nspr >= %(rpm -q --queryformat '%{VERSION}' mozilla-nspr)
 Requires:       mozilla-nss >= %(rpm -q --queryformat '%{VERSION}' mozilla-nss)
 Recommends:     libcanberra0
@@ -234,7 +232,6 @@
 %if %suse_version < 1120
 %patch10 -p1
 %endif
-#%patch11 -p1
 %patch12 -p1
 %patch13 -p1
 %patch14 -p1
@@ -249,9 +246,8 @@
 %patch32 -p1
 %endif
 %patch33 -p1
-%patch34 -p1
+#%patch34 -p1
 %patch35 -p1
-%patch36 -p1
 
 %build
 # no need to add build time to binaries
@@ -268,6 +264,7 @@
 source %{SOURCE5}
 export MOZ_SOURCE_STAMP=$REV
 export SOURCE_REPO=$REPO
+export source_repo=$REPO
 export MOZ_SOURCE_REPO=$REPO
 export MOZ_BUILD_DATE=%{releasedate}
 export MOZILLA_OFFICIAL=1
@@ -349,17 +346,17 @@
 export MOZ_SOURCE_REPO=$REPO
 make -C browser/installer STRIP=/bin/true MOZ_PKG_FATAL_WARNINGS=0
 #DEBUG (break the build if searchplugins are missing / temporary)
-grep amazondotcom dist/firefox/omni.ja
+#grep amazondotcom dist/firefox/omni.ja # FIXME
 # copy tree into RPM_BUILD_ROOT
 mkdir -p $RPM_BUILD_ROOT/%{progdir}
 cp -rf $RPM_BUILD_DIR/obj/dist/firefox/* $RPM_BUILD_ROOT%{progdir}
-mkdir -p $RPM_BUILD_ROOT/%{progdir}/distribution/extensions
-mkdir -p $RPM_BUILD_ROOT%{progdir}/searchplugins
-mkdir -p $RPM_BUILD_ROOT%{progdir}/defaults/preferences/
+mkdir -p $RPM_BUILD_ROOT%{progdir}/browser/distribution/extensions
+mkdir -p $RPM_BUILD_ROOT%{progdir}/browser/searchplugins
+mkdir -p $RPM_BUILD_ROOT%{progdir}/browser/defaults/preferences/
 # install kde.js
 %if %suse_version >= 1110
-install -m 644 %{SOURCE6} $RPM_BUILD_ROOT%{progdir}/defaults/preferences/kde.js
-install -m 644 %{SOURCE9} $RPM_BUILD_ROOT%{progdir}/defaults/preferences/firefox.js
+install -m 644 %{SOURCE6} $RPM_BUILD_ROOT%{progdir}/browser/defaults/preferences/kde.js
+install -m 644 %{SOURCE9} $RPM_BUILD_ROOT%{progdir}/browser/defaults/preferences/firefox.js
 %endif
 # install add-plugins.sh
 sed "s:%%PROGDIR:%{progdir}:g" \
@@ -382,17 +379,17 @@
 	LOCALE_MERGEDIR=$RPM_BUILD_DIR/l10n-merged/$locale \
   	make -C browser/locales langpack-$locale
 	cp -rL dist/xpi-stage/locale-$locale \
-	       $RPM_BUILD_ROOT%{progdir}/extensions/langpack-$locale@firefox.mozilla.org
+	       $RPM_BUILD_ROOT%{progdir}/browser/extensions/langpack-$locale@firefox.mozilla.org
 	# remove prefs, profile defaults, and hyphenation from langpack
-	rm -rf $RPM_BUILD_ROOT%{progdir}/extensions/langpack-$locale@firefox.mozilla.org/defaults
-	rm -rf $RPM_BUILD_ROOT%{progdir}/extensions/langpack-$locale@firefox.mozilla.org/hyphenation
+	rm -rf $RPM_BUILD_ROOT%{progdir}/browser/extensions/langpack-$locale@firefox.mozilla.org/defaults
+	rm -rf $RPM_BUILD_ROOT%{progdir}/browser/extensions/langpack-$locale@firefox.mozilla.org/hyphenation
 	# check against the fixed common list and sort into the right filelist
 	_matched=0
 	for _match in ar ca cs da de en-GB es-AR es-CL es-ES fi fr hu it ja ko nb-NO nl pl pt-BR pt-PT ru sv-SE zh-CN zh-TW; do
 	  [ "$_match" = "$locale" ] && _matched=1
 	done
 	[ $_matched -eq 1 ] && _l10ntarget=common || _l10ntarget=other
-  	echo %{progdir}/extensions/langpack-$locale@firefox.mozilla.org \
+  	echo %{progdir}/browser/extensions/langpack-$locale@firefox.mozilla.org \
 	  >> %{_tmppath}/translations.$_l10ntarget
   esac
 done
@@ -434,15 +431,15 @@
 mkdir -p $RPM_BUILD_ROOT%{_datadir}/mozilla/extensions/%{firefox_appid}
 mkdir -p $RPM_BUILD_ROOT%{_libdir}/mozilla/extensions/%{firefox_appid}
 mkdir -p $RPM_BUILD_ROOT/usr/share/pixmaps/
-ln -sf %{progdir}/icons/mozicon128.png $RPM_BUILD_ROOT/usr/share/pixmaps/%{progname}.png
-ln -sf %{progdir}/icons/mozicon128.png $RPM_BUILD_ROOT/usr/share/pixmaps/%{progname}-gnome.png
+ln -sf %{progdir}/browser/icons/mozicon128.png $RPM_BUILD_ROOT/usr/share/pixmaps/%{progname}.png
+ln -sf %{progdir}/browser/icons/mozicon128.png $RPM_BUILD_ROOT/usr/share/pixmaps/%{progname}-gnome.png
 %if %branding
 for size in 16 22 24 32 48 256; do
 %else
 for size in 16 32 48; do
 %endif
   mkdir -p $RPM_BUILD_ROOT%{gnome_dir}/share/icons/hicolor/${size}x${size}/apps/
-  ln -sf %{progdir}/chrome/icons/default/default$size.png \
+  ln -sf %{progdir}/browser/chrome/icons/default/default$size.png \
          $RPM_BUILD_ROOT%{gnome_dir}/share/icons/hicolor/${size}x${size}/apps/%{progname}.png
 done
 %suse_update_desktop_file %{desktop_file_name} Network WebBrowser GTK
@@ -549,23 +546,29 @@
 %files
 %defattr(-,root,root)
 %dir %{progdir}
-%dir %{progdir}/chrome/
-%dir %{progdir}/distribution/
-%{progdir}/chrome/icons
+%dir %{progdir}/browser/
+%dir %{progdir}/browser/chrome/
+%dir %{progdir}/browser/extensions/
+%{progdir}/browser/components/
+%{progdir}/browser/defaults
+%{progdir}/browser/icons/
+%{progdir}/browser/chrome/icons
+%{progdir}/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}
+%{progdir}/browser/searchplugins/
+%{progdir}/browser/blocklist.xml
+%{progdir}/browser/chrome.manifest
+%{progdir}/browser/omni.ja
+%dir %{progdir}/browser/distribution/
+%{progdir}/browser/distribution/extensions/
 %{progdir}/components/
 %{progdir}/defaults/
 %{progdir}/dictionaries/
-%dir %{progdir}/extensions/
-%{progdir}/distribution/extensions/
-%{progdir}/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}
-%{progdir}/icons/
-%{progdir}/searchplugins/
+%{progdir}/webapprt/
 %attr(755,root,root) %{progdir}/%{progname}.sh
 %{progdir}/firefox
 %{progdir}/firefox-bin
 %{progdir}/add-plugins.sh
 %{progdir}/application.ini
-%{progdir}/blocklist.xml
 %{progdir}/dependentlibs.list
 %{progdir}/*.so
 %{progdir}/mozilla-xremote-client
@@ -573,14 +576,13 @@
 %{progdir}/platform.ini
 %{progdir}/plugin-container
 %{progdir}/webapprt-stub
-%{progdir}/webapprt/
+%{progdir}/chrome.manifest
 %if %crashreporter
-%{progdir}/crashreporter-override.ini
 %{progdir}/crashreporter
 %{progdir}/crashreporter.ini
 %{progdir}/Throbber-small.gif
+%{progdir}/browser/crashreporter-override.ini
 %endif
-%{progdir}/chrome.manifest
 %{_datadir}/applications/%{desktop_file_name}.desktop
 %{_datadir}/mime/packages/%{progname}.xml
 %{_datadir}/pixmaps/firefox*
@@ -604,12 +606,12 @@
 %files translations-common -f %{_tmppath}/translations.common
 %defattr(-,root,root)
 %dir %{progdir}
-%dir %{progdir}/extensions/
+%dir %{progdir}/browser/extensions/
 
 %files translations-other -f %{_tmppath}/translations.other
 %defattr(-,root,root)
 %dir %{progdir}
-%dir %{progdir}/extensions/
+%dir %{progdir}/browser/extensions/
 %endif
 
 # this package does not need to provide files but is needed to fulfill
--- a/MozillaFirefox/firefox-712763.patch	Tue Mar 19 09:18:24 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-../firefox-712763.patch
\ No newline at end of file
--- a/MozillaFirefox/mozilla-disable-neon-option.patch	Tue Mar 19 09:18:24 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-../mozilla-disable-neon-option.patch
\ No newline at end of file
--- a/firefox-712763.patch	Tue Mar 19 09:18:24 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,95 +0,0 @@
-# HG changeset patch
-# User Tim Taubert <ttaubert@mozilla.com>
-# Date 1358185823 -3600
-# Node ID f7a2af238d06c17d10c49c94ef860434d5b76758
-Bug 712763 - Backout changes from bug 669272 to keep original window order when restoring a session
-
-diff --git a/browser/components/sessionstore/src/SessionStore.jsm b/browser/components/sessionstore/src/SessionStore.jsm
---- a/browser/components/sessionstore/src/SessionStore.jsm
-+++ b/browser/components/sessionstore/src/SessionStore.jsm
-@@ -1757,23 +1757,16 @@ let SessionStoreInternal = {
- 
-     // We want to re-use the last opened window instead of opening a new one in
-     // the case where it's "empty" and not associated with a window in the session.
-     // We will do more processing via _prepWindowToRestoreInto if we need to use
-     // the lastWindow.
-     let lastWindow = this._getMostRecentBrowserWindow();
-     let canUseLastWindow = lastWindow &&
-                            !lastWindow.__SS_lastSessionWindowID;
--    let lastSessionFocusedWindow = null;
--    this.windowToFocus = lastWindow;
--
--    // move the last focused window to the start of the array so that we
--    // minimize window movement (see bug 669272)
--    lastSessionState.windows.unshift(
--      lastSessionState.windows.splice(lastSessionState.selectedWindow - 1, 1)[0]);
- 
-     // Restore into windows or open new ones as needed.
-     for (let i = 0; i < lastSessionState.windows.length; i++) {
-       let winState = lastSessionState.windows[i];
-       let lastSessionWindowID = winState.__lastSessionWindowID;
-       // delete lastSessionWindowID so we don't add that to the window again
-       delete winState.__lastSessionWindowID;
- 
-@@ -1801,28 +1794,19 @@ let SessionStoreInternal = {
-         // Restore into that window - pretend it's a followup since we'll already
-         // have a focused window.
-         //XXXzpao This is going to merge extData together (taking what was in
-         //        winState over what is in the window already. The hack we have
-         //        in _preWindowToRestoreInto will prevent most (all?) Panorama
-         //        weirdness but we will still merge other extData.
-         //        Bug 588217 should make this go away by merging the group data.
-         this.restoreWindow(windowToUse, { windows: [winState] }, canOverwriteTabs, true);
--        if (i == 0)
--          lastSessionFocusedWindow = windowToUse;
--
--        // if we overwrote the tabs for our last focused window, we should
--        // give focus to the window that had it in the previous session
--        if (canOverwriteTabs && windowToUse == lastWindow)
--          this.windowToFocus = lastSessionFocusedWindow;
-       }
-       else {
--        let win = this._openWindowWithState({ windows: [winState] });
--        if (i == 0)
--          lastSessionFocusedWindow = win;
-+        this._openWindowWithState({ windows: [winState] });
-       }
-     }
- 
-     // Merge closed windows from this session with ones from last session
-     if (lastSessionState._closedWindows) {
-       this._closedWindows = this._closedWindows.concat(lastSessionState._closedWindows);
-       this._capClosedWindows();
-     }
-@@ -2735,27 +2719,27 @@ let SessionStoreInternal = {
-     this._setWindowStateBusy(aWindow);
- 
-     if (root._closedWindows)
-       this._closedWindows = root._closedWindows;
- 
-     var winData;
-     if (!root.selectedWindow || root.selectedWindow > root.windows.length) {
-       root.selectedWindow = 0;
--    } else {
--      // put the selected window at the beginning of the array to ensure that
--      // it gets restored first
--      root.windows.unshift(root.windows.splice(root.selectedWindow - 1, 1)[0]);
-     }
-+
-     // open new windows for all further window entries of a multi-window session
-     // (unless they don't contain any tab data)
-     for (var w = 1; w < root.windows.length; w++) {
-       winData = root.windows[w];
-       if (winData && winData.tabs && winData.tabs[0]) {
-         var window = this._openWindowWithState({ windows: [winData] });
-+        if (w == root.selectedWindow - 1) {
-+          this.windowToFocus = window;
-+        }
-       }
-     }
-     winData = root.windows[0];
-     if (!winData.tabs) {
-       winData.tabs = [];
-     }
-     // don't restore a single blank tab when we've had an external
-     // URL passed in for loading at startup (cf. bug 357419)
--- a/firefox-branded-icons.patch	Tue Mar 19 09:18:24 2013 +0100
+++ b/firefox-branded-icons.patch	Mon Mar 25 23:57:09 2013 +0100
@@ -1,10 +1,10 @@
 # HG changeset patch
-# Parent 716c063a34dc33046c36b49e3bd2b4ec867d2b5b
+# Parent ad0e2fcaa00769bc56cc2b58d1264209f8c32623
 
 diff --git a/browser/app/Makefile.in b/browser/app/Makefile.in
 --- a/browser/app/Makefile.in
 +++ b/browser/app/Makefile.in
-@@ -131,16 +131,21 @@ GARBAGE += $(addprefix $(FINAL_TARGET)/d
+@@ -132,16 +132,21 @@ GARBAGE += $(addprefix $(FINAL_TARGET)/d
  endif
  
  ifeq ($(MOZ_WIDGET_TOOLKIT),gtk2)
@@ -29,14 +29,14 @@
 diff --git a/browser/branding/official/Makefile.in b/browser/branding/official/Makefile.in
 --- a/browser/branding/official/Makefile.in
 +++ b/browser/branding/official/Makefile.in
-@@ -42,18 +42,21 @@ OSX_BRANDING_FILES = \
- 	firefox.icns \
- 	disk.icns \
+@@ -47,18 +47,21 @@ BRANDING_FILES := \
  	document.icns \
  	dsstore \
  	$(NULL)
+ endif
  
- LINUX_BRANDING_FILES = \
+ ifeq ($(MOZ_WIDGET_TOOLKIT),gtk2)
+ BRANDING_FILES := \
  	default16.png \
 +	default22.png \
 +	default24.png \
@@ -45,34 +45,34 @@
 +	default256.png \
  	mozicon128.png \
  	$(NULL)
+ endif
  
- OS2_BRANDING_FILES = \
+ ifeq ($(OS_ARCH),OS2)
+ BRANDING_FILES := \
  	firefox-os2.ico \
  	document-os2.ico \
- 	$(NULL)
- 
 diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
 --- a/browser/installer/package-manifest.in
 +++ b/browser/installer/package-manifest.in
-@@ -552,18 +552,21 @@
- @BINPATH@/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png
+@@ -558,18 +558,21 @@
+ @BINPATH@/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png
  #ifdef SHIP_FEEDBACK
- @BINPATH@/distribution/extensions/testpilot@labs.mozilla.com.xpi
+ @BINPATH@/browser/distribution/extensions/testpilot@labs.mozilla.com.xpi
  #endif
  @BINPATH@/chrome/toolkit@JAREXT@
  @BINPATH@/chrome/toolkit.manifest
  #ifdef MOZ_GTK2
- @BINPATH@/chrome/icons/default/default16.png
-+@BINPATH@/chrome/icons/default/default22.png
-+@BINPATH@/chrome/icons/default/default24.png
- @BINPATH@/chrome/icons/default/default32.png
- @BINPATH@/chrome/icons/default/default48.png
-+@BINPATH@/chrome/icons/default/default256.png
+ @BINPATH@/browser/chrome/icons/default/default16.png
++@BINPATH@/browser/chrome/icons/default/default22.png
++@BINPATH@/browser/chrome/icons/default/default24.png
+ @BINPATH@/browser/chrome/icons/default/default32.png
+ @BINPATH@/browser/chrome/icons/default/default48.png
++@BINPATH@/browser/chrome/icons/default/default256.png
  #endif
  
  ; shell icons
  #ifdef XP_UNIX
  #ifndef XP_MACOSX
- @BINPATH@/icons/*.xpm
- @BINPATH@/icons/*.png
- #endif
+ ; shell icons
+ @BINPATH@/browser/icons/*.png
+ #ifdef MOZ_UPDATER
--- a/firefox-kde.patch	Tue Mar 19 09:18:24 2013 +0100
+++ b/firefox-kde.patch	Mon Mar 25 23:57:09 2013 +0100
@@ -2,7 +2,7 @@
 new file mode 100644
 --- /dev/null
 +++ b/browser/base/content/browser-kde.xul
-@@ -0,0 +1,1221 @@
+@@ -0,0 +1,1215 @@
 +#filter substitution
 +<?xml version="1.0"?>
 +# -*- Mode: HTML -*-
@@ -189,7 +189,7 @@
 +           align="start"
 +           role="alert">
 +      <hbox flex="1">
-+        <image src="chrome://browser/content/social-icon.png" class="popup-notification-icon"/>
++        <image id="social-activation-icon" class="popup-notification-icon"/>
 +        <vbox flex="1">
 +          <description id="social-activation-message" class="popup-notification-description"/>
 +          <spacer flex="1"/>
@@ -270,7 +270,6 @@
 +           class="social-panel"
 +           type="arrow"
 +           hidden="true"
-+           consumeoutsideclicks="true"
 +           noautofocus="true"/>
 +    <panel id="social-flyout-panel"
 +           class="social-panel"
@@ -279,6 +278,8 @@
 +           side="right"
 +           type="arrow"
 +           hidden="true"
++           rolluponmousewheel="true"
++           consumeoutsideclicks="false"
 +           noautofocus="true"
 +           position="topcenter topright"/>
 +
@@ -317,7 +318,7 @@
 +    <menupopup id="contentAreaContextMenu" pagemenu="start"
 +               onpopupshowing="if (event.target != this)
 +                                 return true;
-+                               gContextMenu = new nsContextMenu(this, gBrowser, event.shiftKey);
++                               gContextMenu = new nsContextMenu(this, event.shiftKey);
 +                               if (gContextMenu.shouldDisplay)
 +                                 updateEditUIVisibility();
 +                               return gContextMenu.shouldDisplay;"
@@ -399,29 +400,6 @@
 +      </hbox>
 +    </panel>
 +
-+    <panel id="allTabs-panel" hidden="true" norestorefocus="true" ignorekeys="true"
-+           onmouseover="allTabs._updateTabCloseButton(event);">
-+      <hbox id="allTabs-meta" align="center">
-+        <spacer flex="1"/>
-+        <textbox id="allTabs-filter"
-+                 tooltiptext="&allTabs.filter.emptyText;"
-+                 type="search"
-+                 oncommand="allTabs.filter();"/>
-+        <spacer flex="1"/>
-+        <toolbarbutton class="KUI-panel-closebutton"
-+                       oncommand="allTabs.close()"
-+                       tooltiptext="&closeCmd.label;"/>
-+      </hbox>
-+      <stack id="allTabs-stack">
-+        <vbox id="allTabs-container"><hbox/></vbox>
-+        <toolbarbutton id="allTabs-tab-close-button"
-+                       class="tabs-closebutton"
-+                       oncommand="allTabs.closeTab(event);"
-+                       tooltiptext="&closeCmd.label;"
-+                       style="visibility:hidden"/>
-+      </stack>
-+    </panel>
-+
 +    <!-- Bookmarks and history tooltip -->
 +    <tooltip id="bhTooltip"/>
 +
@@ -476,11 +454,23 @@
 +        <label id="geolocation-learnmore-link" class="text-link"/>
 +      </popupnotificationcontent>
 +    </popupnotification>
++
++    <popupnotification id="mixed-content-blocked-notification" hidden="true">
++      <popupnotificationcontent orient="vertical" align="start">
++        <separator/>
++        <description id="mixed-content-blocked-moreinfo">&mixedContentBlocked.moreinfo;</description>
++        <separator/>
++        <label id="mixed-content-blocked-helplink" class="text-link"
++               value="&mixedContentBlocked.helplink;"/>
++      </popupnotificationcontent>
++    </popupnotification>
++
 +  </popupset>
 +
 +#ifdef CAN_DRAW_IN_TITLEBAR
 +<vbox id="titlebar">
 +  <hbox id="titlebar-content">
++#ifdef MENUBAR_CAN_AUTOHIDE
 +    <hbox id="appmenu-button-container">
 +      <button id="appmenu-button"
 +              type="menu"
@@ -489,6 +479,7 @@
 +#include browser-appmenu.inc
 +      </button>
 +    </hbox>
++#endif
 +    <spacer id="titlebar-spacer" flex="1"/>
 +    <hbox id="titlebar-buttonbox-container" align="start">
 +      <hbox id="titlebar-buttonbox">
@@ -562,7 +553,7 @@
 +      <toolbaritem id="urlbar-container" align="center" flex="400" persist="width" combined="true"
 +                   title="&locationItem.title;" class="chromeclass-location" removable="true">
 +        <textbox id="urlbar" flex="1"
-+                 placeholder="&urlbar.placeholder;"
++                 placeholder="&urlbar.placeholder2;"
 +                 type="autocomplete"
 +                 autocompletesearch="urlinline history"
 +                 autocompletesearchparam="enable-actions"
@@ -590,6 +581,7 @@
 +            <image id="webapps-notification-icon" class="notification-anchor-icon" role="button"/>
 +            <image id="plugins-notification-icon" class="notification-anchor-icon" role="button"/>
 +            <image id="blocked-plugins-notification-icon" class="notification-anchor-icon" role="button"/>
++            <image id="mixed-content-blocked-notification-icon" class="notification-anchor-icon" role="button"/>
 +            <image id="webRTC-shareDevices-notification-icon" class="notification-anchor-icon" role="button"/>
 +            <image id="webRTC-sharingDevices-notification-icon" class="notification-anchor-icon" role="button"/>
 +          </box>
@@ -1110,6 +1102,7 @@
 +          persist="width">
 +      <browser id="social-sidebar-browser"
 +               type="content"
++               context="contentAreaContextMenu"
 +               disableglobalhistory="true"
 +               flex="1"
 +               style="min-width: 14em; width: 18em; max-width: 36em;"/>
@@ -1139,6 +1132,7 @@
 +  </hbox>
 +
 +  <vbox id="browser-bottombox" layer="true">
++    <notificationbox id="global-notificationbox"/>
 +    <toolbar id="developer-toolbar"
 +             class="devtools-toolbar"
 +             hidden="true">
@@ -1268,7 +1262,7 @@
  
  #include "rdf.h"
  #include "nsFeedSniffer.h"
-@@ -34,18 +34,16 @@ using namespace mozilla::browser;
+@@ -31,18 +31,16 @@ using namespace mozilla::browser;
  
  /////////////////////////////////////////////////////////////////////////////
  
@@ -1287,8 +1281,8 @@
  
  NS_GENERIC_FACTORY_CONSTRUCTOR(nsFeedSniffer)
  
-@@ -70,17 +68,17 @@ NS_DEFINE_NAMED_CID(NS_SHELLSERVICE_CID)
- NS_DEFINE_NAMED_CID(NS_PRIVATE_BROWSING_SERVICE_WRAPPER_CID);
+@@ -60,17 +58,17 @@ NS_DEFINE_NAMED_CID(NS_WINIEHISTORYENUME
+ NS_DEFINE_NAMED_CID(NS_SHELLSERVICE_CID);
  #endif
  
  static const mozilla::Module::CIDEntry kBrowserCIDs[] = {
@@ -1332,7 +1326,7 @@
      // when the user will select the default.  We refresh here periodically
      // in case the default changes.  On other Windows OS's defaults can also
      // be set while the prefs are open.
-@@ -791,14 +797,25 @@ var gAdvancedPane = {
+@@ -792,14 +798,25 @@ var gAdvancedPane = {
     * Set browser as the operating system default browser.
     */
    setDefaultBrowser: function()
@@ -1794,9 +1788,9 @@
 diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
 --- a/browser/installer/package-manifest.in
 +++ b/browser/installer/package-manifest.in
-@@ -578,19 +578,21 @@
+@@ -588,19 +588,21 @@
  @BINPATH@/defaults/autoconfig/prefcalls.js
- @BINPATH@/defaults/profile/prefs.js
+ @BINPATH@/browser/defaults/profile/prefs.js
  
  #ifndef LIBXUL_SDK
  ; Warning: changing the path to channel-prefs.js can cause bugs (Bug 756325)
@@ -1811,8 +1805,8 @@
  #endif
  
  ; Services (gre) prefs
- #ifdef MOZ_SERVICES_AITC
- @BINPATH@/defaults/pref/services-aitc.js
- #endif
  #ifdef MOZ_SERVICES_NOTIFICATIONS
  @BINPATH@/defaults/pref/services-notifications.js
+ #endif
+ #ifdef MOZ_SERVICES_SYNC
+ @BINPATH@/defaults/pref/services-sync.js
--- a/mozilla-disable-neon-option.patch	Tue Mar 19 09:18:24 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,141 +0,0 @@
-# HG changeset patch
-# User Joop Boonen <joop.boonen@opensuse.org>
-# Parent 5f38d3aa0414fe0ac7ff1f0b47da44069e7ccdda
-Add configure option to allow disabling of neon.
-
-diff --git a/configure.in b/configure.in
---- a/configure.in
-+++ b/configure.in
-@@ -1726,41 +1726,47 @@ if test -n "$all_flags"; then
-     ASFLAGS="$ASFLAGS $all_flags"
-     if test -n "$thumb_flag"; then
-         LDFLAGS="$LDFLAGS $thumb_flag"
-     fi
- fi
- 
- AC_SUBST(MOZ_THUMB2)
- 
--if test "$CPU_ARCH" = "arm"; then
--  AC_MSG_CHECKING(for ARM SIMD support in compiler)
--  # We try to link so that this also fails when
--  # building with LTO.
--  AC_TRY_LINK([],
-+MOZ_ARG_DISABLE_BOOL(neon,
-+[  --disable-neon       Disable neon extensions],
-+    NS_DISABLE_NEON=1,
-+    NS_DISABLE_NEON= )
-+if test "$NS_DISABLE_NEON" != "1"; then
-+  if test "$CPU_ARCH" = "arm"; then
-+    AC_MSG_CHECKING(for ARM SIMD support in compiler)
-+    # We try to link so that this also fails when
-+    # building with LTO.
-+    AC_TRY_LINK([],
-                  [asm("uqadd8 r1, r1, r2");],
-                  result="yes", result="no")
--  AC_MSG_RESULT("$result")
--  if test "$result" = "yes"; then
-+    AC_MSG_RESULT("$result")
-+    if test "$result" = "yes"; then
-       AC_DEFINE(HAVE_ARM_SIMD)
-       HAVE_ARM_SIMD=1
--  fi
--
--  AC_MSG_CHECKING(for ARM NEON support in compiler)
--  # We try to link so that this also fails when
--  # building with LTO.
--  AC_TRY_LINK([],
-+    fi
-+
-+    AC_MSG_CHECKING(for ARM NEON support in compiler)
-+    # We try to link so that this also fails when
-+    # building with LTO.
-+    AC_TRY_LINK([],
-                  [asm(".fpu neon\n vadd.i8 d0, d0, d0");],
-                  result="yes", result="no")
--  AC_MSG_RESULT("$result")
--  if test "$result" = "yes"; then
-+    AC_MSG_RESULT("$result")
-+    if test "$result" = "yes"; then
-       AC_DEFINE(HAVE_ARM_NEON)
-       HAVE_ARM_NEON=1
--  fi
--fi # CPU_ARCH = arm
-+    fi
-+  fi # CPU_ARCH = arm
-+fi
- 
- AC_SUBST(HAVE_ARM_SIMD)
- AC_SUBST(HAVE_ARM_NEON)
- 
- dnl =================================================================
- dnl Set up and test static assertion macros used to avoid AC_TRY_RUN,
- dnl which is bad when cross compiling.
- dnl =================================================================
-diff --git a/js/src/configure.in b/js/src/configure.in
---- a/js/src/configure.in
-+++ b/js/src/configure.in
-@@ -1664,41 +1664,47 @@ if test -n "$all_flags"; then
-     ASFLAGS="$ASFLAGS $all_flags"
-     if test -n "$thumb_flag"; then
-         LDFLAGS="$LDFLAGS $thumb_flag"
-     fi
- fi
- 
- AC_SUBST(MOZ_THUMB2)
- 
--if test "$CPU_ARCH" = "arm"; then
--  AC_MSG_CHECKING(for ARM SIMD support in compiler)
--  # We try to link so that this also fails when
--  # building with LTO.
--  AC_TRY_LINK([],
-+MOZ_ARG_DISABLE_BOOL(neon,
-+[  --disable-neon       Disable neon extensions],
-+    NS_DISABLE_NEON=1,
-+    NS_DISABLE_NEON= )
-+if test "$NS_DISABLE_NEON" != "1"; then
-+  if test "$CPU_ARCH" = "arm"; then
-+    AC_MSG_CHECKING(for ARM SIMD support in compiler)
-+    # We try to link so that this also fails when
-+    # building with LTO.
-+    AC_TRY_LINK([],
-                  [asm("uqadd8 r1, r1, r2");],
-                  result="yes", result="no")
--  AC_MSG_RESULT("$result")
--  if test "$result" = "yes"; then
-+    AC_MSG_RESULT("$result")
-+    if test "$result" = "yes"; then
-       AC_DEFINE(HAVE_ARM_SIMD)
-       HAVE_ARM_SIMD=1
--  fi
--
--  AC_MSG_CHECKING(for ARM NEON support in compiler)
--  # We try to link so that this also fails when
--  # building with LTO.
--  AC_TRY_LINK([],
-+    fi
-+
-+    AC_MSG_CHECKING(for ARM NEON support in compiler)
-+    # We try to link so that this also fails when
-+    # building with LTO.
-+    AC_TRY_LINK([],
-                  [asm(".fpu neon\n vadd.i8 d0, d0, d0");],
-                  result="yes", result="no")
--  AC_MSG_RESULT("$result")
--  if test "$result" = "yes"; then
-+    AC_MSG_RESULT("$result")
-+    if test "$result" = "yes"; then
-       AC_DEFINE(HAVE_ARM_NEON)
-       HAVE_ARM_NEON=1
--  fi
--fi # CPU_ARCH = arm
-+    fi
-+  fi # CPU_ARCH = arm
-+fi
- 
- AC_SUBST(HAVE_ARM_SIMD)
- AC_SUBST(HAVE_ARM_NEON)
- 
- dnl =================================================================
- dnl Set up and test static assertion macros used to avoid AC_TRY_RUN,
- dnl which is bad when cross compiling.
- dnl =================================================================
--- a/mozilla-gstreamer-1.patch	Tue Mar 19 09:18:24 2013 +0100
+++ b/mozilla-gstreamer-1.patch	Mon Mar 25 23:57:09 2013 +0100
@@ -1,5 +1,5 @@
 # HG changeset patch
-# Parent 0559be6b60075e1a708ca90e874f922ff200c462
+# Parent bbef353e571ee80b20c52274c7660b49d01985ba
 # User Mike Gorse <mgorse@suse.com>
 
 Bug 806917 - support GStreamer 1.0
@@ -7,7 +7,7 @@
 diff --git a/configure.in b/configure.in
 --- a/configure.in
 +++ b/configure.in
-@@ -5758,28 +5758,36 @@ fi
+@@ -5706,26 +5706,34 @@ fi
  
  AC_SUBST(MOZ_PULSEAUDIO)
  AC_SUBST(MOZ_PULSEAUDIO_CFLAGS)
@@ -35,13 +35,11 @@
 -    # API version, eg 0.10, 1.0 etc
 -    GST_API_VERSION=0.10
      # core/base release number
-     # depend on >= 0.10.33 as that's when the playbin2 source-setup signal was
-     # introduced
--    GST_VERSION=0.10.33
+-    GST_VERSION=0.10.25
 +    if test "$GST_API_VERSION" = "1.0"; then
 +      GST_VERSION=1.0
 +    else
-+      GST_VERSION=0.10.33
++      GST_VERSION=0.10.25
 +    fi
      PKG_CHECK_MODULES(GSTREAMER,
                        gstreamer-$GST_API_VERSION >= $GST_VERSION
@@ -102,7 +100,7 @@
  GStreamerReader::~GStreamerReader()
  {
    MOZ_COUNT_DTOR(GStreamerReader);
-@@ -120,19 +124,26 @@ nsresult GStreamerReader::Init(MediaDeco
+@@ -122,19 +126,26 @@ nsresult GStreamerReader::Init(MediaDeco
    mVideoSink = gst_parse_bin_from_description("capsfilter name=filter ! "
        "appsink name=videosink sync=true max-buffers=1 "
        "caps=video/x-raw-yuv,format=(fourcc)I420"
@@ -128,11 +126,11 @@
  #ifdef MOZ_SAMPLE_TYPE_FLOAT32
          "appsink name=audiosink sync=true caps=audio/x-raw-float,"
  #ifdef IS_LITTLE_ENDIAN
-         "channels={1,2},rate=44100,width=32,endianness=1234", TRUE, NULL);
+         "channels={1,2},width=32,endianness=1234", TRUE, NULL);
  #else
-@@ -145,19 +156,25 @@ nsresult GStreamerReader::Init(MediaDeco
+@@ -147,19 +158,25 @@ nsresult GStreamerReader::Init(MediaDeco
  #else
-         "channels={1,2},rate=48000,width=16,endianness=4321", TRUE, NULL);
+         "channels={1,2},width=16,endianness=4321", TRUE, NULL);
  #endif
  #endif
    mAudioAppSink = GST_APP_SINK(gst_bin_get_by_name(GST_BIN(mAudioSink),
@@ -156,8 +154,8 @@
        "audio-sink", mAudioSink,
        NULL);
  
-   g_object_connect(mPlayBin, "signal::source-setup",
-@@ -231,17 +248,17 @@ nsresult GStreamerReader::ReadMetadata(V
+   g_signal_connect(G_OBJECT(mPlayBin), "notify::source",
+@@ -236,17 +253,17 @@ nsresult GStreamerReader::ReadMetadata(V
        filter = gst_bin_get_by_name(GST_BIN(mAudioSink), "filter");
      else if (!(current_flags & GST_PLAY_FLAG_VIDEO))
        filter = gst_bin_get_by_name(GST_BIN(mVideoSink), "filter");
@@ -176,7 +174,7 @@
      /* start the pipeline */
      gst_element_set_state(mPlayBin, GST_STATE_PAUSED);
  
-@@ -284,19 +301,24 @@ nsresult GStreamerReader::ReadMetadata(V
+@@ -289,19 +306,24 @@ nsresult GStreamerReader::ReadMetadata(V
        gst_element_set_state(mPlayBin, GST_STATE_NULL);
        gst_message_unref(message);
        return NS_ERROR_FAILURE;
@@ -201,7 +199,7 @@
    }
  
    int n_video = 0, n_audio = 0;
-@@ -365,59 +387,87 @@ bool GStreamerReader::DecodeAudioData()
+@@ -370,59 +392,87 @@ bool GStreamerReader::DecodeAudioData()
  {
    NS_ASSERTION(mDecoder->OnDecodeThread(), "Should be on decode thread.");
  
@@ -289,7 +287,7 @@
      {
        ReentrantMonitorAutoEnter mon(mGstThreadsMonitor);
        timestamp = gst_segment_to_stream_time(&mVideoSegment,
-@@ -431,62 +481,90 @@ bool GStreamerReader::DecodeVideoFrame(b
+@@ -436,62 +486,90 @@ bool GStreamerReader::DecodeVideoFrame(b
      else if (fpsNum && fpsDen)
        /* add 1-frame duration */
        nextTimestamp += gst_util_uint64_scale(GST_USECOND, fpsNum, fpsDen);
@@ -380,7 +378,7 @@
                                   int64_t aStartTime,
                                   int64_t aEndTime,
                                   int64_t aCurrentTime)
-@@ -509,52 +587,62 @@ nsresult GStreamerReader::Seek(int64_t a
+@@ -514,52 +592,62 @@ nsresult GStreamerReader::Seek(int64_t a
  
  nsresult GStreamerReader::GetBuffered(nsTimeRanges* aBuffered,
                                          int64_t aStartTime)
@@ -446,7 +444,7 @@
      aBuffered->Add(start, end);
    }
  
-@@ -563,48 +651,64 @@ nsresult GStreamerReader::GetBuffered(ns
+@@ -568,48 +656,64 @@ nsresult GStreamerReader::GetBuffered(ns
  
  void GStreamerReader::ReadAndPushData(guint aLength)
  {
@@ -512,7 +510,7 @@
    }
  
    /*if (mDecoder->mDuration != -1 &&
-@@ -668,60 +772,95 @@ gboolean GStreamerReader::SeekData(GstAp
+@@ -673,60 +777,95 @@ gboolean GStreamerReader::SeekData(GstAp
    if (NS_SUCCEEDED(rv))
      mByteOffset = mLastReportedByteOffset = aOffset;
    else
@@ -608,7 +606,7 @@
    GStreamerReader *reader = (GStreamerReader *) aUserData;
  
    if (aSink == reader->mVideoAppSink)
-@@ -730,18 +869,22 @@ GstFlowReturn GStreamerReader::NewPrerol
+@@ -735,18 +874,22 @@ GstFlowReturn GStreamerReader::NewPrerol
      reader->AudioPreroll();
    return GST_FLOW_OK;
  }
@@ -632,7 +630,7 @@
    NS_ASSERTION(mInfo.mAudioChannels != 0, ("audio channels is zero"));
    NS_ASSERTION(mInfo.mAudioChannels > 0 && mInfo.mAudioChannels <= MAX_CHANNELS,
        "invalid audio channels number");
-@@ -749,19 +892,29 @@ void GStreamerReader::AudioPreroll()
+@@ -754,19 +897,29 @@ void GStreamerReader::AudioPreroll()
    gst_caps_unref(caps);
    gst_object_unref(sinkpad);
  }
--- a/mozilla-gstreamer-760140.patch	Tue Mar 19 09:18:24 2013 +0100
+++ b/mozilla-gstreamer-760140.patch	Mon Mar 25 23:57:09 2013 +0100
@@ -1,7 +1,6 @@
 # HG changeset patch
-# Parent 9fe99f8a584f2369a88bfb5281fd6bc95eb2593c
-Bug 760140 - Query the GstRegistry for the required demuxers/decoders from canPlayType
-
+# Parent 74ba8ebd0dc72be84280bd4806f84d9ec1f4e130
+Bug 760140 - Query the GstRegistry for the required demuxers/decoders from canPlayType (TM: 22)
 
 diff --git a/content/media/DecoderTraits.cpp b/content/media/DecoderTraits.cpp
 --- a/content/media/DecoderTraits.cpp
@@ -25,7 +24,7 @@
  namespace mozilla
  {
  
-@@ -137,48 +139,35 @@
+@@ -137,48 +139,35 @@ DecoderTraits::IsWebMType(const nsACStri
      return false;
    }
  
@@ -75,7 +74,7 @@
    "audio/mp4",
    "video/mp4",
    "video/3gpp",
-@@ -190,19 +179,17 @@
+@@ -190,19 +179,17 @@ bool
  DecoderTraits::IsOmxSupportedType(const nsACString& aType)
  {
    if (!MediaDecoder::IsOmxEnabled()) {
@@ -95,7 +94,7 @@
    "avc1.64001E",  // H.264 High Profile Level 3.0
    "avc1.64001F",  // H.264 High Profile Level 3.1
    "mp4v.20.3",    // 3GPP
-@@ -303,19 +290,19 @@
+@@ -303,19 +290,19 @@ DecoderTraits::CanHandleMediaType(const 
  #ifdef MOZ_DASH
    if (IsDASHMPDType(nsDependentCString(aMIMEType))) {
      // DASH manifest uses WebM codecs only.
@@ -118,7 +117,7 @@
      result = CANPLAY_MAYBE;
    }
  #endif
-@@ -324,17 +311,17 @@
+@@ -324,17 +311,17 @@ DecoderTraits::CanHandleMediaType(const 
      result = CANPLAY_MAYBE;
    }
  #endif
@@ -140,14 +139,14 @@
 diff --git a/content/media/DecoderTraits.h b/content/media/DecoderTraits.h
 --- a/content/media/DecoderTraits.h
 +++ b/content/media/DecoderTraits.h
-@@ -49,17 +49,16 @@
- #endif
- 
+@@ -51,17 +51,16 @@ public:
  #ifdef MOZ_WEBM
    static bool IsWebMType(const nsACString& aType);
  #endif
  
  #ifdef MOZ_GSTREAMER
+   // When enabled, use GStreamer for H.264, but not for codecs handled by our
+   // bundled decoders, unless the "media.prefer-gstreamer" pref is set.
    static bool IsGStreamerSupportedType(const nsACString& aType);
 -  static bool IsH264Type(const nsACString& aType);
  #endif
@@ -447,7 +446,7 @@
 diff --git a/content/media/gstreamer/Makefile.in b/content/media/gstreamer/Makefile.in
 --- a/content/media/gstreamer/Makefile.in
 +++ b/content/media/gstreamer/Makefile.in
-@@ -13,21 +13,23 @@
+@@ -13,21 +13,23 @@ include $(DEPTH)/config/autoconf.mk
  MODULE		= content
  LIBRARY_NAME	= gkcongstreamer_s
  LIBXUL_LIBRARY 	= 1
@@ -474,7 +473,7 @@
 diff --git a/layout/build/Makefile.in b/layout/build/Makefile.in
 --- a/layout/build/Makefile.in
 +++ b/layout/build/Makefile.in
-@@ -316,16 +316,20 @@
+@@ -318,16 +318,20 @@ LOCAL_INCLUDES	+= -I$(srcdir)/../base \
  		   -I$(topsrcdir)/js/xpconnect/loader \
  		   -I$(topsrcdir)/caps/include \
  		   -I$(topsrcdir)/netwerk/base/src \
@@ -498,7 +497,7 @@
 diff --git a/layout/build/nsLayoutStatics.cpp b/layout/build/nsLayoutStatics.cpp
 --- a/layout/build/nsLayoutStatics.cpp
 +++ b/layout/build/nsLayoutStatics.cpp
-@@ -78,16 +78,20 @@
+@@ -79,16 +79,20 @@
  #ifdef MOZ_MEDIA_PLUGINS
  #include "MediaPluginHost.h"
  #endif
@@ -515,11 +514,11 @@
  #include "AudioStream.h"
  #endif
  
- #include "nsError.h"
- 
- #include "nsCycleCollector.h"
- #include "nsJSEnvironment.h"
-@@ -336,16 +340,20 @@
+ #ifdef MOZ_WIDGET_GONK
+ #include "nsVolumeService.h"
+ using namespace mozilla::system;
+ #endif
+@@ -344,16 +348,20 @@ nsLayoutStatics::Shutdown()
    nsXBLService::Shutdown();
    nsAutoCopyListener::Shutdown();
    FrameLayerBuilder::Shutdown();
--- a/mozilla-kde.patch	Tue Mar 19 09:18:24 2013 +0100
+++ b/mozilla-kde.patch	Mon Mar 25 23:57:09 2013 +0100
@@ -44,7 +44,7 @@
  #include "prefread.h"
  #include "prefapi_private_data.h"
  
-@@ -946,16 +947,34 @@ pref_LoadPrefsInDir(nsIFile* aDir, char 
+@@ -966,16 +967,34 @@ pref_LoadPrefsInDir(nsIFile* aDir, char 
  
  static nsresult pref_LoadPrefsInDirList(const char *listId)
  {
@@ -79,7 +79,7 @@
      return NS_OK;
  
    bool hasMore;
-@@ -971,17 +990,17 @@ static nsresult pref_LoadPrefsInDirList(
+@@ -991,17 +1010,17 @@ static nsresult pref_LoadPrefsInDirList(
  
      nsAutoCString leaf;
      path->GetNativeLeafName(leaf);
@@ -98,7 +98,7 @@
  {
    nsZipItemPtr<char> manifest(jarReader, name, true);
    NS_ENSURE_TRUE(manifest.Buffer(), NS_ERROR_NOT_AVAILABLE);
-@@ -1075,28 +1094,40 @@ static nsresult pref_InitInitialObjects(
+@@ -1095,28 +1114,40 @@ static nsresult pref_InitInitialObjects(
    /* these pref file names should not be used: we process them after all other application pref files for backwards compatibility */
    static const char* specialFiles[] = {
  #if defined(XP_MACOSX)
@@ -139,6 +139,48 @@
    // or jar:$gre/omni.jar!/defaults/preferences/*.js.
    nsRefPtr<nsZipArchive> appJarReader = mozilla::Omnijar::GetReader(mozilla::Omnijar::APP);
    // GetReader(mozilla::Omnijar::APP) returns null when $app == $gre, in which
+diff --git a/python/mozbuild/mozpack/chrome/flags.py b/python/mozbuild/mozpack/chrome/flags.py
+--- a/python/mozbuild/mozpack/chrome/flags.py
++++ b/python/mozbuild/mozpack/chrome/flags.py
+@@ -208,16 +208,17 @@ class Flags(OrderedDict):
+         'platformversion': VersionFlag,
+         'contentaccessible': Flag,
+         'os': StringFlag,
+         'osversion': VersionFlag,
+         'abi': StringFlag,
+         'platform': Flag,
+         'xpcnativewrappers': Flag,
+         'tablet': Flag,
++	'desktop': StringFlag,
+     }
+     RE = re.compile(r'([!<>=]+)')
+ 
+     def __init__(self, *flags):
+         '''
+         Initialize a set of flags given in string form.
+            flags = Flags('contentaccessible=yes', 'appversion>=3.5')
+         '''
+diff --git a/python/mozbuild/mozpack/chrome/manifest.py b/python/mozbuild/mozpack/chrome/manifest.py
+--- a/python/mozbuild/mozpack/chrome/manifest.py
++++ b/python/mozbuild/mozpack/chrome/manifest.py
+@@ -30,16 +30,17 @@ class ManifestEntry(object):
+     allowed_flags = [
+         'application',
+         'platformversion',
+         'os',
+         'osversion',
+         'abi',
+         'xpcnativewrappers',
+         'tablet',
++	'desktop',
+     ]
+ 
+     def __init__(self, base, *flags):
+         '''
+         Initialize a manifest entry with the given base path and flags.
+         '''
+         self.base = base
+         self.flags = Flags(*flags)
 diff --git a/toolkit/components/downloads/Makefile.in b/toolkit/components/downloads/Makefile.in
 --- a/toolkit/components/downloads/Makefile.in
 +++ b/toolkit/components/downloads/Makefile.in
@@ -158,7 +200,7 @@
 diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/components/downloads/nsDownloadManager.cpp
 --- a/toolkit/components/downloads/nsDownloadManager.cpp
 +++ b/toolkit/components/downloads/nsDownloadManager.cpp
-@@ -41,16 +41,20 @@
+@@ -38,16 +38,20 @@
  
  #ifdef XP_WIN
  #include <shlobj.h>
@@ -179,7 +221,7 @@
  #include "AndroidBridge.h"
  #endif
  
-@@ -2739,16 +2743,25 @@ nsDownload::SetState(DownloadState aStat
+@@ -2590,16 +2594,25 @@ nsDownload::SetState(DownloadState aStat
        nsCOMPtr<nsIPrefBranch> pref(do_GetService(NS_PREFSERVICE_CONTRACTID));
  
        // Master pref to control this function.
@@ -205,7 +247,7 @@
          int64_t goat = PR_Now() - mStartTime;
          showTaskbarAlert = goat > alertIntervalUSec;
  
-@@ -2775,19 +2788,20 @@ nsDownload::SetState(DownloadState aStat
+@@ -2626,19 +2639,20 @@ nsDownload::SetState(DownloadState aStat
                // retention policy, there's no reason to make the text clickable
                // because if it is, they'll click open the download manager and
                // the items they downloaded will have been removed.
@@ -2162,7 +2204,7 @@
 diff --git a/toolkit/xre/Makefile.in b/toolkit/xre/Makefile.in
 --- a/toolkit/xre/Makefile.in
 +++ b/toolkit/xre/Makefile.in
-@@ -69,17 +69,18 @@ else
+@@ -72,17 +72,18 @@ else
  ifeq ($(MOZ_WIDGET_TOOLKIT),cocoa)
  CMMSRCS = nsNativeAppSupportCocoa.mm
  EXPORTS += MacQuirks.h
@@ -2582,7 +2624,7 @@
 diff --git a/uriloader/exthandler/Makefile.in b/uriloader/exthandler/Makefile.in
 --- a/uriloader/exthandler/Makefile.in
 +++ b/uriloader/exthandler/Makefile.in
-@@ -58,18 +58,19 @@ LOCAL_INCLUDES = -I$(srcdir)
+@@ -59,18 +59,19 @@ LOCAL_INCLUDES = -I$(srcdir)
  LOCAL_INCLUDES += -I$(topsrcdir)/dom/base \
              -I$(topsrcdir)/dom/ipc \
              -I$(topsrcdir)/content/base/src \
--- a/mozilla-repo.patch	Tue Mar 19 09:18:24 2013 +0100
+++ b/mozilla-repo.patch	Mon Mar 25 23:57:09 2013 +0100
@@ -1,73 +1,30 @@
 # HG changeset patch
-# Parent 7820633b718ca1983da7b105d7868c455809cff1
+# Parent 8d013204e3f06811daf5156939452765fb3e10bb
 
-diff --git a/build/Makefile.in b/build/Makefile.in
---- a/build/Makefile.in
-+++ b/build/Makefile.in
-@@ -62,17 +62,17 @@ DEFINES += -DMOZ_APP_VERSION="$(MOZ_APP_
- APP_INI_DEPS += $(DEPTH)/config/autoconf.mk
- 
- MOZ_SOURCE_STAMP := $(firstword $(shell cd $(topsrcdir)/$(MOZ_BUILD_APP)/.. && hg parent --template="{node|short}\n" 2>/dev/null))
- ifdef MOZ_SOURCE_STAMP
- DEFINES += -DMOZ_SOURCE_STAMP="$(MOZ_SOURCE_STAMP)"
- endif
- 
- _dollar=$$
--SOURCE_REPO := $(shell cd $(topsrcdir)/$(MOZ_BUILD_APP)/.. && hg showconfig paths.default 2>/dev/null | head -n1 | sed -e "s/^ssh:/http:/" -e "s/\/$(_dollar)//" )
-+SOURCE_REPO ?= $(shell cd $(topsrcdir)/$(MOZ_BUILD_APP)/.. && hg showconfig paths.default 2>/dev/null | head -n1 | sed -e "s/^ssh:/http:/" -e "s/\/$(_dollar)//" )
- ifdef SOURCE_REPO
- DEFINES += -DMOZ_SOURCE_REPO="$(SOURCE_REPO)"
- endif
- 
- DEFINES += \
-   -DMOZ_APP_BASENAME="$(MOZ_APP_BASENAME)" \
-   -DMOZ_APP_VENDOR="$(MOZ_APP_VENDOR)" \
-   -DMOZ_APP_ID="$(MOZ_APP_ID)" \
-diff --git a/toolkit/content/Makefile.in b/toolkit/content/Makefile.in
---- a/toolkit/content/Makefile.in
-+++ b/toolkit/content/Makefile.in
-@@ -35,17 +35,17 @@ endif
- ifeq (Android,$(OS_TARGET))
- DEFINES += -DANDROID_PACKAGE_NAME=$(ANDROID_PACKAGE_NAME)
- endif
- 
- # strip a trailing slash from the repo URL because it's not always present,
- # and we want to construct a working URL in buildconfig.html
- # make+shell+sed = awful
- _dollar=$$
--SOURCE_REPO := $(shell cd $(topsrcdir) && hg showconfig paths.default 2>/dev/null | head -n1 | sed -e "s/^ssh:/http:/" -e "s/\/$(_dollar)//" )
-+SOURCE_REPO ?= $(shell cd $(topsrcdir) && hg showconfig paths.default 2>/dev/null | head -n1 | sed -e "s/^ssh:/http:/" -e "s/\/$(_dollar)//" )
- # extra sanity check for old versions of hg
- # that don't support showconfig
- ifeq (http,$(patsubst http%,http,$(SOURCE_REPO)))
- DEFINES += -DSOURCE_REPO="$(SOURCE_REPO)"
- endif
- 
- BUILD_HOSTNAME = $(shell hostname -s || hostname)
- DEFINES += -DBUILD_HOSTNAME="$(BUILD_HOSTNAME)"
 diff --git a/toolkit/mozapps/installer/package-name.mk b/toolkit/mozapps/installer/package-name.mk
 --- a/toolkit/mozapps/installer/package-name.mk
 +++ b/toolkit/mozapps/installer/package-name.mk
-@@ -131,22 +131,22 @@ SYMBOL_ARCHIVE_BASENAME = $(PKG_BASENAME
- TEST_PACKAGE = $(PKG_BASENAME).tests.zip
+@@ -138,23 +138,23 @@ else
+ BUILDID = $(shell $(PYTHON) $(MOZILLA_DIR)/config/printconfigsetting.py $(DIST)/bin/platform.ini Build BuildID)
+ endif
  
- ifneq (,$(wildcard $(DIST)/bin/application.ini))
- BUILDID = $(shell $(PYTHON) $(MOZILLA_DIR)/config/printconfigsetting.py $(DIST)/bin/application.ini App BuildID)
- else
- BUILDID = $(shell $(PYTHON) $(MOZILLA_DIR)/config/printconfigsetting.py $(DIST)/bin/platform.ini Build BuildID)
+ ifndef INCLUDED_RCS_MK
+   USE_RCS_MK := 1
+   include $(topsrcdir)/config/makefiles/makeutils.mk
  endif
  
 -MOZ_SOURCE_STAMP = $(firstword $(shell hg -R $(MOZILLA_DIR) parent --template="{node|short}\n" 2>/dev/null))
 +#MOZ_SOURCE_STAMP = $(firstword $(shell hg -R $(MOZILLA_DIR) parent --template="{node|short}\n" 2>/dev/null))
  
- # strip a trailing slash from the repo URL because it's not always present,
- # and we want to construct a working URL in the sourcestamp file.
- # make+shell+sed = awful
- _dollar=$$
--MOZ_SOURCE_REPO = $(shell cd $(MOZILLA_DIR) && hg showconfig paths.default 2>/dev/null | head -n1 | sed -e "s/^ssh:/http:/" -e "s/\/$(_dollar)//" )
-+#MOZ_SOURCE_REPO = $(shell cd $(MOZILLA_DIR) && hg showconfig paths.default 2>/dev/null | head -n1 | sed -e "s/^ssh:/http:/" -e "s/\/$(_dollar)//" )
+ ###########################################################################
+ # bug: 746277 - preserve existing functionality.
+ # MOZILLA_DIR="": cd $(SPACE); hg # succeeds if ~/.hg exists
+ ###########################################################################
+-MOZ_SOURCE_REPO = $(call getSourceRepo,$(MOZILLA_DIR)$(NULL) $(NULL))
++#MOZ_SOURCE_REPO = $(call getSourceRepo,$(MOZILLA_DIR)$(NULL) $(NULL))
  
- MOZ_SOURCESTAMP_FILE = $(DIST)/$(PKG_PATH)/$(MOZ_SOURCESTAMP_FILE_BASENAME).txt
+ MOZ_SOURCESTAMP_FILE = $(DIST)/$(PKG_PATH)/$(MOZ_INFO_BASENAME).txt
+ MOZ_BUILDINFO_FILE = $(DIST)/$(PKG_PATH)/$(MOZ_INFO_BASENAME).json
  
  # JavaScript Shell
  PKG_JSSHELL = $(DIST)/jsshell-$(MOZ_PKG_PLATFORM).zip
@@ -76,28 +33,22 @@
 diff --git a/toolkit/xre/Makefile.in b/toolkit/xre/Makefile.in
 --- a/toolkit/xre/Makefile.in
 +++ b/toolkit/xre/Makefile.in
-@@ -218,20 +218,20 @@ endif
+@@ -214,17 +214,17 @@ DEFINES += -DHAVE_USR_LIB64_DIR
+ endif
+ endif
  
  MOZ_SOURCE_STAMP ?= $(firstword $(shell hg -R $(topsrcdir) parent --template="{node|short}\n" 2>/dev/null))
  ifdef MOZ_SOURCE_STAMP
  
    INIARGS = --sourcestamp=$(MOZ_SOURCE_STAMP)
  
-   # strip a trailing slash from the repo URL because it's not always present,
-   # and we want to construct a working URL in buildconfig.html
--  SOURCE_REPO := $(firstword $(shell hg --repository $(topsrcdir) showconfig paths.default 2>/dev/null))
--  SOURCE_REPO := $(strip $(SOURCE_REPO))
--  SOURCE_REPO := $(patsubst ssh://%,http://%,$(SOURCE_REPO))
--  SOURCE_REPO := $(patsubst %/,%,$(SOURCE_REPO))
-+  SOURCE_REPO ?= $(firstword $(shell hg --repository $(topsrcdir) showconfig paths.default 2>/dev/null))
-+  SOURCE_REPO ?= $(strip $(SOURCE_REPO))
-+  SOURCE_REPO ?= $(patsubst ssh://%,http://%,$(SOURCE_REPO))
-+  SOURCE_REPO ?= $(patsubst %/,%,$(SOURCE_REPO))
- 
-   # command set should change based on revision control use.
-   # warn for now in case (git, bzr, ...) is in use.
-   $(call warnIfEmpty,SOURCE_REPO) 
+-  source_repo := $(call getSourceRepo)
++  source_repo ?= $(call getSourceRepo)
  
    # extra sanity check for old versions of hg, no showconfig support
-   ifeq (http,$(patsubst http%,http,$(SOURCE_REPO)))
-     INIARGS += --sourcerepo=$(SOURCE_REPO)
+   ifneq (,$(filter http%,$(source_repo)))
+     INIARGS += --sourcerepo=$(source_repo)
+   endif
+ 
+ endif # MOZ_SOURCE_STAMP
+ 
--- a/mozilla-shared-nss-db.patch	Tue Mar 19 09:18:24 2013 +0100
+++ b/mozilla-shared-nss-db.patch	Mon Mar 25 23:57:09 2013 +0100
@@ -7,7 +7,7 @@
 diff --git a/configure.in b/configure.in
 --- a/configure.in
 +++ b/configure.in
-@@ -8275,16 +8275,31 @@ AC_SUBST(QCMS_LIBS)
+@@ -8191,16 +8191,31 @@ AC_SUBST(QCMS_LIBS)
  
  dnl ========================================================
  dnl HarfBuzz
@@ -42,13 +42,13 @@
 diff --git a/security/manager/ssl/src/Makefile.in b/security/manager/ssl/src/Makefile.in
 --- a/security/manager/ssl/src/Makefile.in
 +++ b/security/manager/ssl/src/Makefile.in
-@@ -92,16 +92,19 @@ DEFINES += \
-   $(NULL)
+@@ -97,16 +97,19 @@ DEFINES += \
  
  EXPORTS += \
    CryptoTask.h \
    nsNSSShutDown.h \
    ScopedNSSTypes.h \
+   nsRandomGenerator.h \
    $(NULL)
  
 +LOCAL_INCLUDES += $(NSSHELPER_CFLAGS)
@@ -89,7 +89,7 @@
  #include "nsNetUtil.h"
  #include "nsAppDirectoryServiceDefs.h"
  #include "nsDirectoryService.h"
-@@ -1682,18 +1689,34 @@ nsNSSComponent::InitializeNSS(bool showW
+@@ -1679,18 +1686,34 @@ nsNSSComponent::InitializeNSS(bool showW
      ConfigureInternalPKCS11Token();
  
      // The NSS_INIT_NOROOTINIT flag turns off the loading of the root certs
@@ -129,7 +129,7 @@
 diff --git a/toolkit/library/Makefile.in b/toolkit/library/Makefile.in
 --- a/toolkit/library/Makefile.in
 +++ b/toolkit/library/Makefile.in
-@@ -500,17 +500,17 @@ EXTRA_DSO_LDOPTS += -INCREMENTAL:NO
+@@ -504,17 +504,17 @@ EXTRA_DSO_LDOPTS += -INCREMENTAL:NO
  endif
  endif
  endif
--- a/series	Tue Mar 19 09:18:24 2013 +0100
+++ b/series	Mon Mar 25 23:57:09 2013 +0100
@@ -19,7 +19,6 @@
 mozilla-idldir.patch
 mozilla-libproxy-compat.patch
 mozilla-gstreamer-1.patch
-#mozilla-disable-neon-option.patch
 
 # Firefox patches
 firefox-browser-css.patch
@@ -27,6 +26,5 @@
 firefox-kde-114.patch
 #firefox-ui-lockdown.patch
 firefox-no-default-ualocale.patch
-firefox-multilocale-chrome.patch
+#firefox-multilocale-chrome.patch
 firefox-branded-icons.patch
-firefox-712763.patch