prepare 38beta
authorWolfgang Rosenauer <wr@rosenauer.org>
Sun, 10 May 2015 09:05:36 +0200
changeset 850 a2bdff616a0e
parent 845 a704b2a17e39
child 851 0855c4ac4793
child 856 c2e88e5c7aab
prepare 38beta
MozillaFirefox/MozillaFirefox.changes
MozillaFirefox/MozillaFirefox.spec
MozillaFirefox/create-tar.sh
MozillaFirefox/mozilla-skia-bmo1136958.patch
firefox-kde.patch
firefox-no-default-ualocale.patch
mozilla-kde.patch
mozilla-repo.patch
mozilla-skia-bmo1136958.patch
series
--- a/MozillaFirefox/MozillaFirefox.changes	Wed Apr 08 00:59:13 2015 +0200
+++ b/MozillaFirefox/MozillaFirefox.changes	Sun May 10 09:05:36 2015 +0200
@@ -1,8 +1,15 @@
 -------------------------------------------------------------------
-Tue Apr  7 22:57:36 UTC 2015 - wr@rosenauer.org
-
-- update to Firefox 38.0b2
-- requires NSS 3.18
+Thu Apr 23 06:41:34 UTC 2015 - wr@rosenauer.org
+
+- update to Firefox 38.0b6
+- requires NSS 3.18.1
+
+-------------------------------------------------------------------
+Fri Apr 17 16:39:20 UTC 2015 - wr@rosenauer.org
+
+- update to Firefox 37.0.2 (bnc#928116)
+  * MFSA 2015-45/CVE-2015-2706 (bmo#1141081)
+    Memory corruption during failed plugin initialization
 
 -------------------------------------------------------------------
 Fri Apr  3 08:27:24 UTC 2015 - wr@rosenauer.org
--- a/MozillaFirefox/MozillaFirefox.spec	Wed Apr 08 00:59:13 2015 +0200
+++ b/MozillaFirefox/MozillaFirefox.spec	Sun May 10 09:05:36 2015 +0200
@@ -21,7 +21,7 @@
 %define major 37
 %define mainver %major.99
 %define update_channel beta
-%define releasedate 2015040700
+%define releasedate 2015042200
 
 # general build definitions
 %if "%{update_channel}" != "aurora"
@@ -77,7 +77,7 @@
 BuildRequires:  libproxy-devel
 BuildRequires:  makeinfo
 BuildRequires:  mozilla-nspr-devel >= 4.10.8
-BuildRequires:  mozilla-nss-devel >= 3.18
+BuildRequires:  mozilla-nss-devel >= 3.18.1
 BuildRequires:  nss-shared-helper-devel
 BuildRequires:  python-devel
 BuildRequires:  startup-notification-devel
@@ -144,7 +144,6 @@
 Patch10:        mozilla-icu-strncat.patch
 Patch11:        mozilla-arm-disable-edsp.patch
 Patch12:        mozilla-openaes-decl.patch
-Patch13:        mozilla-skia-bmo1136958.patch
 Patch14:        mozilla-skia-be-le.patch
 Patch15:        mozilla-bmo1005535.patch
 # Firefox/browser
@@ -259,7 +258,6 @@
 %patch10 -p1
 %patch11 -p1
 %patch12 -p1
-%patch13 -p1
 %patch14 -p1
 %patch15 -p1
 # Firefox
@@ -342,8 +340,6 @@
 %if 0%{?gstreamer} == 1
 ac_add_options --enable-gstreamer=1.0
 %endif
-ac_add_options --disable-gnomevfs
-ac_add_options --enable-gio
 %if %branding
 ac_add_options --enable-official-branding
 %endif
--- a/MozillaFirefox/create-tar.sh	Wed Apr 08 00:59:13 2015 +0200
+++ b/MozillaFirefox/create-tar.sh	Sun May 10 09:05:36 2015 +0200
@@ -2,7 +2,7 @@
 
 CHANNEL="beta"
 BRANCH="releases/mozilla-$CHANNEL"
-RELEASE_TAG="FIREFOX_38_0b2_RELEASE"
+RELEASE_TAG="FIREFOX_38_0b6_RELEASE"
 VERSION="37.99"
 
 # mozilla
--- a/MozillaFirefox/mozilla-skia-bmo1136958.patch	Wed Apr 08 00:59:13 2015 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-../mozilla-skia-bmo1136958.patch
\ No newline at end of file
--- a/firefox-kde.patch	Wed Apr 08 00:59:13 2015 +0200
+++ b/firefox-kde.patch	Sun May 10 09:05:36 2015 +0200
@@ -1,11 +1,11 @@
 # HG changeset patch
-# Parent  409c60c5454efb61ebecf0edc8822a0e92f563f3
+# Parent  a21f91aa3ed60b4e95b47f45715dfda379dab7c8
 
 diff --git a/browser/base/content/browser-kde.xul b/browser/base/content/browser-kde.xul
 new file mode 100644
 --- /dev/null
 +++ b/browser/base/content/browser-kde.xul
-@@ -0,0 +1,1288 @@
+@@ -0,0 +1,1302 @@
 +#filter substitution
 +<?xml version="1.0"?>
 +# -*- Mode: HTML -*-
@@ -154,8 +154,13 @@
 +    <!-- for url bar autocomplete -->
 +    <panel type="autocomplete-richlistbox" id="PopupAutoCompleteRichResult" noautofocus="true" hidden="true"/>
 +
-+    <!-- for select dropdowns -->
-+    <menupopup id="ContentSelectDropdown" rolluponmousewheel="true" hidden="true"/>
++    <!-- for select dropdowns. The menupopup is what shows the list of options,
++         and the popuponly menulist makes things like the menuactive attributes
++         work correctly on the menupopup. ContentSelectDropdown expects the
++         popuponly menulist to be its immediate parent. -->
++    <menulist popuponly="true" id="ContentSelectDropdown" hidden="true">
++      <menupopup rolluponmousewheel="true"/>
++    </menulist>
 +
 +    <!-- for invalid form error message -->
 +    <panel id="invalid-form-popup" type="arrow" orient="vertical" noautofocus="true" hidden="true" level="parent">
@@ -248,41 +253,6 @@
 +           mousethrough="always">
 +      <box id="UITourHighlight"></box>
 +    </panel>
-+    <!-- Used to highlight the new search experience -->
-+    <panel id="SearchHighlight1"
-+           class="SearchHighlight"
-+           type="arrow"
-+           hidden="true"
-+           noautofocus="true"
-+           noautohide="true"
-+           orient="vertical"
-+           align="stretch">
-+      <label class="SearchHighlightTitle">&SearchHighlight1.title;</label>
-+      <description class="SearchHighlightText" flex="1">&SearchHighlight1.text;</description>
-+      <hbox class="SearchHighlightFooter" align="center">
-+        <spacer class="dot filled"/>
-+        <spacer class="dot"/>
-+        <spacer flex="1"/>
-+        <button label="&SearchHighlightNext;"/>
-+      </hbox>
-+    </panel>
-+    <panel id="SearchHighlight2"
-+           class="SearchHighlight"
-+           type="arrow"
-+           hidden="true"
-+           noautofocus="true"
-+           noautohide="true"
-+           orient="vertical"
-+           align="stretch">
-+      <label class="SearchHighlightTitle">&SearchHighlight2.title;</label>
-+      <description class="SearchHighlightText" flex="1">&SearchHighlight2.text;</description>
-+      <hbox class="SearchHighlightFooter" align="center">
-+        <spacer class="dot"/>
-+        <spacer class="dot filled"/>
-+        <spacer flex="1"/>
-+        <button label="&SearchHighlightClose;"/>
-+      </hbox>
-+    </panel>
 +
 +    <panel id="abouthome-search-panel" orient="vertical" type="arrow" hidden="true"
 +           onclick="this.hidePopup()">
@@ -342,6 +312,26 @@
 +           orient="horizontal"
 +           hidden="true"/>
 +
++    <menupopup id="processHangOptions"
++               onpopupshowing="ProcessHangMonitor.refreshMenu(window);">
++      <menuitem id="processHangTerminateScript"
++                oncommand="ProcessHangMonitor.terminateScript(window)"
++                accesskey="&processHang.terminateScript.accessKey;"
++                label="&processHang.terminateScript.label;"/>
++      <menuitem id="processHangDebugScript"
++                oncommand="ProcessHangMonitor.debugScript(window)"
++                accesskey="&processHang.debugScript.accessKey;"
++                label="&processHang.debugScript.label;"/>
++      <menuitem id="processHangTerminatePlugin"
++                oncommand="ProcessHangMonitor.terminatePlugin(window)"
++                accesskey="&processHang.terminatePlugin.accessKey;"
++                label="&processHang.terminatePlugin.label;"/>
++      <menuitem id="processHangTerminateProcess"
++                oncommand="ProcessHangMonitor.terminateProcess(window)"
++                accesskey="&processHang.terminateProcess.accessKey;"
++                label="&processHang.terminateProcess.label;"/>
++    </menupopup>
++
 +    <menupopup id="toolbar-context-menu"
 +               onpopupshowing="onViewToolbarsPopupShowing(event, document.getElementById('viewToolbarsMenuSeparator'));">
 +      <menuitem oncommand="gCustomizeMode.addToPanel(document.popupNode)"
@@ -588,12 +578,12 @@
 +
 +    <menupopup id="emeNotificationsPopup">
 +      <menuitem id="emeNotificationsNotNow"
-+                label="Not now"
-+                acceskey="N"
++                label="&emeNotificationsNotNow.label;"
++                acceskey="&emeNotificationsNotNow.accesskey;"
 +                oncommand="gEMEHandler.onNotNow(this);"/>
 +      <menuitem id="emeNotificationsDontAskAgain"
-+                label="Don't ask me again"
-+                acceskey="D"
++                label="&emeNotificationsDontAskAgain.label;"
++                acceskey="&emeNotificationsDontAskAgain.accesskey;"
 +                oncommand="gEMEHandler.onDontAskAgain(this);"/>
 +    </menupopup>
 +  </popupset>
@@ -845,6 +835,14 @@
 +                       hidden="true"
 +                       tooltiptext="&pageReportIcon.tooltip;"
 +                       onclick="gPopupBlockerObserver.onReportButtonClick(event);"/>
++                <image id="readinglist-addremove-button"
++                       class="urlbar-icon"
++                       hidden="true"
++                       onclick="ReadingListUI.togglePageByBrowser(gBrowser.selectedBrowser);"/>
++                <image id="reader-mode-button"
++                       class="urlbar-icon"
++                       hidden="true"
++                       onclick="ReaderParent.buttonClick(event);"/>
 +              </hbox>
 +              <toolbarbutton id="urlbar-go-button"
 +                             class="chromeclass-toolbar-additional"
@@ -898,7 +896,7 @@
 +                      class="subviewbutton"
 +                      label="&viewBookmarksSidebar2.label;"
 +                      type="checkbox"
-+                      oncommand="toggleSidebar('viewBookmarksSidebar');">
++                      oncommand="SidebarUI.toggle('viewBookmarksSidebar');">
 +              <observes element="viewBookmarksSidebar" attribute="checked"/>
 +            </menuitem>
 +            <!-- NB: temporary solution for bug 985024, this should go away soon. -->
@@ -963,6 +961,22 @@
 +                                           new PlacesMenu(event, 'place:folder=UNFILED_BOOKMARKS',
 +                                                          PlacesUIUtils.getViewForNode(this.parentNode.parentNode).options);"/>
 +            </menu>
++            <menuseparator>
++              <observes element="readingListSidebar" attribute="hidden"/>
++            </menuseparator>
++            <menu id="BMB_readingList"
++                  class="menu-iconic bookmark-item subviewbutton"
++                  label="&readingList.label;"
++                  container="true">
++              <observes element="readingListSidebar" attribute="hidden"/>
++              <menupopup id="BMB_readingListPopup"
++                         placespopup="true"
++                         onpopupshowing="ReadingListUI.onReadingListPopupShowing(this);">
++                <menuitem id="BMB_viewReadingListSidebar" class="subviewbutton"
++                          oncommand="SidebarUI.show('readingListSidebar');"
++                          label="&readingList.showSidebar.label;"/>
++              </menupopup>
++            </menu>
 +            <menuseparator/>
 +            <!-- Bookmarks menu items will go here -->
 +            <menuitem id="BMB_bookmarksShowAll"
@@ -1151,10 +1165,10 @@
 +        <sidebarheader id="sidebar-header" align="center">
 +          <label id="sidebar-title" persist="value" flex="1" crop="end" control="sidebar"/>
 +          <image id="sidebar-throbber"/>
-+          <toolbarbutton class="close-icon tabbable" tooltiptext="&sidebarCloseButton.tooltip;" oncommand="toggleSidebar();"/>
++          <toolbarbutton class="close-icon tabbable" tooltiptext="&sidebarCloseButton.tooltip;" oncommand="SidebarUI.hide();"/>
 +        </sidebarheader>
 +        <browser id="sidebar" flex="1" autoscroll="false" disablehistory="true"
-+                  style="min-width: 14em; width: 18em; max-width: 36em;"/>
++                  style="min-width: 14em; width: 18em; max-width: 36em;" tooltip="aHTMLTooltip"/>
 +      </vbox>
 +
 +      <splitter id="sidebar-splitter" class="chromeclass-extrachrome sidebar-splitter" hidden="true"/>
@@ -1165,7 +1179,7 @@
 +                    tabcontainer="tabbrowser-tabs"
 +                    contentcontextmenu="contentAreaContextMenu"
 +                    autocompletepopup="PopupAutoComplete"
-+                    selectpopup="ContentSelectDropdown"/>
++                    selectmenulist="ContentSelectDropdown"/>
 +        <chatbar id="pinnedchats" layer="true" mousethrough="always" hidden="true"/>
 +      </vbox>
 +      <splitter id="social-sidebar-splitter"
@@ -1297,7 +1311,7 @@
 diff --git a/browser/base/content/browser.xul b/browser/base/content/browser.xul
 --- a/browser/base/content/browser.xul
 +++ b/browser/base/content/browser.xul
-@@ -174,17 +174,17 @@
+@@ -179,17 +179,17 @@
                      class="editBookmarkPanelHeaderButton"
                      oncommand="StarUI.removeBookmarkButtonCommand();"
                      accesskey="&editBookmark.removeBookmark.accessKey;"/>
@@ -1316,7 +1330,7 @@
          <button id="editBookmarkPanelDeleteButton"
                  class="editBookmarkPanelBottomButton"
                  label="&editBookmark.cancel.label;"
-@@ -1214,17 +1214,17 @@
+@@ -1228,17 +1228,17 @@
  
    <hbox id="full-screen-warning-container" hidden="true" fadeout="true">
      <hbox style="width: 100%;" pack="center"> <!-- Inner hbox needed due to bug 579776. -->
@@ -1338,10 +1352,10 @@
 diff --git a/browser/base/jar.mn b/browser/base/jar.mn
 --- a/browser/base/jar.mn
 +++ b/browser/base/jar.mn
-@@ -69,16 +69,18 @@ browser.jar:
-         content/browser/aboutRobots-widget-left.png   (content/aboutRobots-widget-left.png)
+@@ -70,16 +70,18 @@ browser.jar:
          content/browser/aboutSocialError.xhtml        (content/aboutSocialError.xhtml)
          content/browser/aboutProviderDirectory.xhtml  (content/aboutProviderDirectory.xhtml)
+         content/browser/aboutTabCrashed.css           (content/aboutTabCrashed.css)
          content/browser/aboutTabCrashed.js            (content/aboutTabCrashed.js)
          content/browser/aboutTabCrashed.xhtml         (content/aboutTabCrashed.xhtml)
  *       content/browser/browser.css                   (content/browser.css)
@@ -1349,7 +1363,6 @@
  *       content/browser/browser.xul                   (content/browser.xul)
 +*       content/browser/browser-kde.xul               (content/browser-kde.xul)
 +%       override chrome://browser/content/browser.xul chrome://browser/content/browser-kde.xul desktop=kde
- *       content/browser/browser-eme.properties        (content/browser-eme.properties)
  *       content/browser/browser-tabPreviews.xml       (content/browser-tabPreviews.xml)
  *       content/browser/chatWindow.xul                (content/chatWindow.xul)
          content/browser/content.js                    (content/content.js)
@@ -1357,6 +1370,7 @@
          content/browser/defaultthemes/1.header.jpg    (content/defaultthemes/1.header.jpg)
          content/browser/defaultthemes/1.icon.jpg      (content/defaultthemes/1.icon.jpg)
          content/browser/defaultthemes/1.preview.jpg   (content/defaultthemes/1.preview.jpg)
+         content/browser/defaultthemes/2.footer.jpg    (content/defaultthemes/2.footer.jpg)
 diff --git a/browser/components/build/nsModule.cpp b/browser/components/build/nsModule.cpp
 --- a/browser/components/build/nsModule.cpp
 +++ b/browser/components/build/nsModule.cpp
@@ -1784,7 +1798,7 @@
 +#include "nsStringAPI.h"
 +#include "mozilla/Attributes.h"
 +
-+class nsKDEShellService MOZ_FINAL : public nsIShellService
++class nsKDEShellService final : public nsIShellService
 +{
 +public:
 +  nsKDEShellService() : mCheckedThisSession(false) { }
@@ -1911,7 +1925,7 @@
 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
-@@ -688,19 +688,21 @@
+@@ -698,19 +698,21 @@
  @RESPATH@/defaults/autoconfig/prefcalls.js
  @RESPATH@/browser/defaults/profile/prefs.js
  
--- a/firefox-no-default-ualocale.patch	Wed Apr 08 00:59:13 2015 +0200
+++ b/firefox-no-default-ualocale.patch	Sun May 10 09:05:36 2015 +0200
@@ -1,13 +1,14 @@
 # HG changeset patch
 # User Wolfgang Rosenauer <wr@rosenauer.org>
 # Parent 099312626f5f7c9cb5573a61d0230574ee12a660
+# Parent  9e46107bf33966236739600abba9dc8d97fd9d7f
 Do not overwrite the locale dynamic pref from xulrunner's all.js with a wrong default value
 
 diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js
 --- a/browser/app/profile/firefox.js
 +++ b/browser/app/profile/firefox.js
-@@ -261,17 +261,17 @@ pref("browser.uitour.pinnedTabUrl", "htt
- pref("browser.uitour.url", "https://www.mozilla.org/%LOCALE%/firefox/%VERSION%/tour/");
+@@ -251,17 +251,17 @@ pref("browser.uitour.url", "https://www.
+ pref("browser.uitour.readerViewTrigger", "^https:\/\/www\.mozilla\.org\/[^\/]+\/firefox\/reading\/start");
  
  pref("browser.customizemode.tip0.shown", false);
  pref("browser.customizemode.tip0.learnMoreUrl", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/customize");
--- a/mozilla-kde.patch	Wed Apr 08 00:59:13 2015 +0200
+++ b/mozilla-kde.patch	Sun May 10 09:05:36 2015 +0200
@@ -1,5 +1,5 @@
 # HG changeset patch
-# Parent  2b183c17f6e4693372442af1a8ee0be364f8cba0
+# Parent  214f99f3ce4f1f8ae9b3d18da44e5d66b3105663
 Description: Add KDE integration to Firefox (toolkit parts)
 Author: Wolfgang Rosenauer <wolfgang@rosenauer.org>
 Author: Lubos Lunak <lunak@suse.com>
@@ -1836,8 +1836,8 @@
 +            secMan.isSystemPrincipal(window.opener.document.nodePrincipal)) {
 +          var psvc = Components.classes["@mozilla.org/preferences-service;1"]
 +                               .getService(Components.interfaces.nsIPrefBranch);
-+          var instantApply = psvc.getBoolPref("browser.preferences.instantApply");
-+          if (instantApply) {
++          var pdocEl = window.opener.document.documentElement;
++          if (pdocEl.instantApply) {
 +            var panes = this.preferencePanes;
 +            for (var i = 0; i < panes.length; ++i)
 +              panes[i].writePreferences(true);
@@ -2136,7 +2136,7 @@
 +#include "nsVoidArray.h"
 +#include "nsKDEUtils.h"
  
- class nsUnixSystemProxySettings MOZ_FINAL : public nsISystemProxySettings {
+ class nsUnixSystemProxySettings final : public nsISystemProxySettings {
  public:
    NS_DECL_ISUPPORTS
    NS_DECL_NSISYSTEMPROXYSETTINGS
@@ -2219,7 +2219,7 @@
 diff --git a/toolkit/xre/moz.build b/toolkit/xre/moz.build
 --- a/toolkit/xre/moz.build
 +++ b/toolkit/xre/moz.build
-@@ -43,17 +43,19 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'qt
+@@ -45,17 +45,19 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'qt
      GENERATED_SOURCES += [
          'moc_nsNativeAppSupportQt.cpp',
      ]
@@ -2666,9 +2666,9 @@
  LOCAL_INCLUDES += [
      '/dom/base',
      '/dom/ipc',
-     '/netwerk/base/src',
+     '/netwerk/base',
      '/netwerk/protocol/http',
-+    '/toolkit/xre'
++    '/toolkit/xre',
  ]
  
  if CONFIG['MOZ_ENABLE_DBUS']:
@@ -2904,7 +2904,7 @@
 diff --git a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp b/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
 --- a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
 +++ b/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
-@@ -7,33 +7,36 @@
+@@ -7,32 +7,35 @@
  #ifdef MOZ_WIDGET_QT
  #if (MOZ_ENABLE_CONTENTACTION)
  #include <contentaction/contentaction.h>
@@ -2918,7 +2918,6 @@
  #include "nsIGIOService.h"
  #include "nsNetCID.h"
  #include "nsIIOService.h"
- #include "nsIGnomeVFSService.h"
  #include "nsAutoPtr.h"
  #ifdef MOZ_ENABLE_DBUS
  #include "nsDBusHandlerApp.h"
@@ -2943,7 +2942,7 @@
  #endif
  
    return rv;
-@@ -46,24 +49,24 @@ nsMIMEInfoUnix::GetHasDefaultHandler(boo
+@@ -45,24 +48,24 @@ nsMIMEInfoUnix::GetHasDefaultHandler(boo
    // either /etc/mailcap or ${HOME}/.mailcap, in which case we don't want to
    // give the GNOME answer.
    if (mDefaultApplication)
@@ -2951,7 +2950,7 @@
  
    *_retval = false;
  
-   if (mClass ==  eProtocolInfo) {
+   if (mClass == eProtocolInfo) {
 -    *_retval = nsGNOMERegistry::HandlerExists(mSchemeOrType.get());
 +    *_retval = nsCommonRegistry::HandlerExists(mSchemeOrType.get());
    } else {
@@ -2971,7 +2970,7 @@
  
    if (*_retval)
      return NS_OK;
-@@ -98,16 +101,33 @@ nsMIMEInfoUnix::LaunchDefaultWithFile(ns
+@@ -97,16 +100,33 @@ nsMIMEInfoUnix::LaunchDefaultWithFile(ns
      ContentAction::Action::defaultActionForFile(uri, QString(mSchemeOrType.get()));
    if (action.isValid()) {
      action.trigger();
@@ -2998,32 +2997,13 @@
 +  }
 +
    nsCOMPtr<nsIGIOService> giovfs = do_GetService(NS_GIOSERVICE_CONTRACTID);
-   nsAutoCString uriSpec;
-   if (giovfs) {
-     // nsGIOMimeApp->Launch wants a URI string instead of local file
-     nsresult rv;
-     nsCOMPtr<nsIIOService> ioservice = do_GetService(NS_IOSERVICE_CONTRACTID, &rv);
-     NS_ENSURE_SUCCESS(rv, rv);
-     nsCOMPtr<nsIURI> uri;
-@@ -125,17 +145,17 @@ nsMIMEInfoUnix::LaunchDefaultWithFile(ns
-     /* Fallback to GnomeVFS */
-     nsCOMPtr<nsIGnomeVFSMimeApp> app;
-     if (NS_SUCCEEDED(gnomevfs->GetAppForMimeType(mSchemeOrType, getter_AddRefs(app))) && app)
-       return app->Launch(nativePath);
+   if (!giovfs) {
+     return NS_ERROR_FAILURE;
    }
  
-   // If we haven't got an app we try to get a valid one by searching for the
-   // extension mapped type
--  nsRefPtr<nsMIMEInfoBase> mimeInfo = nsGNOMERegistry::GetFromExtension(nativePath);
-+  nsRefPtr<nsMIMEInfoBase> mimeInfo = nsCommonRegistry::GetFromExtension(nativePath);
-   if (mimeInfo) {
-     nsAutoCString type;
-     mimeInfo->GetType(type);
-     if (giovfs) {
-       nsCOMPtr<nsIGIOMimeApp> app;
-       if (NS_SUCCEEDED(giovfs->GetAppForMimeType(type, getter_AddRefs(app))) && app)
-         return app->Launch(uriSpec);
-     } else if (gnomevfs) {
+   // nsGIOMimeApp->Launch wants a URI string instead of local file
+   nsresult rv;
+   nsCOMPtr<nsIIOService> ioservice = do_GetService(NS_IOSERVICE_CONTRACTID, &rv);
 diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exthandler/unix/nsOSHelperAppService.cpp
 --- a/uriloader/exthandler/unix/nsOSHelperAppService.cpp
 +++ b/uriloader/exthandler/unix/nsOSHelperAppService.cpp
@@ -3054,7 +3034,7 @@
  #endif
  
  #ifdef MOZ_WIDGET_GTK
-   // Check the GConf registry for a protocol handler
+   // Check the GNOME registry for a protocol handler
 -  *aHandlerExists = nsGNOMERegistry::HandlerExists(aProtocolScheme);
 +  *aHandlerExists = nsCommonRegistry::HandlerExists(aProtocolScheme);
  #endif
@@ -3094,25 +3074,25 @@
  
      rv = LookUpTypeAndDescription(NS_ConvertUTF8toUTF16(aFileExt),
                                    majorType,
-@@ -1372,17 +1372,17 @@ nsOSHelperAppService::GetFromType(const 
+@@ -1373,17 +1373,17 @@ nsOSHelperAppService::GetFromType(const 
+   nsAutoString extensions, mime_types_description;
+   LookUpExtensionsAndDescription(majorType,
+                                  minorType,
+                                  extensions,
+                                  mime_types_description);
+ 
  #ifdef MOZ_WIDGET_GTK
-   nsRefPtr<nsMIMEInfoBase> gnomeInfo;
    if (handler.IsEmpty()) {
-     // No useful data yet.  Check the GNOME registry.  Unfortunately, newer
-     // GNOME versions no longer have type-to-extension mappings, so we might
-     // get back a MIMEInfo without any extensions set.  In that case we'll have
-     // to look in our mime.types files for the extensions.
-     LOG(("Looking in GNOME registry\n"));
--    gnomeInfo = nsGNOMERegistry::GetFromType(aMIMEType);
-+    gnomeInfo = nsCommonRegistry::GetFromType(aMIMEType);
-     if (gnomeInfo && gnomeInfo->HasExtensions()) {
-       LOG(("Got MIMEInfo from GNOME registry, and it has extensions set\n"));
+-    nsRefPtr<nsMIMEInfoBase> gnomeInfo = nsGNOMERegistry::GetFromType(aMIMEType);
++    nsRefPtr<nsMIMEInfoBase> gnomeInfo = nsCommonRegistry::GetFromType(aMIMEType);
+     if (gnomeInfo) {
+       LOG(("Got MIMEInfo from GNOME registry without extensions; setting them "
+            "to %s\n", NS_LossyConvertUTF16toASCII(extensions).get()));
+ 
+       NS_ASSERTION(!gnomeInfo->HasExtensions(), "How'd that happen?");
+       gnomeInfo->SetFileExtensions(NS_ConvertUTF16toUTF8(extensions));
        return gnomeInfo.forget();
      }
-   }
- #endif
- 
-   // Now look up our extensions
 diff --git a/widget/gtk/moz.build b/widget/gtk/moz.build
 --- a/widget/gtk/moz.build
 +++ b/widget/gtk/moz.build
@@ -3465,7 +3445,7 @@
 diff --git a/widget/gtk/nsFilePicker.h b/widget/gtk/nsFilePicker.h
 --- a/widget/gtk/nsFilePicker.h
 +++ b/widget/gtk/nsFilePicker.h
-@@ -66,11 +66,17 @@ protected:
+@@ -68,11 +68,17 @@ protected:
    nsString  mDefault;
    nsString  mDefaultExtension;
  
@@ -3504,9 +3484,9 @@
  #define XPTONLY_MANIFEST nullptr
  #define XPTONLY_XPT nullptr
  #endif
-@@ -488,16 +489,17 @@ ParseManifest(NSLocationType aType, File
-   NS_NAMED_LITERAL_STRING(kPlatform, "platform");
-   NS_NAMED_LITERAL_STRING(kContentAccessible, "contentaccessible");
+@@ -489,16 +490,17 @@ ParseManifest(NSLocationType aType, File
+   NS_NAMED_LITERAL_STRING(kRemoteEnabled, "remoteenabled");
+   NS_NAMED_LITERAL_STRING(kRemoteRequired, "remoterequired");
    NS_NAMED_LITERAL_STRING(kApplication, "application");
    NS_NAMED_LITERAL_STRING(kAppVersion, "appversion");
    NS_NAMED_LITERAL_STRING(kGeckoVersion, "platformversion");
@@ -3522,7 +3502,7 @@
    NS_NAMED_LITERAL_STRING(kMain, "main");
    NS_NAMED_LITERAL_STRING(kContent, "content");
  
-@@ -548,44 +550,49 @@ ParseManifest(NSLocationType aType, File
+@@ -549,44 +551,49 @@ ParseManifest(NSLocationType aType, File
          CopyUTF8toUTF16(s, abi);
          abi.Insert(char16_t('_'), 0);
          abi.Insert(osTarget, 0);
@@ -3573,14 +3553,14 @@
    }
  
 @@ -681,25 +688,27 @@ ParseManifest(NSLocationType aType, File
+     TriState stOsVersion = eUnspecified;
      TriState stOs = eUnspecified;
      TriState stABI = eUnspecified;
      TriState stProcess = eUnspecified;
  #if defined(MOZ_WIDGET_ANDROID)
      TriState stTablet = eUnspecified;
  #endif
-     bool platform = false;
-     bool contentAccessible = false;
+     int flags = 0;
 +    TriState stDesktop = eUnspecified;
  
      while ((token = nsCRT::strtok(whitespace, kWhitespace, &whitespace)) &&
@@ -3600,7 +3580,7 @@
        }
  
  #if defined(MOZ_WIDGET_ANDROID)
-@@ -731,16 +740,17 @@ ParseManifest(NSLocationType aType, File
+@@ -749,16 +758,17 @@ ParseManifest(NSLocationType aType, File
      }
  
      if (!ok ||
@@ -3638,7 +3618,8 @@
 diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
 --- a/xpcom/io/nsLocalFileUnix.cpp
 +++ b/xpcom/io/nsLocalFileUnix.cpp
-@@ -45,16 +45,17 @@
+@@ -44,16 +44,17 @@
+ #include "prproces.h"
  #include "nsIDirectoryEnumerator.h"
  #include "nsISimpleEnumerator.h"
  #include "private/pprio.h"
@@ -3646,7 +3627,6 @@
  
  #ifdef MOZ_WIDGET_GTK
  #include "nsIGIOService.h"
- #include "nsIGnomeVFSService.h"
 +#include "nsKDEUtils.h"
  #endif
  
@@ -3656,7 +3636,7 @@
  #include "prmem.h"
  #include "plbase64.h"
  
-@@ -1965,55 +1966,57 @@ nsLocalFile::SetPersistentDescriptor(con
+@@ -1964,42 +1965,52 @@ nsLocalFile::SetPersistentDescriptor(con
    return InitWithNativePath(aPersistentDescriptor);
  #endif
  }
@@ -3666,14 +3646,11 @@
  {
  #ifdef MOZ_WIDGET_GTK
 -  nsCOMPtr<nsIGIOService> giovfs = do_GetService(NS_GIOSERVICE_CONTRACTID);
--  nsCOMPtr<nsIGnomeVFSService> gnomevfs =
--    do_GetService(NS_GNOMEVFSSERVICE_CONTRACTID);
--  if (!giovfs && !gnomevfs) {
+-  if (!giovfs) {
 -    return NS_ERROR_FAILURE;
 -  }
--
-+
 +  nsAutoCString url;
+ 
    bool isDirectory;
    if (NS_FAILED(IsDirectory(&isDirectory))) {
      return NS_ERROR_FAILURE;
@@ -3681,16 +3658,9 @@
  
 +  nsCOMPtr<nsIGIOService> giovfs = do_GetService(NS_GIOSERVICE_CONTRACTID);
    if (isDirectory) {
--    if (giovfs) {
--      return giovfs->ShowURIForInput(mPath);
--    } else
--      /* Fallback to GnomeVFS */
--    {
--      return gnomevfs->ShowURIForInput(mPath);
--    }
+-    return giovfs->ShowURIForInput(mPath);
 +    url = mPath;
-   } else if (giovfs &&
-              NS_SUCCEEDED(giovfs->OrgFreedesktopFileManager1ShowItems(mPath))) {
+   } else if (NS_SUCCEEDED(giovfs->OrgFreedesktopFileManager1ShowItems(mPath))) {
      return NS_OK;
    } else {
      nsCOMPtr<nsIFile> parentDir;
@@ -3702,11 +3672,7 @@
        return NS_ERROR_FAILURE;
      }
  
--    if (giovfs) {
--      return giovfs->ShowURIForInput(dirPath);
--    } else {
--      return gnomevfs->ShowURIForInput(dirPath);
--    }
+-    return giovfs->ShowURIForInput(dirPath);
 +    url = dirPath;
    }
 +
@@ -3717,14 +3683,10 @@
 +    return nsKDEUtils::command( command ) ? NS_OK : NS_ERROR_FAILURE;
 +  }
 +
-+  nsCOMPtr<nsIGnomeVFSService> gnomevfs = do_GetService(NS_GNOMEVFSSERVICE_CONTRACTID);
-+  if (!giovfs && !gnomevfs)
++  if (!giovfs)
 +    return NS_ERROR_FAILURE;
 +
-+  if (giovfs)
-+    return giovfs->ShowURIForInput(url);
-+  else
-+    return gnomevfs->ShowURIForInput(url);
++  return giovfs->ShowURIForInput(url);
  #elif defined(MOZ_WIDGET_COCOA)
    CFURLRef url;
    if (NS_SUCCEEDED(GetCFURL(&url))) {
@@ -3733,7 +3695,7 @@
      return rv;
    }
    return NS_ERROR_FAILURE;
-@@ -2021,16 +2024,22 @@ nsLocalFile::Reveal()
+@@ -2007,16 +2018,22 @@ nsLocalFile::Reveal()
    return NS_ERROR_FAILURE;
  #endif
  }
@@ -3749,10 +3711,10 @@
 +    return nsKDEUtils::command( command ) ? NS_OK : NS_ERROR_FAILURE;
 +  }
    nsCOMPtr<nsIGIOService> giovfs = do_GetService(NS_GIOSERVICE_CONTRACTID);
-   nsCOMPtr<nsIGnomeVFSService> gnomevfs =
-     do_GetService(NS_GNOMEVFSSERVICE_CONTRACTID);
-   if (giovfs) {
-     return giovfs->ShowURIForInput(mPath);
-   } else if (gnomevfs) {
-     /* GnomeVFS fallback */
-     return gnomevfs->ShowURIForInput(mPath);
+   if (!giovfs) {
+     return NS_ERROR_FAILURE;
+   }
+ 
+   return giovfs->ShowURIForInput(mPath);
+ #elif defined(MOZ_ENABLE_CONTENTACTION)
+   QUrl uri = QUrl::fromLocalFile(QString::fromUtf8(mPath.get()));
--- a/mozilla-repo.patch	Wed Apr 08 00:59:13 2015 +0200
+++ b/mozilla-repo.patch	Sun May 10 09:05:36 2015 +0200
@@ -1,6 +1,6 @@
 # HG changeset patch
 # Parent 80b6464bd883864fce57e8748010869af1be69e9
-# Parent  d160c6876c5f05d902b391551bf4f684254b3c7d
+# Parent  7f246bc54e416716e50efe50c0edf154b26be658
 
 diff --git a/toolkit/mozapps/installer/package-name.mk b/toolkit/mozapps/installer/package-name.mk
 --- a/toolkit/mozapps/installer/package-name.mk
@@ -21,7 +21,7 @@
  # bug: 746277 - preserve existing functionality.
  # MOZILLA_DIR="": cd $(SPACE); hg # succeeds if ~/.hg exists
  ###########################################################################
- ifdef MOZILLA_OFFICIAL
+ ifdef MOZ_INCLUDE_SOURCE_INFO
 -MOZ_SOURCE_REPO = $(call getSourceRepo,$(MOZILLA_DIR)$(NULL) $(NULL))
 +#MOZ_SOURCE_REPO = $(call getSourceRepo,$(MOZILLA_DIR)$(NULL) $(NULL))
  endif
--- a/mozilla-skia-bmo1136958.patch	Wed Apr 08 00:59:13 2015 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,282 +0,0 @@
-From a8ab3ec3542469c1d4e0741121eb1be17cc0acb0 Mon Sep 17 00:00:00 2001
-From: Mike Hommey <mh@glandium.org>
-Date: Mon, 9 Mar 2015 08:42:19 +0900
-Subject: [PATCH] Bug 1136958 - Reintroduce pixman code path removed in bug
- 1097776 for --disable-skia builds
-
----
- gfx/layers/basic/BasicCompositor.cpp   | 94 +++++++++++++++++++++++++++++++---
- gfx/layers/basic/BasicLayerManager.cpp | 88 +++++++++++++++++++++++++++++--
- 2 files changed, 171 insertions(+), 11 deletions(-)
-
-diff --git a/gfx/layers/basic/BasicCompositor.cpp b/gfx/layers/basic/BasicCompositor.cpp
-index 0bef076..000b591 100644
---- a/gfx/layers/basic/BasicCompositor.cpp
-+++ b/gfx/layers/basic/BasicCompositor.cpp
-@@ -17,8 +17,13 @@
- #include <algorithm>
- #include "ImageContainer.h"
- #include "gfxPrefs.h"
-+#ifdef MOZ_ENABLE_SKIA
- #include "skia/SkCanvas.h"              // for SkCanvas
- #include "skia/SkBitmapDevice.h"        // for SkBitmapDevice
-+#else
-+#define PIXMAN_DONT_DEFINE_STDINT
-+#include "pixman.h"                     // for pixman_f_transform, etc
-+#endif
- 
- namespace mozilla {
- using namespace mozilla::gfx;
-@@ -168,6 +173,7 @@ DrawSurfaceWithTextureCoords(DrawTarget *aDest,
-                    mode, aMask, aMaskTransform, &matrix);
- }
- 
-+#ifdef MOZ_ENABLE_SKIA
- static SkMatrix
- Matrix3DToSkia(const gfx3DMatrix& aMatrix)
- {
-@@ -186,10 +192,10 @@ Matrix3DToSkia(const gfx3DMatrix& aMatrix)
- }
- 
- static void
--SkiaTransform(DataSourceSurface* aDest,
--              DataSourceSurface* aSource,
--              const gfx3DMatrix& aTransform,
--              const Point& aDestOffset)
-+Transform(DataSourceSurface* aDest,
-+          DataSourceSurface* aSource,
-+          const gfx3DMatrix& aTransform,
-+          const Point& aDestOffset)
- {
-   if (aTransform.IsSingular()) {
-     return;
-@@ -225,6 +231,78 @@ SkiaTransform(DataSourceSurface* aDest,
-   SkRect destRect = SkRect::MakeXYWH(0, 0, srcSize.width, srcSize.height);
-   destCanvas.drawBitmapRectToRect(src, nullptr, destRect, &paint);
- }
-+#else
-+static pixman_transform
-+Matrix3DToPixman(const gfx3DMatrix& aMatrix)
-+{
-+  pixman_f_transform transform;
-+
-+  transform.m[0][0] = aMatrix._11;
-+  transform.m[0][1] = aMatrix._21;
-+  transform.m[0][2] = aMatrix._41;
-+  transform.m[1][0] = aMatrix._12;
-+  transform.m[1][1] = aMatrix._22;
-+  transform.m[1][2] = aMatrix._42;
-+  transform.m[2][0] = aMatrix._14;
-+  transform.m[2][1] = aMatrix._24;
-+  transform.m[2][2] = aMatrix._44;
-+
-+  pixman_transform result;
-+  pixman_transform_from_pixman_f_transform(&result, &transform);
-+
-+  return result;
-+}
-+
-+static void
-+Transform(DataSourceSurface* aDest,
-+          DataSourceSurface* aSource,
-+          const gfx3DMatrix& aTransform,
-+          const Point& aDestOffset)
-+{
-+  IntSize destSize = aDest->GetSize();
-+  pixman_image_t* dest = pixman_image_create_bits(PIXMAN_a8r8g8b8,
-+                                                  destSize.width,
-+                                                  destSize.height,
-+                                                  (uint32_t*)aDest->GetData(),
-+                                                  aDest->Stride());
-+
-+  IntSize srcSize = aSource->GetSize();
-+  pixman_image_t* src = pixman_image_create_bits(PIXMAN_a8r8g8b8,
-+                                                 srcSize.width,
-+                                                 srcSize.height,
-+                                                 (uint32_t*)aSource->GetData(),
-+                                                 aSource->Stride());
-+
-+  NS_ABORT_IF_FALSE(src && dest, "Failed to create pixman images?");
-+
-+  pixman_transform pixTransform = Matrix3DToPixman(aTransform);
-+  pixman_transform pixTransformInverted;
-+
-+  // If the transform is singular then nothing would be drawn anyway, return here
-+  if (!pixman_transform_invert(&pixTransformInverted, &pixTransform)) {
-+    pixman_image_unref(dest);
-+    pixman_image_unref(src);
-+    return;
-+  }
-+  pixman_image_set_transform(src, &pixTransformInverted);
-+
-+  pixman_image_composite32(PIXMAN_OP_SRC,
-+                           src,
-+                           nullptr,
-+                           dest,
-+                           aDestOffset.x,
-+                           aDestOffset.y,
-+                           0,
-+                           0,
-+                           0,
-+                           0,
-+                           destSize.width,
-+                           destSize.height);
-+
-+  pixman_image_unref(dest);
-+  pixman_image_unref(src);
-+}
-+#endif
- 
- static inline IntRect
- RoundOut(Rect r)
-@@ -364,12 +442,16 @@ BasicCompositor::DrawQuad(const gfx::Rect& aRect,
-     RefPtr<SourceSurface> snapshot = dest->Snapshot();
-     RefPtr<DataSourceSurface> source = snapshot->GetDataSurface();
-     RefPtr<DataSourceSurface> temp =
--      Factory::CreateDataSourceSurface(RoundOut(transformBounds).Size(), SurfaceFormat::B8G8R8A8, true);
-+      Factory::CreateDataSourceSurface(RoundOut(transformBounds).Size(), SurfaceFormat::B8G8R8A8
-+#ifdef MOZ_ENABLE_SKIA
-+        , true
-+#endif
-+        );
-     if (NS_WARN_IF(!temp)) {
-       return;
-     }
- 
--    SkiaTransform(temp, source, new3DTransform, transformBounds.TopLeft());
-+    Transform(temp, source, new3DTransform, transformBounds.TopLeft());
- 
-     transformBounds.MoveTo(0, 0);
-     buffer->DrawSurface(temp, transformBounds, transformBounds);
-diff --git a/gfx/layers/basic/BasicLayerManager.cpp b/gfx/layers/basic/BasicLayerManager.cpp
-index f4ec9e4..c849c27 100644
---- a/gfx/layers/basic/BasicLayerManager.cpp
-+++ b/gfx/layers/basic/BasicLayerManager.cpp
-@@ -46,8 +46,13 @@
- #include "nsRect.h"                     // for nsIntRect
- #include "nsRegion.h"                   // for nsIntRegion, etc
- #include "nsTArray.h"                   // for nsAutoTArray
-+#ifdef MOZ_ENABLE_SKIA
- #include "skia/SkCanvas.h"              // for SkCanvas
- #include "skia/SkBitmapDevice.h"        // for SkBitmapDevice
-+#else
-+#define PIXMAN_DONT_DEFINE_STDINT
-+#include "pixman.h"                     // for pixman_f_transform, etc
-+#endif
- class nsIWidget;
- 
- namespace mozilla {
-@@ -601,6 +606,7 @@ BasicLayerManager::SetRoot(Layer* aLayer)
-   mRoot = aLayer;
- }
- 
-+#ifdef MOZ_ENABLE_SKIA
- static SkMatrix
- BasicLayerManager_Matrix3DToSkia(const gfx3DMatrix& aMatrix)
- {
-@@ -619,10 +625,10 @@ BasicLayerManager_Matrix3DToSkia(const gfx3DMatrix& aMatrix)
- }
- 
- static void
--SkiaTransform(const gfxImageSurface* aDest,
--              RefPtr<DataSourceSurface> aSrc,
--              const gfx3DMatrix& aTransform,
--              gfxPoint aDestOffset)
-+Transform(const gfxImageSurface* aDest,
-+          RefPtr<DataSourceSurface> aSrc,
-+          const gfx3DMatrix& aTransform,
-+          gfxPoint aDestOffset)
- {
-   if (aTransform.IsSingular()) {
-     return;
-@@ -658,6 +664,78 @@ SkiaTransform(const gfxImageSurface* aDest,
-   SkRect destRect = SkRect::MakeXYWH(0, 0, srcSize.width, srcSize.height);
-   destCanvas.drawBitmapRectToRect(src, nullptr, destRect, &paint);
- }
-+#else
-+static pixman_transform
-+BasicLayerManager_Matrix3DToPixman(const gfx3DMatrix& aMatrix)
-+{
-+  pixman_f_transform transform;
-+
-+  transform.m[0][0] = aMatrix._11;
-+  transform.m[0][1] = aMatrix._21;
-+  transform.m[0][2] = aMatrix._41;
-+  transform.m[1][0] = aMatrix._12;
-+  transform.m[1][1] = aMatrix._22;
-+  transform.m[1][2] = aMatrix._42;
-+  transform.m[2][0] = aMatrix._14;
-+  transform.m[2][1] = aMatrix._24;
-+  transform.m[2][2] = aMatrix._44;
-+
-+  pixman_transform result;
-+  pixman_transform_from_pixman_f_transform(&result, &transform);
-+
-+  return result;
-+}
-+
-+static void
-+Transform(const gfxImageSurface* aDest,
-+          RefPtr<DataSourceSurface> aSrc,
-+          const gfx3DMatrix& aTransform,
-+          gfxPoint aDestOffset)
-+{
-+  IntSize destSize = ToIntSize(aDest->GetSize());
-+  pixman_image_t* dest = pixman_image_create_bits(aDest->Format() == gfxImageFormat::ARGB32 ? PIXMAN_a8r8g8b8 : PIXMAN_x8r8g8b8,
-+                                                  destSize.width,
-+                                                  destSize.height,
-+                                                  (uint32_t*)aDest->Data(),
-+                                                  aDest->Stride());
-+
-+  IntSize srcSize = aSrc->GetSize();
-+  pixman_image_t* src = pixman_image_create_bits(aSrc->GetFormat() == SurfaceFormat::B8G8R8A8 ? PIXMAN_a8r8g8b8 : PIXMAN_x8r8g8b8,
-+                                                 srcSize.width,
-+                                                 srcSize.height,
-+                                                 (uint32_t*)aSrc->GetData(),
-+                                                 aSrc->Stride());
-+
-+  NS_ABORT_IF_FALSE(src && dest, "Failed to create pixman images?");
-+
-+  pixman_transform pixTransform = BasicLayerManager_Matrix3DToPixman(aTransform);
-+  pixman_transform pixTransformInverted;
-+
-+  // If the transform is singular then nothing would be drawn anyway, return here
-+  if (!pixman_transform_invert(&pixTransformInverted, &pixTransform)) {
-+    pixman_image_unref(dest);
-+    pixman_image_unref(src);
-+    return;
-+  }
-+  pixman_image_set_transform(src, &pixTransformInverted);
-+
-+  pixman_image_composite32(PIXMAN_OP_SRC,
-+                           src,
-+                           nullptr,
-+                           dest,
-+                           aDestOffset.x,
-+                           aDestOffset.y,
-+                           0,
-+                           0,
-+                           0,
-+                           0,
-+                           destSize.width,
-+                           destSize.height);
-+
-+  pixman_image_unref(dest);
-+  pixman_image_unref(src);
-+}
-+#endif
- 
- /**
-  * Transform a surface using a gfx3DMatrix and blit to the destination if
-@@ -699,7 +777,7 @@ Transform3D(RefPtr<SourceSurface> aSource,
-   gfx3DMatrix translation = gfx3DMatrix::Translation(aBounds.x, aBounds.y, 0);
- 
-   // Transform the content and offset it such that the content begins at the origin.
--  SkiaTransform(destImage, aSource->GetDataSurface(), translation * aTransform, offset);
-+  Transform(destImage, aSource->GetDataSurface(), translation * aTransform, offset);
- 
-   // If we haven't actually drawn to aDest then return our temporary image so
-   // that the caller can do this.
--- 
-2.3.0.4.g34b1174
-
--- a/series	Wed Apr 08 00:59:13 2015 +0200
+++ b/series	Sun May 10 09:05:36 2015 +0200
@@ -13,7 +13,6 @@
 mozilla-arm-disable-edsp.patch
 mozilla-idldir.patch
 mozilla-openaes-decl.patch
-mozilla-skia-bmo1136958.patch
 mozilla-skia-be-le.patch
 mozilla-bmo1005535.patch