forked from pool/MozillaFirefox
- update to Firefox 16.0 (bnc#783533)
- requires NSPR 4.9.2 - improve GStreamer integration (bmo#760140) - removed upstreamed mozilla-crashreporter-restart-args.patch - webapprt now included - use kmozillahelper's new REVEAL command (bnc#777415) (requires mozilla-kde4-integration >= 0.6.4) - updated translations-other with new languages OBS-URL: https://build.opensuse.org/package/show/mozilla:Factory/MozillaFirefox?expand=0&rev=295
This commit is contained in:
parent
a1842748f3
commit
6f2059ff99
@ -1,3 +1,15 @@
|
||||
-------------------------------------------------------------------
|
||||
Sun Oct 7 21:40:14 UTC 2012 - wr@rosenauer.org
|
||||
|
||||
- update to Firefox 16.0 (bnc#783533)
|
||||
- requires NSPR 4.9.2
|
||||
- improve GStreamer integration (bmo#760140)
|
||||
- removed upstreamed mozilla-crashreporter-restart-args.patch
|
||||
- webapprt now included
|
||||
- use kmozillahelper's new REVEAL command (bnc#777415)
|
||||
(requires mozilla-kde4-integration >= 0.6.4)
|
||||
- updated translations-other with new languages
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Sep 10 19:37:56 UTC 2012 - wr@rosenauer.org
|
||||
|
||||
|
@ -17,8 +17,8 @@
|
||||
#
|
||||
|
||||
|
||||
%define major 15
|
||||
%define mainver %major.0.1
|
||||
%define major 16
|
||||
%define mainver %major.0
|
||||
%define update_channel release
|
||||
|
||||
Name: MozillaFirefox
|
||||
@ -44,7 +44,7 @@ BuildRequires: libproxy-devel
|
||||
%else
|
||||
BuildRequires: wireless-tools
|
||||
%endif
|
||||
BuildRequires: mozilla-nspr-devel >= 4.9.1
|
||||
BuildRequires: mozilla-nspr-devel >= 4.9.2
|
||||
BuildRequires: mozilla-nss-devel >= 3.13.6
|
||||
BuildRequires: nss-shared-helper-devel
|
||||
%if %suse_version > 1140
|
||||
@ -54,7 +54,7 @@ BuildRequires: pkgconfig(gstreamer-plugins-base-0.10)
|
||||
%endif
|
||||
Version: %{mainver}
|
||||
Release: 0
|
||||
%define releasedate 2012090600
|
||||
%define releasedate 2012100700
|
||||
Provides: firefox = %{mainver}
|
||||
Provides: firefox = %{version}-%{release}
|
||||
Provides: web_browser
|
||||
@ -76,6 +76,7 @@ Source5: source-stamp.txt
|
||||
Source6: kde.js
|
||||
Source7: l10n-%{version}.tar.bz2
|
||||
Source8: firefox-mimeinfo.xml
|
||||
Source9: firefox.js
|
||||
Source10: compare-locales.tar.bz2
|
||||
Source11: firefox.1
|
||||
Source12: mozilla-get-app-id
|
||||
@ -94,9 +95,9 @@ Patch9: mozilla-repo.patch
|
||||
Patch10: mozilla-sle11.patch
|
||||
Patch11: mozilla-disable-neon-option.patch
|
||||
Patch13: mozilla-arm-disable-edsp.patch
|
||||
Patch14: mozilla-crashreporter-restart-args.patch
|
||||
Patch15: mozilla-gstreamer.patch
|
||||
Patch16: mozilla-ppc.patch
|
||||
Patch17: mozilla-gstreamer-760140.patch
|
||||
# Firefox/browser
|
||||
Patch30: firefox-browser-css.patch
|
||||
Patch31: firefox-kde.patch
|
||||
@ -166,7 +167,7 @@ of MozillaFirefox.
|
||||
%package translations-other
|
||||
Summary: Extra translations for MozillaFirefox
|
||||
Group: System/Localization
|
||||
Provides: locale(%{name}:af;ak;as;ast;be;bg;bn_BD;bn_IN;br;bs;csb;cy;el;en_ZA;eo;es_MX;et;eu;fa;ff;fy_NL;ga_IE;gd;gl;gu_IN;he;hi_IN;hr;hy_AM;id;is;kk;km;kn;ku;lg;lij;lt;lv;mai;mk;ml;mr;nn_NO;nso;or;pa_IN;rm;ro;si;sk;sl;son;sq;sr;ta;ta_LK;te;th;tr;uk;vi;zu)
|
||||
Provides: locale(%{name}:ach;af;ak;as;ast;be;bg;bn_BD;bn_IN;br;bs;csb;cy;el;en_ZA;eo;es_MX;et;eu;fa;ff;fy_NL;ga_IE;gd;gl;gu_IN;he;hi_IN;hr;hy_AM;id;is;kk;km;kn;ku;lg;lij;lt;lv;mai;mk;ml;mr;nn_NO;nso;or;pa_IN;rm;ro;si;sk;sl;son;sq;sr;ta;ta_LK;te;th;tr;uk;vi;zu)
|
||||
Requires: %{name} = %{version}
|
||||
Obsoletes: %{name}-translations < %{version}-%{release}
|
||||
|
||||
@ -223,9 +224,9 @@ cd $RPM_BUILD_DIR/mozilla
|
||||
%endif
|
||||
#%patch11 -p1
|
||||
%patch13 -p1
|
||||
%patch14 -p1
|
||||
%patch15 -p1
|
||||
%patch16 -p1
|
||||
%patch17 -p1
|
||||
#
|
||||
%patch30 -p1
|
||||
%if %suse_version >= 1110
|
||||
@ -340,6 +341,7 @@ mkdir -p $RPM_BUILD_ROOT%{progdir}/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
|
||||
%endif
|
||||
# install add-plugins.sh
|
||||
sed "s:%%PROGDIR:%{progdir}:g" \
|
||||
@ -551,6 +553,8 @@ exit 0
|
||||
%{progdir}/omni.ja
|
||||
%{progdir}/platform.ini
|
||||
%{progdir}/plugin-container
|
||||
%{progdir}/webapprt-stub
|
||||
%{progdir}/webapprt/
|
||||
%if %crashreporter
|
||||
%{progdir}/crashreporter-override.ini
|
||||
%{progdir}/crashreporter
|
||||
|
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:af28abf28728f5e44f04b74735f305f22ea05496d627d6c31dfec8c2b613f0c8
|
||||
size 29300
|
||||
oid sha256:fbf6da8dd1ad0d08340f84e4a1128487bfe3979bdc2bfd6ddfe9d2814d333e1d
|
||||
size 29920
|
||||
|
@ -2,8 +2,8 @@
|
||||
|
||||
CHANNEL="release"
|
||||
BRANCH="releases/mozilla-$CHANNEL"
|
||||
RELEASE_TAG="FIREFOX_15_0_1_RELEASE"
|
||||
VERSION="15.0.1"
|
||||
RELEASE_TAG="FIREFOX_16_0_RELEASE"
|
||||
VERSION="16.0"
|
||||
|
||||
# mozilla
|
||||
echo "cloning $BRANCH..."
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e2b898c3e56d3c825f4a378f8a3903b1040c9d0eb385b4a2c646ec83d679ff0c
|
||||
size 83657418
|
3
firefox-16.0-source.tar.bz2
Normal file
3
firefox-16.0-source.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:622e8f233f1f08eb464e52296ccfe050223fa8317bf3c78eaa86125caa27fbff
|
||||
size 90705047
|
@ -1,12 +1,12 @@
|
||||
# HG changeset patch
|
||||
# User Wolfgang Rosenauer <wr@rosenauer.org>
|
||||
# Parent 0db25ab919ad61d91a46d7700d3f06e2b66f9feb
|
||||
# Parent 5a741476f1d87380057f9fa02c6a580aed6e81ff
|
||||
With openSUSE 11.4 the desktop file name changed from MozillaFirefox to firefox
|
||||
|
||||
diff --git a/browser/components/preferences/advanced.js b/browser/components/preferences/advanced.js
|
||||
--- a/browser/components/preferences/advanced.js
|
||||
+++ b/browser/components/preferences/advanced.js
|
||||
@@ -719,15 +719,15 @@ var gAdvancedPane = {
|
||||
@@ -751,17 +751,17 @@ var gAdvancedPane = {
|
||||
if (kde_session == 1) {
|
||||
var shellObj = Components.classes["@mozilla.org/file/local;1"]
|
||||
.createInstance(Components.interfaces.nsILocalFile);
|
||||
@ -19,7 +19,9 @@ diff --git a/browser/components/preferences/advanced.js b/browser/components/pre
|
||||
+ "BrowserApplication", "firefox"];
|
||||
process.run(false, args, args.length);
|
||||
}
|
||||
document.getElementById("setDefaultPane").selectedIndex = 1;
|
||||
let selectedIndex =
|
||||
shellSvc.isDefaultBrowser(false, true) ? 1 : 0;
|
||||
document.getElementById("setDefaultPane").selectedIndex = selectedIndex;
|
||||
}
|
||||
#endif
|
||||
};
|
||||
|
@ -2,7 +2,7 @@ diff --git a/browser/base/content/browser-kde.xul b/browser/base/content/browser
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/browser/base/content/browser-kde.xul
|
||||
@@ -0,0 +1,1126 @@
|
||||
@@ -0,0 +1,1210 @@
|
||||
+#filter substitution
|
||||
+<?xml version="1.0"?>
|
||||
+# -*- Mode: HTML -*-
|
||||
@ -29,7 +29,7 @@ new file mode 100644
|
||||
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
+ xmlns:svg="http://www.w3.org/2000/svg"
|
||||
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
+ onload="BrowserStartup()" onunload="BrowserShutdown()" onclose="return WindowIsClosing();"
|
||||
+ onload="gBrowserInit.onLoad()" onunload="gBrowserInit.onUnload()" onclose="return WindowIsClosing();"
|
||||
+ title="&mainWindow.title;@PRE_RELEASE_SUFFIX@"
|
||||
+ title_normal="&mainWindow.title;@PRE_RELEASE_SUFFIX@"
|
||||
+#ifdef XP_MACOSX
|
||||
@ -142,6 +142,7 @@ new file mode 100644
|
||||
+ footertype="promobox"
|
||||
+ orient="vertical"
|
||||
+ ignorekeys="true"
|
||||
+ consumeoutsideclicks="true"
|
||||
+ hidden="true"
|
||||
+ onpopupshown="StarUI.panelShown(event);"
|
||||
+ aria-labelledby="editBookmarkPanelTitle">
|
||||
@ -186,6 +187,49 @@ new file mode 100644
|
||||
+ </hbox>
|
||||
+ </panel>
|
||||
+
|
||||
+ <panel id="editSharePopup"
|
||||
+ type="arrow"
|
||||
+ orient="vertical"
|
||||
+ ignorekeys="true"
|
||||
+ hidden="true"
|
||||
+ onpopupshown="SocialShareButton.panelShown(event);"
|
||||
+ consumeoutsideclicks="true"
|
||||
+ level="top">
|
||||
+ <hbox id="editSharePopupBottomButtons" pack="end">
|
||||
+#ifdef XP_UNIX
|
||||
+ <button id="editSharePopupUndoButton"
|
||||
+ class="editSharePopupBottomButton"
|
||||
+ label="&social.sharePopup.undo.label;"
|
||||
+ accesskey="&social.sharePopup.undo.accesskey;"
|
||||
+ command="Social:UnsharePage"/>
|
||||
+ <button id="editSharePopupOkButton"
|
||||
+ class="editSharePopupBottomButton"
|
||||
+ default="true"
|
||||
+ autofocus="autofocus"
|
||||
+ label="&social.sharePopup.ok.label;"
|
||||
+ accesskey="&social.sharePopup.ok.accesskey;"
|
||||
+ oncommand="SocialShareButton.dismissSharePopup();"/>
|
||||
+#else
|
||||
+ <button id="editSharePopupOkButton"
|
||||
+ class="editSharePopupBottomButton"
|
||||
+ default="true"
|
||||
+ autofocus="autofocus"
|
||||
+ label="&social.sharePopup.ok.label;"
|
||||
+ accesskey="&social.sharePopup.ok.accesskey;"
|
||||
+ oncommand="SocialShareButton.dismissSharePopup();"/>
|
||||
+ <button id="editSharePopupUndoButton"
|
||||
+ class="editSharePopupBottomButton"
|
||||
+ label="&social.sharePopup.undo.label;"
|
||||
+ accesskey="&social.sharePopup.undo.accesskey;"
|
||||
+ command="Social:UnsharePage"/>
|
||||
+#endif
|
||||
+ </hbox>
|
||||
+ </panel>
|
||||
+
|
||||
+ <panel id="social-notification-panel" type="arrow" hidden="true" noautofocus="true">
|
||||
+ <browser id="social-notification-browser" type="content" flex="1"/>
|
||||
+ </panel>
|
||||
+
|
||||
+ <menupopup id="inspector-node-popup">
|
||||
+ <menuitem id="inspectorHTMLCopyInner"
|
||||
+ label="&inspectorHTMLCopyInner.label;"
|
||||
@ -264,6 +308,7 @@ new file mode 100644
|
||||
+ type="arrow"
|
||||
+ hidden="true"
|
||||
+ noautofocus="true"
|
||||
+ consumeoutsideclicks="true"
|
||||
+ onpopupshown="gIdentityHandler.onPopupShown(event);"
|
||||
+ level="top">
|
||||
+ <hbox id="identity-popup-container" align="top">
|
||||
@ -349,11 +394,8 @@ new file mode 100644
|
||||
+ <tooltip id="bhTooltip"/>
|
||||
+
|
||||
+ <panel id="customizeToolbarSheetPopup"
|
||||
+ noautohide="true">
|
||||
+ <iframe id="customizeToolbarSheetIFrame"
|
||||
+ style="&dialog.dimensions;"
|
||||
+ hidden="true"/>
|
||||
+ </panel>
|
||||
+ noautohide="true"
|
||||
+ sheetstyle="&dialog.dimensions;"/>
|
||||
+
|
||||
+ <tooltip id="tabbrowser-tab-tooltip" onpopupshowing="gBrowser.createTooltip(event);"/>
|
||||
+
|
||||
@ -492,19 +534,16 @@ new file mode 100644
|
||||
+ We only add the identity-box button to the tab order when the location bar
|
||||
+ has focus, otherwise pressing F6 focuses it instead of the location bar -->
|
||||
+ <box id="identity-box" role="button"
|
||||
+ align="center"
|
||||
+ onclick="gIdentityHandler.handleIdentityButtonEvent(event);"
|
||||
+ onkeypress="gIdentityHandler.handleIdentityButtonEvent(event);"
|
||||
+ ondragstart="gIdentityHandler.onDragStart(event);">
|
||||
+ <hbox id="identity-box-inner" align="center">
|
||||
+ <hbox id="page-proxy-stack"
|
||||
+ onclick="PageProxyClickHandler(event);">
|
||||
+ <image id="page-proxy-favicon"
|
||||
+ pageproxystate="invalid"/>
|
||||
+ </hbox>
|
||||
+ <hbox id="identity-icon-labels">
|
||||
+ <label id="identity-icon-label" class="plain" flex="1"/>
|
||||
+ <label id="identity-icon-country-label" class="plain"/>
|
||||
+ </hbox>
|
||||
+ <image id="page-proxy-favicon"
|
||||
+ onclick="PageProxyClickHandler(event);"
|
||||
+ pageproxystate="invalid"/>
|
||||
+ <hbox id="identity-icon-labels">
|
||||
+ <label id="identity-icon-label" class="plain" flex="1"/>
|
||||
+ <label id="identity-icon-country-label" class="plain"/>
|
||||
+ </hbox>
|
||||
+ </box>
|
||||
+ <box id="urlbar-display-box" align="center">
|
||||
@ -517,6 +556,12 @@ new file mode 100644
|
||||
+ tooltiptext="&pageReportIcon.tooltip;"
|
||||
+ onclick="gPopupBlockerObserver.onReportButtonClick(event);"/>
|
||||
+
|
||||
+ <label id="share-button-status" collapsed="true" role="status"/>
|
||||
+ <image id="share-button"
|
||||
+ class="urlbar-icon"
|
||||
+ hidden="true"
|
||||
+ onclick="SocialShareButton.onClick(event);"/>
|
||||
+
|
||||
+ <image id="star-button"
|
||||
+ class="urlbar-icon"
|
||||
+ onclick="PlacesStarButton.onClick(event);"/>
|
||||
@ -568,6 +613,45 @@ new file mode 100644
|
||||
+ onclick="BrowserGoHome(event);"
|
||||
+ aboutHomeOverrideTooltip="&abouthome.pageTitle;"/>
|
||||
+
|
||||
+ <toolbaritem id="social-toolbar-button"
|
||||
+ class="toolbarbutton-1 chromeclass-toolbar-additional"
|
||||
+ removable="false"
|
||||
+ title="&socialToolbar.title;"
|
||||
+ hidden="true">
|
||||
+ <hbox id="social-toolbar-button-box" class="social-statusarea-container">
|
||||
+ <button id="social-provider-image" type="menu">
|
||||
+ <menupopup id="social-statusarea-popup">
|
||||
+ <hbox id="social-statusarea-user" pack="left" align="center">
|
||||
+ <image id="social-statusarea-user-portrait"/>
|
||||
+ <vbox>
|
||||
+ <label id="social-statusarea-notloggedin"
|
||||
+ value="&social.notLoggedIn.label;"/>
|
||||
+ <button id="social-statusarea-username"
|
||||
+ oncommand="SocialUI.showProfile(); document.getElementById('social-statusarea-popup').hidePopup();"/>
|
||||
+ </vbox>
|
||||
+ </hbox>
|
||||
+ </menupopup>
|
||||
+ </button>
|
||||
+ <hbox id="social-status-iconbox" flex="1">
|
||||
+ <box class="social-notification-icon-container" collapsed="true"
|
||||
+ onclick="SocialToolbar.showAmbientPopup(this);">
|
||||
+ <image class="social-notification-icon-image"/>
|
||||
+ <box class="social-notification-icon-counter" collapsed="true"/>
|
||||
+ </box>
|
||||
+ <box class="social-notification-icon-container" collapsed="true"
|
||||
+ onclick="SocialToolbar.showAmbientPopup(this);">
|
||||
+ <image class="social-notification-icon-image"/>
|
||||
+ <box class="social-notification-icon-counter" collapsed="true"/>
|
||||
+ </box>
|
||||
+ <box class="social-notification-icon-container" collapsed="true"
|
||||
+ onclick="SocialToolbar.showAmbientPopup(this);">
|
||||
+ <image class="social-notification-icon-image"/>
|
||||
+ <box class="social-notification-icon-counter" collapsed="true"/>
|
||||
+ </box>
|
||||
+ </hbox>
|
||||
+ </hbox>
|
||||
+ </toolbaritem>
|
||||
+
|
||||
+ <toolbaritem id="bookmarks-menu-button-container"
|
||||
+ class="chromeclass-toolbar-additional"
|
||||
+ removable="true"
|
||||
@ -1047,21 +1131,21 @@ new file mode 100644
|
||||
+ </stack>
|
||||
+ <toolbarbutton id="developer-toolbar-webconsole"
|
||||
+ label="&webConsoleButton.label;"
|
||||
+ class="devtools-toolbarbutton"
|
||||
+ class="developer-toolbar-button"
|
||||
+ command="Tools:WebConsole"/>
|
||||
+ <toolbarbutton id="developer-toolbar-inspector"
|
||||
+ label="&inspectorButton.label;"
|
||||
+ class="devtools-toolbarbutton"
|
||||
+ class="developer-toolbar-button"
|
||||
+ hidden="true"
|
||||
+ command="Tools:Inspect"/>
|
||||
+ <toolbarbutton id="developer-toolbar-responsiveui"
|
||||
+ label="&responsiveDesignTool.label;"
|
||||
+ class="devtools-toolbarbutton"
|
||||
+ <toolbarbutton id="developer-toolbar-styleeditor"
|
||||
+ label="&styleeditor.label;"
|
||||
+ class="developer-toolbar-button"
|
||||
+ hidden="true"
|
||||
+ command="Tools:ResponsiveUI"/>
|
||||
+ command="Tools:StyleEditor"/>
|
||||
+ <toolbarbutton id="developer-toolbar-debugger"
|
||||
+ label="&scriptsButton.label;"
|
||||
+ class="devtools-toolbarbutton"
|
||||
+ label="&debuggerMenu.label2;"
|
||||
+ class="developer-toolbar-button"
|
||||
+ hidden="true"
|
||||
+ command="Tools:Debugger"/>
|
||||
+#ifndef XP_MACOSX
|
||||
@ -1167,7 +1251,7 @@ diff --git a/browser/components/build/nsModule.cpp b/browser/components/build/ns
|
||||
+#include "nsUnixShellService.h"
|
||||
#endif
|
||||
|
||||
#if defined(XP_WIN) && !defined(__MINGW32__)
|
||||
#if defined(XP_WIN)
|
||||
#include "nsIEHistoryEnumerator.h"
|
||||
#endif
|
||||
|
||||
@ -1186,7 +1270,7 @@ diff --git a/browser/components/build/nsModule.cpp b/browser/components/build/ns
|
||||
-NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsGNOMEShellService, Init)
|
||||
#endif
|
||||
|
||||
#if defined(XP_WIN) && !defined(__MINGW32__)
|
||||
#if defined(XP_WIN)
|
||||
NS_GENERIC_FACTORY_CONSTRUCTOR(nsIEHistoryEnumerator)
|
||||
#endif
|
||||
|
||||
@ -1206,7 +1290,7 @@ diff --git a/browser/components/build/nsModule.cpp b/browser/components/build/ns
|
||||
#endif
|
||||
{ &kNS_FEEDSNIFFER_CID, false, NULL, nsFeedSnifferConstructor },
|
||||
{ &kNS_BROWSER_ABOUT_REDIRECTOR_CID, false, NULL, AboutRedirector::Create },
|
||||
#if defined(XP_WIN) && !defined(__MINGW32__)
|
||||
#if defined(XP_WIN)
|
||||
{ &kNS_WINIEHISTORYENUMERATOR_CID, false, NULL, nsIEHistoryEnumeratorConstructor },
|
||||
#elif defined(XP_MACOSX)
|
||||
{ &kNS_SHELLSERVICE_CID, false, NULL, nsMacShellServiceConstructor },
|
||||
@ -1231,13 +1315,13 @@ diff --git a/browser/components/preferences/advanced.js b/browser/components/pre
|
||||
+
|
||||
#ifdef HAVE_SHELL_SERVICE
|
||||
this.updateSetDefaultBrowser();
|
||||
#endif
|
||||
#ifdef MOZ_UPDATER
|
||||
this.updateReadPrefs();
|
||||
#endif
|
||||
this.updateOfflineApps();
|
||||
#ifdef MOZ_CRASHREPORTER
|
||||
@@ -715,12 +721,23 @@ var gAdvancedPane = {
|
||||
#ifdef XP_WIN
|
||||
let shellSvc = getShellService();
|
||||
// In Windows 8 we launch the control panel since it's the only
|
||||
// way to get all file type association prefs. So we don't know
|
||||
// when the user will select the default. We refresh here periodically
|
||||
// in case the default changes.
|
||||
@@ -737,14 +743,25 @@ var gAdvancedPane = {
|
||||
* Set browser as the operating system default browser.
|
||||
*/
|
||||
setDefaultBrowser: function()
|
||||
@ -1257,7 +1341,9 @@ diff --git a/browser/components/preferences/advanced.js b/browser/components/pre
|
||||
+ "BrowserApplication", "MozillaFirefox"];
|
||||
+ process.run(false, args, args.length);
|
||||
+ }
|
||||
document.getElementById("setDefaultPane").selectedIndex = 1;
|
||||
let selectedIndex =
|
||||
shellSvc.isDefaultBrowser(false, true) ? 1 : 0;
|
||||
document.getElementById("setDefaultPane").selectedIndex = selectedIndex;
|
||||
}
|
||||
#endif
|
||||
};
|
||||
@ -1288,7 +1374,7 @@ diff --git a/browser/components/shell/src/nsKDEShellService.cpp b/browser/compon
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/browser/components/shell/src/nsKDEShellService.cpp
|
||||
@@ -0,0 +1,264 @@
|
||||
@@ -0,0 +1,265 @@
|
||||
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
+/* ***** BEGIN LICENSE BLOCK *****
|
||||
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
@ -1331,7 +1417,7 @@ new file mode 100644
|
||||
+#include "nsCOMPtr.h"
|
||||
+#include "nsIPrefService.h"
|
||||
+#include "nsIProcess.h"
|
||||
+#include "nsILocalFile.h"
|
||||
+#include "nsIFile.h"
|
||||
+#include "nsServiceManagerUtils.h"
|
||||
+#include "nsComponentManagerUtils.h"
|
||||
+#include "nsIMutableArray.h"
|
||||
@ -1350,6 +1436,7 @@ new file mode 100644
|
||||
+
|
||||
+NS_IMETHODIMP
|
||||
+nsKDEShellService::IsDefaultBrowser(bool aStartupCheck,
|
||||
+ bool aForAllTypes,
|
||||
+ bool* aIsDefaultBrowser)
|
||||
+ {
|
||||
+ *aIsDefaultBrowser = false;
|
||||
@ -1478,7 +1565,7 @@ new file mode 100644
|
||||
+ }
|
||||
+
|
||||
+NS_IMETHODIMP
|
||||
+nsKDEShellService::OpenApplicationWithURI(nsILocalFile* aApplication, const nsACString& aURI)
|
||||
+nsKDEShellService::OpenApplicationWithURI(nsIFile* aApplication, const nsACString& aURI)
|
||||
+ {
|
||||
+ nsCOMPtr<nsIMutableArray> command = do_CreateInstance( NS_ARRAY_CONTRACTID );
|
||||
+ if (!command)
|
||||
@ -1503,7 +1590,7 @@ new file mode 100644
|
||||
+ }
|
||||
+
|
||||
+NS_IMETHODIMP
|
||||
+nsKDEShellService::GetDefaultFeedReader(nsILocalFile** _retval)
|
||||
+nsKDEShellService::GetDefaultFeedReader(nsIFile** _retval)
|
||||
+ {
|
||||
+ *_retval = nsnull;
|
||||
+
|
||||
@ -1537,7 +1624,7 @@ new file mode 100644
|
||||
+ return NS_ERROR_FAILURE;
|
||||
+
|
||||
+ nsresult rv;
|
||||
+ nsCOMPtr<nsILocalFile> defaultReader =
|
||||
+ nsCOMPtr<nsIFile> defaultReader =
|
||||
+ do_CreateInstance("@mozilla.org/file/local;1", &rv);
|
||||
+ NS_ENSURE_SUCCESS(rv, rv);
|
||||
+
|
||||
@ -1727,8 +1814,8 @@ new file mode 100644
|
||||
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
|
||||
@@ -520,18 +520,20 @@
|
||||
@BINPATH@/@PREF_DIR@/services-aitc.js
|
||||
@@ -558,18 +558,20 @@
|
||||
@BINPATH@/@PREF_DIR@/services-sync.js
|
||||
#endif
|
||||
@BINPATH@/greprefs.js
|
||||
@BINPATH@/defaults/autoconfig/platform.js
|
||||
|
@ -1,12 +1,12 @@
|
||||
# HG changeset patch
|
||||
# User Wolfgang Rosenauer <wr@rosenauer.org>
|
||||
# Parent 2f0c475e3ea9ba2309ab4ff7debb8bd0d6850a14
|
||||
# Parent 5c446cfb862fdb6685634dbeea9bff31fa19fc3e
|
||||
Add searchplugins to chrome packaging for proper localization
|
||||
|
||||
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
|
||||
@@ -332,16 +332,20 @@ pref("browser.download.useToolkitUI", tr
|
||||
@@ -327,16 +327,20 @@ pref("browser.download.useToolkitUI", fa
|
||||
pref("browser.download.panel.removeFinishedDownloads", false);
|
||||
|
||||
// search engines URL
|
||||
@ -112,4 +112,4 @@ diff --git a/browser/locales/jar.mn b/browser/locales/jar.mn
|
||||
locale/pdfviewer/viewer.properties (%pdfviewer/viewer.properties)
|
||||
locale/pdfviewer/chrome.properties (%pdfviewer/chrome.properties)
|
||||
#ifdef MOZ_WEBAPP_RUNTIME
|
||||
% locale webapprt @AB_CD@ %locale/webapprt/
|
||||
../webapprt/chrome/@AB_CD@.jar:
|
||||
|
1
firefox.js
Normal file
1
firefox.js
Normal file
@ -0,0 +1 @@
|
||||
pref("browser.preferences.instantApply", true);
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:0c758deb9816f80476bc5660ec3c833ef1414c37300d864a6093629a0394030d
|
||||
size 49787598
|
3
l10n-16.0.tar.bz2
Normal file
3
l10n-16.0.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a94a1191c731677af03b779b9190162ea601386f63d75f70535289b4a689d491
|
||||
size 52087229
|
@ -1,46 +0,0 @@
|
||||
# HG changeset patch
|
||||
# User Wolfgang Rosenauer <wr@rosenauer.org>
|
||||
# Parent 07bb4ecfd6d6cc16360e7a32ee10b885d523f20d
|
||||
Bug 762780 - crashreporter restart command should support MOZ_APP_LAUNCHER
|
||||
|
||||
diff --git a/toolkit/crashreporter/nsExceptionHandler.cpp b/toolkit/crashreporter/nsExceptionHandler.cpp
|
||||
--- a/toolkit/crashreporter/nsExceptionHandler.cpp
|
||||
+++ b/toolkit/crashreporter/nsExceptionHandler.cpp
|
||||
@@ -1360,32 +1360,25 @@ nsresult
|
||||
SetRestartArgs(int argc, char** argv)
|
||||
{
|
||||
if (!gExceptionHandler)
|
||||
return NS_OK;
|
||||
|
||||
int i;
|
||||
nsCAutoString envVar;
|
||||
char *env;
|
||||
+ char *argv1 = getenv("MOZ_APP_LAUNCHER");
|
||||
for (i = 0; i < argc; i++) {
|
||||
envVar = "MOZ_CRASHREPORTER_RESTART_ARG_";
|
||||
envVar.AppendInt(i);
|
||||
envVar += "=";
|
||||
-#if defined(XP_UNIX) && !defined(XP_MACOSX)
|
||||
- // we'd like to run the script around the binary
|
||||
- // instead of the binary itself, so remove the -bin
|
||||
- // if it exists on the first argument
|
||||
- int arg_len = 0;
|
||||
- if (i == 0 &&
|
||||
- (arg_len = strlen(argv[i])) > 4 &&
|
||||
- strcmp(argv[i] + arg_len - 4, "-bin") == 0) {
|
||||
- envVar.Append(argv[i], arg_len - 4);
|
||||
- } else
|
||||
-#endif
|
||||
- {
|
||||
+ if (argv1 && i == 0) {
|
||||
+ // Is there a request to suppress default binary launcher?
|
||||
+ envVar += argv1;
|
||||
+ } else {
|
||||
envVar += argv[i];
|
||||
}
|
||||
|
||||
// PR_SetEnv() wants the string to be available for the lifetime
|
||||
// of the app, so dup it here
|
||||
env = ToNewCString(envVar);
|
||||
if (!env)
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
566
mozilla-gstreamer-760140.patch
Normal file
566
mozilla-gstreamer-760140.patch
Normal file
@ -0,0 +1,566 @@
|
||||
From: Alessandro Decina <alessandro.d@gmail.com>
|
||||
Bug 760140 - Query the GstRegistry for the required demuxers/decoders from canPlayType
|
||||
|
||||
diff --git a/content/base/src/nsContentUtils.cpp b/content/base/src/nsContentUtils.cpp
|
||||
--- a/content/base/src/nsContentUtils.cpp
|
||||
+++ b/content/base/src/nsContentUtils.cpp
|
||||
@@ -137,16 +137,19 @@ static NS_DEFINE_CID(kXTFServiceCID, NS_
|
||||
#include "xpcprivate.h" // nsXPConnect
|
||||
#include "nsScriptSecurityManager.h"
|
||||
#include "nsIChannelPolicy.h"
|
||||
#include "nsChannelPolicy.h"
|
||||
#include "nsIContentSecurityPolicy.h"
|
||||
#include "nsContentDLF.h"
|
||||
#ifdef MOZ_MEDIA
|
||||
#include "nsHTMLMediaElement.h"
|
||||
+#ifdef MOZ_GSTREAMER
|
||||
+#include "nsGStreamerDecoder.h"
|
||||
+#endif
|
||||
#endif
|
||||
#include "nsDOMTouchEvent.h"
|
||||
#include "nsIContentViewer.h"
|
||||
#include "nsIObjectLoadingContent.h"
|
||||
#include "nsCCUncollectableMarker.h"
|
||||
#include "mozilla/Base64.h"
|
||||
#include "mozilla/Preferences.h"
|
||||
#include "nsDOMMutationObserver.h"
|
||||
@@ -6511,26 +6514,23 @@ nsContentUtils::FindInternalContentViewe
|
||||
}
|
||||
return docFactory.forget();
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef MOZ_GSTREAMER
|
||||
- if (nsHTMLMediaElement::IsH264Enabled()) {
|
||||
- for (unsigned int i = 0; i < ArrayLength(nsHTMLMediaElement::gH264Types); ++i) {
|
||||
- const char* type = nsHTMLMediaElement::gH264Types[i];
|
||||
- if (!strcmp(aType, type)) {
|
||||
- docFactory = do_GetService("@mozilla.org/content/document-loader-factory;1");
|
||||
- if (docFactory && aLoaderType) {
|
||||
- *aLoaderType = TYPE_CONTENT;
|
||||
- }
|
||||
- return docFactory.forget();
|
||||
+ if (nsHTMLMediaElement::IsGStreamerEnabled()) {
|
||||
+ if (nsGStreamerDecoder::CanHandleMediaType(aType, NULL)) {
|
||||
+ docFactory = do_GetService("@mozilla.org/content/document-loader-factory;1");
|
||||
+ if (docFactory && aLoaderType) {
|
||||
+ *aLoaderType = TYPE_CONTENT;
|
||||
}
|
||||
+ return docFactory.forget();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#endif // MOZ_MEDIA
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
diff --git a/content/html/content/public/nsHTMLMediaElement.h b/content/html/content/public/nsHTMLMediaElement.h
|
||||
--- a/content/html/content/public/nsHTMLMediaElement.h
|
||||
+++ b/content/html/content/public/nsHTMLMediaElement.h
|
||||
@@ -250,17 +250,19 @@ public:
|
||||
void UpdateMediaSize(nsIntSize size);
|
||||
|
||||
// Returns the CanPlayStatus indicating if we can handle this
|
||||
// MIME type. The MIME type should not include the codecs parameter.
|
||||
// If it returns anything other than CANPLAY_NO then it also
|
||||
// returns a null-terminated list of supported codecs
|
||||
// in *aSupportedCodecs. This list should not be freed, it is static data.
|
||||
static CanPlayStatus CanHandleMediaType(const char* aMIMEType,
|
||||
- char const *const ** aSupportedCodecs);
|
||||
+ const char* aCodecs,
|
||||
+ char const *const ** aSupportedCodecs,
|
||||
+ bool* aCheckSupportedCodecs);
|
||||
|
||||
// Returns the CanPlayStatus indicating if we can handle the
|
||||
// full MIME type including the optional codecs parameter.
|
||||
static CanPlayStatus GetCanPlay(const nsAString& aType);
|
||||
|
||||
// Returns true if we should handle this MIME type when it appears
|
||||
// as an <object> or as a toplevel page. If, in practice, our support
|
||||
// for the type is more limited than appears in the wild, we should return
|
||||
@@ -290,20 +292,17 @@ public:
|
||||
#ifdef MOZ_WEBM
|
||||
static bool IsWebMEnabled();
|
||||
static bool IsWebMType(const nsACString& aType);
|
||||
static const char gWebMTypes[2][17];
|
||||
static char const *const gWebMCodecs[4];
|
||||
#endif
|
||||
|
||||
#ifdef MOZ_GSTREAMER
|
||||
- static bool IsH264Enabled();
|
||||
- static bool IsH264Type(const nsACString& aType);
|
||||
- static const char gH264Types[3][17];
|
||||
- static char const *const gH264Codecs[7];
|
||||
+ static bool IsGStreamerEnabled();
|
||||
#endif
|
||||
|
||||
#ifdef MOZ_MEDIA_PLUGINS
|
||||
static bool IsMediaPluginsEnabled();
|
||||
static bool IsMediaPluginsType(const nsACString& aType);
|
||||
#endif
|
||||
|
||||
/**
|
||||
diff --git a/content/html/content/src/nsHTMLMediaElement.cpp b/content/html/content/src/nsHTMLMediaElement.cpp
|
||||
--- a/content/html/content/src/nsHTMLMediaElement.cpp
|
||||
+++ b/content/html/content/src/nsHTMLMediaElement.cpp
|
||||
@@ -2070,68 +2070,40 @@ nsHTMLMediaElement::IsWebMType(const nsA
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef MOZ_GSTREAMER
|
||||
-const char nsHTMLMediaElement::gH264Types[3][17] = {
|
||||
- "video/mp4",
|
||||
- "video/3gpp",
|
||||
- "video/quicktime",
|
||||
-};
|
||||
-
|
||||
-char const *const nsHTMLMediaElement::gH264Codecs[7] = {
|
||||
- "avc1.42E01E",
|
||||
- "avc1.42001E",
|
||||
- "avc1.58A01E",
|
||||
- "avc1.4D401E",
|
||||
- "avc1.64001E",
|
||||
- "mp4a.40.2",
|
||||
- nsnull
|
||||
-};
|
||||
-
|
||||
bool
|
||||
-nsHTMLMediaElement::IsH264Enabled()
|
||||
+nsHTMLMediaElement::IsGStreamerEnabled()
|
||||
{
|
||||
- return Preferences::GetBool("media.h264.enabled");
|
||||
-}
|
||||
-
|
||||
-bool
|
||||
-nsHTMLMediaElement::IsH264Type(const nsACString& aType)
|
||||
-{
|
||||
- if (!IsH264Enabled()) {
|
||||
- return false;
|
||||
- }
|
||||
-
|
||||
- for (PRUint32 i = 0; i < ArrayLength(gH264Types); ++i) {
|
||||
- if (aType.EqualsASCII(gH264Types[i])) {
|
||||
- return true;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- return false;
|
||||
+ return Preferences::GetBool("media.gstreamer.enabled");
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef MOZ_MEDIA_PLUGINS
|
||||
bool
|
||||
nsHTMLMediaElement::IsMediaPluginsEnabled()
|
||||
{
|
||||
return Preferences::GetBool("media.plugins.enabled");
|
||||
}
|
||||
#endif
|
||||
|
||||
/* static */
|
||||
nsHTMLMediaElement::CanPlayStatus
|
||||
nsHTMLMediaElement::CanHandleMediaType(const char* aMIMEType,
|
||||
- char const *const ** aCodecList)
|
||||
+ const char *aCodecs,
|
||||
+ char const *const ** aCodecList,
|
||||
+ bool* aCheckCodecList)
|
||||
{
|
||||
+ if (aCheckCodecList)
|
||||
+ *aCheckCodecList = true;
|
||||
#ifdef MOZ_RAW
|
||||
if (IsRawType(nsDependentCString(aMIMEType))) {
|
||||
*aCodecList = gRawCodecs;
|
||||
return CANPLAY_MAYBE;
|
||||
}
|
||||
#endif
|
||||
#ifdef MOZ_OGG
|
||||
if (IsOggType(nsDependentCString(aMIMEType))) {
|
||||
@@ -2148,20 +2120,22 @@ nsHTMLMediaElement::CanHandleMediaType(c
|
||||
#ifdef MOZ_WEBM
|
||||
if (IsWebMType(nsDependentCString(aMIMEType))) {
|
||||
*aCodecList = gWebMCodecs;
|
||||
return CANPLAY_YES;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef MOZ_GSTREAMER
|
||||
- if (IsH264Type(nsDependentCString(aMIMEType))) {
|
||||
- *aCodecList = gH264Codecs;
|
||||
- return CANPLAY_MAYBE;
|
||||
- }
|
||||
+ if (aCheckCodecList)
|
||||
+ *aCheckCodecList = false;
|
||||
+ if (aCodecList)
|
||||
+ *aCodecList = NULL;
|
||||
+ if (nsGStreamerDecoder::CanHandleMediaType(aMIMEType, aCodecs))
|
||||
+ return CANPLAY_YES;
|
||||
#endif
|
||||
#ifdef MOZ_MEDIA_PLUGINS
|
||||
if (GetMediaPluginHost()->FindDecoder(nsDependentCString(aMIMEType), aCodecList))
|
||||
return CANPLAY_MAYBE;
|
||||
#endif
|
||||
return CANPLAY_NO;
|
||||
}
|
||||
|
||||
@@ -2176,17 +2150,17 @@ bool nsHTMLMediaElement::ShouldHandleMed
|
||||
if (IsOggType(nsDependentCString(aMIMEType)))
|
||||
return true;
|
||||
#endif
|
||||
#ifdef MOZ_WEBM
|
||||
if (IsWebMType(nsDependentCString(aMIMEType)))
|
||||
return true;
|
||||
#endif
|
||||
#ifdef MOZ_GSTREAMER
|
||||
- if (IsH264Type(nsDependentCString(aMIMEType)))
|
||||
+ if (nsGStreamerDecoder::CanHandleMediaType(aMIMEType, NULL))
|
||||
return true;
|
||||
#endif
|
||||
#ifdef MOZ_MEDIA_PLUGINS
|
||||
if (GetMediaPluginHost()->FindDecoder(nsDependentCString(aMIMEType), NULL))
|
||||
return true;
|
||||
#endif
|
||||
// We should not return true for Wave types, since there are some
|
||||
// Wave codecs actually in use in the wild that we don't support, and
|
||||
@@ -2212,26 +2186,31 @@ nsHTMLMediaElement::GetCanPlay(const nsA
|
||||
{
|
||||
nsContentTypeParser parser(aType);
|
||||
nsAutoString mimeType;
|
||||
nsresult rv = parser.GetType(mimeType);
|
||||
if (NS_FAILED(rv))
|
||||
return CANPLAY_NO;
|
||||
|
||||
NS_ConvertUTF16toUTF8 mimeTypeUTF8(mimeType);
|
||||
+ nsAutoString codecs;
|
||||
+ rv = parser.GetParameter("codecs", codecs);
|
||||
+ NS_ConvertUTF16toUTF8 codecsUTF8(codecs);
|
||||
char const *const * supportedCodecs;
|
||||
+ bool checkSupportedCodecs = true;
|
||||
CanPlayStatus status = CanHandleMediaType(mimeTypeUTF8.get(),
|
||||
- &supportedCodecs);
|
||||
+ codecsUTF8.get(),
|
||||
+ &supportedCodecs,
|
||||
+ &checkSupportedCodecs);
|
||||
if (status == CANPLAY_NO)
|
||||
return CANPLAY_NO;
|
||||
|
||||
- nsAutoString codecs;
|
||||
- rv = parser.GetParameter("codecs", codecs);
|
||||
- if (NS_FAILED(rv)) {
|
||||
- // Parameter not found or whatever
|
||||
+ if (codecs.IsEmpty() || !checkSupportedCodecs) {
|
||||
+ /* no codecs to check for or they were already checked in CanHandleMediaType
|
||||
+ * above */
|
||||
return status;
|
||||
}
|
||||
|
||||
CanPlayStatus result = CANPLAY_YES;
|
||||
// See http://www.rfc-editor.org/rfc/rfc4281.txt for the description
|
||||
// of the 'codecs' parameter
|
||||
nsCharSeparatedTokenizer tokenizer(codecs, ',');
|
||||
bool expectMoreTokens = false;
|
||||
@@ -2309,17 +2288,19 @@ nsHTMLMediaElement::CreateDecoder(const
|
||||
nsRefPtr<nsWebMDecoder> decoder = new nsWebMDecoder();
|
||||
if (decoder->Init(this)) {
|
||||
return decoder.forget();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef MOZ_GSTREAMER
|
||||
- if (IsH264Type(aType)) {
|
||||
+ const char *type;
|
||||
+ NS_CStringGetData(aType, &type, NULL);
|
||||
+ if (nsGStreamerDecoder::CanHandleMediaType(type, NULL)) {
|
||||
nsRefPtr<nsGStreamerDecoder> decoder = new nsGStreamerDecoder();
|
||||
if (decoder->Init(this)) {
|
||||
return decoder.forget();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
return nsnull;
|
||||
}
|
||||
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
|
||||
@@ -16,16 +16,17 @@ LIBXUL_LIBRARY = 1
|
||||
|
||||
EXPORTS += \
|
||||
nsGStreamerDecoder.h \
|
||||
$(NULL)
|
||||
|
||||
CPPSRCS = \
|
||||
nsGStreamerReader.cpp \
|
||||
nsGStreamerDecoder.cpp \
|
||||
+ nsGStreamerFormatHelper.cpp \
|
||||
$(NULL)
|
||||
|
||||
FORCE_STATIC_LIB = 1
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
||||
CFLAGS += $(GSTREAMER_CFLAGS)
|
||||
CXXFLAGS += $(GSTREAMER_CFLAGS)
|
||||
diff --git a/content/media/gstreamer/nsGStreamerDecoder.cpp b/content/media/gstreamer/nsGStreamerDecoder.cpp
|
||||
--- a/content/media/gstreamer/nsGStreamerDecoder.cpp
|
||||
+++ b/content/media/gstreamer/nsGStreamerDecoder.cpp
|
||||
@@ -2,13 +2,19 @@
|
||||
/* vim:set ts=2 sw=2 sts=2 et cindent: */
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#include "nsBuiltinDecoderStateMachine.h"
|
||||
#include "nsGStreamerReader.h"
|
||||
#include "nsGStreamerDecoder.h"
|
||||
+#include "nsGStreamerFormatHelper.h"
|
||||
|
||||
nsDecoderStateMachine* nsGStreamerDecoder::CreateStateMachine()
|
||||
{
|
||||
return new nsBuiltinDecoderStateMachine(this, new nsGStreamerReader(this));
|
||||
}
|
||||
+
|
||||
+bool nsGStreamerDecoder::CanHandleMediaType(const char* aMIMEType,
|
||||
+ const char* aCodecs) {
|
||||
+ return nsGStreamerFormatHelper::Instance()->CanHandleMediaType(aMIMEType, aCodecs);
|
||||
+}
|
||||
diff --git a/content/media/gstreamer/nsGStreamerDecoder.h b/content/media/gstreamer/nsGStreamerDecoder.h
|
||||
--- a/content/media/gstreamer/nsGStreamerDecoder.h
|
||||
+++ b/content/media/gstreamer/nsGStreamerDecoder.h
|
||||
@@ -9,11 +9,12 @@
|
||||
|
||||
#include "nsBuiltinDecoder.h"
|
||||
|
||||
class nsGStreamerDecoder : public nsBuiltinDecoder
|
||||
{
|
||||
public:
|
||||
virtual nsMediaDecoder* Clone() { return new nsGStreamerDecoder(); }
|
||||
virtual nsDecoderStateMachine* CreateStateMachine();
|
||||
+ static bool CanHandleMediaType(const char* aMIMEType, const char* aCodecs);
|
||||
};
|
||||
|
||||
#endif
|
||||
diff --git a/content/media/gstreamer/nsGStreamerFormatHelper.cpp b/content/media/gstreamer/nsGStreamerFormatHelper.cpp
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/content/media/gstreamer/nsGStreamerFormatHelper.cpp
|
||||
@@ -0,0 +1,149 @@
|
||||
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
+/* vim:set ts=2 sw=2 sts=2 et cindent: */
|
||||
+/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
+ * You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
+
|
||||
+#include "nsGStreamerFormatHelper.h"
|
||||
+#include "nsCharSeparatedTokenizer.h"
|
||||
+#include "nsXPCOMStrings.h"
|
||||
+
|
||||
+#define ENTRY_FORMAT(entry) entry[0]
|
||||
+#define ENTRY_CAPS(entry) entry[1]
|
||||
+
|
||||
+nsGStreamerFormatHelper* nsGStreamerFormatHelper::gInstance = NULL;
|
||||
+
|
||||
+nsGStreamerFormatHelper *nsGStreamerFormatHelper::Instance() {
|
||||
+ if (!gInstance) {
|
||||
+ gst_init(NULL, NULL);
|
||||
+ gInstance = new nsGStreamerFormatHelper();
|
||||
+ }
|
||||
+
|
||||
+ return gInstance;
|
||||
+}
|
||||
+
|
||||
+nsGStreamerFormatHelper::nsGStreamerFormatHelper()
|
||||
+ : mFactories(NULL),
|
||||
+ mCookie(0)
|
||||
+{
|
||||
+ const char *containers[3][2] = {
|
||||
+ {"video/mp4", "video/quicktime"},
|
||||
+ {"audio/mp4", "audio/mpeg, mpegversion=(int)4"},
|
||||
+ {"audio/mpeg", "audio/mpeg, mpegversion=(int)1"},
|
||||
+ };
|
||||
+ memcpy(mContainers, containers, sizeof(containers));
|
||||
+
|
||||
+ const char *codecs[7][2] = {
|
||||
+ {"avc1.42E01E", "video/x-h264"},
|
||||
+ {"avc1.42001E", "video/x-h264"},
|
||||
+ {"avc1.58A01E", "video/x-h264"},
|
||||
+ {"avc1.4D401E", "video/x-h264"},
|
||||
+ {"avc1.64001E", "video/x-h264"},
|
||||
+ {"mp4a.40.2", "audio/mpeg, mpegversion=(int)4"},
|
||||
+ {"mp3", "audio/mpeg, mpegversion=(int)1"},
|
||||
+ };
|
||||
+ memcpy(mCodecs, codecs, sizeof(codecs));
|
||||
+}
|
||||
+
|
||||
+nsGStreamerFormatHelper::~nsGStreamerFormatHelper() {
|
||||
+ if (mFactories)
|
||||
+ g_list_free(mFactories);
|
||||
+}
|
||||
+
|
||||
+bool nsGStreamerFormatHelper::CanHandleMediaType(const char* aMIMEType,
|
||||
+ const char *aCodecs) {
|
||||
+ GstCaps *caps = ConvertFormatsToCaps(aMIMEType, aCodecs);
|
||||
+ if (!caps) {
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+ bool ret = HaveElementsToProcessCaps(caps);
|
||||
+ gst_caps_unref(caps);
|
||||
+
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
+GstCaps *nsGStreamerFormatHelper::ConvertFormatsToCaps(const char *aMIMEType,
|
||||
+ const char *aCodecs) {
|
||||
+ unsigned int i;
|
||||
+
|
||||
+ /* convert aMIMEType to gst container caps */
|
||||
+ const char *capsString = NULL;
|
||||
+ for (i = 0; i < G_N_ELEMENTS(mContainers); i++) {
|
||||
+ if (!strcmp(ENTRY_FORMAT(mContainers[i]), aMIMEType)) {
|
||||
+ capsString = ENTRY_CAPS(mContainers[i]);
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (!capsString) {
|
||||
+ /* we couldn't find any matching caps */
|
||||
+ return NULL;
|
||||
+ }
|
||||
+
|
||||
+ GstCaps *caps = gst_caps_from_string(capsString);
|
||||
+ /* container only */
|
||||
+ if (!aCodecs) {
|
||||
+ return caps;
|
||||
+ }
|
||||
+
|
||||
+ nsDependentCSubstring codecs(aCodecs, strlen(aCodecs));
|
||||
+ nsCCharSeparatedTokenizer tokenizer(codecs, ',');
|
||||
+ while (tokenizer.hasMoreTokens()) {
|
||||
+ const nsCSubstring& codec = tokenizer.nextToken();
|
||||
+ capsString = NULL;
|
||||
+
|
||||
+ for (i = 0; i < G_N_ELEMENTS(mCodecs); i++) {
|
||||
+ if (codec.Equals(ENTRY_FORMAT(mCodecs[i]))) {
|
||||
+ capsString = ENTRY_CAPS(mCodecs[i]);
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (!capsString) {
|
||||
+ gst_caps_unref(caps);
|
||||
+ return NULL;
|
||||
+ }
|
||||
+
|
||||
+ GstCaps *tmp = gst_caps_from_string(capsString);
|
||||
+ /* appends and frees tmp */
|
||||
+ gst_caps_append(caps, tmp);
|
||||
+ }
|
||||
+
|
||||
+ return caps;
|
||||
+}
|
||||
+
|
||||
+bool nsGStreamerFormatHelper::HaveElementsToProcessCaps(GstCaps *aCaps) {
|
||||
+
|
||||
+ GList *factories = GetFactories();
|
||||
+
|
||||
+ GList *list;
|
||||
+ /* here aCaps contains [containerCaps, [codecCaps1, [codecCaps2, ...]]] so process
|
||||
+ * caps structures individually as we want one element for _each_
|
||||
+ * structure */
|
||||
+ for (unsigned int i = 0; i < gst_caps_get_size(aCaps); i++) {
|
||||
+ GstStructure *s = gst_caps_get_structure(aCaps, i);
|
||||
+ GstCaps *caps = gst_caps_new_full(gst_structure_copy(s), NULL);
|
||||
+ list = gst_element_factory_list_filter (factories, caps, GST_PAD_SINK, FALSE);
|
||||
+ gst_caps_unref(caps);
|
||||
+ if (!list) {
|
||||
+ return false;
|
||||
+ }
|
||||
+ g_list_free(list);
|
||||
+ }
|
||||
+
|
||||
+ return true;
|
||||
+}
|
||||
+
|
||||
+GList * nsGStreamerFormatHelper::GetFactories() {
|
||||
+ uint32_t cookie = gst_default_registry_get_feature_list_cookie ();
|
||||
+ if (cookie != mCookie) {
|
||||
+ g_list_free(mFactories);
|
||||
+ mFactories = gst_element_factory_list_get_elements
|
||||
+ (GST_ELEMENT_FACTORY_TYPE_DEMUXER | GST_ELEMENT_FACTORY_TYPE_DECODER,
|
||||
+ GST_RANK_MARGINAL);
|
||||
+ mCookie = cookie;
|
||||
+ }
|
||||
+
|
||||
+ return mFactories;
|
||||
+}
|
||||
diff --git a/content/media/gstreamer/nsGStreamerFormatHelper.h b/content/media/gstreamer/nsGStreamerFormatHelper.h
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/content/media/gstreamer/nsGStreamerFormatHelper.h
|
||||
@@ -0,0 +1,37 @@
|
||||
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
+/* vim:set ts=2 sw=2 sts=2 et cindent: */
|
||||
+/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
+ * You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
+
|
||||
+#if !defined(nsGStreamerFormatHelper_h_)
|
||||
+#define nsGStreamerFormatHelper_h_
|
||||
+
|
||||
+#include <gst/gst.h>
|
||||
+#include <mozilla/Types.h>
|
||||
+
|
||||
+class nsGStreamerFormatHelper {
|
||||
+ public:
|
||||
+ static nsGStreamerFormatHelper *Instance();
|
||||
+ ~nsGStreamerFormatHelper();
|
||||
+
|
||||
+ bool CanHandleMediaType(const char *aMIMEType,
|
||||
+ const char *aCodecs);
|
||||
+
|
||||
+ private:
|
||||
+ nsGStreamerFormatHelper();
|
||||
+ GstCaps *ConvertFormatsToCaps(const char *aMIMEType,
|
||||
+ const char *aCodecs);
|
||||
+ char * const *CodecListFromCaps(GstCaps *aCaps);
|
||||
+ bool HaveElementsToProcessCaps(GstCaps *aCaps);
|
||||
+ GList *GetFactories();
|
||||
+
|
||||
+ static nsGStreamerFormatHelper *gInstance;
|
||||
+
|
||||
+ const char *mContainers[3][2];
|
||||
+ const char *mCodecs[7][2];
|
||||
+ GList *mFactories;
|
||||
+ uint32_t mCookie;
|
||||
+};
|
||||
+
|
||||
+#endif
|
||||
diff --git a/modules/libpref/src/init/all.js b/modules/libpref/src/init/all.js
|
||||
--- a/modules/libpref/src/init/all.js
|
||||
+++ b/modules/libpref/src/init/all.js
|
||||
@@ -159,17 +159,17 @@ pref("media.opus.enabled", true);
|
||||
#endif
|
||||
#ifdef MOZ_WAVE
|
||||
pref("media.wave.enabled", true);
|
||||
#endif
|
||||
#ifdef MOZ_WEBM
|
||||
pref("media.webm.enabled", true);
|
||||
#endif
|
||||
#ifdef MOZ_GSTREAMER
|
||||
-pref("media.h264.enabled", true);
|
||||
+pref("media.gstreamer.enabled", true);
|
||||
#endif
|
||||
|
||||
|
||||
// Whether to autostart a media element with an |autoplay| attribute
|
||||
pref("media.autoplay.enabled", true);
|
||||
|
||||
// 0 = Off, 1 = Full, 2 = Tagged Images Only.
|
||||
// See eCMSMode in gfx/thebes/gfxPlatform.h
|
@ -1,14 +1,12 @@
|
||||
# HG changeset patch
|
||||
# Parent a9a49c20c491011f981b6c110aadfa6a01a1431e
|
||||
# Parent e4b87e710b1a5f0bb7db058911bc163b4bf30227
|
||||
# User Wolfgang Rosenauer <wr@rosenauer.org>
|
||||
Bug 761030 - Crash with HTML 5 video with gstreamer enabled (TM: 16)
|
||||
|
||||
No Bug - use GStreamer _only_ for MP4 (not WebM/OGG)
|
||||
|
||||
diff --git a/content/html/content/src/nsHTMLMediaElement.cpp b/content/html/content/src/nsHTMLMediaElement.cpp
|
||||
--- a/content/html/content/src/nsHTMLMediaElement.cpp
|
||||
+++ b/content/html/content/src/nsHTMLMediaElement.cpp
|
||||
@@ -2278,21 +2278,17 @@ nsHTMLMediaElement::CreateDecoder(const
|
||||
@@ -2277,21 +2277,17 @@ nsHTMLMediaElement::CreateDecoder(const
|
||||
nsRefPtr<nsRawDecoder> decoder = new nsRawDecoder();
|
||||
if (decoder->Init(this)) {
|
||||
return decoder.forget();
|
||||
@ -30,7 +28,7 @@ diff --git a/content/html/content/src/nsHTMLMediaElement.cpp b/content/html/cont
|
||||
#ifdef MOZ_WAVE
|
||||
if (IsWaveType(aType)) {
|
||||
nsRefPtr<nsWaveDecoder> decoder = new nsWaveDecoder();
|
||||
@@ -2306,21 +2302,17 @@ nsHTMLMediaElement::CreateDecoder(const
|
||||
@@ -2305,21 +2301,17 @@ nsHTMLMediaElement::CreateDecoder(const
|
||||
nsRefPtr<nsMediaPluginDecoder> decoder = new nsMediaPluginDecoder(aType);
|
||||
if (decoder->Init(this)) {
|
||||
return decoder.forget();
|
||||
@ -52,25 +50,3 @@ diff --git a/content/html/content/src/nsHTMLMediaElement.cpp b/content/html/cont
|
||||
|
||||
#ifdef MOZ_GSTREAMER
|
||||
if (IsH264Type(aType)) {
|
||||
diff --git a/content/media/gstreamer/nsGStreamerReader.cpp b/content/media/gstreamer/nsGStreamerReader.cpp
|
||||
--- a/content/media/gstreamer/nsGStreamerReader.cpp
|
||||
+++ b/content/media/gstreamer/nsGStreamerReader.cpp
|
||||
@@ -447,16 +447,18 @@ bool nsGStreamerReader::DecodeVideoFrame
|
||||
for(int i = 0; i < 3; i++) {
|
||||
b.mPlanes[i].mData = data + gst_video_format_get_component_offset(format, i,
|
||||
width, height);
|
||||
b.mPlanes[i].mStride = gst_video_format_get_row_stride(format, i, width);
|
||||
b.mPlanes[i].mHeight = gst_video_format_get_component_height(format,
|
||||
i, height);
|
||||
b.mPlanes[i].mWidth = gst_video_format_get_component_width(format,
|
||||
i, width);
|
||||
+ b.mPlanes[i].mOffset = 0;
|
||||
+ b.mPlanes[i].mSkip = 0;
|
||||
}
|
||||
|
||||
bool isKeyframe = !GST_BUFFER_FLAG_IS_SET(buffer,
|
||||
GST_BUFFER_FLAG_DELTA_UNIT);
|
||||
/* XXX ? */
|
||||
PRInt64 offset = 0;
|
||||
VideoData *video = VideoData::Create(mInfo,
|
||||
mDecoder->GetImageContainer(),
|
||||
|
@ -180,7 +180,7 @@ diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/compon
|
||||
#include "AndroidBridge.h"
|
||||
#endif
|
||||
|
||||
@@ -2236,16 +2240,25 @@ nsDownload::SetState(DownloadState aStat
|
||||
@@ -2233,16 +2237,25 @@ nsDownload::SetState(DownloadState aStat
|
||||
nsCOMPtr<nsIPrefBranch> pref(do_GetService(NS_PREFSERVICE_CONTRACTID));
|
||||
|
||||
// Master pref to control this function.
|
||||
@ -206,7 +206,7 @@ diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/compon
|
||||
PRInt64 goat = PR_Now() - mStartTime;
|
||||
showTaskbarAlert = goat > alertIntervalUSec;
|
||||
|
||||
@@ -2269,19 +2282,20 @@ nsDownload::SetState(DownloadState aStat
|
||||
@@ -2266,19 +2279,20 @@ nsDownload::SetState(DownloadState aStat
|
||||
// If downloads are automatically removed per the user's
|
||||
// retention policy, there's no reason to make the text clickable
|
||||
// because if it is, they'll click open the download manager and
|
||||
@ -232,39 +232,39 @@ diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn
|
||||
--- a/toolkit/content/jar.mn
|
||||
+++ b/toolkit/content/jar.mn
|
||||
@@ -45,29 +45,33 @@ toolkit.jar:
|
||||
*+ content/global/viewZoomOverlay.js (viewZoomOverlay.js)
|
||||
content/global/viewZoomOverlay.js (viewZoomOverlay.js)
|
||||
*+ content/global/bindings/autocomplete.xml (widgets/autocomplete.xml)
|
||||
*+ content/global/bindings/browser.xml (widgets/browser.xml)
|
||||
*+ content/global/bindings/button.xml (widgets/button.xml)
|
||||
*+ content/global/bindings/checkbox.xml (widgets/checkbox.xml)
|
||||
*+ content/global/bindings/colorpicker.xml (widgets/colorpicker.xml)
|
||||
*+ content/global/bindings/datetimepicker.xml (widgets/datetimepicker.xml)
|
||||
content/global/bindings/browser.xml (widgets/browser.xml)
|
||||
content/global/bindings/button.xml (widgets/button.xml)
|
||||
content/global/bindings/checkbox.xml (widgets/checkbox.xml)
|
||||
content/global/bindings/colorpicker.xml (widgets/colorpicker.xml)
|
||||
content/global/bindings/datetimepicker.xml (widgets/datetimepicker.xml)
|
||||
*+ content/global/bindings/dialog.xml (widgets/dialog.xml)
|
||||
+*+ content/global/bindings/dialog-kde.xml (widgets/dialog-kde.xml)
|
||||
+% override chrome://global/content/bindings/dialog.xml chrome://global/content/bindings/dialog-kde.xml desktop=kde
|
||||
*+ content/global/bindings/editor.xml (widgets/editor.xml)
|
||||
* content/global/bindings/expander.xml (widgets/expander.xml)
|
||||
content/global/bindings/editor.xml (widgets/editor.xml)
|
||||
content/global/bindings/expander.xml (widgets/expander.xml)
|
||||
* content/global/bindings/filefield.xml (widgets/filefield.xml)
|
||||
*+ content/global/bindings/findbar.xml (widgets/findbar.xml)
|
||||
*+ content/global/bindings/general.xml (widgets/general.xml)
|
||||
*+ content/global/bindings/groupbox.xml (widgets/groupbox.xml)
|
||||
content/global/bindings/general.xml (widgets/general.xml)
|
||||
content/global/bindings/groupbox.xml (widgets/groupbox.xml)
|
||||
*+ content/global/bindings/listbox.xml (widgets/listbox.xml)
|
||||
*+ content/global/bindings/menu.xml (widgets/menu.xml)
|
||||
*+ content/global/bindings/menulist.xml (widgets/menulist.xml)
|
||||
*+ content/global/bindings/notification.xml (widgets/notification.xml)
|
||||
*+ content/global/bindings/numberbox.xml (widgets/numberbox.xml)
|
||||
*+ content/global/bindings/popup.xml (widgets/popup.xml)
|
||||
content/global/bindings/menu.xml (widgets/menu.xml)
|
||||
content/global/bindings/menulist.xml (widgets/menulist.xml)
|
||||
content/global/bindings/notification.xml (widgets/notification.xml)
|
||||
content/global/bindings/numberbox.xml (widgets/numberbox.xml)
|
||||
content/global/bindings/popup.xml (widgets/popup.xml)
|
||||
*+ content/global/bindings/preferences.xml (widgets/preferences.xml)
|
||||
+*+ content/global/bindings/preferences-kde.xml (widgets/preferences-kde.xml)
|
||||
+% override chrome://global/content/bindings/preferences.xml chrome://global/content/bindings/preferences-kde.xml desktop=kde
|
||||
*+ content/global/bindings/progressmeter.xml (widgets/progressmeter.xml)
|
||||
*+ content/global/bindings/radio.xml (widgets/radio.xml)
|
||||
*+ content/global/bindings/resizer.xml (widgets/resizer.xml)
|
||||
*+ content/global/bindings/richlistbox.xml (widgets/richlistbox.xml)
|
||||
*+ content/global/bindings/scale.xml (widgets/scale.xml)
|
||||
*+ content/global/bindings/scrollbar.xml (widgets/scrollbar.xml)
|
||||
*+ content/global/bindings/scrollbox.xml (widgets/scrollbox.xml)
|
||||
*+ content/global/bindings/splitter.xml (widgets/splitter.xml)
|
||||
content/global/bindings/progressmeter.xml (widgets/progressmeter.xml)
|
||||
content/global/bindings/radio.xml (widgets/radio.xml)
|
||||
content/global/bindings/resizer.xml (widgets/resizer.xml)
|
||||
content/global/bindings/richlistbox.xml (widgets/richlistbox.xml)
|
||||
content/global/bindings/scale.xml (widgets/scale.xml)
|
||||
content/global/bindings/scrollbar.xml (widgets/scrollbar.xml)
|
||||
content/global/bindings/scrollbox.xml (widgets/scrollbox.xml)
|
||||
content/global/bindings/splitter.xml (widgets/splitter.xml)
|
||||
diff --git a/toolkit/content/widgets/dialog-kde.xml b/toolkit/content/widgets/dialog-kde.xml
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
@ -305,7 +305,7 @@ new file mode 100644
|
||||
+ pack="end">
|
||||
+ <xul:button dlgtype="help" class="dialog-button" hidden="true"/>
|
||||
+ <xul:button dlgtype="extra2" class="dialog-button" hidden="true"/>
|
||||
+ <xul:spacer anonid="spacer" flex="1"/>
|
||||
+ <xul:spacer anonid="spacer" flex="1" hidden="true"/>
|
||||
+ <xul:button dlgtype="accept" class="dialog-button" xbl:inherits="disabled=buttondisabledaccept"/>
|
||||
+ <xul:button dlgtype="extra1" class="dialog-button" hidden="true"/>
|
||||
+ <xul:button dlgtype="cancel" class="dialog-button"/>
|
||||
@ -1312,8 +1312,8 @@ new file mode 100644
|
||||
+ <xul:button dlgtype="accept" class="dialog-button" icon="accept"/>
|
||||
+#elif XP_UNIX
|
||||
+ pack="end">
|
||||
+ <xul:button dlgtype="help" class="dialog-button" hidden="true" icon="help"/>
|
||||
+ <xul:button dlgtype="extra2" class="dialog-button" hidden="true"/>
|
||||
+ <xul:button dlgtype="help" class="dialog-button" hidden="true" icon="help"/>
|
||||
+ <xul:button dlgtype="extra2" class="dialog-button" hidden="true"/>
|
||||
+ <xul:spacer anonid="spacer" flex="1"/>
|
||||
+ <xul:button dlgtype="accept" class="dialog-button" icon="accept"/>
|
||||
+ <xul:button dlgtype="extra1" class="dialog-button" hidden="true"/>
|
||||
@ -3227,7 +3227,7 @@ diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exth
|
||||
diff --git a/widget/gtk2/Makefile.in b/widget/gtk2/Makefile.in
|
||||
--- a/widget/gtk2/Makefile.in
|
||||
+++ b/widget/gtk2/Makefile.in
|
||||
@@ -104,11 +104,14 @@ DEFINES += -DCAIRO_GFX -DMOZ_APP_NAME='
|
||||
@@ -105,11 +105,14 @@ DEFINES += -DCAIRO_GFX -DMOZ_APP_NAME='
|
||||
|
||||
INCLUDES += \
|
||||
-I$(srcdir)/../xpwidgets \
|
||||
@ -3259,7 +3259,7 @@ diff --git a/widget/gtk2/nsFilePicker.cpp b/widget/gtk2/nsFilePicker.cpp
|
||||
#include "nsIFileURL.h"
|
||||
#include "nsIURI.h"
|
||||
#include "nsIWidget.h"
|
||||
#include "nsILocalFile.h"
|
||||
#include "nsIFile.h"
|
||||
#include "nsIStringBundle.h"
|
||||
|
||||
#include "nsArrayEnumerator.h"
|
||||
@ -3281,7 +3281,7 @@ diff --git a/widget/gtk2/nsFilePicker.cpp b/widget/gtk2/nsFilePicker.cpp
|
||||
using namespace mozilla;
|
||||
|
||||
#define MAX_PREVIEW_SIZE 180
|
||||
@@ -253,17 +255,19 @@ nsFilePicker::AppendFilters(PRInt32 aFil
|
||||
@@ -252,17 +254,19 @@ nsFilePicker::AppendFilters(PRInt32 aFil
|
||||
return nsBaseFilePicker::AppendFilters(aFilterMask);
|
||||
}
|
||||
|
||||
@ -3302,7 +3302,7 @@ diff --git a/widget/gtk2/nsFilePicker.cpp b/widget/gtk2/nsFilePicker.cpp
|
||||
|
||||
mFilters.AppendElement(filter);
|
||||
mFilterNames.AppendElement(name);
|
||||
@@ -358,16 +362,19 @@ nsFilePicker::GetFiles(nsISimpleEnumerat
|
||||
@@ -357,16 +361,19 @@ nsFilePicker::GetFiles(nsISimpleEnumerat
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
@ -3322,7 +3322,7 @@ diff --git a/widget/gtk2/nsFilePicker.cpp b/widget/gtk2/nsFilePicker.cpp
|
||||
GtkFileChooserAction action = GetGtkFileChooserAction(mMode);
|
||||
const gchar *accept_button = (action == GTK_FILE_CHOOSER_ACTION_SAVE)
|
||||
? GTK_STOCK_SAVE : GTK_STOCK_OPEN;
|
||||
@@ -506,8 +513,234 @@ nsFilePicker::Show(PRInt16 *aReturn)
|
||||
@@ -505,8 +512,234 @@ nsFilePicker::Show(PRInt16 *aReturn)
|
||||
*aReturn = nsIFilePicker::returnCancel;
|
||||
break;
|
||||
}
|
||||
@ -3475,7 +3475,7 @@ diff --git a/widget/gtk2/nsFilePicker.cpp b/widget/gtk2/nsFilePicker.cpp
|
||||
+ i < count;
|
||||
+ ++i )
|
||||
+ {
|
||||
+ nsCOMPtr<nsILocalFile> localfile;
|
||||
+ nsCOMPtr<nsIFile> localfile;
|
||||
+ nsresult rv = NS_NewNativeLocalFile( output[ i ],
|
||||
+ PR_FALSE,
|
||||
+ getter_AddRefs(localfile));
|
||||
@ -3496,19 +3496,19 @@ diff --git a/widget/gtk2/nsFilePicker.cpp b/widget/gtk2/nsFilePicker.cpp
|
||||
+ }
|
||||
+ }
|
||||
+ // Remember last used directory.
|
||||
+ nsCOMPtr<nsILocalFile> file;
|
||||
+ nsCOMPtr<nsIFile> file;
|
||||
+ GetFile(getter_AddRefs(file));
|
||||
+ if (file) {
|
||||
+ nsCOMPtr<nsIFile> dir;
|
||||
+ file->GetParent(getter_AddRefs(dir));
|
||||
+ nsCOMPtr<nsILocalFile> localDir(do_QueryInterface(dir));
|
||||
+ nsCOMPtr<nsIFile> localDir(do_QueryInterface(dir));
|
||||
+ if (localDir) {
|
||||
+ localDir.swap(mPrevDisplayDirectory);
|
||||
+ }
|
||||
+ }
|
||||
+ if (mMode == nsIFilePicker::modeSave)
|
||||
+ {
|
||||
+ nsCOMPtr<nsILocalFile> file;
|
||||
+ nsCOMPtr<nsIFile> file;
|
||||
+ GetFile(getter_AddRefs(file));
|
||||
+ if (file)
|
||||
+ {
|
||||
@ -3568,7 +3568,7 @@ diff --git a/widget/gtk2/nsFilePicker.h b/widget/gtk2/nsFilePicker.h
|
||||
nsTArray<nsCString> mFilterNames;
|
||||
|
||||
private:
|
||||
static nsILocalFile *mPrevDisplayDirectory;
|
||||
static nsIFile *mPrevDisplayDirectory;
|
||||
+
|
||||
+ bool kdeRunning();
|
||||
+ bool getKdeRunning();
|
||||
@ -3749,13 +3749,13 @@ diff --git a/xpcom/io/Makefile.in b/xpcom/io/Makefile.in
|
||||
diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
|
||||
--- a/xpcom/io/nsLocalFileUnix.cpp
|
||||
+++ b/xpcom/io/nsLocalFileUnix.cpp
|
||||
@@ -48,16 +48,17 @@
|
||||
@@ -49,16 +49,17 @@
|
||||
#include "prproces.h"
|
||||
#include "nsIDirectoryEnumerator.h"
|
||||
#include "nsISimpleEnumerator.h"
|
||||
#include "private/pprio.h"
|
||||
|
||||
#ifdef MOZ_WIDGET_GTK2
|
||||
#ifdef MOZ_WIDGET_GTK
|
||||
#include "nsIGIOService.h"
|
||||
#include "nsIGnomeVFSService.h"
|
||||
+#include "nsKDEUtils.h"
|
||||
@ -3767,7 +3767,7 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
|
||||
#include "prmem.h"
|
||||
#include "plbase64.h"
|
||||
|
||||
@@ -1763,44 +1764,51 @@ nsLocalFile::SetPersistentDescriptor(con
|
||||
@@ -1760,44 +1761,51 @@ nsLocalFile::SetPersistentDescriptor(con
|
||||
return InitWithNativePath(aPersistentDescriptor);
|
||||
#endif
|
||||
}
|
||||
@ -3775,7 +3775,7 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
|
||||
NS_IMETHODIMP
|
||||
nsLocalFile::Reveal()
|
||||
{
|
||||
#ifdef MOZ_WIDGET_GTK2
|
||||
#ifdef MOZ_WIDGET_GTK
|
||||
- nsCOMPtr<nsIGIOService> giovfs = do_GetService(NS_GIOSERVICE_CONTRACTID);
|
||||
- nsCOMPtr<nsIGnomeVFSService> gnomevfs = do_GetService(NS_GNOMEVFSSERVICE_CONTRACTID);
|
||||
- if (!giovfs && !gnomevfs)
|
||||
@ -3810,8 +3810,8 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
|
||||
+
|
||||
+ if(nsKDEUtils::kdeSupport()) {
|
||||
+ nsTArray<nsCString> command;
|
||||
+ command.AppendElement( NS_LITERAL_CSTRING("OPEN") );
|
||||
+ command.AppendElement( url );
|
||||
+ command.AppendElement( NS_LITERAL_CSTRING("REVEAL") );
|
||||
+ command.AppendElement( mPath );
|
||||
+ return nsKDEUtils::command( command ) ? NS_OK : NS_ERROR_FAILURE;
|
||||
+ }
|
||||
+
|
||||
@ -3833,7 +3833,7 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
|
||||
return rv;
|
||||
}
|
||||
return NS_ERROR_FAILURE;
|
||||
@@ -1826,16 +1834,23 @@ nsLocalFile::Launch()
|
||||
@@ -1823,16 +1831,23 @@ nsLocalFile::Launch()
|
||||
|
||||
if (nsnull == connection)
|
||||
return NS_ERROR_FAILURE;
|
||||
|
@ -1,12 +1,12 @@
|
||||
# HG changeset patch
|
||||
# User Petr Cerny <pcerny@novell.com>
|
||||
# Parent a843037ea4cee813a68dd529e7a503d1e40b81e4
|
||||
# Parent 4f5fe2278cd5cff898ad762457312f60a7e82a67
|
||||
Bug 634334 - call to the ntlm_auth helper fails
|
||||
|
||||
diff --git a/extensions/auth/nsAuthSambaNTLM.cpp b/extensions/auth/nsAuthSambaNTLM.cpp
|
||||
--- a/extensions/auth/nsAuthSambaNTLM.cpp
|
||||
+++ b/extensions/auth/nsAuthSambaNTLM.cpp
|
||||
@@ -200,17 +200,17 @@ static PRUint8* ExtractMessage(const nsA
|
||||
@@ -168,17 +168,17 @@ static PRUint8* ExtractMessage(const nsA
|
||||
nsresult
|
||||
nsAuthSambaNTLM::SpawnNTLMAuthHelper()
|
||||
{
|
||||
@ -14,14 +14,14 @@ diff --git a/extensions/auth/nsAuthSambaNTLM.cpp b/extensions/auth/nsAuthSambaNT
|
||||
if (!username)
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
char* args[] = {
|
||||
const char* const args[] = {
|
||||
- "ntlm_auth",
|
||||
+ "/usr/bin/ntlm_auth",
|
||||
"--helper-protocol", "ntlmssp-client-1",
|
||||
"--use-cached-creds",
|
||||
"--username", const_cast<char*>(username),
|
||||
"--username", username,
|
||||
nsnull
|
||||
};
|
||||
|
||||
bool isOK = SpawnIOChild(args, &mChildPID, &mFromChildFD, &mToChildFD);
|
||||
bool isOK = SpawnIOChild(const_cast<char* const*>(args), &mChildPID, &mFromChildFD, &mToChildFD);
|
||||
if (!isOK)
|
||||
|
@ -1,5 +1,5 @@
|
||||
# HG changeset patch
|
||||
# Parent 0f6722dd9d75458124795d22e9240887c9b4aeca
|
||||
# Parent 58ae98c85e39def96a90cb21c90e871f41a03a71
|
||||
# User Wolfgang Rosenauer <wr@rosenauer.org>
|
||||
Bug 746112 - RegExp hang on ppc64 in execute.
|
||||
Bug 750620 - Make double-conversion portable to exotic architectures. TM: mozilla15
|
||||
@ -67,9 +67,9 @@ diff --git a/js/src/yarr/YarrPattern.h b/js/src/yarr/YarrPattern.h
|
||||
parentheses.subpatternId = subpatternId;
|
||||
parentheses.isCopy = false;
|
||||
parentheses.isTerminal = false;
|
||||
diff --git a/memory/jemalloc/jemalloc.c b/memory/jemalloc/jemalloc.c
|
||||
--- a/memory/jemalloc/jemalloc.c
|
||||
+++ b/memory/jemalloc/jemalloc.c
|
||||
diff --git a/memory/mozjemalloc/jemalloc.c b/memory/mozjemalloc/jemalloc.c
|
||||
--- a/memory/mozjemalloc/jemalloc.c
|
||||
+++ b/memory/mozjemalloc/jemalloc.c
|
||||
@@ -1086,17 +1086,19 @@ struct arena_s {
|
||||
static unsigned ncpus;
|
||||
#endif
|
||||
|
@ -1,5 +1,5 @@
|
||||
# HG changeset patch
|
||||
# Parent c9af3b8022c3f92070c1bd205553d799887cd1b8
|
||||
# Parent 7820633b718ca1983da7b105d7868c455809cff1
|
||||
|
||||
diff --git a/build/Makefile.in b/build/Makefile.in
|
||||
--- a/build/Makefile.in
|
||||
@ -48,7 +48,7 @@ diff --git a/toolkit/content/Makefile.in b/toolkit/content/Makefile.in
|
||||
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
|
||||
@@ -128,20 +128,20 @@ SYMBOL_ARCHIVE_BASENAME = $(PKG_BASENAME
|
||||
@@ -131,22 +131,22 @@ SYMBOL_ARCHIVE_BASENAME = $(PKG_BASENAME
|
||||
TEST_PACKAGE = $(PKG_BASENAME).tests.zip
|
||||
|
||||
ifneq (,$(wildcard $(DIST)/bin/application.ini))
|
||||
@ -71,10 +71,12 @@ diff --git a/toolkit/mozapps/installer/package-name.mk b/toolkit/mozapps/install
|
||||
|
||||
# JavaScript Shell
|
||||
PKG_JSSHELL = $(DIST)/jsshell-$(MOZ_PKG_PLATFORM).zip
|
||||
|
||||
endif # PACKAGE_NAME_MK_INCLUDED
|
||||
diff --git a/toolkit/xre/Makefile.in b/toolkit/xre/Makefile.in
|
||||
--- a/toolkit/xre/Makefile.in
|
||||
+++ b/toolkit/xre/Makefile.in
|
||||
@@ -220,20 +220,20 @@ endif
|
||||
@@ -218,20 +218,20 @@ endif
|
||||
|
||||
MOZ_SOURCE_STAMP ?= $(firstword $(shell hg -R $(topsrcdir) parent --template="{node|short}\n" 2>/dev/null))
|
||||
ifdef MOZ_SOURCE_STAMP
|
||||
|
@ -7,7 +7,7 @@ References:
|
||||
diff --git a/config/autoconf.mk.in b/config/autoconf.mk.in
|
||||
--- a/config/autoconf.mk.in
|
||||
+++ b/config/autoconf.mk.in
|
||||
@@ -573,16 +573,20 @@ MOZ_ENABLE_LIBNOTIFY = @MOZ_ENABLE_LIBNO
|
||||
@@ -540,16 +540,20 @@ MOZ_ENABLE_LIBNOTIFY = @MOZ_ENABLE_LIBNO
|
||||
|
||||
MOZ_ALSA_LIBS = @MOZ_ALSA_LIBS@
|
||||
MOZ_ALSA_CFLAGS = @MOZ_ALSA_CFLAGS@
|
||||
@ -20,9 +20,9 @@ diff --git a/config/autoconf.mk.in b/config/autoconf.mk.in
|
||||
+NSSHELPER_CFLAGS = @NSSHELPER_CFLAGS@
|
||||
+NSSHELPER_LIBS = @NSSHELPER_LIBS@
|
||||
+
|
||||
MOZ_NATIVE_MAKEDEPEND = @SYSTEM_MAKEDEPEND@
|
||||
MOZ_NATIVE_MAKEDEPEND = @MOZ_NATIVE_MAKEDEPEND@
|
||||
|
||||
export CL_INCLUDES_PREFIX = @CL_INCLUDES_PREFIX@
|
||||
CL_INCLUDES_PREFIX = @CL_INCLUDES_PREFIX@
|
||||
|
||||
MOZ_AUTO_DEPS = @MOZ_AUTO_DEPS@
|
||||
COMPILER_DEPEND = @COMPILER_DEPEND@
|
||||
@ -31,7 +31,7 @@ diff --git a/config/autoconf.mk.in b/config/autoconf.mk.in
|
||||
diff --git a/configure.in b/configure.in
|
||||
--- a/configure.in
|
||||
+++ b/configure.in
|
||||
@@ -8270,16 +8270,31 @@ AC_SUBST(QCMS_LIBS)
|
||||
@@ -8052,16 +8052,31 @@ AC_SUBST(QCMS_LIBS)
|
||||
|
||||
dnl ========================================================
|
||||
dnl HarfBuzz
|
||||
@ -66,11 +66,11 @@ diff --git a/configure.in b/configure.in
|
||||
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
|
||||
@@ -86,12 +86,14 @@ EXTRA_DEPS = $(NSS_DEP_LIBS)
|
||||
DEFINES += \
|
||||
-DNSS_ENABLE_ECC \
|
||||
-DDLL_PREFIX=\"$(DLL_PREFIX)\" \
|
||||
-DDLL_SUFFIX=\"$(DLL_SUFFIX)\" \
|
||||
@@ -90,12 +90,14 @@ DEFINES += \
|
||||
$(NULL)
|
||||
|
||||
EXPORTS += \
|
||||
nsNSSShutDown.h \
|
||||
$(NULL)
|
||||
|
||||
# Use local includes because they are inserted before INCLUDES
|
||||
@ -107,7 +107,7 @@ diff --git a/security/manager/ssl/src/nsNSSComponent.cpp b/security/manager/ssl/
|
||||
#include "nsNetUtil.h"
|
||||
#include "nsAppDirectoryServiceDefs.h"
|
||||
#include "nsDirectoryService.h"
|
||||
@@ -1738,18 +1745,34 @@ nsNSSComponent::InitializeNSS(bool showW
|
||||
@@ -1740,18 +1747,34 @@ nsNSSComponent::InitializeNSS(bool showW
|
||||
ConfigureInternalPKCS11Token();
|
||||
|
||||
// The NSS_INIT_NOROOTINIT flag turns off the loading of the root certs
|
||||
@ -147,7 +147,7 @@ diff --git a/security/manager/ssl/src/nsNSSComponent.cpp b/security/manager/ssl/
|
||||
diff --git a/toolkit/library/Makefile.in b/toolkit/library/Makefile.in
|
||||
--- a/toolkit/library/Makefile.in
|
||||
+++ b/toolkit/library/Makefile.in
|
||||
@@ -446,17 +446,17 @@ EXTRA_DSO_LDOPTS += -INCREMENTAL:NO
|
||||
@@ -441,17 +441,17 @@ EXTRA_DSO_LDOPTS += -INCREMENTAL:NO
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
@ -163,6 +163,6 @@ diff --git a/toolkit/library/Makefile.in b/toolkit/library/Makefile.in
|
||||
CXXFLAGS += $(TK_CFLAGS)
|
||||
OS_LIBS += \
|
||||
-framework SystemConfiguration \
|
||||
-framework QuickTime \
|
||||
-framework QTKit \
|
||||
-framework IOKit \
|
||||
-F/System/Library/PrivateFrameworks -framework CoreUI \
|
||||
|
@ -1,2 +1,2 @@
|
||||
REV=0b774a1067fe
|
||||
REV=10fe550fadc6
|
||||
REPO=http://hg.mozilla.org/releases/mozilla-release
|
||||
|
Loading…
Reference in New Issue
Block a user