- update to Firefox 18.0 (bnc#796895)
* requires NSS 3.14.1 * removed obsolete SLE11 patches (mozilla-gcc43*) - ported patches - reenable WebRTC OBS-URL: https://build.opensuse.org/package/show/mozilla:Factory/MozillaFirefox?expand=0&rev=308
This commit is contained in:
parent
842700101e
commit
ec6fc4ae7a
@ -1,3 +1,12 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Sun Jan 6 21:54:18 UTC 2013 - wr@rosenauer.org
|
||||||
|
|
||||||
|
- update to Firefox 18.0 (bnc#796895)
|
||||||
|
* requires NSS 3.14.1
|
||||||
|
* removed obsolete SLE11 patches (mozilla-gcc43*)
|
||||||
|
- ported patches
|
||||||
|
- reenable WebRTC
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Nov 29 19:56:51 UTC 2012 - wr@rosenauer.org
|
Thu Nov 29 19:56:51 UTC 2012 - wr@rosenauer.org
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package MozillaFirefox
|
# spec file for package MozillaFirefox
|
||||||
#
|
#
|
||||||
# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||||
# 2006-2012 Wolfgang Rosenauer
|
# 2006-2012 Wolfgang Rosenauer
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
@ -17,8 +17,8 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
%define major 17
|
%define major 18
|
||||||
%define mainver %major.0.1
|
%define mainver %major.0
|
||||||
%define update_channel release
|
%define update_channel release
|
||||||
|
|
||||||
Name: MozillaFirefox
|
Name: MozillaFirefox
|
||||||
@ -44,8 +44,8 @@ BuildRequires: libproxy-devel
|
|||||||
%else
|
%else
|
||||||
BuildRequires: wireless-tools
|
BuildRequires: wireless-tools
|
||||||
%endif
|
%endif
|
||||||
BuildRequires: mozilla-nspr-devel >= 4.9.2
|
BuildRequires: mozilla-nspr-devel >= 4.9.4
|
||||||
BuildRequires: mozilla-nss-devel >= 3.13.6
|
BuildRequires: mozilla-nss-devel >= 3.14.1
|
||||||
BuildRequires: nss-shared-helper-devel
|
BuildRequires: nss-shared-helper-devel
|
||||||
%if %suse_version > 1140
|
%if %suse_version > 1140
|
||||||
BuildRequires: pkgconfig(gstreamer-0.10)
|
BuildRequires: pkgconfig(gstreamer-0.10)
|
||||||
@ -54,7 +54,7 @@ BuildRequires: pkgconfig(gstreamer-plugins-base-0.10)
|
|||||||
%endif
|
%endif
|
||||||
Version: %{mainver}
|
Version: %{mainver}
|
||||||
Release: 0
|
Release: 0
|
||||||
%define releasedate 2012112800
|
%define releasedate 2013010500
|
||||||
Provides: firefox = %{mainver}
|
Provides: firefox = %{mainver}
|
||||||
Provides: firefox = %{version}-%{release}
|
Provides: firefox = %{version}-%{release}
|
||||||
Provides: web_browser
|
Provides: web_browser
|
||||||
@ -95,13 +95,10 @@ Patch9: mozilla-repo.patch
|
|||||||
Patch10: mozilla-sle11.patch
|
Patch10: mozilla-sle11.patch
|
||||||
Patch11: mozilla-disable-neon-option.patch
|
Patch11: mozilla-disable-neon-option.patch
|
||||||
Patch12: mozilla-arm-disable-edsp.patch
|
Patch12: mozilla-arm-disable-edsp.patch
|
||||||
Patch13: mozilla-gstreamer.patch
|
Patch13: mozilla-gstreamer-803287.patch
|
||||||
Patch14: mozilla-ppc.patch
|
Patch14: mozilla-ppc.patch
|
||||||
Patch15: mozilla-gstreamer-760140.patch
|
Patch15: mozilla-gstreamer-760140.patch
|
||||||
# SLE11 patches
|
Patch16: mozilla-webrtc.patch
|
||||||
Patch20: mozilla-gcc43-enums.patch
|
|
||||||
Patch21: mozilla-gcc43-template_hacks.patch
|
|
||||||
Patch22: mozilla-gcc43-templates_instantiation.patch
|
|
||||||
# Firefox/browser
|
# Firefox/browser
|
||||||
Patch30: firefox-browser-css.patch
|
Patch30: firefox-browser-css.patch
|
||||||
Patch31: firefox-kde.patch
|
Patch31: firefox-kde.patch
|
||||||
@ -116,6 +113,10 @@ Requires: %{name}-branding > 4.0
|
|||||||
Requires: mozilla-nspr >= %(rpm -q --queryformat '%{VERSION}' mozilla-nspr)
|
Requires: mozilla-nspr >= %(rpm -q --queryformat '%{VERSION}' mozilla-nspr)
|
||||||
Requires: mozilla-nss >= %(rpm -q --queryformat '%{VERSION}' mozilla-nss)
|
Requires: mozilla-nss >= %(rpm -q --queryformat '%{VERSION}' mozilla-nss)
|
||||||
Recommends: libcanberra0
|
Recommends: libcanberra0
|
||||||
|
# libproxy's mozjs pacrunner crashes FF (bnc#759123)
|
||||||
|
%if %suse_version < 1220
|
||||||
|
Obsoletes: libproxy1-pacrunner-mozjs <= 0.4.7
|
||||||
|
%endif
|
||||||
%define firefox_appid \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\}
|
%define firefox_appid \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\}
|
||||||
%define _use_internal_dependency_generator 0
|
%define _use_internal_dependency_generator 0
|
||||||
%define __find_requires sh %{SOURCE4}
|
%define __find_requires sh %{SOURCE4}
|
||||||
@ -158,7 +159,7 @@ Development files for Firefox to make packaging of addons easier.
|
|||||||
%if %localize
|
%if %localize
|
||||||
|
|
||||||
%package translations-common
|
%package translations-common
|
||||||
Summary: Common translations for MozillaFirefox
|
Summary: Common translations for Firefox
|
||||||
Group: System/Localization
|
Group: System/Localization
|
||||||
Provides: locale(%{name}:ar;ca;cs;da;de;en_GB;es_AR;es_CL;es_ES;fi;fr;hu;it;ja;ko;nb_NO;nl;pl;pt_BR;pt_PT;ru;sv_SE;zh_CN;zh_TW)
|
Provides: locale(%{name}:ar;ca;cs;da;de;en_GB;es_AR;es_CL;es_ES;fi;fr;hu;it;ja;ko;nb_NO;nl;pl;pt_BR;pt_PT;ru;sv_SE;zh_CN;zh_TW)
|
||||||
Requires: %{name} = %{version}
|
Requires: %{name} = %{version}
|
||||||
@ -166,10 +167,10 @@ Obsoletes: %{name}-translations < %{version}-%{release}
|
|||||||
|
|
||||||
%description translations-common
|
%description translations-common
|
||||||
This package contains several common languages for the user interface
|
This package contains several common languages for the user interface
|
||||||
of MozillaFirefox.
|
of Firefox.
|
||||||
|
|
||||||
%package translations-other
|
%package translations-other
|
||||||
Summary: Extra translations for MozillaFirefox
|
Summary: Extra translations for Firefox
|
||||||
Group: System/Localization
|
Group: System/Localization
|
||||||
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)
|
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}
|
Requires: %{name} = %{version}
|
||||||
@ -177,11 +178,11 @@ Obsoletes: %{name}-translations < %{version}-%{release}
|
|||||||
|
|
||||||
%description translations-other
|
%description translations-other
|
||||||
This package contains rarely used languages for the user interface
|
This package contains rarely used languages for the user interface
|
||||||
of MozillaFirefox.
|
of Firefox.
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%package branding-upstream
|
%package branding-upstream
|
||||||
Summary: Upstream branding for MozillaFirefox
|
Summary: Upstream branding for Firefox
|
||||||
Group: Productivity/Networking/Web/Browsers
|
Group: Productivity/Networking/Web/Browsers
|
||||||
Provides: %{name}-branding = 5.0
|
Provides: %{name}-branding = 5.0
|
||||||
Conflicts: otherproviders(%{name}-branding)
|
Conflicts: otherproviders(%{name}-branding)
|
||||||
@ -197,7 +198,7 @@ Supplements: packageand(%{name}:branding-upstream)
|
|||||||
#BRAND: It's also possible to drop files in /usr/lib/firefox/searchplugins
|
#BRAND: It's also possible to drop files in /usr/lib/firefox/searchplugins
|
||||||
|
|
||||||
%description branding-upstream
|
%description branding-upstream
|
||||||
This package provides upstream look and feel for MozillaFirefox.
|
This package provides upstream look and feel for Firefox.
|
||||||
|
|
||||||
|
|
||||||
%if %crashreporter
|
%if %crashreporter
|
||||||
@ -231,12 +232,7 @@ cd $RPM_BUILD_DIR/mozilla
|
|||||||
%patch13 -p1
|
%patch13 -p1
|
||||||
%patch14 -p1
|
%patch14 -p1
|
||||||
%patch15 -p1
|
%patch15 -p1
|
||||||
# SLE patches
|
%patch16 -p1
|
||||||
%if %suse_version <= 1110
|
|
||||||
%patch20 -p1
|
|
||||||
%patch21 -p1
|
|
||||||
%patch22 -p1
|
|
||||||
%endif
|
|
||||||
#
|
#
|
||||||
%patch30 -p1
|
%patch30 -p1
|
||||||
%if %suse_version >= 1110
|
%if %suse_version >= 1110
|
||||||
@ -299,7 +295,6 @@ ac_add_options --disable-debug
|
|||||||
ac_add_options --enable-startup-notification
|
ac_add_options --enable-startup-notification
|
||||||
#ac_add_options --enable-chrome-format=jar
|
#ac_add_options --enable-chrome-format=jar
|
||||||
ac_add_options --enable-update-channel=%{update_channel}
|
ac_add_options --enable-update-channel=%{update_channel}
|
||||||
ac_add_options --disable-webrtc # webrtc build is broken for system NSPR
|
|
||||||
EOF
|
EOF
|
||||||
%if %suse_version > 1130
|
%if %suse_version > 1130
|
||||||
cat << EOF >> $MOZCONFIG
|
cat << EOF >> $MOZCONFIG
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:9d2e8dad6293d8ff53c6d4a2577f8b018d49475bd77088185ba32d99705992ff
|
oid sha256:bc2fcd2cdbe11b51361f888f50b80837ae01c06a3916ad1f7fff1f922fcf21e0
|
||||||
size 29966
|
size 29924
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
CHANNEL="release"
|
CHANNEL="release"
|
||||||
BRANCH="releases/mozilla-$CHANNEL"
|
BRANCH="releases/mozilla-$CHANNEL"
|
||||||
RELEASE_TAG="FIREFOX_17_0_1_RELEASE"
|
RELEASE_TAG="FIREFOX_18_0_RELEASE"
|
||||||
VERSION="17.0.1"
|
VERSION="18.0"
|
||||||
|
|
||||||
# mozilla
|
# mozilla
|
||||||
echo "cloning $BRANCH..."
|
echo "cloning $BRANCH..."
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:36d4eab5d653332e0814d2c6a9cad8ac5f5c69aece2f11abef440adda5874f50
|
|
||||||
size 92101778
|
|
3
firefox-18.0-source.tar.bz2
Normal file
3
firefox-18.0-source.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:1d9421b89267bf10d5975794d54dd07924d7b55110cd49a7b5b84dad8751e4be
|
||||||
|
size 97931811
|
@ -1,27 +1,27 @@
|
|||||||
# HG changeset patch
|
# HG changeset patch
|
||||||
# Parent 7272ee3a4df832b885fec122f02d32f23dcc9cdb
|
# Parent ab9210b3779914924d12de5a3952d4cc52cd9d78
|
||||||
|
|
||||||
diff --git a/browser/app/Makefile.in b/browser/app/Makefile.in
|
diff --git a/browser/app/Makefile.in b/browser/app/Makefile.in
|
||||||
--- a/browser/app/Makefile.in
|
--- a/browser/app/Makefile.in
|
||||||
+++ b/browser/app/Makefile.in
|
+++ b/browser/app/Makefile.in
|
||||||
@@ -127,16 +127,21 @@ endif
|
@@ -133,16 +133,21 @@ endif
|
||||||
endif #} LIBXUL_SDK
|
endif #} LIBXUL_SDK
|
||||||
|
|
||||||
ifeq ($(MOZ_WIDGET_TOOLKIT),gtk2)
|
ifeq ($(MOZ_WIDGET_TOOLKIT),gtk2)
|
||||||
libs::
|
libs::
|
||||||
$(INSTALL) $(IFLAGS1) $(DIST)/branding/mozicon128.png $(DIST)/bin/icons
|
$(INSTALL) $(IFLAGS1) $(DIST)/branding/mozicon128.png $(FINAL_TARGET)/icons
|
||||||
$(INSTALL) $(IFLAGS1) $(DIST)/branding/default16.png $(DIST)/bin/chrome/icons/default
|
$(INSTALL) $(IFLAGS1) $(DIST)/branding/default16.png $(FINAL_TARGET)/chrome/icons/default
|
||||||
$(INSTALL) $(IFLAGS1) $(DIST)/branding/default32.png $(DIST)/bin/chrome/icons/default
|
$(INSTALL) $(IFLAGS1) $(DIST)/branding/default32.png $(FINAL_TARGET)/chrome/icons/default
|
||||||
$(INSTALL) $(IFLAGS1) $(DIST)/branding/default48.png $(DIST)/bin/chrome/icons/default
|
$(INSTALL) $(IFLAGS1) $(DIST)/branding/default48.png $(FINAL_TARGET)/chrome/icons/default
|
||||||
+ifdef MOZ_OFFICIAL_BRANDING
|
+ifdef MOZ_OFFICIAL_BRANDING
|
||||||
+ $(INSTALL) $(IFLAGS1) $(DIST)/branding/default22.png $(DIST)/bin/chrome/icons/default
|
+ $(INSTALL) $(IFLAGS1) $(DIST)/branding/default22.png $(FINAL_TARGET)/chrome/icons/default
|
||||||
+ $(INSTALL) $(IFLAGS1) $(DIST)/branding/default24.png $(DIST)/bin/chrome/icons/default
|
+ $(INSTALL) $(IFLAGS1) $(DIST)/branding/default24.png $(FINAL_TARGET)/chrome/icons/default
|
||||||
+ $(INSTALL) $(IFLAGS1) $(DIST)/branding/default256.png $(DIST)/bin/chrome/icons/default
|
+ $(INSTALL) $(IFLAGS1) $(DIST)/branding/default256.png $(FINAL_TARGET)/chrome/icons/default
|
||||||
+endif
|
+endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
libs:: $(srcdir)/profile/prefs.js
|
libs:: $(srcdir)/profile/prefs.js
|
||||||
$(INSTALL) $(IFLAGS1) $^ $(DIST)/bin/defaults/profile
|
$(INSTALL) $(IFLAGS1) $^ $(FINAL_TARGET)/defaults/profile
|
||||||
|
|
||||||
ifndef LIBXUL_SDK
|
ifndef LIBXUL_SDK
|
||||||
# channel-prefs.js is handled separate from other prefs due to bug 756325
|
# channel-prefs.js is handled separate from other prefs due to bug 756325
|
||||||
@ -29,7 +29,7 @@ diff --git a/browser/app/Makefile.in b/browser/app/Makefile.in
|
|||||||
diff --git a/browser/branding/official/Makefile.in b/browser/branding/official/Makefile.in
|
diff --git a/browser/branding/official/Makefile.in b/browser/branding/official/Makefile.in
|
||||||
--- a/browser/branding/official/Makefile.in
|
--- a/browser/branding/official/Makefile.in
|
||||||
+++ b/browser/branding/official/Makefile.in
|
+++ b/browser/branding/official/Makefile.in
|
||||||
@@ -35,18 +35,21 @@ OSX_BRANDING_FILES = \
|
@@ -42,18 +42,21 @@ OSX_BRANDING_FILES = \
|
||||||
firefox.icns \
|
firefox.icns \
|
||||||
disk.icns \
|
disk.icns \
|
||||||
document.icns \
|
document.icns \
|
||||||
@ -54,7 +54,7 @@ diff --git a/browser/branding/official/Makefile.in b/browser/branding/official/M
|
|||||||
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
|
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
|
||||||
--- a/browser/installer/package-manifest.in
|
--- a/browser/installer/package-manifest.in
|
||||||
+++ b/browser/installer/package-manifest.in
|
+++ b/browser/installer/package-manifest.in
|
||||||
@@ -496,18 +496,21 @@
|
@@ -541,18 +541,21 @@
|
||||||
@BINPATH@/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png
|
@BINPATH@/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png
|
||||||
#ifdef SHIP_FEEDBACK
|
#ifdef SHIP_FEEDBACK
|
||||||
@BINPATH@/distribution/extensions/testpilot@labs.mozilla.com.xpi
|
@BINPATH@/distribution/extensions/testpilot@labs.mozilla.com.xpi
|
||||||
|
@ -2,7 +2,7 @@ diff --git a/browser/base/content/browser-kde.xul b/browser/base/content/browser
|
|||||||
new file mode 100644
|
new file mode 100644
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/browser/base/content/browser-kde.xul
|
+++ b/browser/base/content/browser-kde.xul
|
||||||
@@ -0,0 +1,1272 @@
|
@@ -0,0 +1,1274 @@
|
||||||
+#filter substitution
|
+#filter substitution
|
||||||
+<?xml version="1.0"?>
|
+<?xml version="1.0"?>
|
||||||
+# -*- Mode: HTML -*-
|
+# -*- Mode: HTML -*-
|
||||||
@ -76,11 +76,11 @@ new file mode 100644
|
|||||||
+ <menuitem id="context_reloadTab" label="&reloadTab.label;" accesskey="&reloadTab.accesskey;"
|
+ <menuitem id="context_reloadTab" label="&reloadTab.label;" accesskey="&reloadTab.accesskey;"
|
||||||
+ oncommand="gBrowser.reloadTab(TabContextMenu.contextTab);"/>
|
+ oncommand="gBrowser.reloadTab(TabContextMenu.contextTab);"/>
|
||||||
+ <menuseparator/>
|
+ <menuseparator/>
|
||||||
+ <menuitem id="context_pinTab" label="&pinAppTab.label;"
|
+ <menuitem id="context_pinTab" label="&pinTab.label;"
|
||||||
+ accesskey="&pinAppTab.accesskey;"
|
+ accesskey="&pinTab.accesskey;"
|
||||||
+ oncommand="gBrowser.pinTab(TabContextMenu.contextTab);"/>
|
+ oncommand="gBrowser.pinTab(TabContextMenu.contextTab);"/>
|
||||||
+ <menuitem id="context_unpinTab" label="&unpinAppTab.label;" hidden="true"
|
+ <menuitem id="context_unpinTab" label="&unpinTab.label;" hidden="true"
|
||||||
+ accesskey="&unpinAppTab.accesskey;"
|
+ accesskey="&unpinTab.accesskey;"
|
||||||
+ oncommand="gBrowser.unpinTab(TabContextMenu.contextTab);"/>
|
+ oncommand="gBrowser.unpinTab(TabContextMenu.contextTab);"/>
|
||||||
+ <menu id="context_tabViewMenu" label="&moveToGroup.label;"
|
+ <menu id="context_tabViewMenu" label="&moveToGroup.label;"
|
||||||
+ accesskey="&moveToGroup.accesskey;">
|
+ accesskey="&moveToGroup.accesskey;">
|
||||||
@ -402,10 +402,6 @@ new file mode 100644
|
|||||||
+ </hbox>
|
+ </hbox>
|
||||||
+ </panel>
|
+ </panel>
|
||||||
+
|
+
|
||||||
+ <tooltip id="urlTooltip">
|
|
||||||
+ <label crop="center" flex="1" class="tooltip-label"/>
|
|
||||||
+ </tooltip>
|
|
||||||
+
|
|
||||||
+ <panel id="ctrlTab-panel" class="KUI-panel" hidden="true" norestorefocus="true" level="top">
|
+ <panel id="ctrlTab-panel" class="KUI-panel" hidden="true" norestorefocus="true" level="top">
|
||||||
+ <hbox>
|
+ <hbox>
|
||||||
+ <button class="ctrlTab-preview" flex="1"/>
|
+ <button class="ctrlTab-preview" flex="1"/>
|
||||||
@ -582,6 +578,7 @@ new file mode 100644
|
|||||||
+ <image id="password-notification-icon" class="notification-anchor-icon" role="button"/>
|
+ <image id="password-notification-icon" class="notification-anchor-icon" role="button"/>
|
||||||
+ <image id="webapps-notification-icon" class="notification-anchor-icon" role="button"/>
|
+ <image id="webapps-notification-icon" class="notification-anchor-icon" role="button"/>
|
||||||
+ <image id="plugins-notification-icon" class="notification-anchor-icon" role="button"/>
|
+ <image id="plugins-notification-icon" class="notification-anchor-icon" role="button"/>
|
||||||
|
+ <image id="blocked-plugins-notification-icon" class="notification-anchor-icon" role="button"/>
|
||||||
+ </box>
|
+ </box>
|
||||||
+ <!-- Use onclick instead of normal popup= syntax since the popup
|
+ <!-- Use onclick instead of normal popup= syntax since the popup
|
||||||
+ code fires onmousedown, and hence eats our favicon drag events.
|
+ code fires onmousedown, and hence eats our favicon drag events.
|
||||||
@ -1069,7 +1066,7 @@ new file mode 100644
|
|||||||
+ contentcontextmenu="contentAreaContextMenu"
|
+ contentcontextmenu="contentAreaContextMenu"
|
||||||
+ autocompletepopup="PopupAutoComplete"
|
+ autocompletepopup="PopupAutoComplete"
|
||||||
+ onclick="contentAreaClick(event, false);"/>
|
+ onclick="contentAreaClick(event, false);"/>
|
||||||
+ <chatbar id="pinnedchats" layer="true" mousethrough="always"/>
|
+ <chatbar id="pinnedchats" layer="true" mousethrough="always" hidden="true"/>
|
||||||
+ <statuspanel id="statusbar-display" inactive="true"/>
|
+ <statuspanel id="statusbar-display" inactive="true"/>
|
||||||
+ </vbox>
|
+ </vbox>
|
||||||
+ <splitter id="devtools-side-splitter" hidden="true"/>
|
+ <splitter id="devtools-side-splitter" hidden="true"/>
|
||||||
@ -1077,7 +1074,12 @@ new file mode 100644
|
|||||||
+ style="min-width: 18em; width: 22em; max-width: 42em;" persist="width">
|
+ style="min-width: 18em; width: 22em; max-width: 42em;" persist="width">
|
||||||
+ <toolbar id="devtools-sidebar-toolbar"
|
+ <toolbar id="devtools-sidebar-toolbar"
|
||||||
+ class="devtools-toolbar"
|
+ class="devtools-toolbar"
|
||||||
+ nowindowdrag="true"/>
|
+ nowindowdrag="true">
|
||||||
|
+ <spacer flex="1"/>
|
||||||
|
+ <toolbarbutton tooltiptext="&inspectSidebarCloseButton.tooltiptext;"
|
||||||
|
+ class="devtools-closebutton"
|
||||||
|
+ command="Inspector:Sidebar"/>
|
||||||
|
+ </toolbar>
|
||||||
+ <deck id="devtools-sidebar-deck" flex="1"/>
|
+ <deck id="devtools-sidebar-deck" flex="1"/>
|
||||||
+ </vbox>
|
+ </vbox>
|
||||||
+ <splitter id="social-sidebar-splitter"
|
+ <splitter id="social-sidebar-splitter"
|
||||||
@ -1278,9 +1280,9 @@ new file mode 100644
|
|||||||
diff --git a/browser/base/jar.mn b/browser/base/jar.mn
|
diff --git a/browser/base/jar.mn b/browser/base/jar.mn
|
||||||
--- a/browser/base/jar.mn
|
--- a/browser/base/jar.mn
|
||||||
+++ b/browser/base/jar.mn
|
+++ b/browser/base/jar.mn
|
||||||
@@ -36,16 +36,18 @@ browser.jar:
|
@@ -50,16 +50,18 @@ browser.jar:
|
||||||
content/browser/abouthome/mozilla.png (content/abouthome/mozilla.png)
|
content/browser/abouthome/mozilla@2x.png (content/abouthome/mozilla@2x.png)
|
||||||
content/browser/abouthome/noise.png (content/abouthome/noise.png)
|
#endif
|
||||||
content/browser/aboutRobots-icon.png (content/aboutRobots-icon.png)
|
content/browser/aboutRobots-icon.png (content/aboutRobots-icon.png)
|
||||||
content/browser/aboutRobots-widget-left.png (content/aboutRobots-widget-left.png)
|
content/browser/aboutRobots-widget-left.png (content/aboutRobots-widget-left.png)
|
||||||
content/browser/aboutSocialError.xhtml (content/aboutSocialError.xhtml)
|
content/browser/aboutSocialError.xhtml (content/aboutSocialError.xhtml)
|
||||||
@ -1294,9 +1296,9 @@ diff --git a/browser/base/jar.mn b/browser/base/jar.mn
|
|||||||
content/browser/newtab/newTab.xul (content/newtab/newTab.xul)
|
content/browser/newtab/newTab.xul (content/newtab/newTab.xul)
|
||||||
* content/browser/newtab/newTab.js (content/newtab/newTab.js)
|
* content/browser/newtab/newTab.js (content/newtab/newTab.js)
|
||||||
content/browser/newtab/newTab.css (content/newtab/newTab.css)
|
content/browser/newtab/newTab.css (content/newtab/newTab.css)
|
||||||
|
content/browser/newtab/preload.xhtml (content/newtab/preload.xhtml)
|
||||||
* content/browser/pageinfo/pageInfo.xul (content/pageinfo/pageInfo.xul)
|
* content/browser/pageinfo/pageInfo.xul (content/pageinfo/pageInfo.xul)
|
||||||
* content/browser/pageinfo/pageInfo.js (content/pageinfo/pageInfo.js)
|
* content/browser/pageinfo/pageInfo.js (content/pageinfo/pageInfo.js)
|
||||||
content/browser/pageinfo/pageInfo.css (content/pageinfo/pageInfo.css)
|
|
||||||
diff --git a/browser/components/build/nsModule.cpp b/browser/components/build/nsModule.cpp
|
diff --git a/browser/components/build/nsModule.cpp b/browser/components/build/nsModule.cpp
|
||||||
--- a/browser/components/build/nsModule.cpp
|
--- a/browser/components/build/nsModule.cpp
|
||||||
+++ b/browser/components/build/nsModule.cpp
|
+++ b/browser/components/build/nsModule.cpp
|
||||||
@ -1383,7 +1385,7 @@ diff --git a/browser/components/preferences/advanced.js b/browser/components/pre
|
|||||||
// when the user will select the default. We refresh here periodically
|
// when the user will select the default. We refresh here periodically
|
||||||
// in case the default changes. On other Windows OS's defaults can also
|
// in case the default changes. On other Windows OS's defaults can also
|
||||||
// be set while the prefs are open.
|
// be set while the prefs are open.
|
||||||
@@ -725,14 +731,25 @@ var gAdvancedPane = {
|
@@ -715,14 +721,25 @@ var gAdvancedPane = {
|
||||||
* Set browser as the operating system default browser.
|
* Set browser as the operating system default browser.
|
||||||
*/
|
*/
|
||||||
setDefaultBrowser: function()
|
setDefaultBrowser: function()
|
||||||
@ -1845,8 +1847,8 @@ new file mode 100644
|
|||||||
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
|
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
|
||||||
--- a/browser/installer/package-manifest.in
|
--- a/browser/installer/package-manifest.in
|
||||||
+++ b/browser/installer/package-manifest.in
|
+++ b/browser/installer/package-manifest.in
|
||||||
@@ -561,18 +561,20 @@
|
@@ -579,18 +579,20 @@
|
||||||
@BINPATH@/@PREF_DIR@/services-sync.js
|
@BINPATH@/@PREF_DIR@/healthreport-prefs.js
|
||||||
#endif
|
#endif
|
||||||
@BINPATH@/greprefs.js
|
@BINPATH@/greprefs.js
|
||||||
@BINPATH@/defaults/autoconfig/platform.js
|
@BINPATH@/defaults/autoconfig/platform.js
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:18552a20adcf62c5cea6b54ca5d5d7829db3b837fd8428635d3a53f4322c14d4
|
|
||||||
size 52155540
|
|
3
l10n-18.0.tar.bz2
Normal file
3
l10n-18.0.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:fe0078528a121e861b2e5eb80adf76fbf3688a3ca59e6925c22aa423c6835c0c
|
||||||
|
size 52439072
|
@ -1,93 +0,0 @@
|
|||||||
# HG changeset patch
|
|
||||||
# Parent 6d0e0f7dc4cf04f1d08f8b4f8e9312ac05928608
|
|
||||||
remove trailing commas in enum definitions as these are unpalatable for gcc
|
|
||||||
(4.3.4) in pedantic mode
|
|
||||||
|
|
||||||
diff --git a/media/webrtc/trunk/src/common_types.h b/media/webrtc/trunk/src/common_types.h
|
|
||||||
--- a/media/webrtc/trunk/src/common_types.h
|
|
||||||
+++ b/media/webrtc/trunk/src/common_types.h
|
|
||||||
@@ -342,17 +342,17 @@ enum TelephoneEventDetectionMethods
|
|
||||||
enum NsModes // type of Noise Suppression
|
|
||||||
{
|
|
||||||
kNsUnchanged = 0, // previously set mode
|
|
||||||
kNsDefault, // platform default
|
|
||||||
kNsConference, // conferencing default
|
|
||||||
kNsLowSuppression, // lowest suppression
|
|
||||||
kNsModerateSuppression,
|
|
||||||
kNsHighSuppression,
|
|
||||||
- kNsVeryHighSuppression, // highest suppression
|
|
||||||
+ kNsVeryHighSuppression // highest suppression
|
|
||||||
};
|
|
||||||
|
|
||||||
enum AgcModes // type of Automatic Gain Control
|
|
||||||
{
|
|
||||||
kAgcUnchanged = 0, // previously set mode
|
|
||||||
kAgcDefault, // platform default
|
|
||||||
// adaptive mode for use when analog volume control exists (e.g. for
|
|
||||||
// PC softphone)
|
|
||||||
@@ -367,17 +367,17 @@ enum AgcModes // type o
|
|
||||||
|
|
||||||
// EC modes
|
|
||||||
enum EcModes // type of Echo Control
|
|
||||||
{
|
|
||||||
kEcUnchanged = 0, // previously set mode
|
|
||||||
kEcDefault, // platform default
|
|
||||||
kEcConference, // conferencing default (aggressive AEC)
|
|
||||||
kEcAec, // Acoustic Echo Cancellation
|
|
||||||
- kEcAecm, // AEC mobile
|
|
||||||
+ kEcAecm // AEC mobile
|
|
||||||
};
|
|
||||||
|
|
||||||
// AECM modes
|
|
||||||
enum AecmModes // mode of AECM
|
|
||||||
{
|
|
||||||
kAecmQuietEarpieceOrHeadset = 0,
|
|
||||||
// Quiet earpiece or headset use
|
|
||||||
kAecmEarpiece, // most earpiece use
|
|
||||||
@@ -416,43 +416,43 @@ enum NetEqModes // NetEQ pla
|
|
||||||
// Optimized trade-off between low delay and jitter robustness for two-way
|
|
||||||
// communication.
|
|
||||||
kNetEqDefault = 0,
|
|
||||||
// Improved jitter robustness at the cost of increased delay. Can be
|
|
||||||
// used in one-way communication.
|
|
||||||
kNetEqStreaming = 1,
|
|
||||||
// Optimzed for decodability of fax signals rather than for perceived audio
|
|
||||||
// quality.
|
|
||||||
- kNetEqFax = 2,
|
|
||||||
+ kNetEqFax = 2
|
|
||||||
};
|
|
||||||
|
|
||||||
enum NetEqBgnModes // NetEQ Background Noise (BGN) configurations
|
|
||||||
{
|
|
||||||
// BGN is always on and will be generated when the incoming RTP stream
|
|
||||||
// stops (default).
|
|
||||||
kBgnOn = 0,
|
|
||||||
// The BGN is faded to zero (complete silence) after a few seconds.
|
|
||||||
kBgnFade = 1,
|
|
||||||
// BGN is not used at all. Silence is produced after speech extrapolation
|
|
||||||
// has faded.
|
|
||||||
- kBgnOff = 2,
|
|
||||||
+ kBgnOff = 2
|
|
||||||
};
|
|
||||||
|
|
||||||
enum OnHoldModes // On Hold direction
|
|
||||||
{
|
|
||||||
kHoldSendAndPlay = 0, // Put both sending and playing in on-hold state.
|
|
||||||
kHoldSendOnly, // Put only sending in on-hold state.
|
|
||||||
kHoldPlayOnly // Put only playing in on-hold state.
|
|
||||||
};
|
|
||||||
|
|
||||||
enum AmrMode
|
|
||||||
{
|
|
||||||
kRfc3267BwEfficient = 0,
|
|
||||||
kRfc3267OctetAligned = 1,
|
|
||||||
- kRfc3267FileStorage = 2,
|
|
||||||
+ kRfc3267FileStorage = 2
|
|
||||||
};
|
|
||||||
|
|
||||||
// ==================================================================
|
|
||||||
// Video specific types
|
|
||||||
// ==================================================================
|
|
||||||
|
|
||||||
// Raw video types
|
|
||||||
enum RawVideoType
|
|
@ -1,26 +0,0 @@
|
|||||||
# HG changeset patch
|
|
||||||
# Parent 993c5b5a44ca18c5273b74c75704b418c2477d28
|
|
||||||
bmo#783505 - bump gcc version required for building without template hacks
|
|
||||||
|
|
||||||
diff --git a/js/src/jstypedarray.cpp b/js/src/jstypedarray.cpp
|
|
||||||
--- a/js/src/jstypedarray.cpp
|
|
||||||
+++ b/js/src/jstypedarray.cpp
|
|
||||||
@@ -1404,17 +1404,17 @@ class TypedArrayTemplate
|
|
||||||
// retrieves a given Value, probably from a slot on the object.
|
|
||||||
template<Value ValueGetter(JSObject *obj)>
|
|
||||||
static JSBool
|
|
||||||
Getter(JSContext *cx, unsigned argc, Value *vp)
|
|
||||||
{
|
|
||||||
CallArgs args = CallArgsFromVp(argc, vp);
|
|
||||||
// FIXME: Hack to keep us building with gcc 4.2. Remove this once we
|
|
||||||
// drop support for gcc 4.2. See bug 783505 for the details.
|
|
||||||
-#if defined(__GNUC__) && __GNUC_MINOR__ <= 2
|
|
||||||
+#if defined(__GNUC__) && __GNUC_MINOR__ <= 3
|
|
||||||
return CallNonGenericMethod(cx, IsThisClass, GetterImpl<ValueGetter>, args);
|
|
||||||
#else
|
|
||||||
return CallNonGenericMethod<ThisTypeArray::IsThisClass,
|
|
||||||
ThisTypeArray::GetterImpl<ValueGetter> >(cx, args);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
// Define an accessor for a read-only property that invokes a native getter
|
|
@ -1,20 +0,0 @@
|
|||||||
# HG changeset patch
|
|
||||||
# Parent 2e78665a1ab70f4dc3884965428bda14da684ef6
|
|
||||||
bmo#732340 - explicitly instantiate templates
|
|
||||||
|
|
||||||
diff --git a/gfx/harfbuzz/src/hb-ot-layout.cc b/gfx/harfbuzz/src/hb-ot-layout.cc
|
|
||||||
--- a/gfx/harfbuzz/src/hb-ot-layout.cc
|
|
||||||
+++ b/gfx/harfbuzz/src/hb-ot-layout.cc
|
|
||||||
@@ -479,8 +479,12 @@ hb_ot_layout_position_lookup (hb_font_t
|
|
||||||
return hb_ot_layout_from_face (font->face)->gpos->position_lookup (&c, lookup_index);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
hb_ot_layout_position_finish (hb_font_t *font, hb_buffer_t *buffer, hb_bool_t zero_width_attached_marks)
|
|
||||||
{
|
|
||||||
GPOS::position_finish (font, buffer, zero_width_attached_marks);
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+template int SortedArrayOf<Record<LangSys> >::search<unsigned int>(unsigned int const &) const;
|
|
||||||
+template int SortedArrayOf<Record<Script> >::search<unsigned int>(unsigned int const &) const;
|
|
||||||
+template int SortedArrayOf<IntType<unsigned short> >::search<unsigned int>(unsigned int const &) const;
|
|
@ -4,7 +4,7 @@ Bug 760140 - Query the GstRegistry for the required demuxers/decoders from canPl
|
|||||||
diff --git a/content/base/src/nsContentUtils.cpp b/content/base/src/nsContentUtils.cpp
|
diff --git a/content/base/src/nsContentUtils.cpp b/content/base/src/nsContentUtils.cpp
|
||||||
--- a/content/base/src/nsContentUtils.cpp
|
--- a/content/base/src/nsContentUtils.cpp
|
||||||
+++ b/content/base/src/nsContentUtils.cpp
|
+++ b/content/base/src/nsContentUtils.cpp
|
||||||
@@ -137,16 +137,19 @@ static NS_DEFINE_CID(kXTFServiceCID, NS_
|
@@ -147,16 +147,19 @@ static NS_DEFINE_CID(kXTFServiceCID, NS_
|
||||||
#include "xpcprivate.h" // nsXPConnect
|
#include "xpcprivate.h" // nsXPConnect
|
||||||
#include "nsScriptSecurityManager.h"
|
#include "nsScriptSecurityManager.h"
|
||||||
#include "nsIChannelPolicy.h"
|
#include "nsIChannelPolicy.h"
|
||||||
@ -24,43 +24,10 @@ diff --git a/content/base/src/nsContentUtils.cpp b/content/base/src/nsContentUti
|
|||||||
#include "mozilla/Base64.h"
|
#include "mozilla/Base64.h"
|
||||||
#include "mozilla/Preferences.h"
|
#include "mozilla/Preferences.h"
|
||||||
#include "nsDOMMutationObserver.h"
|
#include "nsDOMMutationObserver.h"
|
||||||
@@ -6580,26 +6583,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, nullptr)) {
|
|
||||||
+ docFactory = do_GetService("@mozilla.org/content/document-loader-factory;1");
|
|
||||||
+ if (docFactory && aLoaderType) {
|
|
||||||
+ *aLoaderType = TYPE_CONTENT;
|
|
||||||
}
|
|
||||||
+ return docFactory.forget();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef MOZ_MEDIA_PLUGINS
|
|
||||||
if (nsHTMLMediaElement::IsMediaPluginsEnabled() &&
|
|
||||||
nsHTMLMediaElement::IsMediaPluginsType(nsDependentCString(aType))) {
|
|
||||||
docFactory = do_GetService("@mozilla.org/content/document-loader-factory;1");
|
|
||||||
diff --git a/content/html/content/public/nsHTMLMediaElement.h b/content/html/content/public/nsHTMLMediaElement.h
|
diff --git a/content/html/content/public/nsHTMLMediaElement.h b/content/html/content/public/nsHTMLMediaElement.h
|
||||||
--- a/content/html/content/public/nsHTMLMediaElement.h
|
--- a/content/html/content/public/nsHTMLMediaElement.h
|
||||||
+++ b/content/html/content/public/nsHTMLMediaElement.h
|
+++ b/content/html/content/public/nsHTMLMediaElement.h
|
||||||
@@ -256,17 +256,19 @@ public:
|
@@ -263,17 +263,19 @@ public:
|
||||||
void UpdateMediaSize(nsIntSize size);
|
void UpdateMediaSize(nsIntSize size);
|
||||||
|
|
||||||
// Returns the CanPlayStatus indicating if we can handle this
|
// Returns the CanPlayStatus indicating if we can handle this
|
||||||
@ -81,32 +48,31 @@ diff --git a/content/html/content/public/nsHTMLMediaElement.h b/content/html/con
|
|||||||
// Returns true if we should handle this MIME type when it appears
|
// 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
|
// 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
|
// for the type is more limited than appears in the wild, we should return
|
||||||
@@ -296,20 +298,17 @@ public:
|
@@ -305,19 +307,16 @@ public:
|
||||||
#ifdef MOZ_WEBM
|
|
||||||
static bool IsWebMEnabled();
|
|
||||||
static bool IsWebMType(const nsACString& aType);
|
static bool IsWebMType(const nsACString& aType);
|
||||||
static const char gWebMTypes[2][11];
|
static const char gWebMTypes[2][11];
|
||||||
static char const *const gWebMCodecs[4];
|
static char const *const gWebMCodecs[4];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef MOZ_GSTREAMER
|
#ifdef MOZ_GSTREAMER
|
||||||
- static bool IsH264Enabled();
|
static bool IsGStreamerEnabled();
|
||||||
|
static bool IsGStreamerSupportedType(const nsACString& aType);
|
||||||
- static bool IsH264Type(const nsACString& aType);
|
- static bool IsH264Type(const nsACString& aType);
|
||||||
- static const char gH264Types[3][16];
|
- static const char gH264Types[3][16];
|
||||||
- static char const *const gH264Codecs[7];
|
- static char const *const gH264Codecs[7];
|
||||||
+ static bool IsGStreamerEnabled();
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef MOZ_MEDIA_PLUGINS
|
#ifdef MOZ_WIDGET_GONK
|
||||||
static bool IsMediaPluginsEnabled();
|
static bool IsOmxEnabled();
|
||||||
static bool IsMediaPluginsType(const nsACString& aType);
|
static bool IsOmxSupportedType(const nsACString& aType);
|
||||||
|
static const char gOmxTypes[5][16];
|
||||||
|
static char const *const gH264Codecs[7];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
|
||||||
diff --git a/content/html/content/src/nsHTMLMediaElement.cpp b/content/html/content/src/nsHTMLMediaElement.cpp
|
diff --git a/content/html/content/src/nsHTMLMediaElement.cpp b/content/html/content/src/nsHTMLMediaElement.cpp
|
||||||
--- a/content/html/content/src/nsHTMLMediaElement.cpp
|
--- a/content/html/content/src/nsHTMLMediaElement.cpp
|
||||||
+++ b/content/html/content/src/nsHTMLMediaElement.cpp
|
+++ b/content/html/content/src/nsHTMLMediaElement.cpp
|
||||||
@@ -2112,52 +2112,20 @@ nsHTMLMediaElement::IsWebMType(const nsA
|
@@ -2128,51 +2128,34 @@ nsHTMLMediaElement::IsWebMType(const nsA
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -114,55 +80,52 @@ diff --git a/content/html/content/src/nsHTMLMediaElement.cpp b/content/html/cont
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
-#if defined(MOZ_GSTREAMER) || defined(MOZ_WIDGET_GONK)
|
||||||
|
+#ifdef MOZ_WIDGET_GONK
|
||||||
|
char const *const nsHTMLMediaElement::gH264Codecs[7] = {
|
||||||
|
"avc1.42E01E",
|
||||||
|
"avc1.42001E",
|
||||||
|
"avc1.58A01E",
|
||||||
|
"avc1.4D401E",
|
||||||
|
"avc1.64001E",
|
||||||
|
"mp4a.40.2",
|
||||||
|
nullptr
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef MOZ_GSTREAMER
|
#ifdef MOZ_GSTREAMER
|
||||||
-const char nsHTMLMediaElement::gH264Types[3][16] = {
|
-const char nsHTMLMediaElement::gH264Types[3][16] = {
|
||||||
- "video/mp4",
|
- "video/mp4",
|
||||||
- "video/3gpp",
|
- "video/3gpp",
|
||||||
- "video/quicktime",
|
- "video/quicktime",
|
||||||
-};
|
-};
|
||||||
-
|
|
||||||
-char const *const nsHTMLMediaElement::gH264Codecs[7] = {
|
|
||||||
- "avc1.42E01E",
|
|
||||||
- "avc1.42001E",
|
|
||||||
- "avc1.58A01E",
|
|
||||||
- "avc1.4D401E",
|
|
||||||
- "avc1.64001E",
|
|
||||||
- "mp4a.40.2",
|
|
||||||
- nullptr
|
|
||||||
-};
|
|
||||||
-
|
-
|
||||||
bool
|
bool
|
||||||
-nsHTMLMediaElement::IsH264Enabled()
|
nsHTMLMediaElement::IsGStreamerEnabled()
|
||||||
+nsHTMLMediaElement::IsGStreamerEnabled()
|
|
||||||
{
|
{
|
||||||
- return Preferences::GetBool("media.h264.enabled");
|
return Preferences::GetBool("media.gstreamer.enabled");
|
||||||
-}
|
}
|
||||||
-
|
-
|
||||||
-bool
|
-bool
|
||||||
-nsHTMLMediaElement::IsH264Type(const nsACString& aType)
|
-nsHTMLMediaElement::IsH264Type(const nsACString& aType)
|
||||||
-{
|
-{
|
||||||
- if (!IsH264Enabled()) {
|
|
||||||
- return false;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- for (uint32_t i = 0; i < ArrayLength(gH264Types); ++i) {
|
- for (uint32_t i = 0; i < ArrayLength(gH264Types); ++i) {
|
||||||
- if (aType.EqualsASCII(gH264Types[i])) {
|
- if (aType.EqualsASCII(gH264Types[i])) {
|
||||||
- return true;
|
- return true;
|
||||||
- }
|
- }
|
||||||
- }
|
- }
|
||||||
-
|
|
||||||
- return false;
|
- return false;
|
||||||
+ return Preferences::GetBool("media.gstreamer.enabled");
|
-}
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef MOZ_MEDIA_PLUGINS
|
#ifdef MOZ_WIDGET_GONK
|
||||||
bool
|
const char nsHTMLMediaElement::gOmxTypes[5][16] = {
|
||||||
nsHTMLMediaElement::IsMediaPluginsEnabled()
|
"audio/mpeg",
|
||||||
{
|
"audio/mp4",
|
||||||
return Preferences::GetBool("media.plugins.enabled");
|
"video/mp4",
|
||||||
@@ -2180,18 +2148,22 @@ nsHTMLMediaElement::IsMediaPluginsType(c
|
"video/3gpp",
|
||||||
}
|
@@ -2257,18 +2240,22 @@ nsHTMLMediaElement::IsDASHMPDType(const
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -185,9 +148,9 @@ diff --git a/content/html/content/src/nsHTMLMediaElement.cpp b/content/html/cont
|
|||||||
#endif
|
#endif
|
||||||
#ifdef MOZ_OGG
|
#ifdef MOZ_OGG
|
||||||
if (IsOggType(nsDependentCString(aMIMEType))) {
|
if (IsOggType(nsDependentCString(aMIMEType))) {
|
||||||
@@ -2208,20 +2180,22 @@ nsHTMLMediaElement::CanHandleMediaType(c
|
@@ -2292,20 +2279,22 @@ nsHTMLMediaElement::CanHandleMediaType(c
|
||||||
#ifdef MOZ_WEBM
|
if (IsDASHMPDType(nsDependentCString(aMIMEType))) {
|
||||||
if (IsWebMType(nsDependentCString(aMIMEType))) {
|
// DASH manifest uses WebM codecs only.
|
||||||
*aCodecList = gWebMCodecs;
|
*aCodecList = gWebMCodecs;
|
||||||
return CANPLAY_YES;
|
return CANPLAY_YES;
|
||||||
}
|
}
|
||||||
@ -205,14 +168,14 @@ diff --git a/content/html/content/src/nsHTMLMediaElement.cpp b/content/html/cont
|
|||||||
+ if (nsGStreamerDecoder::CanHandleMediaType(aMIMEType, aCodecs))
|
+ if (nsGStreamerDecoder::CanHandleMediaType(aMIMEType, aCodecs))
|
||||||
+ return CANPLAY_YES;
|
+ return CANPLAY_YES;
|
||||||
#endif
|
#endif
|
||||||
#ifdef MOZ_MEDIA_PLUGINS
|
#ifdef MOZ_WIDGET_GONK
|
||||||
if (IsMediaPluginsEnabled() && GetMediaPluginHost()->FindDecoder(nsDependentCString(aMIMEType), aCodecList))
|
if (IsOmxSupportedType(nsDependentCString(aMIMEType))) {
|
||||||
|
*aCodecList = gH264Codecs;
|
||||||
return CANPLAY_MAYBE;
|
return CANPLAY_MAYBE;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
return CANPLAY_NO;
|
#ifdef MOZ_MEDIA_PLUGINS
|
||||||
}
|
@@ -2326,17 +2315,17 @@ bool nsHTMLMediaElement::ShouldHandleMed
|
||||||
|
|
||||||
@@ -2236,17 +2210,17 @@ bool nsHTMLMediaElement::ShouldHandleMed
|
|
||||||
if (IsOggType(nsDependentCString(aMIMEType)))
|
if (IsOggType(nsDependentCString(aMIMEType)))
|
||||||
return true;
|
return true;
|
||||||
#endif
|
#endif
|
||||||
@ -225,13 +188,13 @@ diff --git a/content/html/content/src/nsHTMLMediaElement.cpp b/content/html/cont
|
|||||||
+ if (nsGStreamerDecoder::CanHandleMediaType(aMIMEType, nullptr))
|
+ if (nsGStreamerDecoder::CanHandleMediaType(aMIMEType, nullptr))
|
||||||
return true;
|
return true;
|
||||||
#endif
|
#endif
|
||||||
#ifdef MOZ_MEDIA_PLUGINS
|
#ifdef MOZ_WIDGET_GONK
|
||||||
if (IsMediaPluginsEnabled() && GetMediaPluginHost()->FindDecoder(nsDependentCString(aMIMEType), NULL))
|
if (IsOmxSupportedType(nsDependentCString(aMIMEType))) {
|
||||||
return true;
|
return true;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
// We should not return true for Wave types, since there are some
|
#ifdef MOZ_MEDIA_PLUGINS
|
||||||
// Wave codecs actually in use in the wild that we don't support, and
|
@@ -2367,26 +2356,31 @@ nsHTMLMediaElement::GetCanPlay(const nsA
|
||||||
@@ -2272,26 +2246,31 @@ nsHTMLMediaElement::GetCanPlay(const nsA
|
|
||||||
{
|
{
|
||||||
nsContentTypeParser parser(aType);
|
nsContentTypeParser parser(aType);
|
||||||
nsAutoString mimeType;
|
nsAutoString mimeType;
|
||||||
@ -268,27 +231,99 @@ diff --git a/content/html/content/src/nsHTMLMediaElement.cpp b/content/html/cont
|
|||||||
// of the 'codecs' parameter
|
// of the 'codecs' parameter
|
||||||
nsCharSeparatedTokenizer tokenizer(codecs, ',');
|
nsCharSeparatedTokenizer tokenizer(codecs, ',');
|
||||||
bool expectMoreTokens = false;
|
bool expectMoreTokens = false;
|
||||||
@@ -2369,17 +2348,19 @@ nsHTMLMediaElement::CreateDecoder(const
|
@@ -2425,46 +2419,41 @@ nsHTMLMediaElement::CanPlayType(const ns
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef MOZ_GSTREAMER
|
||||||
|
bool
|
||||||
|
nsHTMLMediaElement::IsGStreamerSupportedType(const nsACString& aMimeType)
|
||||||
|
{
|
||||||
|
if (!IsGStreamerEnabled())
|
||||||
|
return false;
|
||||||
|
- if (IsH264Type(aMimeType))
|
||||||
|
+
|
||||||
|
+ const char *type;
|
||||||
|
+ NS_CStringGetData(aMimeType, &type, nullptr);
|
||||||
|
+ if (nsGStreamerDecoder::CanHandleMediaType(type, nullptr))
|
||||||
|
return true;
|
||||||
|
- if (!Preferences::GetBool("media.prefer-gstreamer", false))
|
||||||
|
- return false;
|
||||||
|
-#ifdef MOZ_WEBM
|
||||||
|
- if (IsWebMType(aMimeType))
|
||||||
|
- return true;
|
||||||
|
-#endif
|
||||||
|
-#ifdef MOZ_OGG
|
||||||
|
- if (IsOggType(aMimeType))
|
||||||
|
- return true;
|
||||||
|
-#endif
|
||||||
|
+
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
already_AddRefed<nsMediaDecoder>
|
||||||
|
nsHTMLMediaElement::CreateDecoder(const nsACString& aType)
|
||||||
|
{
|
||||||
|
#ifdef MOZ_GSTREAMER
|
||||||
|
// When enabled, use GStreamer for H.264, but not for codecs handled by our
|
||||||
|
// bundled decoders, unless the "media.prefer-gstreamer" pref is set.
|
||||||
|
- if (IsGStreamerSupportedType(aType)) {
|
||||||
|
- nsRefPtr<nsGStreamerDecoder> decoder = new nsGStreamerDecoder();
|
||||||
|
- if (decoder->Init(this)) {
|
||||||
|
- return decoder.forget();
|
||||||
|
+ if (!Preferences::GetBool("media.prefer-gstreamer", false)) {
|
||||||
|
+ if (IsGStreamerSupportedType(aType)) {
|
||||||
|
+ nsRefPtr<nsGStreamerDecoder> decoder = new nsGStreamerDecoder();
|
||||||
|
+ if (decoder->Init(this)) {
|
||||||
|
+ return decoder.forget();
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
-
|
||||||
|
#ifdef MOZ_RAW
|
||||||
|
if (IsRawType(aType)) {
|
||||||
|
nsRefPtr<nsRawDecoder> decoder = new nsRawDecoder();
|
||||||
|
if (decoder->Init(this)) {
|
||||||
|
return decoder.forget();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
@@ -2503,25 +2492,33 @@ nsHTMLMediaElement::CreateDecoder(const
|
||||||
|
#ifdef MOZ_WEBM
|
||||||
|
if (IsWebMType(aType)) {
|
||||||
nsRefPtr<nsWebMDecoder> decoder = new nsWebMDecoder();
|
nsRefPtr<nsWebMDecoder> decoder = new nsWebMDecoder();
|
||||||
if (decoder->Init(this)) {
|
if (decoder->Init(this)) {
|
||||||
return decoder.forget();
|
return decoder.forget();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
-
|
||||||
#ifdef MOZ_GSTREAMER
|
#ifdef MOZ_DASH
|
||||||
- if (IsH264Type(aType)) {
|
if (IsDASHMPDType(aType)) {
|
||||||
+ const char *type;
|
nsRefPtr<nsDASHDecoder> decoder = new nsDASHDecoder();
|
||||||
+ NS_CStringGetData(aType, &type, NULL);
|
|
||||||
+ if (nsGStreamerDecoder::CanHandleMediaType(type, NULL)) {
|
|
||||||
nsRefPtr<nsGStreamerDecoder> decoder = new nsGStreamerDecoder();
|
|
||||||
if (decoder->Init(this)) {
|
if (decoder->Init(this)) {
|
||||||
return decoder.forget();
|
return decoder.forget();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
+#ifdef MOZ_GSTREAMER
|
||||||
|
+ // use GStreamer as fallback if not preferred
|
||||||
|
+ if (IsGStreamerSupportedType(aType)) {
|
||||||
|
+ nsRefPtr<nsGStreamerDecoder> decoder = new nsGStreamerDecoder();
|
||||||
|
+ if (decoder->Init(this)) {
|
||||||
|
+ return decoder.forget();
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+#endif
|
||||||
|
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nsresult nsHTMLMediaElement::InitializeDecoderAsClone(nsMediaDecoder* aOriginal)
|
||||||
|
{
|
||||||
|
NS_ASSERTION(mLoadingSrc, "mLoadingSrc must already be set");
|
||||||
|
NS_ASSERTION(mDecoder == nullptr, "Shouldn't have a decoder");
|
||||||
diff --git a/content/media/gstreamer/Makefile.in b/content/media/gstreamer/Makefile.in
|
diff --git a/content/media/gstreamer/Makefile.in b/content/media/gstreamer/Makefile.in
|
||||||
--- a/content/media/gstreamer/Makefile.in
|
--- a/content/media/gstreamer/Makefile.in
|
||||||
+++ b/content/media/gstreamer/Makefile.in
|
+++ b/content/media/gstreamer/Makefile.in
|
||||||
@ -367,11 +402,11 @@ new file mode 100644
|
|||||||
+#define ENTRY_FORMAT(entry) entry[0]
|
+#define ENTRY_FORMAT(entry) entry[0]
|
||||||
+#define ENTRY_CAPS(entry) entry[1]
|
+#define ENTRY_CAPS(entry) entry[1]
|
||||||
+
|
+
|
||||||
+nsGStreamerFormatHelper* nsGStreamerFormatHelper::gInstance = NULL;
|
+nsGStreamerFormatHelper* nsGStreamerFormatHelper::gInstance = nullptr;
|
||||||
+
|
+
|
||||||
+nsGStreamerFormatHelper *nsGStreamerFormatHelper::Instance() {
|
+nsGStreamerFormatHelper *nsGStreamerFormatHelper::Instance() {
|
||||||
+ if (!gInstance) {
|
+ if (!gInstance) {
|
||||||
+ gst_init(NULL, NULL);
|
+ gst_init(nullptr, nullptr);
|
||||||
+ gInstance = new nsGStreamerFormatHelper();
|
+ gInstance = new nsGStreamerFormatHelper();
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
@ -379,7 +414,7 @@ new file mode 100644
|
|||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+nsGStreamerFormatHelper::nsGStreamerFormatHelper()
|
+nsGStreamerFormatHelper::nsGStreamerFormatHelper()
|
||||||
+ : mFactories(NULL),
|
+ : mFactories(nullptr),
|
||||||
+ mCookie(0)
|
+ mCookie(0)
|
||||||
+{
|
+{
|
||||||
+ const char *containers[3][2] = {
|
+ const char *containers[3][2] = {
|
||||||
@ -424,7 +459,7 @@ new file mode 100644
|
|||||||
+ unsigned int i;
|
+ unsigned int i;
|
||||||
+
|
+
|
||||||
+ /* convert aMIMEType to gst container caps */
|
+ /* convert aMIMEType to gst container caps */
|
||||||
+ const char *capsString = NULL;
|
+ const char *capsString = nullptr;
|
||||||
+ for (i = 0; i < G_N_ELEMENTS(mContainers); i++) {
|
+ for (i = 0; i < G_N_ELEMENTS(mContainers); i++) {
|
||||||
+ if (!strcmp(ENTRY_FORMAT(mContainers[i]), aMIMEType)) {
|
+ if (!strcmp(ENTRY_FORMAT(mContainers[i]), aMIMEType)) {
|
||||||
+ capsString = ENTRY_CAPS(mContainers[i]);
|
+ capsString = ENTRY_CAPS(mContainers[i]);
|
||||||
@ -434,7 +469,7 @@ new file mode 100644
|
|||||||
+
|
+
|
||||||
+ if (!capsString) {
|
+ if (!capsString) {
|
||||||
+ /* we couldn't find any matching caps */
|
+ /* we couldn't find any matching caps */
|
||||||
+ return NULL;
|
+ return nullptr;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ GstCaps *caps = gst_caps_from_string(capsString);
|
+ GstCaps *caps = gst_caps_from_string(capsString);
|
||||||
@ -447,7 +482,7 @@ new file mode 100644
|
|||||||
+ nsCCharSeparatedTokenizer tokenizer(codecs, ',');
|
+ nsCCharSeparatedTokenizer tokenizer(codecs, ',');
|
||||||
+ while (tokenizer.hasMoreTokens()) {
|
+ while (tokenizer.hasMoreTokens()) {
|
||||||
+ const nsCSubstring& codec = tokenizer.nextToken();
|
+ const nsCSubstring& codec = tokenizer.nextToken();
|
||||||
+ capsString = NULL;
|
+ capsString = nullptr;
|
||||||
+
|
+
|
||||||
+ for (i = 0; i < G_N_ELEMENTS(mCodecs); i++) {
|
+ for (i = 0; i < G_N_ELEMENTS(mCodecs); i++) {
|
||||||
+ if (codec.Equals(ENTRY_FORMAT(mCodecs[i]))) {
|
+ if (codec.Equals(ENTRY_FORMAT(mCodecs[i]))) {
|
||||||
@ -458,7 +493,7 @@ new file mode 100644
|
|||||||
+
|
+
|
||||||
+ if (!capsString) {
|
+ if (!capsString) {
|
||||||
+ gst_caps_unref(caps);
|
+ gst_caps_unref(caps);
|
||||||
+ return NULL;
|
+ return nullptr;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ GstCaps *tmp = gst_caps_from_string(capsString);
|
+ GstCaps *tmp = gst_caps_from_string(capsString);
|
||||||
@ -479,7 +514,7 @@ new file mode 100644
|
|||||||
+ * structure */
|
+ * structure */
|
||||||
+ for (unsigned int i = 0; i < gst_caps_get_size(aCaps); i++) {
|
+ for (unsigned int i = 0; i < gst_caps_get_size(aCaps); i++) {
|
||||||
+ GstStructure *s = gst_caps_get_structure(aCaps, i);
|
+ GstStructure *s = gst_caps_get_structure(aCaps, i);
|
||||||
+ GstCaps *caps = gst_caps_new_full(gst_structure_copy(s), NULL);
|
+ GstCaps *caps = gst_caps_new_full(gst_structure_copy(s), nullptr);
|
||||||
+ list = gst_element_factory_list_filter (factories, caps, GST_PAD_SINK, FALSE);
|
+ list = gst_element_factory_list_filter (factories, caps, GST_PAD_SINK, FALSE);
|
||||||
+ gst_caps_unref(caps);
|
+ gst_caps_unref(caps);
|
||||||
+ if (!list) {
|
+ if (!list) {
|
||||||
@ -545,25 +580,3 @@ new file mode 100644
|
|||||||
+};
|
+};
|
||||||
+
|
+
|
||||||
+#endif
|
+#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
|
|
||||||
@@ -165,17 +165,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
|
|
||||||
#ifdef MOZ_WEBRTC
|
|
||||||
pref("media.navigator.enabled", false);
|
|
||||||
#else
|
|
||||||
#ifdef ANDROID
|
|
||||||
pref("media.navigator.enabled", true);
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
293
mozilla-gstreamer-803287.patch
Normal file
293
mozilla-gstreamer-803287.patch
Normal file
@ -0,0 +1,293 @@
|
|||||||
|
# HG changeset patch
|
||||||
|
# Parent 09328afa274e7cf6354f446ae37735218b796e7f
|
||||||
|
# User Wolfgang Rosenauer <wr@rosenauer.org>
|
||||||
|
Bug 803287 - Don't use GStreamer (when enabled) for Ogg/WebM if builtin backends present. (TM: 19)
|
||||||
|
|
||||||
|
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
|
||||||
|
@@ -6676,71 +6676,55 @@ nsContentUtils::FindInternalContentViewe
|
||||||
|
else
|
||||||
|
*aLoaderType = TYPE_UNKNOWN;
|
||||||
|
}
|
||||||
|
return docFactory.forget();
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef MOZ_MEDIA
|
||||||
|
#ifdef MOZ_OGG
|
||||||
|
- if (nsHTMLMediaElement::IsOggEnabled()) {
|
||||||
|
- for (unsigned int i = 0; i < ArrayLength(nsHTMLMediaElement::gOggTypes); ++i) {
|
||||||
|
- const char* type = nsHTMLMediaElement::gOggTypes[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::IsOggType(nsDependentCString(aType))) {
|
||||||
|
+ docFactory = do_GetService("@mozilla.org/content/document-loader-factory;1");
|
||||||
|
+ if (docFactory && aLoaderType) {
|
||||||
|
+ *aLoaderType = TYPE_CONTENT;
|
||||||
|
}
|
||||||
|
+ return docFactory.forget();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MOZ_WEBM
|
||||||
|
- if (nsHTMLMediaElement::IsWebMEnabled()) {
|
||||||
|
- for (unsigned int i = 0; i < ArrayLength(nsHTMLMediaElement::gWebMTypes); ++i) {
|
||||||
|
- const char* type = nsHTMLMediaElement::gWebMTypes[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::IsWebMType(nsDependentCString(aType))) {
|
||||||
|
+ docFactory = do_GetService("@mozilla.org/content/document-loader-factory;1");
|
||||||
|
+ if (docFactory && aLoaderType) {
|
||||||
|
+ *aLoaderType = TYPE_CONTENT;
|
||||||
|
}
|
||||||
|
+ 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::IsGStreamerSupportedType(nsDependentCString(aType))) {
|
||||||
|
+ docFactory = do_GetService("@mozilla.org/content/document-loader-factory;1");
|
||||||
|
+ if (docFactory && aLoaderType) {
|
||||||
|
+ *aLoaderType = TYPE_CONTENT;
|
||||||
|
}
|
||||||
|
+ return docFactory.forget();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MOZ_MEDIA_PLUGINS
|
||||||
|
if (nsHTMLMediaElement::IsMediaPluginsEnabled() &&
|
||||||
|
nsHTMLMediaElement::IsMediaPluginsType(nsDependentCString(aType))) {
|
||||||
|
docFactory = do_GetService("@mozilla.org/content/document-loader-factory;1");
|
||||||
|
if (docFactory && aLoaderType) {
|
||||||
|
*aLoaderType = TYPE_CONTENT;
|
||||||
|
}
|
||||||
|
return docFactory.forget();
|
||||||
|
}
|
||||||
|
#endif // MOZ_MEDIA_PLUGINS
|
||||||
|
-
|
||||||
|
#endif // MOZ_MEDIA
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
// static
|
||||||
|
bool
|
||||||
|
nsContentUtils::IsPatternMatching(nsAString& aValue, nsAString& aPattern,
|
||||||
|
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
|
||||||
|
@@ -303,17 +303,18 @@ public:
|
||||||
|
#ifdef MOZ_WEBM
|
||||||
|
static bool IsWebMEnabled();
|
||||||
|
static bool IsWebMType(const nsACString& aType);
|
||||||
|
static const char gWebMTypes[2][11];
|
||||||
|
static char const *const gWebMCodecs[4];
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MOZ_GSTREAMER
|
||||||
|
- static bool IsH264Enabled();
|
||||||
|
+ static bool IsGStreamerEnabled();
|
||||||
|
+ static bool IsGStreamerSupportedType(const nsACString& aType);
|
||||||
|
static bool IsH264Type(const nsACString& aType);
|
||||||
|
static const char gH264Types[3][16];
|
||||||
|
static char const *const gH264Codecs[7];
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MOZ_WIDGET_GONK
|
||||||
|
static bool IsOmxEnabled();
|
||||||
|
static bool IsOmxSupportedType(const nsACString& aType);
|
||||||
|
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
|
||||||
|
@@ -2148,34 +2148,29 @@ char const *const nsHTMLMediaElement::gH
|
||||||
|
#ifdef MOZ_GSTREAMER
|
||||||
|
const char nsHTMLMediaElement::gH264Types[3][16] = {
|
||||||
|
"video/mp4",
|
||||||
|
"video/3gpp",
|
||||||
|
"video/quicktime",
|
||||||
|
};
|
||||||
|
|
||||||
|
bool
|
||||||
|
-nsHTMLMediaElement::IsH264Enabled()
|
||||||
|
+nsHTMLMediaElement::IsGStreamerEnabled()
|
||||||
|
{
|
||||||
|
- return Preferences::GetBool("media.h264.enabled");
|
||||||
|
+ return Preferences::GetBool("media.gstreamer.enabled");
|
||||||
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
nsHTMLMediaElement::IsH264Type(const nsACString& aType)
|
||||||
|
{
|
||||||
|
- if (!IsH264Enabled()) {
|
||||||
|
- return false;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
for (uint32_t i = 0; i < ArrayLength(gH264Types); ++i) {
|
||||||
|
if (aType.EqualsASCII(gH264Types[i])) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
-
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MOZ_WIDGET_GONK
|
||||||
|
const char nsHTMLMediaElement::gOmxTypes[5][16] = {
|
||||||
|
"audio/mpeg",
|
||||||
|
"audio/mp4",
|
||||||
|
@@ -2424,34 +2419,63 @@ nsHTMLMediaElement::CanPlayType(const ns
|
||||||
|
default:
|
||||||
|
case CANPLAY_MAYBE:
|
||||||
|
aResult.AssignLiteral("maybe");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
+#ifdef MOZ_GSTREAMER
|
||||||
|
+bool
|
||||||
|
+nsHTMLMediaElement::IsGStreamerSupportedType(const nsACString& aMimeType)
|
||||||
|
+{
|
||||||
|
+ if (!IsGStreamerEnabled())
|
||||||
|
+ return false;
|
||||||
|
+ if (IsH264Type(aMimeType))
|
||||||
|
+ return true;
|
||||||
|
+ if (!Preferences::GetBool("media.prefer-gstreamer", false))
|
||||||
|
+ return false;
|
||||||
|
+#ifdef MOZ_WEBM
|
||||||
|
+ if (IsWebMType(aMimeType))
|
||||||
|
+ return true;
|
||||||
|
+#endif
|
||||||
|
+#ifdef MOZ_OGG
|
||||||
|
+ if (IsOggType(aMimeType))
|
||||||
|
+ return true;
|
||||||
|
+#endif
|
||||||
|
+ return false;
|
||||||
|
+}
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
already_AddRefed<nsMediaDecoder>
|
||||||
|
nsHTMLMediaElement::CreateDecoder(const nsACString& aType)
|
||||||
|
{
|
||||||
|
+#ifdef MOZ_GSTREAMER
|
||||||
|
+ // When enabled, use GStreamer for H.264, but not for codecs handled by our
|
||||||
|
+ // bundled decoders, unless the "media.prefer-gstreamer" pref is set.
|
||||||
|
+ if (IsGStreamerSupportedType(aType)) {
|
||||||
|
+ nsRefPtr<nsGStreamerDecoder> decoder = new nsGStreamerDecoder();
|
||||||
|
+ if (decoder->Init(this)) {
|
||||||
|
+ return decoder.forget();
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
#ifdef MOZ_RAW
|
||||||
|
if (IsRawType(aType)) {
|
||||||
|
nsRefPtr<nsRawDecoder> decoder = new nsRawDecoder();
|
||||||
|
if (decoder->Init(this)) {
|
||||||
|
return decoder.forget();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#ifdef MOZ_OGG
|
||||||
|
if (IsOggType(aType)) {
|
||||||
|
-#ifdef MOZ_GSTREAMER
|
||||||
|
- nsRefPtr<nsGStreamerDecoder> decoder = new nsGStreamerDecoder();
|
||||||
|
-#else
|
||||||
|
nsRefPtr<nsOggDecoder> decoder = new nsOggDecoder();
|
||||||
|
-#endif
|
||||||
|
if (decoder->Init(this)) {
|
||||||
|
return decoder.forget();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#ifdef MOZ_WAVE
|
||||||
|
if (IsWaveType(aType)) {
|
||||||
|
nsRefPtr<nsWaveDecoder> decoder = new nsWaveDecoder();
|
||||||
|
@@ -2473,44 +2497,32 @@ nsHTMLMediaElement::CreateDecoder(const
|
||||||
|
nsRefPtr<nsMediaPluginDecoder> decoder = new nsMediaPluginDecoder(aType);
|
||||||
|
if (decoder->Init(this)) {
|
||||||
|
return decoder.forget();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#ifdef MOZ_WEBM
|
||||||
|
if (IsWebMType(aType)) {
|
||||||
|
-#ifdef MOZ_GSTREAMER
|
||||||
|
- nsRefPtr<nsGStreamerDecoder> decoder = new nsGStreamerDecoder();
|
||||||
|
-#else
|
||||||
|
nsRefPtr<nsWebMDecoder> decoder = new nsWebMDecoder();
|
||||||
|
-#endif
|
||||||
|
if (decoder->Init(this)) {
|
||||||
|
return decoder.forget();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MOZ_DASH
|
||||||
|
if (IsDASHMPDType(aType)) {
|
||||||
|
nsRefPtr<nsDASHDecoder> decoder = new nsDASHDecoder();
|
||||||
|
if (decoder->Init(this)) {
|
||||||
|
return decoder.forget();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-#ifdef MOZ_GSTREAMER
|
||||||
|
- if (IsH264Type(aType)) {
|
||||||
|
- nsRefPtr<nsGStreamerDecoder> decoder = new nsGStreamerDecoder();
|
||||||
|
- if (decoder->Init(this)) {
|
||||||
|
- return decoder.forget();
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
-#endif
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
nsresult nsHTMLMediaElement::InitializeDecoderAsClone(nsMediaDecoder* aOriginal)
|
||||||
|
{
|
||||||
|
NS_ASSERTION(mLoadingSrc, "mLoadingSrc must already be set");
|
||||||
|
NS_ASSERTION(mDecoder == nullptr, "Shouldn't have a decoder");
|
||||||
|
|
||||||
|
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
|
||||||
|
@@ -164,17 +164,17 @@ pref("media.wave.enabled", true);
|
||||||
|
#endif
|
||||||
|
#ifdef MOZ_WEBM
|
||||||
|
pref("media.webm.enabled", true);
|
||||||
|
#endif
|
||||||
|
#ifdef MOZ_DASH
|
||||||
|
pref("media.dash.enabled", true);
|
||||||
|
#endif
|
||||||
|
#ifdef MOZ_GSTREAMER
|
||||||
|
-pref("media.h264.enabled", true);
|
||||||
|
+pref("media.gstreamer.enabled", true);
|
||||||
|
#endif
|
||||||
|
#ifdef MOZ_WEBRTC
|
||||||
|
pref("media.navigator.enabled", false);
|
||||||
|
pref("media.peerconnection.enabled", false);
|
||||||
|
pref("media.navigator.permission.disabled", false);
|
||||||
|
#else
|
||||||
|
#ifdef ANDROID
|
||||||
|
pref("media.navigator.enabled", true);
|
@ -1,52 +0,0 @@
|
|||||||
# HG changeset patch
|
|
||||||
# Parent e4b87e710b1a5f0bb7db058911bc163b4bf30227
|
|
||||||
# User Wolfgang Rosenauer <wr@rosenauer.org>
|
|
||||||
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
|
|
||||||
@@ -2277,21 +2277,17 @@ nsHTMLMediaElement::CreateDecoder(const
|
|
||||||
nsRefPtr<nsRawDecoder> decoder = new nsRawDecoder();
|
|
||||||
if (decoder->Init(this)) {
|
|
||||||
return decoder.forget();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#ifdef MOZ_OGG
|
|
||||||
if (IsOggType(aType)) {
|
|
||||||
-#ifdef MOZ_GSTREAMER
|
|
||||||
- nsRefPtr<nsGStreamerDecoder> decoder = new nsGStreamerDecoder();
|
|
||||||
-#else
|
|
||||||
nsRefPtr<nsOggDecoder> decoder = new nsOggDecoder();
|
|
||||||
-#endif
|
|
||||||
if (decoder->Init(this)) {
|
|
||||||
return decoder.forget();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#ifdef MOZ_WAVE
|
|
||||||
if (IsWaveType(aType)) {
|
|
||||||
nsRefPtr<nsWaveDecoder> decoder = new nsWaveDecoder();
|
|
||||||
@@ -2305,21 +2301,17 @@ nsHTMLMediaElement::CreateDecoder(const
|
|
||||||
nsRefPtr<nsMediaPluginDecoder> decoder = new nsMediaPluginDecoder(aType);
|
|
||||||
if (decoder->Init(this)) {
|
|
||||||
return decoder.forget();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#ifdef MOZ_WEBM
|
|
||||||
if (IsWebMType(aType)) {
|
|
||||||
-#ifdef MOZ_GSTREAMER
|
|
||||||
- nsRefPtr<nsGStreamerDecoder> decoder = new nsGStreamerDecoder();
|
|
||||||
-#else
|
|
||||||
nsRefPtr<nsWebMDecoder> decoder = new nsWebMDecoder();
|
|
||||||
-#endif
|
|
||||||
if (decoder->Init(this)) {
|
|
||||||
return decoder.forget();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef MOZ_GSTREAMER
|
|
||||||
if (IsH264Type(aType)) {
|
|
@ -45,7 +45,7 @@ diff --git a/modules/libpref/src/Preferences.cpp b/modules/libpref/src/Preferenc
|
|||||||
#include "prefapi.h"
|
#include "prefapi.h"
|
||||||
#include "prefread.h"
|
#include "prefread.h"
|
||||||
#include "prefapi_private_data.h"
|
#include "prefapi_private_data.h"
|
||||||
@@ -896,16 +897,34 @@ pref_LoadPrefsInDir(nsIFile* aDir, char
|
@@ -950,16 +951,34 @@ pref_LoadPrefsInDir(nsIFile* aDir, char
|
||||||
|
|
||||||
static nsresult pref_LoadPrefsInDirList(const char *listId)
|
static nsresult pref_LoadPrefsInDirList(const char *listId)
|
||||||
{
|
{
|
||||||
@ -80,9 +80,9 @@ diff --git a/modules/libpref/src/Preferences.cpp b/modules/libpref/src/Preferenc
|
|||||||
return NS_OK;
|
return NS_OK;
|
||||||
|
|
||||||
bool hasMore;
|
bool hasMore;
|
||||||
@@ -921,17 +940,17 @@ static nsresult pref_LoadPrefsInDirList(
|
@@ -975,17 +994,17 @@ static nsresult pref_LoadPrefsInDirList(
|
||||||
|
|
||||||
nsCAutoString leaf;
|
nsAutoCString leaf;
|
||||||
path->GetNativeLeafName(leaf);
|
path->GetNativeLeafName(leaf);
|
||||||
|
|
||||||
// Do we care if a file provided by this process fails to load?
|
// Do we care if a file provided by this process fails to load?
|
||||||
@ -99,7 +99,7 @@ diff --git a/modules/libpref/src/Preferences.cpp b/modules/libpref/src/Preferenc
|
|||||||
{
|
{
|
||||||
nsZipItemPtr<char> manifest(jarReader, name, true);
|
nsZipItemPtr<char> manifest(jarReader, name, true);
|
||||||
NS_ENSURE_TRUE(manifest.Buffer(), NS_ERROR_NOT_AVAILABLE);
|
NS_ENSURE_TRUE(manifest.Buffer(), NS_ERROR_NOT_AVAILABLE);
|
||||||
@@ -1025,28 +1044,40 @@ static nsresult pref_InitInitialObjects(
|
@@ -1079,28 +1098,40 @@ static nsresult pref_InitInitialObjects(
|
||||||
/* these pref file names should not be used: we process them after all other application pref files for backwards compatibility */
|
/* these pref file names should not be used: we process them after all other application pref files for backwards compatibility */
|
||||||
static const char* specialFiles[] = {
|
static const char* specialFiles[] = {
|
||||||
#if defined(XP_MACOSX)
|
#if defined(XP_MACOSX)
|
||||||
@ -159,7 +159,7 @@ diff --git a/toolkit/components/downloads/Makefile.in b/toolkit/components/downl
|
|||||||
diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/components/downloads/nsDownloadManager.cpp
|
diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/components/downloads/nsDownloadManager.cpp
|
||||||
--- a/toolkit/components/downloads/nsDownloadManager.cpp
|
--- a/toolkit/components/downloads/nsDownloadManager.cpp
|
||||||
+++ b/toolkit/components/downloads/nsDownloadManager.cpp
|
+++ b/toolkit/components/downloads/nsDownloadManager.cpp
|
||||||
@@ -35,16 +35,20 @@
|
@@ -36,16 +36,20 @@
|
||||||
|
|
||||||
#ifdef XP_WIN
|
#ifdef XP_WIN
|
||||||
#include <shlobj.h>
|
#include <shlobj.h>
|
||||||
@ -180,7 +180,7 @@ diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/compon
|
|||||||
#include "AndroidBridge.h"
|
#include "AndroidBridge.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -2233,16 +2237,25 @@ nsDownload::SetState(DownloadState aStat
|
@@ -2253,16 +2257,25 @@ nsDownload::SetState(DownloadState aStat
|
||||||
nsCOMPtr<nsIPrefBranch> pref(do_GetService(NS_PREFSERVICE_CONTRACTID));
|
nsCOMPtr<nsIPrefBranch> pref(do_GetService(NS_PREFSERVICE_CONTRACTID));
|
||||||
|
|
||||||
// Master pref to control this function.
|
// Master pref to control this function.
|
||||||
@ -194,7 +194,7 @@ diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/compon
|
|||||||
+ command.AppendElement( NS_LITERAL_CSTRING( "DOWNLOADFINISHED" ));
|
+ command.AppendElement( NS_LITERAL_CSTRING( "DOWNLOADFINISHED" ));
|
||||||
+ nsAutoString displayName;
|
+ nsAutoString displayName;
|
||||||
+ GetDisplayName( displayName );
|
+ GetDisplayName( displayName );
|
||||||
+ command.AppendElement( nsCAutoString( ToNewUTF8String( displayName )));
|
+ command.AppendElement( nsAutoCString( ToNewUTF8String( displayName )));
|
||||||
+ nsKDEUtils::command( command );
|
+ nsKDEUtils::command( command );
|
||||||
+ } else {
|
+ } else {
|
||||||
+ // begin non-KDE block
|
+ // begin non-KDE block
|
||||||
@ -206,7 +206,7 @@ diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/compon
|
|||||||
int64_t goat = PR_Now() - mStartTime;
|
int64_t goat = PR_Now() - mStartTime;
|
||||||
showTaskbarAlert = goat > alertIntervalUSec;
|
showTaskbarAlert = goat > alertIntervalUSec;
|
||||||
|
|
||||||
@@ -2266,19 +2279,20 @@ nsDownload::SetState(DownloadState aStat
|
@@ -2286,19 +2299,20 @@ nsDownload::SetState(DownloadState aStat
|
||||||
// If downloads are automatically removed per the user's
|
// If downloads are automatically removed per the user's
|
||||||
// retention policy, there's no reason to make the text clickable
|
// retention policy, there's no reason to make the text clickable
|
||||||
// because if it is, they'll click open the download manager and
|
// because if it is, they'll click open the download manager and
|
||||||
@ -231,7 +231,7 @@ diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/compon
|
|||||||
diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn
|
diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn
|
||||||
--- a/toolkit/content/jar.mn
|
--- a/toolkit/content/jar.mn
|
||||||
+++ b/toolkit/content/jar.mn
|
+++ b/toolkit/content/jar.mn
|
||||||
@@ -45,29 +45,33 @@ toolkit.jar:
|
@@ -46,29 +46,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/autocomplete.xml (widgets/autocomplete.xml)
|
||||||
content/global/bindings/browser.xml (widgets/browser.xml)
|
content/global/bindings/browser.xml (widgets/browser.xml)
|
||||||
@ -2068,8 +2068,7 @@ new file mode 100644
|
|||||||
diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
|
diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
|
||||||
--- a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
|
--- a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
|
||||||
+++ b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
|
+++ b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
|
||||||
@@ -13,16 +13,19 @@
|
@@ -14,16 +14,18 @@
|
||||||
#include "prnetdb.h"
|
|
||||||
#include "prenv.h"
|
#include "prenv.h"
|
||||||
#include "nsPrintfCString.h"
|
#include "nsPrintfCString.h"
|
||||||
#include "nsNetUtil.h"
|
#include "nsNetUtil.h"
|
||||||
@ -2077,9 +2076,9 @@ diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/sy
|
|||||||
#include "nsIGSettingsService.h"
|
#include "nsIGSettingsService.h"
|
||||||
#include "nsInterfaceHashtable.h"
|
#include "nsInterfaceHashtable.h"
|
||||||
#include "mozilla/Attributes.h"
|
#include "mozilla/Attributes.h"
|
||||||
|
#include "nsIURI.h"
|
||||||
+#include "nsVoidArray.h"
|
+#include "nsVoidArray.h"
|
||||||
+#include "nsKDEUtils.h"
|
+#include "nsKDEUtils.h"
|
||||||
+
|
|
||||||
|
|
||||||
class nsUnixSystemProxySettings MOZ_FINAL : public nsISystemProxySettings {
|
class nsUnixSystemProxySettings MOZ_FINAL : public nsISystemProxySettings {
|
||||||
public:
|
public:
|
||||||
@ -2088,7 +2087,7 @@ diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/sy
|
|||||||
|
|
||||||
nsUnixSystemProxySettings() {}
|
nsUnixSystemProxySettings() {}
|
||||||
nsresult Init();
|
nsresult Init();
|
||||||
@@ -34,16 +37,17 @@ private:
|
@@ -35,16 +37,17 @@ private:
|
||||||
nsCOMPtr<nsIGSettingsService> mGSettings;
|
nsCOMPtr<nsIGSettingsService> mGSettings;
|
||||||
nsCOMPtr<nsIGSettingsCollection> mProxySettings;
|
nsCOMPtr<nsIGSettingsCollection> mProxySettings;
|
||||||
nsInterfaceHashtable<nsCStringHashKey, nsIGSettingsCollection> mSchemeProxySettings;
|
nsInterfaceHashtable<nsCStringHashKey, nsIGSettingsCollection> mSchemeProxySettings;
|
||||||
@ -2102,31 +2101,31 @@ diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/sy
|
|||||||
|
|
||||||
NS_IMPL_ISUPPORTS1(nsUnixSystemProxySettings, nsISystemProxySettings)
|
NS_IMPL_ISUPPORTS1(nsUnixSystemProxySettings, nsISystemProxySettings)
|
||||||
|
|
||||||
nsresult
|
NS_IMETHODIMP
|
||||||
nsUnixSystemProxySettings::Init()
|
nsUnixSystemProxySettings::GetMainThreadOnly(bool *aMainThreadOnly)
|
||||||
{
|
{
|
||||||
// If this is a GNOME session, load gconf and try to use its preferences.
|
// dbus prevents us from being threadsafe, but this routine should not block anyhow
|
||||||
@@ -496,16 +500,19 @@ nsUnixSystemProxySettings::GetProxyForUR
|
@@ -499,16 +502,19 @@ nsUnixSystemProxySettings::GetProxyFromG
|
||||||
nsCAutoString host;
|
|
||||||
rv = aURI->GetHost(host);
|
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
|
||||||
|
|
||||||
int32_t port;
|
nsresult
|
||||||
rv = aURI->GetPort(&port);
|
nsUnixSystemProxySettings::GetProxyForURI(const nsACString & aSpec,
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
const nsACString & aScheme,
|
||||||
|
const nsACString & aHost,
|
||||||
+ if( nsKDEUtils::kdeSupport())
|
const int32_t aPort,
|
||||||
+ return GetProxyFromKDE(scheme, host, port, aResult);
|
nsACString & aResult)
|
||||||
|
{
|
||||||
|
+ if (nsKDEUtils::kdeSupport())
|
||||||
|
+ return GetProxyFromKDE(aScheme, aHost, aPort, aResult);
|
||||||
+
|
+
|
||||||
if (mProxySettings) {
|
if (mProxySettings) {
|
||||||
rv = GetProxyFromGSettings(scheme, host, port, aResult);
|
nsresult rv = GetProxyFromGSettings(aScheme, aHost, aPort, aResult);
|
||||||
if (rv == NS_OK)
|
if (NS_SUCCEEDED(rv))
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
if (mGConf)
|
if (mGConf)
|
||||||
return GetProxyFromGConf(scheme, host, port, aResult);
|
return GetProxyFromGConf(aScheme, aHost, aPort, aResult);
|
||||||
|
|
||||||
@@ -531,8 +538,34 @@ static const mozilla::Module::ContractID
|
@@ -534,8 +540,34 @@ static const mozilla::Module::ContractID
|
||||||
|
|
||||||
static const mozilla::Module kUnixProxyModule = {
|
static const mozilla::Module kUnixProxyModule = {
|
||||||
mozilla::Module::kVersion,
|
mozilla::Module::kVersion,
|
||||||
@ -2142,7 +2141,7 @@ diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/sy
|
|||||||
+ PRInt32 aPort,
|
+ PRInt32 aPort,
|
||||||
+ nsACString& aResult)
|
+ nsACString& aResult)
|
||||||
+{
|
+{
|
||||||
+ nsCAutoString url;
|
+ nsAutoCString url;
|
||||||
+ url = aScheme;
|
+ url = aScheme;
|
||||||
+ url += "://";
|
+ url += "://";
|
||||||
+ url += aHost;
|
+ url += aHost;
|
||||||
@ -2321,7 +2320,7 @@ new file mode 100644
|
|||||||
+ *eol = '\0';
|
+ *eol = '\0';
|
||||||
+ command_done = ( strcmp( buf, "\\1" ) == 0 );
|
+ command_done = ( strcmp( buf, "\\1" ) == 0 );
|
||||||
+ command_failed = ( strcmp( buf, "\\0" ) == 0 );
|
+ command_failed = ( strcmp( buf, "\\0" ) == 0 );
|
||||||
+ nsCAutoString line( buf );
|
+ nsAutoCString line( buf );
|
||||||
+ line.ReplaceSubstring( "\\n", "\n" );
|
+ line.ReplaceSubstring( "\\n", "\n" );
|
||||||
+ line.ReplaceSubstring( "\\" "\\", "\\" ); // \\ -> \ , i.e. unescape
|
+ line.ReplaceSubstring( "\\" "\\", "\\" ); // \\ -> \ , i.e. unescape
|
||||||
+ if( p->output && !( command_done || command_failed ))
|
+ if( p->output && !( command_done || command_failed ))
|
||||||
@ -2364,7 +2363,7 @@ new file mode 100644
|
|||||||
+ nsCOMPtr<nsISupportsCString> str = do_QueryElementAt( command, i );
|
+ nsCOMPtr<nsISupportsCString> str = do_QueryElementAt( command, i );
|
||||||
+ if( str )
|
+ if( str )
|
||||||
+ {
|
+ {
|
||||||
+ nsCAutoString s;
|
+ nsAutoCString s;
|
||||||
+ str->GetData( s );
|
+ str->GetData( s );
|
||||||
+ in.AppendElement( s );
|
+ in.AppendElement( s );
|
||||||
+ }
|
+ }
|
||||||
@ -2625,7 +2624,7 @@ new file mode 100644
|
|||||||
+#include "nsVoidArray.h"
|
+#include "nsVoidArray.h"
|
||||||
+#include "nsKDEUtils.h"
|
+#include "nsKDEUtils.h"
|
||||||
+
|
+
|
||||||
+/* static */ PRBool
|
+/* static */ bool
|
||||||
+nsCommonRegistry::HandlerExists(const char *aProtocolScheme)
|
+nsCommonRegistry::HandlerExists(const char *aProtocolScheme)
|
||||||
+{
|
+{
|
||||||
+ if( nsKDEUtils::kdeSupport())
|
+ if( nsKDEUtils::kdeSupport())
|
||||||
@ -2683,7 +2682,7 @@ new file mode 100644
|
|||||||
+class nsCommonRegistry
|
+class nsCommonRegistry
|
||||||
+{
|
+{
|
||||||
+ public:
|
+ public:
|
||||||
+ static PRBool HandlerExists(const char *aProtocolScheme);
|
+ static bool HandlerExists(const char *aProtocolScheme);
|
||||||
+
|
+
|
||||||
+ static nsresult LoadURL(nsIURI *aURL);
|
+ static nsresult LoadURL(nsIURI *aURL);
|
||||||
+
|
+
|
||||||
@ -2698,7 +2697,7 @@ diff --git a/uriloader/exthandler/unix/nsKDERegistry.cpp b/uriloader/exthandler/
|
|||||||
new file mode 100644
|
new file mode 100644
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/uriloader/exthandler/unix/nsKDERegistry.cpp
|
+++ b/uriloader/exthandler/unix/nsKDERegistry.cpp
|
||||||
@@ -0,0 +1,86 @@
|
@@ -0,0 +1,90 @@
|
||||||
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||||
+/* This Source Code Form is subject to the terms of the Mozilla Public
|
+/* 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
|
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
@ -2713,12 +2712,12 @@ new file mode 100644
|
|||||||
+#include "nsAutoPtr.h"
|
+#include "nsAutoPtr.h"
|
||||||
+#include "nsKDEUtils.h"
|
+#include "nsKDEUtils.h"
|
||||||
+
|
+
|
||||||
+/* static */ PRBool
|
+/* static */ bool
|
||||||
+nsKDERegistry::HandlerExists(const char *aProtocolScheme)
|
+nsKDERegistry::HandlerExists(const char *aProtocolScheme)
|
||||||
+{
|
+{
|
||||||
+ nsTArray<nsCString> command;
|
+ nsTArray<nsCString> command;
|
||||||
+ command.AppendElement( NS_LITERAL_CSTRING( "HANDLEREXISTS" ));
|
+ command.AppendElement( NS_LITERAL_CSTRING( "HANDLEREXISTS" ));
|
||||||
+ command.AppendElement( nsCAutoString( aProtocolScheme ));
|
+ command.AppendElement( nsAutoCString( aProtocolScheme ));
|
||||||
+ return nsKDEUtils::command( command );
|
+ return nsKDEUtils::command( command );
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
@ -2730,7 +2729,11 @@ new file mode 100644
|
|||||||
+ nsCString url;
|
+ nsCString url;
|
||||||
+ aURL->GetSpec( url );
|
+ aURL->GetSpec( url );
|
||||||
+ command.AppendElement( url );
|
+ command.AppendElement( url );
|
||||||
+ return nsKDEUtils::command( command );
|
+ bool rv = nsKDEUtils::command( command );
|
||||||
|
+ if (!rv)
|
||||||
|
+ return NS_ERROR_FAILURE;
|
||||||
|
+
|
||||||
|
+ return NS_OK;
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+/* static */ void
|
+/* static */ void
|
||||||
@ -2799,13 +2802,13 @@ new file mode 100644
|
|||||||
+#include "nsTArray.h"
|
+#include "nsTArray.h"
|
||||||
+
|
+
|
||||||
+class nsMIMEInfoBase;
|
+class nsMIMEInfoBase;
|
||||||
+class nsCAutoString;
|
+class nsAutoCString;
|
||||||
+class nsCString;
|
+class nsCString;
|
||||||
+
|
+
|
||||||
+class nsKDERegistry
|
+class nsKDERegistry
|
||||||
+{
|
+{
|
||||||
+ public:
|
+ public:
|
||||||
+ static PRBool HandlerExists(const char *aProtocolScheme);
|
+ static bool HandlerExists(const char *aProtocolScheme);
|
||||||
+
|
+
|
||||||
+ static nsresult LoadURL(nsIURI *aURL);
|
+ static nsresult LoadURL(nsIURI *aURL);
|
||||||
+
|
+
|
||||||
@ -2855,7 +2858,7 @@ diff --git a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp b/uriloader/exthandler
|
|||||||
if (NS_FAILED(rv)){
|
if (NS_FAILED(rv)){
|
||||||
HildonURIAction *action = hildon_uri_get_default_action(mSchemeOrType.get(), nullptr);
|
HildonURIAction *action = hildon_uri_get_default_action(mSchemeOrType.get(), nullptr);
|
||||||
if (action) {
|
if (action) {
|
||||||
nsCAutoString spec;
|
nsAutoCString spec;
|
||||||
aURI->GetAsciiSpec(spec);
|
aURI->GetAsciiSpec(spec);
|
||||||
if (hildon_uri_open(spec.get(), action, nullptr))
|
if (hildon_uri_open(spec.get(), action, nullptr))
|
||||||
@@ -61,22 +64,22 @@ nsMIMEInfoUnix::LoadUriInternal(nsIURI *
|
@@ -61,22 +64,22 @@ nsMIMEInfoUnix::LoadUriInternal(nsIURI *
|
||||||
@ -2870,7 +2873,7 @@ diff --git a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp b/uriloader/exthandler
|
|||||||
- nsRefPtr<nsMIMEInfoBase> mimeInfo = nsGNOMERegistry::GetFromType(mSchemeOrType);
|
- nsRefPtr<nsMIMEInfoBase> mimeInfo = nsGNOMERegistry::GetFromType(mSchemeOrType);
|
||||||
+ nsRefPtr<nsMIMEInfoBase> mimeInfo = nsCommonRegistry::GetFromType(mSchemeOrType);
|
+ nsRefPtr<nsMIMEInfoBase> mimeInfo = nsCommonRegistry::GetFromType(mSchemeOrType);
|
||||||
if (!mimeInfo) {
|
if (!mimeInfo) {
|
||||||
nsCAutoString ext;
|
nsAutoCString ext;
|
||||||
nsresult rv = GetPrimaryExtension(ext);
|
nsresult rv = GetPrimaryExtension(ext);
|
||||||
if (NS_SUCCEEDED(rv)) {
|
if (NS_SUCCEEDED(rv)) {
|
||||||
- mimeInfo = nsGNOMERegistry::GetFromExtension(ext);
|
- mimeInfo = nsGNOMERegistry::GetFromExtension(ext);
|
||||||
@ -2910,7 +2913,7 @@ diff --git a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp b/uriloader/exthandler
|
|||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
nsCOMPtr<nsIGIOService> giovfs = do_GetService(NS_GIOSERVICE_CONTRACTID);
|
nsCOMPtr<nsIGIOService> giovfs = do_GetService(NS_GIOSERVICE_CONTRACTID);
|
||||||
nsCAutoString uriSpec;
|
nsAutoCString uriSpec;
|
||||||
if (giovfs) {
|
if (giovfs) {
|
||||||
// nsGIOMimeApp->Launch wants a URI string instead of local file
|
// nsGIOMimeApp->Launch wants a URI string instead of local file
|
||||||
nsresult rv;
|
nsresult rv;
|
||||||
@ -2929,7 +2932,7 @@ diff --git a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp b/uriloader/exthandler
|
|||||||
- nsRefPtr<nsMIMEInfoBase> mimeInfo = nsGNOMERegistry::GetFromExtension(nativePath);
|
- nsRefPtr<nsMIMEInfoBase> mimeInfo = nsGNOMERegistry::GetFromExtension(nativePath);
|
||||||
+ nsRefPtr<nsMIMEInfoBase> mimeInfo = nsCommonRegistry::GetFromExtension(nativePath);
|
+ nsRefPtr<nsMIMEInfoBase> mimeInfo = nsCommonRegistry::GetFromExtension(nativePath);
|
||||||
if (mimeInfo) {
|
if (mimeInfo) {
|
||||||
nsCAutoString type;
|
nsAutoCString type;
|
||||||
mimeInfo->GetType(type);
|
mimeInfo->GetType(type);
|
||||||
if (giovfs) {
|
if (giovfs) {
|
||||||
nsCOMPtr<nsIGIOMimeApp> app;
|
nsCOMPtr<nsIGIOMimeApp> app;
|
||||||
@ -3097,10 +3100,10 @@ diff --git a/widget/gtk2/nsFilePicker.cpp b/widget/gtk2/nsFilePicker.cpp
|
|||||||
- return NS_OK;
|
- return NS_OK;
|
||||||
+ // Unless it's KDE.
|
+ // Unless it's KDE.
|
||||||
+ if( mMode != modeOpen || !nsKDEUtils::kdeSupport())
|
+ if( mMode != modeOpen || !nsKDEUtils::kdeSupport())
|
||||||
+ return NS_OK;
|
+ return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
nsCAutoString filter, name;
|
nsAutoCString filter, name;
|
||||||
CopyUTF16toUTF8(aFilter, filter);
|
CopyUTF16toUTF8(aFilter, filter);
|
||||||
CopyUTF16toUTF8(aTitle, name);
|
CopyUTF16toUTF8(aTitle, name);
|
||||||
|
|
||||||
@ -3139,7 +3142,7 @@ diff --git a/widget/gtk2/nsFilePicker.cpp b/widget/gtk2/nsFilePicker.cpp
|
|||||||
GtkFileChooserAction action = GetGtkFileChooserAction(mMode);
|
GtkFileChooserAction action = GetGtkFileChooserAction(mMode);
|
||||||
const gchar *accept_button = (action == GTK_FILE_CHOOSER_ACTION_SAVE)
|
const gchar *accept_button = (action == GTK_FILE_CHOOSER_ACTION_SAVE)
|
||||||
? GTK_STOCK_SAVE : GTK_STOCK_OPEN;
|
? GTK_STOCK_SAVE : GTK_STOCK_OPEN;
|
||||||
@@ -587,8 +607,235 @@ nsFilePicker::Done(GtkWidget* file_choos
|
@@ -588,8 +608,235 @@ nsFilePicker::Done(GtkWidget* file_choos
|
||||||
if (mCallback) {
|
if (mCallback) {
|
||||||
mCallback->Done(result);
|
mCallback->Done(result);
|
||||||
mCallback = nullptr;
|
mCallback = nullptr;
|
||||||
@ -3216,14 +3219,14 @@ diff --git a/widget/gtk2/nsFilePicker.cpp b/widget/gtk2/nsFilePicker.cpp
|
|||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ nsCAutoString directory;
|
+ nsAutoCString directory;
|
||||||
+ if (mDisplayDirectory) {
|
+ if (mDisplayDirectory) {
|
||||||
+ mDisplayDirectory->GetNativePath(directory);
|
+ mDisplayDirectory->GetNativePath(directory);
|
||||||
+ } else if (mPrevDisplayDirectory) {
|
+ } else if (mPrevDisplayDirectory) {
|
||||||
+ mPrevDisplayDirectory->GetNativePath(directory);
|
+ mPrevDisplayDirectory->GetNativePath(directory);
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ nsCAutoString startdir;
|
+ nsAutoCString startdir;
|
||||||
+ if (!directory.IsEmpty()) {
|
+ if (!directory.IsEmpty()) {
|
||||||
+ startdir = directory;
|
+ startdir = directory;
|
||||||
+ }
|
+ }
|
||||||
@ -3239,7 +3242,7 @@ diff --git a/widget/gtk2/nsFilePicker.cpp b/widget/gtk2/nsFilePicker.cpp
|
|||||||
+ if( startdir.IsEmpty())
|
+ if( startdir.IsEmpty())
|
||||||
+ startdir = ".";
|
+ startdir = ".";
|
||||||
+
|
+
|
||||||
+ nsCAutoString filters;
|
+ nsAutoCString filters;
|
||||||
+ PRInt32 count = mFilters.Length();
|
+ PRInt32 count = mFilters.Length();
|
||||||
+ if( count == 0 ) //just in case
|
+ if( count == 0 ) //just in case
|
||||||
+ filters = "*";
|
+ filters = "*";
|
||||||
@ -3254,12 +3257,12 @@ diff --git a/widget/gtk2/nsFilePicker.cpp b/widget/gtk2/nsFilePicker.cpp
|
|||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ nsTArray<nsCString> command;
|
+ nsTArray<nsCString> command;
|
||||||
+ command.AppendElement( nsCAutoString( arg ));
|
+ command.AppendElement( nsAutoCString( arg ));
|
||||||
+ command.AppendElement( startdir );
|
+ command.AppendElement( startdir );
|
||||||
+ if( mMode != nsIFilePicker::modeGetFolder )
|
+ if( mMode != nsIFilePicker::modeGetFolder )
|
||||||
+ {
|
+ {
|
||||||
+ command.AppendElement( filters );
|
+ command.AppendElement( filters );
|
||||||
+ nsCAutoString selected;
|
+ nsAutoCString selected;
|
||||||
+ selected.AppendInt( mSelectedType );
|
+ selected.AppendInt( mSelectedType );
|
||||||
+ command.AppendElement( selected );
|
+ command.AppendElement( selected );
|
||||||
+ }
|
+ }
|
||||||
@ -3269,7 +3272,7 @@ diff --git a/widget/gtk2/nsFilePicker.cpp b/widget/gtk2/nsFilePicker.cpp
|
|||||||
+ if( PRInt32 xid = windowToXid( mParentWidget ))
|
+ if( PRInt32 xid = windowToXid( mParentWidget ))
|
||||||
+ {
|
+ {
|
||||||
+ command.AppendElement( NS_LITERAL_CSTRING( "PARENT" ));
|
+ command.AppendElement( NS_LITERAL_CSTRING( "PARENT" ));
|
||||||
+ nsCAutoString parent;
|
+ nsAutoCString parent;
|
||||||
+ parent.AppendInt( xid );
|
+ parent.AppendInt( xid );
|
||||||
+ command.AppendElement( parent );
|
+ command.AppendElement( parent );
|
||||||
+ }
|
+ }
|
||||||
@ -3357,7 +3360,7 @@ diff --git a/widget/gtk2/nsFilePicker.cpp b/widget/gtk2/nsFilePicker.cpp
|
|||||||
+ if( PRInt32 xid = windowToXid( mParentWidget ))
|
+ if( PRInt32 xid = windowToXid( mParentWidget ))
|
||||||
+ {
|
+ {
|
||||||
+ command.AppendElement( NS_LITERAL_CSTRING( "PARENT" ));
|
+ command.AppendElement( NS_LITERAL_CSTRING( "PARENT" ));
|
||||||
+ nsCAutoString parent;
|
+ nsAutoCString parent;
|
||||||
+ parent.AppendInt( xid );
|
+ parent.AppendInt( xid );
|
||||||
+ command.AppendElement( parent );
|
+ command.AppendElement( parent );
|
||||||
+ }
|
+ }
|
||||||
@ -3545,7 +3548,7 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
|
|||||||
diff --git a/xpcom/io/Makefile.in b/xpcom/io/Makefile.in
|
diff --git a/xpcom/io/Makefile.in b/xpcom/io/Makefile.in
|
||||||
--- a/xpcom/io/Makefile.in
|
--- a/xpcom/io/Makefile.in
|
||||||
+++ b/xpcom/io/Makefile.in
|
+++ b/xpcom/io/Makefile.in
|
||||||
@@ -157,17 +157,17 @@ include $(topsrcdir)/ipc/chromium/chromi
|
@@ -161,17 +161,17 @@ include $(topsrcdir)/ipc/chromium/chromi
|
||||||
DEFINES += -D_IMPL_NS_COM
|
DEFINES += -D_IMPL_NS_COM
|
||||||
|
|
||||||
ifeq ($(OS_ARCH),Linux)
|
ifeq ($(OS_ARCH),Linux)
|
||||||
@ -3567,7 +3570,7 @@ diff --git a/xpcom/io/Makefile.in b/xpcom/io/Makefile.in
|
|||||||
diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
|
diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
|
||||||
--- a/xpcom/io/nsLocalFileUnix.cpp
|
--- a/xpcom/io/nsLocalFileUnix.cpp
|
||||||
+++ b/xpcom/io/nsLocalFileUnix.cpp
|
+++ b/xpcom/io/nsLocalFileUnix.cpp
|
||||||
@@ -49,16 +49,17 @@
|
@@ -50,16 +50,17 @@
|
||||||
#include "prproces.h"
|
#include "prproces.h"
|
||||||
#include "nsIDirectoryEnumerator.h"
|
#include "nsIDirectoryEnumerator.h"
|
||||||
#include "nsISimpleEnumerator.h"
|
#include "nsISimpleEnumerator.h"
|
||||||
@ -3585,7 +3588,7 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
|
|||||||
#include "prmem.h"
|
#include "prmem.h"
|
||||||
#include "plbase64.h"
|
#include "plbase64.h"
|
||||||
|
|
||||||
@@ -1760,44 +1761,51 @@ nsLocalFile::SetPersistentDescriptor(con
|
@@ -1752,44 +1753,51 @@ nsLocalFile::SetPersistentDescriptor(con
|
||||||
return InitWithNativePath(aPersistentDescriptor);
|
return InitWithNativePath(aPersistentDescriptor);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@ -3599,7 +3602,7 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
|
|||||||
- if (!giovfs && !gnomevfs)
|
- if (!giovfs && !gnomevfs)
|
||||||
- return NS_ERROR_FAILURE;
|
- return NS_ERROR_FAILURE;
|
||||||
-
|
-
|
||||||
+ nsCAutoString url;
|
+ nsAutoCString url;
|
||||||
bool isDirectory;
|
bool isDirectory;
|
||||||
if (NS_FAILED(IsDirectory(&isDirectory)))
|
if (NS_FAILED(IsDirectory(&isDirectory)))
|
||||||
return NS_ERROR_FAILURE;
|
return NS_ERROR_FAILURE;
|
||||||
@ -3613,7 +3616,7 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
|
|||||||
+ url = mPath;
|
+ url = mPath;
|
||||||
} else {
|
} else {
|
||||||
nsCOMPtr<nsIFile> parentDir;
|
nsCOMPtr<nsIFile> parentDir;
|
||||||
nsCAutoString dirPath;
|
nsAutoCString dirPath;
|
||||||
if (NS_FAILED(GetParent(getter_AddRefs(parentDir))))
|
if (NS_FAILED(GetParent(getter_AddRefs(parentDir))))
|
||||||
return NS_ERROR_FAILURE;
|
return NS_ERROR_FAILURE;
|
||||||
if (NS_FAILED(parentDir->GetNativePath(dirPath)))
|
if (NS_FAILED(parentDir->GetNativePath(dirPath)))
|
||||||
@ -3651,7 +3654,7 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
|
|||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
return NS_ERROR_FAILURE;
|
return NS_ERROR_FAILURE;
|
||||||
@@ -1823,16 +1831,23 @@ nsLocalFile::Launch()
|
@@ -1815,16 +1823,23 @@ nsLocalFile::Launch()
|
||||||
|
|
||||||
if (nullptr == connection)
|
if (nullptr == connection)
|
||||||
return NS_ERROR_FAILURE;
|
return NS_ERROR_FAILURE;
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
# HG changeset patch
|
# HG changeset patch
|
||||||
# User Wolfgang Rosenauer <wr@rosenauer.org>
|
# User Wolfgang Rosenauer <wr@rosenauer.org>
|
||||||
# Parent 0d6917b8f28f6e0398dbf329dda4932ba4f997c2
|
# Parent 97c6ae4c21e703a18e04f4d9fae9e2f06aeb13df
|
||||||
Bug 583793 - Firefox interface language set to LANG, ignores LANGUAGE
|
Bug 583793 - Firefox interface language set to LANG, ignores LANGUAGE
|
||||||
|
|
||||||
diff --git a/intl/locale/src/nsLocaleService.cpp b/intl/locale/src/nsLocaleService.cpp
|
diff --git a/intl/locale/src/nsLocaleService.cpp b/intl/locale/src/nsLocaleService.cpp
|
||||||
--- a/intl/locale/src/nsLocaleService.cpp
|
--- a/intl/locale/src/nsLocaleService.cpp
|
||||||
+++ b/intl/locale/src/nsLocaleService.cpp
|
+++ b/intl/locale/src/nsLocaleService.cpp
|
||||||
@@ -160,16 +160,17 @@ nsLocaleService::nsLocaleService(void)
|
@@ -127,16 +127,17 @@ nsLocaleService::nsLocaleService(void)
|
||||||
nsRefPtr<nsLocale> resultLocale(new nsLocale());
|
nsRefPtr<nsLocale> resultLocale(new nsLocale());
|
||||||
NS_ENSURE_TRUE(resultLocale, );
|
NS_ENSURE_TRUE_VOID(resultLocale);
|
||||||
|
|
||||||
#ifdef MOZ_WIDGET_QT
|
#ifdef MOZ_WIDGET_QT
|
||||||
const char* lang = QLocale::system().name().toAscii();
|
const char* lang = QLocale::system().name().toAscii();
|
||||||
@ -24,7 +24,7 @@ diff --git a/intl/locale/src/nsLocaleService.cpp b/intl/locale/src/nsLocaleServi
|
|||||||
|
|
||||||
for( i = 0; i < LocaleListLength; i++ ) {
|
for( i = 0; i < LocaleListLength; i++ ) {
|
||||||
nsresult result;
|
nsresult result;
|
||||||
@@ -188,16 +189,21 @@ nsLocaleService::nsLocaleService(void)
|
@@ -155,16 +156,21 @@ nsLocaleService::nsLocaleService(void)
|
||||||
} else {
|
} else {
|
||||||
CopyASCIItoUTF16(lang, platformLocale);
|
CopyASCIItoUTF16(lang, platformLocale);
|
||||||
result = nsPosixLocale::GetXPLocale(lang, xpLocale);
|
result = nsPosixLocale::GetXPLocale(lang, xpLocale);
|
||||||
|
@ -9,11 +9,11 @@ retrieving revision 1.1
|
|||||||
diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
|
diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
|
||||||
--- a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
|
--- a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
|
||||||
+++ b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
|
+++ b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
|
||||||
@@ -74,22 +74,28 @@ private:
|
@@ -50,22 +50,28 @@ nsUnixSystemProxySettings::GetMainThread
|
||||||
nsresult SetProxyResultFromGSettings(const char* aKeyBase, const char* aType, nsACString& aResult);
|
// dbus prevents us from being threadsafe, but this routine should not block anyhow
|
||||||
};
|
*aMainThreadOnly = true;
|
||||||
|
return NS_OK;
|
||||||
NS_IMPL_ISUPPORTS1(nsUnixSystemProxySettings, nsISystemProxySettings)
|
}
|
||||||
|
|
||||||
nsresult
|
nsresult
|
||||||
nsUnixSystemProxySettings::Init()
|
nsUnixSystemProxySettings::Init()
|
||||||
|
@ -4,7 +4,7 @@ Subject: introduce a pref to prefer certain plugins for mime-types
|
|||||||
diff --git a/dom/plugins/base/nsPluginHost.cpp b/dom/plugins/base/nsPluginHost.cpp
|
diff --git a/dom/plugins/base/nsPluginHost.cpp b/dom/plugins/base/nsPluginHost.cpp
|
||||||
--- a/dom/plugins/base/nsPluginHost.cpp
|
--- a/dom/plugins/base/nsPluginHost.cpp
|
||||||
+++ b/dom/plugins/base/nsPluginHost.cpp
|
+++ b/dom/plugins/base/nsPluginHost.cpp
|
||||||
@@ -1588,17 +1588,51 @@ nsPluginHost::FindPluginForType(const ch
|
@@ -1543,17 +1543,51 @@ nsPluginHost::FindPluginForType(const ch
|
||||||
if (!aMimeType) {
|
if (!aMimeType) {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
@ -14,7 +14,7 @@ diff --git a/dom/plugins/base/nsPluginHost.cpp b/dom/plugins/base/nsPluginHost.c
|
|||||||
InfallibleTArray<nsPluginTag*> matchingPlugins;
|
InfallibleTArray<nsPluginTag*> matchingPlugins;
|
||||||
|
|
||||||
+ char *preferredPluginPath = NULL;
|
+ char *preferredPluginPath = NULL;
|
||||||
+ nsCAutoString mimetypePrefString ("modules.plugins.mimetype.");
|
+ nsAutoCString mimetypePrefString ("modules.plugins.mimetype.");
|
||||||
+ mimetypePrefString.Append(aMimeType);
|
+ mimetypePrefString.Append(aMimeType);
|
||||||
+ const char *mimetypePrefChar = mimetypePrefString.get();
|
+ const char *mimetypePrefChar = mimetypePrefString.get();
|
||||||
+ nsAdoptingCString pluginPath = Preferences::GetCString(mimetypePrefChar);
|
+ nsAdoptingCString pluginPath = Preferences::GetCString(mimetypePrefChar);
|
||||||
|
@ -7,7 +7,7 @@ References:
|
|||||||
diff --git a/configure.in b/configure.in
|
diff --git a/configure.in b/configure.in
|
||||||
--- a/configure.in
|
--- a/configure.in
|
||||||
+++ b/configure.in
|
+++ b/configure.in
|
||||||
@@ -7987,16 +7987,31 @@ AC_SUBST(QCMS_LIBS)
|
@@ -8108,16 +8108,31 @@ AC_SUBST(QCMS_LIBS)
|
||||||
|
|
||||||
dnl ========================================================
|
dnl ========================================================
|
||||||
dnl HarfBuzz
|
dnl HarfBuzz
|
||||||
@ -42,32 +42,32 @@ diff --git a/configure.in b/configure.in
|
|||||||
diff --git a/security/manager/ssl/src/Makefile.in b/security/manager/ssl/src/Makefile.in
|
diff --git a/security/manager/ssl/src/Makefile.in b/security/manager/ssl/src/Makefile.in
|
||||||
--- a/security/manager/ssl/src/Makefile.in
|
--- a/security/manager/ssl/src/Makefile.in
|
||||||
+++ b/security/manager/ssl/src/Makefile.in
|
+++ b/security/manager/ssl/src/Makefile.in
|
||||||
@@ -90,12 +90,14 @@ DEFINES += \
|
@@ -93,10 +93,13 @@ DEFINES += \
|
||||||
$(NULL)
|
$(NULL)
|
||||||
|
|
||||||
EXPORTS += \
|
EXPORTS += \
|
||||||
|
CryptoTask.h \
|
||||||
nsNSSShutDown.h \
|
nsNSSShutDown.h \
|
||||||
|
ScopedNSSTypes.h \
|
||||||
$(NULL)
|
$(NULL)
|
||||||
|
|
||||||
# Use local includes because they are inserted before INCLUDES
|
+LOCAL_INCLUDES += $(NSSHELPER_CFLAGS)
|
||||||
# so that Mozilla's nss.h is used, not glibc's
|
|
||||||
-LOCAL_INCLUDES += $(NSS_CFLAGS)
|
|
||||||
+LOCAL_INCLUDES += $(NSS_CFLAGS) $(NSSHELPER_CFLAGS)
|
|
||||||
+
|
|
||||||
+EXTRA_DSO_LDOPTS += $(NSSHELPER_LIBS)
|
+EXTRA_DSO_LDOPTS += $(NSSHELPER_LIBS)
|
||||||
|
+
|
||||||
include $(topsrcdir)/config/rules.mk
|
include $(topsrcdir)/config/rules.mk
|
||||||
|
|
||||||
diff --git a/security/manager/ssl/src/nsNSSComponent.cpp b/security/manager/ssl/src/nsNSSComponent.cpp
|
diff --git a/security/manager/ssl/src/nsNSSComponent.cpp b/security/manager/ssl/src/nsNSSComponent.cpp
|
||||||
--- a/security/manager/ssl/src/nsNSSComponent.cpp
|
--- a/security/manager/ssl/src/nsNSSComponent.cpp
|
||||||
+++ b/security/manager/ssl/src/nsNSSComponent.cpp
|
+++ b/security/manager/ssl/src/nsNSSComponent.cpp
|
||||||
@@ -1,14 +1,21 @@
|
@@ -3,16 +3,23 @@
|
||||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
|
||||||
*
|
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
* 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
|
* 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/. */
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
#ifdef MOZ_LOGGING
|
||||||
|
#define FORCE_PR_LOG 1
|
||||||
|
#endif
|
||||||
|
|
||||||
+#ifdef MOZ_ENABLE_NSSHELPER
|
+#ifdef MOZ_ENABLE_NSSHELPER
|
||||||
+#pragma GCC visibility push(default)
|
+#pragma GCC visibility push(default)
|
||||||
+#include <nss-shared-helper.h>
|
+#include <nss-shared-helper.h>
|
||||||
@ -83,7 +83,7 @@ diff --git a/security/manager/ssl/src/nsNSSComponent.cpp b/security/manager/ssl/
|
|||||||
#include "nsNetUtil.h"
|
#include "nsNetUtil.h"
|
||||||
#include "nsAppDirectoryServiceDefs.h"
|
#include "nsAppDirectoryServiceDefs.h"
|
||||||
#include "nsDirectoryService.h"
|
#include "nsDirectoryService.h"
|
||||||
@@ -1731,18 +1738,34 @@ nsNSSComponent::InitializeNSS(bool showW
|
@@ -1735,18 +1742,34 @@ nsNSSComponent::InitializeNSS(bool showW
|
||||||
ConfigureInternalPKCS11Token();
|
ConfigureInternalPKCS11Token();
|
||||||
|
|
||||||
// The NSS_INIT_NOROOTINIT flag turns off the loading of the root certs
|
// The NSS_INIT_NOROOTINIT flag turns off the loading of the root certs
|
||||||
@ -123,7 +123,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
|
diff --git a/toolkit/library/Makefile.in b/toolkit/library/Makefile.in
|
||||||
--- a/toolkit/library/Makefile.in
|
--- a/toolkit/library/Makefile.in
|
||||||
+++ b/toolkit/library/Makefile.in
|
+++ b/toolkit/library/Makefile.in
|
||||||
@@ -443,17 +443,17 @@ EXTRA_DSO_LDOPTS += -INCREMENTAL:NO
|
@@ -484,17 +484,17 @@ EXTRA_DSO_LDOPTS += -INCREMENTAL:NO
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
@ -5,7 +5,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=513422
|
|||||||
diff --git a/xpcom/glue/SSE.cpp b/xpcom/glue/SSE.cpp
|
diff --git a/xpcom/glue/SSE.cpp b/xpcom/glue/SSE.cpp
|
||||||
--- a/xpcom/glue/SSE.cpp
|
--- a/xpcom/glue/SSE.cpp
|
||||||
+++ b/xpcom/glue/SSE.cpp
|
+++ b/xpcom/glue/SSE.cpp
|
||||||
@@ -44,26 +44,77 @@ namespace {
|
@@ -12,26 +12,77 @@ namespace {
|
||||||
// SSE.h has parallel #ifs which declare MOZILLA_SSE_HAVE_CPUID_DETECTION.
|
// SSE.h has parallel #ifs which declare MOZILLA_SSE_HAVE_CPUID_DETECTION.
|
||||||
// We can't declare these functions in the header file, however, because
|
// We can't declare these functions in the header file, however, because
|
||||||
// <intrin.h> conflicts with <windows.h> on MSVC 2005, and some files want to
|
// <intrin.h> conflicts with <windows.h> on MSVC 2005, and some files want to
|
||||||
@ -80,7 +80,7 @@ diff --git a/xpcom/glue/SSE.cpp b/xpcom/glue/SSE.cpp
|
|||||||
+ return !!(unsigned(regs[reg]) & bit);
|
+ return !!(unsigned(regs[reg]) & bit);
|
||||||
}
|
}
|
||||||
|
|
||||||
#elif defined(_MSC_VER) && _MSC_VER >= 1400 && (defined(_M_IX86) || defined(_M_AMD64))
|
#elif defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_AMD64))
|
||||||
|
|
||||||
// MSVC 2005 or newer on x86-32 or x86-64
|
// MSVC 2005 or newer on x86-32 or x86-64
|
||||||
#include <intrin.h>
|
#include <intrin.h>
|
||||||
|
103
mozilla-webrtc.patch
Normal file
103
mozilla-webrtc.patch
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
# HG changeset patch
|
||||||
|
# Parent 0b3f9d97af70d01863519daf4f57f8918b4bc17c
|
||||||
|
# User Wolfgang Rosenauer <wr@rosenauer.org>
|
||||||
|
Bug 805549 - signaling_sipcc fails to compile because of unused variable
|
||||||
|
|
||||||
|
diff --git a/media/webrtc/signaling/signaling.gyp b/media/webrtc/signaling/signaling.gyp
|
||||||
|
--- a/media/webrtc/signaling/signaling.gyp
|
||||||
|
+++ b/media/webrtc/signaling/signaling.gyp
|
||||||
|
@@ -189,17 +189,16 @@
|
||||||
|
'SIP_OS_LINUX',
|
||||||
|
'_GNU_SOURCE',
|
||||||
|
'LINUX',
|
||||||
|
'GIPS_VER=3510',
|
||||||
|
'SECLIB_OPENSSL',
|
||||||
|
],
|
||||||
|
|
||||||
|
'cflags_mozilla': [
|
||||||
|
- '-Werror',
|
||||||
|
],
|
||||||
|
}],
|
||||||
|
['OS=="win"', {
|
||||||
|
'include_dirs': [
|
||||||
|
],
|
||||||
|
'defines': [
|
||||||
|
'SIP_OS_WINDOWS',
|
||||||
|
'WIN32',
|
||||||
|
@@ -217,18 +216,16 @@
|
||||||
|
],
|
||||||
|
'defines': [
|
||||||
|
'SIP_OS_OSX',
|
||||||
|
'OSX',
|
||||||
|
'_FORTIFY_SOURCE=2',
|
||||||
|
],
|
||||||
|
|
||||||
|
'cflags_mozilla': [
|
||||||
|
- '-Werror',
|
||||||
|
- '-Wno-error=conversion'
|
||||||
|
],
|
||||||
|
}],
|
||||||
|
],
|
||||||
|
},
|
||||||
|
|
||||||
|
#
|
||||||
|
# SIPCC
|
||||||
|
#
|
||||||
|
@@ -641,17 +638,16 @@
|
||||||
|
'USE_TIMER_SELECT_BASED',
|
||||||
|
'FULL_BUILD',
|
||||||
|
'STUBBED_OUT',
|
||||||
|
'USE_PRINTF'
|
||||||
|
'LINUX',
|
||||||
|
],
|
||||||
|
|
||||||
|
'cflags_mozilla': [
|
||||||
|
- '-Werror',
|
||||||
|
],
|
||||||
|
}],
|
||||||
|
['OS=="win"', {
|
||||||
|
'include_dirs': [
|
||||||
|
],
|
||||||
|
|
||||||
|
'sources': [
|
||||||
|
# SIPSTACK
|
||||||
|
@@ -760,18 +756,16 @@
|
||||||
|
'FULL_BUILD',
|
||||||
|
'STUBBED_OUT',
|
||||||
|
'USE_PRINTF',
|
||||||
|
'_DARWIN_C_SOURCE',
|
||||||
|
'NO_NSPR_10_SUPPORT',
|
||||||
|
],
|
||||||
|
|
||||||
|
'cflags_mozilla': [
|
||||||
|
- '-Werror',
|
||||||
|
- '-Wno-error=conversion'
|
||||||
|
],
|
||||||
|
}],
|
||||||
|
],
|
||||||
|
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/media/webrtc/signaling/src/sipcc/core/common/config_parser.c b/media/webrtc/signaling/src/sipcc/core/common/config_parser.c
|
||||||
|
--- a/media/webrtc/signaling/src/sipcc/core/common/config_parser.c
|
||||||
|
+++ b/media/webrtc/signaling/src/sipcc/core/common/config_parser.c
|
||||||
|
@@ -402,17 +402,16 @@ void config_set_ccm_ip_mac ()
|
||||||
|
/*
|
||||||
|
* config_setup_element
|
||||||
|
* Setup elements that once were downloaded from CUCM in an XML file.
|
||||||
|
* Settings are stored in config.h
|
||||||
|
*/
|
||||||
|
void config_setup_elements (const char *sipUser, const char *sipPassword, const char *sipDomain)
|
||||||
|
{
|
||||||
|
unsigned int i;
|
||||||
|
- char buf[MAX_SIP_URL_LENGTH] = {'\0'};
|
||||||
|
char ip[MAX_SIP_URL_LENGTH] = {'\0'};
|
||||||
|
char option[MAX_SIP_URL_LENGTH] = {'\0'};
|
||||||
|
int line = 0;
|
||||||
|
cc_boolean isSecure = FALSE, isValid = TRUE;
|
||||||
|
char macaddr[MAC_ADDR_SIZE];
|
||||||
|
|
||||||
|
compare_or_set_int_value(CFGID_MEDIA_PORT_RANGE_START, gStartMediaPort, (const unsigned char *) "startMediaPort");
|
||||||
|
compare_or_set_int_value(CFGID_MEDIA_PORT_RANGE_END, gStopMediaPort, (const unsigned char *) "stopMediaPort");
|
@ -1,2 +1,2 @@
|
|||||||
REV=c23c45132139
|
REV=8efe34fa2289
|
||||||
REPO=http://hg.mozilla.org/releases/mozilla-release
|
REPO=http://hg.mozilla.org/releases/mozilla-release
|
||||||
|
Loading…
Reference in New Issue
Block a user