forked from pool/MozillaFirefox
Accepting request 155861 from mozilla:Factory
- update to Firefox 19.0 (bnc#804248) * MFSA 2013-21/CVE-2013-0783/2013-0784 Miscellaneous memory safety hazards * MFSA 2013-22/CVE-2013-0772 (bmo#801366) Out-of-bounds read in image rendering * MFSA 2013-23/CVE-2013-0765 (bmo#830614) Wrapped WebIDL objects can be wrapped again * MFSA 2013-24/CVE-2013-0773 (bmo#809652) Web content bypass of COW and SOW security wrappers * MFSA 2013-25/CVE-2013-0774 (bmo#827193) Privacy leak in JavaScript Workers * MFSA 2013-26/CVE-2013-0775 (bmo#831095) Use-after-free in nsImageLoadingContent * MFSA 2013-27/CVE-2013-0776 (bmo#796475) Phishing on HTTPS connection through malicious proxy * MFSA 2013-28/CVE-2013-0780/CVE-2013-0782/CVE-2013-0777/ CVE-2013-0778/CVE-2013-0779/CVE-2013-0781 Use-after-free, out of bounds read, and buffer overflow issues found using Address Sanitizer - removed obsolete patches * mozilla-webrtc.patch * mozilla-gstreamer-803287.patch - added patch to fix session restore window order (bmo#712763) OBS-URL: https://build.opensuse.org/request/show/155861 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/MozillaFirefox?expand=0&rev=167
This commit is contained in:
commit
a7dcce03da
@ -1,3 +1,30 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Feb 16 07:08:55 UTC 2013 - wr@rosenauer.org
|
||||||
|
|
||||||
|
- update to Firefox 19.0 (bnc#804248)
|
||||||
|
* MFSA 2013-21/CVE-2013-0783/2013-0784
|
||||||
|
Miscellaneous memory safety hazards
|
||||||
|
* MFSA 2013-22/CVE-2013-0772 (bmo#801366)
|
||||||
|
Out-of-bounds read in image rendering
|
||||||
|
* MFSA 2013-23/CVE-2013-0765 (bmo#830614)
|
||||||
|
Wrapped WebIDL objects can be wrapped again
|
||||||
|
* MFSA 2013-24/CVE-2013-0773 (bmo#809652)
|
||||||
|
Web content bypass of COW and SOW security wrappers
|
||||||
|
* MFSA 2013-25/CVE-2013-0774 (bmo#827193)
|
||||||
|
Privacy leak in JavaScript Workers
|
||||||
|
* MFSA 2013-26/CVE-2013-0775 (bmo#831095)
|
||||||
|
Use-after-free in nsImageLoadingContent
|
||||||
|
* MFSA 2013-27/CVE-2013-0776 (bmo#796475)
|
||||||
|
Phishing on HTTPS connection through malicious proxy
|
||||||
|
* MFSA 2013-28/CVE-2013-0780/CVE-2013-0782/CVE-2013-0777/
|
||||||
|
CVE-2013-0778/CVE-2013-0779/CVE-2013-0781
|
||||||
|
Use-after-free, out of bounds read, and buffer overflow issues
|
||||||
|
found using Address Sanitizer
|
||||||
|
- removed obsolete patches
|
||||||
|
* mozilla-webrtc.patch
|
||||||
|
* mozilla-gstreamer-803287.patch
|
||||||
|
- added patch to fix session restore window order (bmo#712763)
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Sat Feb 2 08:40:52 UTC 2013 - wr@rosenauer.org
|
Sat Feb 2 08:40:52 UTC 2013 - wr@rosenauer.org
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
# spec file for package MozillaFirefox
|
# spec file for package MozillaFirefox
|
||||||
#
|
#
|
||||||
# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||||
# 2006-2012 Wolfgang Rosenauer
|
# 2006-2013 Wolfgang Rosenauer
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@ -17,8 +17,8 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
%define major 18
|
%define major 19
|
||||||
%define mainver %major.0.2
|
%define mainver %major.0
|
||||||
%define update_channel release
|
%define update_channel release
|
||||||
|
|
||||||
Name: MozillaFirefox
|
Name: MozillaFirefox
|
||||||
@ -54,7 +54,7 @@ BuildRequires: pkgconfig(gstreamer-plugins-base-0.10)
|
|||||||
%endif
|
%endif
|
||||||
Version: %{mainver}
|
Version: %{mainver}
|
||||||
Release: 0
|
Release: 0
|
||||||
%define releasedate 2013020100
|
%define releasedate 2013021500
|
||||||
Provides: firefox = %{mainver}
|
Provides: firefox = %{mainver}
|
||||||
Provides: firefox = %{version}-%{release}
|
Provides: firefox = %{version}-%{release}
|
||||||
Provides: web_browser
|
Provides: web_browser
|
||||||
@ -95,10 +95,8 @@ 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-803287.patch
|
|
||||||
Patch14: mozilla-ppc.patch
|
Patch14: mozilla-ppc.patch
|
||||||
Patch15: mozilla-gstreamer-760140.patch
|
Patch15: mozilla-gstreamer-760140.patch
|
||||||
Patch16: mozilla-webrtc.patch
|
|
||||||
Patch17: mozilla-libproxy-compat.patch
|
Patch17: mozilla-libproxy-compat.patch
|
||||||
Patch18: mozilla-webrtc-ppc.patch
|
Patch18: mozilla-webrtc-ppc.patch
|
||||||
# Firefox/browser
|
# Firefox/browser
|
||||||
@ -108,6 +106,7 @@ Patch32: firefox-kde-114.patch
|
|||||||
Patch33: firefox-no-default-ualocale.patch
|
Patch33: firefox-no-default-ualocale.patch
|
||||||
Patch34: firefox-multilocale-chrome.patch
|
Patch34: firefox-multilocale-chrome.patch
|
||||||
Patch35: firefox-branded-icons.patch
|
Patch35: firefox-branded-icons.patch
|
||||||
|
Patch36: firefox-712763.patch
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
Requires(post): coreutils shared-mime-info desktop-file-utils
|
Requires(post): coreutils shared-mime-info desktop-file-utils
|
||||||
Requires(postun): shared-mime-info desktop-file-utils
|
Requires(postun): shared-mime-info desktop-file-utils
|
||||||
@ -231,10 +230,8 @@ cd $RPM_BUILD_DIR/mozilla
|
|||||||
%endif
|
%endif
|
||||||
#%patch11 -p1
|
#%patch11 -p1
|
||||||
%patch12 -p1
|
%patch12 -p1
|
||||||
%patch13 -p1
|
|
||||||
%patch14 -p1
|
%patch14 -p1
|
||||||
%patch15 -p1
|
%patch15 -p1
|
||||||
%patch16 -p1
|
|
||||||
%patch17 -p1
|
%patch17 -p1
|
||||||
%patch18 -p1
|
%patch18 -p1
|
||||||
#
|
#
|
||||||
@ -248,6 +245,7 @@ cd $RPM_BUILD_DIR/mozilla
|
|||||||
%patch33 -p1
|
%patch33 -p1
|
||||||
%patch34 -p1
|
%patch34 -p1
|
||||||
%patch35 -p1
|
%patch35 -p1
|
||||||
|
%patch36 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
# no need to add build time to binaries
|
# no need to add build time to binaries
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:303cfab8a67f363ce82e08bfff2673287e810395e2481dd43731f16bd873d2d1
|
oid sha256:c99b8f9452d036a265c4f9ba1c2f55ea0af4d7cd3d59d902aca8c85f58936f35
|
||||||
size 29943
|
size 29944
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
CHANNEL="release"
|
CHANNEL="release"
|
||||||
BRANCH="releases/mozilla-$CHANNEL"
|
BRANCH="releases/mozilla-$CHANNEL"
|
||||||
RELEASE_TAG="FIREFOX_18_0_2_RELEASE"
|
RELEASE_TAG="FIREFOX_19_0_RELEASE"
|
||||||
VERSION="18.0.2"
|
VERSION="19.0"
|
||||||
|
|
||||||
# mozilla
|
# mozilla
|
||||||
echo "cloning $BRANCH..."
|
echo "cloning $BRANCH..."
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:7d10b48806599d8e0e7173ea6ab16dcf45a12939f25ee9a58dd809b8b7b1c34b
|
|
||||||
size 97962399
|
|
3
firefox-19.0-source.tar.bz2
Normal file
3
firefox-19.0-source.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:05dc0c4dc2a83bd0ee0cc3b67f5e7bac7fc3846e26c2c6ee910d6cc75b79441b
|
||||||
|
size 99946627
|
95
firefox-712763.patch
Normal file
95
firefox-712763.patch
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
# HG changeset patch
|
||||||
|
# User Tim Taubert <ttaubert@mozilla.com>
|
||||||
|
# Date 1358185823 -3600
|
||||||
|
# Node ID f7a2af238d06c17d10c49c94ef860434d5b76758
|
||||||
|
Bug 712763 - Backout changes from bug 669272 to keep original window order when restoring a session
|
||||||
|
|
||||||
|
diff --git a/browser/components/sessionstore/src/SessionStore.jsm b/browser/components/sessionstore/src/SessionStore.jsm
|
||||||
|
--- a/browser/components/sessionstore/src/SessionStore.jsm
|
||||||
|
+++ b/browser/components/sessionstore/src/SessionStore.jsm
|
||||||
|
@@ -1757,23 +1757,16 @@ let SessionStoreInternal = {
|
||||||
|
|
||||||
|
// We want to re-use the last opened window instead of opening a new one in
|
||||||
|
// the case where it's "empty" and not associated with a window in the session.
|
||||||
|
// We will do more processing via _prepWindowToRestoreInto if we need to use
|
||||||
|
// the lastWindow.
|
||||||
|
let lastWindow = this._getMostRecentBrowserWindow();
|
||||||
|
let canUseLastWindow = lastWindow &&
|
||||||
|
!lastWindow.__SS_lastSessionWindowID;
|
||||||
|
- let lastSessionFocusedWindow = null;
|
||||||
|
- this.windowToFocus = lastWindow;
|
||||||
|
-
|
||||||
|
- // move the last focused window to the start of the array so that we
|
||||||
|
- // minimize window movement (see bug 669272)
|
||||||
|
- lastSessionState.windows.unshift(
|
||||||
|
- lastSessionState.windows.splice(lastSessionState.selectedWindow - 1, 1)[0]);
|
||||||
|
|
||||||
|
// Restore into windows or open new ones as needed.
|
||||||
|
for (let i = 0; i < lastSessionState.windows.length; i++) {
|
||||||
|
let winState = lastSessionState.windows[i];
|
||||||
|
let lastSessionWindowID = winState.__lastSessionWindowID;
|
||||||
|
// delete lastSessionWindowID so we don't add that to the window again
|
||||||
|
delete winState.__lastSessionWindowID;
|
||||||
|
|
||||||
|
@@ -1801,28 +1794,19 @@ let SessionStoreInternal = {
|
||||||
|
// Restore into that window - pretend it's a followup since we'll already
|
||||||
|
// have a focused window.
|
||||||
|
//XXXzpao This is going to merge extData together (taking what was in
|
||||||
|
// winState over what is in the window already. The hack we have
|
||||||
|
// in _preWindowToRestoreInto will prevent most (all?) Panorama
|
||||||
|
// weirdness but we will still merge other extData.
|
||||||
|
// Bug 588217 should make this go away by merging the group data.
|
||||||
|
this.restoreWindow(windowToUse, { windows: [winState] }, canOverwriteTabs, true);
|
||||||
|
- if (i == 0)
|
||||||
|
- lastSessionFocusedWindow = windowToUse;
|
||||||
|
-
|
||||||
|
- // if we overwrote the tabs for our last focused window, we should
|
||||||
|
- // give focus to the window that had it in the previous session
|
||||||
|
- if (canOverwriteTabs && windowToUse == lastWindow)
|
||||||
|
- this.windowToFocus = lastSessionFocusedWindow;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
- let win = this._openWindowWithState({ windows: [winState] });
|
||||||
|
- if (i == 0)
|
||||||
|
- lastSessionFocusedWindow = win;
|
||||||
|
+ this._openWindowWithState({ windows: [winState] });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Merge closed windows from this session with ones from last session
|
||||||
|
if (lastSessionState._closedWindows) {
|
||||||
|
this._closedWindows = this._closedWindows.concat(lastSessionState._closedWindows);
|
||||||
|
this._capClosedWindows();
|
||||||
|
}
|
||||||
|
@@ -2735,27 +2719,27 @@ let SessionStoreInternal = {
|
||||||
|
this._setWindowStateBusy(aWindow);
|
||||||
|
|
||||||
|
if (root._closedWindows)
|
||||||
|
this._closedWindows = root._closedWindows;
|
||||||
|
|
||||||
|
var winData;
|
||||||
|
if (!root.selectedWindow || root.selectedWindow > root.windows.length) {
|
||||||
|
root.selectedWindow = 0;
|
||||||
|
- } else {
|
||||||
|
- // put the selected window at the beginning of the array to ensure that
|
||||||
|
- // it gets restored first
|
||||||
|
- root.windows.unshift(root.windows.splice(root.selectedWindow - 1, 1)[0]);
|
||||||
|
}
|
||||||
|
+
|
||||||
|
// open new windows for all further window entries of a multi-window session
|
||||||
|
// (unless they don't contain any tab data)
|
||||||
|
for (var w = 1; w < root.windows.length; w++) {
|
||||||
|
winData = root.windows[w];
|
||||||
|
if (winData && winData.tabs && winData.tabs[0]) {
|
||||||
|
var window = this._openWindowWithState({ windows: [winData] });
|
||||||
|
+ if (w == root.selectedWindow - 1) {
|
||||||
|
+ this.windowToFocus = window;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
winData = root.windows[0];
|
||||||
|
if (!winData.tabs) {
|
||||||
|
winData.tabs = [];
|
||||||
|
}
|
||||||
|
// don't restore a single blank tab when we've had an external
|
||||||
|
// URL passed in for loading at startup (cf. bug 357419)
|
@ -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,1274 @@
|
@@ -0,0 +1,1276 @@
|
||||||
+#filter substitution
|
+#filter substitution
|
||||||
+<?xml version="1.0"?>
|
+<?xml version="1.0"?>
|
||||||
+# -*- Mode: HTML -*-
|
+# -*- Mode: HTML -*-
|
||||||
@ -668,38 +668,40 @@ new file mode 100644
|
|||||||
+ class="chromeclass-toolbar-additional"
|
+ class="chromeclass-toolbar-additional"
|
||||||
+ removable="false"
|
+ removable="false"
|
||||||
+ title="&socialToolbar.title;"
|
+ title="&socialToolbar.title;"
|
||||||
+ hidden="true">
|
+ hidden="true"
|
||||||
|
+ observes="socialActiveBroadcaster">
|
||||||
+ <toolbarbutton id="social-provider-button"
|
+ <toolbarbutton id="social-provider-button"
|
||||||
+ class="toolbarbutton-1"
|
+ class="toolbarbutton-1"
|
||||||
+ type="menu">
|
+ type="menu">
|
||||||
+ <menupopup id="social-statusarea-popup">
|
+ <menupopup id="social-statusarea-popup">
|
||||||
+ <menuitem id="social-statusarea-user" pack="start" align="center" class="menuitem-iconic"
|
+ <menuitem class="social-statusarea-user menuitem-iconic" pack="start" align="center"
|
||||||
+ onclick="SocialUI.showProfile(); document.getElementById('social-statusarea-popup').hidePopup();">
|
+ observes="socialBroadcaster_userDetails"
|
||||||
+ <image id="social-statusarea-user-portrait"/>
|
+ oncommand="SocialUI.showProfile(); document.getElementById('social-statusarea-popup').hidePopup();">
|
||||||
|
+ <image class="social-statusarea-user-portrait"
|
||||||
|
+ observes="socialBroadcaster_userDetails"/>
|
||||||
+ <vbox>
|
+ <vbox>
|
||||||
+ <label id="social-statusarea-notloggedin"
|
+ <label class="social-statusarea-loggedInStatus"
|
||||||
+ value="&social.notLoggedIn.label;"/>
|
+ observes="socialBroadcaster_userDetails"/>
|
||||||
+ <label id="social-statusarea-username"/>
|
|
||||||
+ </vbox>
|
+ </vbox>
|
||||||
+ </menuitem>
|
+ </menuitem>
|
||||||
+#ifndef XP_WIN
|
+#ifndef XP_WIN
|
||||||
+ <menuseparator/>
|
+ <menuseparator class="social-statusarea-separator"/>
|
||||||
+#endif
|
+#endif
|
||||||
+ <menuitem id="social-toggle-sidebar-menuitem"
|
+ <menuitem class="social-toggle-sidebar-menuitem"
|
||||||
+ type="checkbox"
|
+ type="checkbox"
|
||||||
+ autocheck="false"
|
+ autocheck="false"
|
||||||
+ command="Social:ToggleSidebar"
|
+ command="Social:ToggleSidebar"
|
||||||
+ label="&social.toggleSidebar.label;"
|
+ label="&social.toggleSidebar.label;"
|
||||||
+ accesskey="&social.toggleSidebar.accesskey;"/>
|
+ accesskey="&social.toggleSidebar.accesskey;"/>
|
||||||
+ <menuitem id="social-toggle-notifications-menuitem"
|
+ <menuitem class="social-toggle-notifications-menuitem"
|
||||||
+ type="checkbox"
|
+ type="checkbox"
|
||||||
+ autocheck="false"
|
+ autocheck="false"
|
||||||
+ command="Social:ToggleNotifications"
|
+ command="Social:ToggleNotifications"
|
||||||
+ label="&social.toggleNotifications.label;"
|
+ label="&social.toggleNotifications.label;"
|
||||||
+ accesskey="&social.toggleNotifications.accesskey;"/>
|
+ accesskey="&social.toggleNotifications.accesskey;"/>
|
||||||
+ <menuseparator/>
|
+ <menuseparator class="social-statusarea-separator"/>
|
||||||
+ <menuitem id="social-remove-menuitem"
|
+ <menuitem class="social-toggle-menuitem" command="Social:Toggle"/>
|
||||||
+ oncommand="SocialUI.disableWithConfirmation();"/>
|
+ <menuitem class="social-remove-menuitem" command="Social:Remove"/>
|
||||||
+ </menupopup>
|
+ </menupopup>
|
||||||
+ </toolbarbutton>
|
+ </toolbarbutton>
|
||||||
+ </toolbaritem>
|
+ </toolbaritem>
|
||||||
@ -1612,7 +1614,7 @@ new file mode 100644
|
|||||||
+
|
+
|
||||||
+ cmdstr->SetData( NS_LITERAL_CSTRING( "RUN" ));
|
+ cmdstr->SetData( NS_LITERAL_CSTRING( "RUN" ));
|
||||||
+ command->AppendElement( cmdstr, false );
|
+ command->AppendElement( cmdstr, false );
|
||||||
+ nsCAutoString app;
|
+ nsAutoCString app;
|
||||||
+ nsresult rv = aApplication->GetNativePath( app );
|
+ nsresult rv = aApplication->GetNativePath( app );
|
||||||
+ NS_ENSURE_SUCCESS( rv, rv );
|
+ NS_ENSURE_SUCCESS( rv, rv );
|
||||||
+ appstr->SetData( app );
|
+ appstr->SetData( app );
|
||||||
@ -1651,7 +1653,7 @@ new file mode 100644
|
|||||||
+ if( !resstr )
|
+ if( !resstr )
|
||||||
+ return NS_ERROR_FAILURE;
|
+ return NS_ERROR_FAILURE;
|
||||||
+
|
+
|
||||||
+ nsCAutoString path;
|
+ nsAutoCString path;
|
||||||
+ resstr->GetData( path );
|
+ resstr->GetData( path );
|
||||||
+ if (path.IsEmpty())
|
+ if (path.IsEmpty())
|
||||||
+ return NS_ERROR_FAILURE;
|
+ return NS_ERROR_FAILURE;
|
||||||
@ -1847,7 +1849,7 @@ 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
|
||||||
@@ -579,18 +579,20 @@
|
@@ -578,18 +578,20 @@
|
||||||
@BINPATH@/@PREF_DIR@/healthreport-prefs.js
|
@BINPATH@/@PREF_DIR@/healthreport-prefs.js
|
||||||
#endif
|
#endif
|
||||||
@BINPATH@/greprefs.js
|
@BINPATH@/greprefs.js
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
# HG changeset patch
|
# HG changeset patch
|
||||||
# User Wolfgang Rosenauer <wr@rosenauer.org>
|
# User Wolfgang Rosenauer <wr@rosenauer.org>
|
||||||
# Parent ba286b90465d93b93487c0de6f8ebe5d1821d2c0
|
# Parent 1352398be333989afdf06a2d87d63df9fed61333
|
||||||
Add searchplugins to chrome packaging for proper localization
|
Add searchplugins to chrome packaging for proper localization
|
||||||
|
|
||||||
diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js
|
diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js
|
||||||
--- a/browser/app/profile/firefox.js
|
--- a/browser/app/profile/firefox.js
|
||||||
+++ b/browser/app/profile/firefox.js
|
+++ b/browser/app/profile/firefox.js
|
||||||
@@ -332,16 +332,20 @@ pref("browser.download.useToolkitUI", tr
|
@@ -338,16 +338,20 @@ pref("browser.download.panel.shown", fal
|
||||||
pref("browser.download.panel.removeFinishedDownloads", false);
|
pref("browser.download.panel.firstSessionCompleted", false);
|
||||||
|
|
||||||
// search engines URL
|
// search engines URL
|
||||||
pref("browser.search.searchEnginesURL", "https://addons.mozilla.org/%LOCALE%/firefox/search-engines/");
|
pref("browser.search.searchEnginesURL", "https://addons.mozilla.org/%LOCALE%/firefox/search-engines/");
|
||||||
@ -30,7 +30,7 @@ diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js
|
|||||||
diff --git a/browser/locales/Makefile.in b/browser/locales/Makefile.in
|
diff --git a/browser/locales/Makefile.in b/browser/locales/Makefile.in
|
||||||
--- a/browser/locales/Makefile.in
|
--- a/browser/locales/Makefile.in
|
||||||
+++ b/browser/locales/Makefile.in
|
+++ b/browser/locales/Makefile.in
|
||||||
@@ -118,39 +118,48 @@ libs:: $(call MERGE_FILES,$(addprefix pr
|
@@ -124,39 +124,48 @@ libs:: $(call MERGE_FILES,$(addprefix pr
|
||||||
install:: $(DESTDIR)$(mozappdir)/defaults/profile/bookmarks.html ;
|
install:: $(DESTDIR)$(mozappdir)/defaults/profile/bookmarks.html ;
|
||||||
|
|
||||||
install:: $(addprefix generic/profile/,$(PROFILE_FILES))
|
install:: $(addprefix generic/profile/,$(PROFILE_FILES))
|
||||||
@ -81,13 +81,13 @@ diff --git a/browser/locales/Makefile.in b/browser/locales/Makefile.in
|
|||||||
|
|
||||||
libs-%:
|
libs-%:
|
||||||
$(NSINSTALL) -D $(DIST)/install
|
$(NSINSTALL) -D $(DIST)/install
|
||||||
@$(MAKE) -C ../../toolkit/locales libs-$* BOTH_MANIFESTS=1
|
@$(MAKE) -C ../../toolkit/locales libs-$*
|
||||||
@$(MAKE) -C ../../services/sync/locales AB_CD=$* XPI_NAME=locale-$* BOTH_MANIFESTS=1
|
@$(MAKE) -C ../../services/sync/locales AB_CD=$* XPI_NAME=locale-$*
|
||||||
+ @$(MAKE) -B searchplugins AB_CD=$* XPI_NAME=locale-$*
|
+ @$(MAKE) -B searchplugins AB_CD=$* XPI_NAME=locale-$*
|
||||||
@$(MAKE) -C ../../extensions/spellcheck/locales AB_CD=$* XPI_NAME=locale-$* BOTH_MANIFESTS=1
|
@$(MAKE) -C ../../extensions/spellcheck/locales AB_CD=$* XPI_NAME=locale-$*
|
||||||
@$(MAKE) -C ../../intl/locales AB_CD=$* XPI_NAME=locale-$* BOTH_MANIFESTS=1
|
@$(MAKE) -C ../../intl/locales AB_CD=$* XPI_NAME=locale-$*
|
||||||
@$(MAKE) libs AB_CD=$* XPI_NAME=locale-$* PREF_DIR=$(PREF_DIR) BOTH_MANIFESTS=1
|
@$(MAKE) libs AB_CD=$* XPI_NAME=locale-$* PREF_DIR=$(PREF_DIR)
|
||||||
@$(MAKE) -C $(DEPTH)/$(MOZ_BRANDING_DIRECTORY)/locales AB_CD=$* XPI_NAME=locale-$* BOTH_MANIFESTS=1
|
@$(MAKE) -C $(DEPTH)/$(MOZ_BRANDING_DIRECTORY)/locales AB_CD=$* XPI_NAME=locale-$*
|
||||||
|
|
||||||
repackage-win32-installer: WIN32_INSTALLER_OUT=$(_ABS_DIST)/$(PKG_INST_PATH)$(PKG_INST_BASENAME).exe
|
repackage-win32-installer: WIN32_INSTALLER_OUT=$(_ABS_DIST)/$(PKG_INST_PATH)$(PKG_INST_BASENAME).exe
|
||||||
repackage-win32-installer: $(call ESCAPE_WILDCARD,$(WIN32_INSTALLER_IN)) $(SUBMAKEFILES) libs-$(AB_CD)
|
repackage-win32-installer: $(call ESCAPE_WILDCARD,$(WIN32_INSTALLER_IN)) $(SUBMAKEFILES) libs-$(AB_CD)
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:b79652190a017258d4493c9b91247c98e45fd4c40b85b44899b6bd54b4b7ed96
|
|
||||||
size 52427390
|
|
3
l10n-19.0.tar.bz2
Normal file
3
l10n-19.0.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:b3a4758d6f980eeb9903974912059a3221fe575ff264291686e7eac781d7e7e4
|
||||||
|
size 52867600
|
@ -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
|
||||||
@@ -147,16 +147,19 @@ static NS_DEFINE_CID(kXTFServiceCID, NS_
|
@@ -143,16 +143,19 @@
|
||||||
#include "xpcprivate.h" // nsXPConnect
|
#include "xpcprivate.h" // nsXPConnect
|
||||||
#include "nsScriptSecurityManager.h"
|
#include "nsScriptSecurityManager.h"
|
||||||
#include "nsIChannelPolicy.h"
|
#include "nsIChannelPolicy.h"
|
||||||
@ -14,7 +14,7 @@ diff --git a/content/base/src/nsContentUtils.cpp b/content/base/src/nsContentUti
|
|||||||
#ifdef MOZ_MEDIA
|
#ifdef MOZ_MEDIA
|
||||||
#include "nsHTMLMediaElement.h"
|
#include "nsHTMLMediaElement.h"
|
||||||
+#ifdef MOZ_GSTREAMER
|
+#ifdef MOZ_GSTREAMER
|
||||||
+#include "nsGStreamerDecoder.h"
|
+#include "GStreamerDecoder.h"
|
||||||
+#endif
|
+#endif
|
||||||
#endif
|
#endif
|
||||||
#include "nsDOMTouchEvent.h"
|
#include "nsDOMTouchEvent.h"
|
||||||
@ -27,7 +27,7 @@ diff --git a/content/base/src/nsContentUtils.cpp b/content/base/src/nsContentUti
|
|||||||
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
|
||||||
@@ -263,17 +263,19 @@ public:
|
@@ -259,17 +259,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
|
||||||
@ -48,30 +48,29 @@ 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
|
||||||
@@ -305,19 +307,16 @@ public:
|
@@ -292,18 +294,16 @@ public:
|
||||||
|
#ifdef MOZ_WEBM
|
||||||
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 IsGStreamerEnabled();
|
|
||||||
static bool IsGStreamerSupportedType(const nsACString& aType);
|
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];
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef MOZ_WIDGET_GONK
|
#ifdef MOZ_WIDGET_GONK
|
||||||
static bool IsOmxEnabled();
|
|
||||||
static bool IsOmxSupportedType(const nsACString& aType);
|
static bool IsOmxSupportedType(const nsACString& aType);
|
||||||
static const char gOmxTypes[5][16];
|
static const char gOmxTypes[5][16];
|
||||||
static char const *const gH264Codecs[7];
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(MOZ_GSTREAMER) || defined(MOZ_WIDGET_GONK)
|
||||||
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
|
||||||
@@ -2128,51 +2128,34 @@ nsHTMLMediaElement::IsWebMType(const nsA
|
@@ -2213,50 +2213,29 @@ nsHTMLMediaElement::IsWebMType(const nsA
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -82,29 +81,25 @@ diff --git a/content/html/content/src/nsHTMLMediaElement.cpp b/content/html/cont
|
|||||||
|
|
||||||
-#if defined(MOZ_GSTREAMER) || defined(MOZ_WIDGET_GONK)
|
-#if defined(MOZ_GSTREAMER) || defined(MOZ_WIDGET_GONK)
|
||||||
+#ifdef MOZ_WIDGET_GONK
|
+#ifdef MOZ_WIDGET_GONK
|
||||||
char const *const nsHTMLMediaElement::gH264Codecs[7] = {
|
char const *const nsHTMLMediaElement::gH264Codecs[9] = {
|
||||||
"avc1.42E01E",
|
"avc1.42E01E", // H.264 Constrained Baseline Profile Level 3.0
|
||||||
"avc1.42001E",
|
"avc1.42001E", // H.264 Baseline Profile Level 3.0
|
||||||
"avc1.58A01E",
|
"avc1.58A01E", // H.264 Extended Profile Level 3.0
|
||||||
"avc1.4D401E",
|
"avc1.4D401E", // H.264 Main Profile Level 3.0
|
||||||
"avc1.64001E",
|
"avc1.64001E", // H.264 High Profile Level 3.0
|
||||||
"mp4a.40.2",
|
"avc1.64001F", // H.264 High Profile Level 3.1
|
||||||
|
"mp4v.20.3", // 3GPP
|
||||||
|
"mp4a.40.2", // AAC-LC
|
||||||
nullptr
|
nullptr
|
||||||
};
|
};
|
||||||
#endif
|
-#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",
|
||||||
-};
|
-};
|
||||||
-
|
|
||||||
bool
|
|
||||||
nsHTMLMediaElement::IsGStreamerEnabled()
|
|
||||||
{
|
|
||||||
return Preferences::GetBool("media.gstreamer.enabled");
|
|
||||||
}
|
|
||||||
-
|
-
|
||||||
-bool
|
-bool
|
||||||
-nsHTMLMediaElement::IsH264Type(const nsACString& aType)
|
-nsHTMLMediaElement::IsH264Type(const nsACString& aType)
|
||||||
@ -116,15 +111,19 @@ diff --git a/content/html/content/src/nsHTMLMediaElement.cpp b/content/html/cont
|
|||||||
- }
|
- }
|
||||||
- return false;
|
- return false;
|
||||||
-}
|
-}
|
||||||
#endif
|
-#endif
|
||||||
|
-
|
||||||
#ifdef MOZ_WIDGET_GONK
|
-#ifdef MOZ_WIDGET_GONK
|
||||||
|
+
|
||||||
const char nsHTMLMediaElement::gOmxTypes[5][16] = {
|
const char nsHTMLMediaElement::gOmxTypes[5][16] = {
|
||||||
"audio/mpeg",
|
"audio/mpeg",
|
||||||
"audio/mp4",
|
"audio/mp4",
|
||||||
"video/mp4",
|
"video/mp4",
|
||||||
"video/3gpp",
|
"video/3gpp",
|
||||||
@@ -2257,18 +2240,22 @@ nsHTMLMediaElement::IsDASHMPDType(const
|
"video/quicktime",
|
||||||
|
};
|
||||||
|
|
||||||
|
@@ -2319,18 +2298,22 @@ nsHTMLMediaElement::IsDASHMPDType(const
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -148,7 +147,7 @@ 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))) {
|
||||||
@@ -2292,20 +2279,22 @@ nsHTMLMediaElement::CanHandleMediaType(c
|
@@ -2354,20 +2337,22 @@ nsHTMLMediaElement::CanHandleMediaType(c
|
||||||
if (IsDASHMPDType(nsDependentCString(aMIMEType))) {
|
if (IsDASHMPDType(nsDependentCString(aMIMEType))) {
|
||||||
// DASH manifest uses WebM codecs only.
|
// DASH manifest uses WebM codecs only.
|
||||||
*aCodecList = gWebMCodecs;
|
*aCodecList = gWebMCodecs;
|
||||||
@ -165,7 +164,7 @@ diff --git a/content/html/content/src/nsHTMLMediaElement.cpp b/content/html/cont
|
|||||||
+ *aCheckCodecList = false;
|
+ *aCheckCodecList = false;
|
||||||
+ if (aCodecList)
|
+ if (aCodecList)
|
||||||
+ *aCodecList = nullptr;
|
+ *aCodecList = nullptr;
|
||||||
+ if (nsGStreamerDecoder::CanHandleMediaType(aMIMEType, aCodecs))
|
+ if (GStreamerDecoder::CanHandleMediaType(aMIMEType, aCodecs))
|
||||||
+ return CANPLAY_YES;
|
+ return CANPLAY_YES;
|
||||||
#endif
|
#endif
|
||||||
#ifdef MOZ_WIDGET_GONK
|
#ifdef MOZ_WIDGET_GONK
|
||||||
@ -175,7 +174,7 @@ diff --git a/content/html/content/src/nsHTMLMediaElement.cpp b/content/html/cont
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef MOZ_MEDIA_PLUGINS
|
#ifdef MOZ_MEDIA_PLUGINS
|
||||||
@@ -2326,17 +2315,17 @@ bool nsHTMLMediaElement::ShouldHandleMed
|
@@ -2388,17 +2373,17 @@ bool nsHTMLMediaElement::ShouldHandleMed
|
||||||
if (IsOggType(nsDependentCString(aMIMEType)))
|
if (IsOggType(nsDependentCString(aMIMEType)))
|
||||||
return true;
|
return true;
|
||||||
#endif
|
#endif
|
||||||
@ -185,7 +184,7 @@ diff --git a/content/html/content/src/nsHTMLMediaElement.cpp b/content/html/cont
|
|||||||
#endif
|
#endif
|
||||||
#ifdef MOZ_GSTREAMER
|
#ifdef MOZ_GSTREAMER
|
||||||
- if (IsH264Type(nsDependentCString(aMIMEType)))
|
- if (IsH264Type(nsDependentCString(aMIMEType)))
|
||||||
+ if (nsGStreamerDecoder::CanHandleMediaType(aMIMEType, nullptr))
|
+ if (GStreamerDecoder::CanHandleMediaType(aMIMEType, nullptr))
|
||||||
return true;
|
return true;
|
||||||
#endif
|
#endif
|
||||||
#ifdef MOZ_WIDGET_GONK
|
#ifdef MOZ_WIDGET_GONK
|
||||||
@ -194,7 +193,7 @@ diff --git a/content/html/content/src/nsHTMLMediaElement.cpp b/content/html/cont
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef MOZ_MEDIA_PLUGINS
|
#ifdef MOZ_MEDIA_PLUGINS
|
||||||
@@ -2367,26 +2356,31 @@ nsHTMLMediaElement::GetCanPlay(const nsA
|
@@ -2429,26 +2414,31 @@ nsHTMLMediaElement::GetCanPlay(const nsA
|
||||||
{
|
{
|
||||||
nsContentTypeParser parser(aType);
|
nsContentTypeParser parser(aType);
|
||||||
nsAutoString mimeType;
|
nsAutoString mimeType;
|
||||||
@ -231,20 +230,20 @@ 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;
|
||||||
@@ -2425,46 +2419,41 @@ nsHTMLMediaElement::CanPlayType(const ns
|
@@ -2487,43 +2477,39 @@ nsHTMLMediaElement::CanPlayType(const ns
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef MOZ_GSTREAMER
|
#ifdef MOZ_GSTREAMER
|
||||||
bool
|
bool
|
||||||
nsHTMLMediaElement::IsGStreamerSupportedType(const nsACString& aMimeType)
|
nsHTMLMediaElement::IsGStreamerSupportedType(const nsACString& aMimeType)
|
||||||
{
|
{
|
||||||
if (!IsGStreamerEnabled())
|
if (!MediaDecoder::IsGStreamerEnabled())
|
||||||
return false;
|
return false;
|
||||||
- if (IsH264Type(aMimeType))
|
- if (IsH264Type(aMimeType))
|
||||||
+
|
+
|
||||||
+ const char *type;
|
+ const char *type;
|
||||||
+ NS_CStringGetData(aMimeType, &type, nullptr);
|
+ NS_CStringGetData(aMimeType, &type, nullptr);
|
||||||
+ if (nsGStreamerDecoder::CanHandleMediaType(type, nullptr))
|
+ if (GStreamerDecoder::CanHandleMediaType(type, nullptr))
|
||||||
return true;
|
return true;
|
||||||
- if (!Preferences::GetBool("media.prefer-gstreamer", false))
|
- if (!Preferences::GetBool("media.prefer-gstreamer", false))
|
||||||
- return false;
|
- return false;
|
||||||
@ -261,81 +260,115 @@ diff --git a/content/html/content/src/nsHTMLMediaElement.cpp b/content/html/cont
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
already_AddRefed<nsMediaDecoder>
|
already_AddRefed<MediaDecoder>
|
||||||
nsHTMLMediaElement::CreateDecoder(const nsACString& aType)
|
nsHTMLMediaElement::CreateDecoder(const nsACString& aType)
|
||||||
{
|
{
|
||||||
|
|
||||||
#ifdef MOZ_GSTREAMER
|
#ifdef MOZ_GSTREAMER
|
||||||
// When enabled, use GStreamer for H.264, but not for codecs handled by our
|
// When enabled, use GStreamer for H.264, but not for codecs handled by our
|
||||||
// bundled decoders, unless the "media.prefer-gstreamer" pref is set.
|
// bundled decoders, unless the "media.prefer-gstreamer" pref is set.
|
||||||
- if (IsGStreamerSupportedType(aType)) {
|
- if (IsGStreamerSupportedType(aType)) {
|
||||||
- nsRefPtr<nsGStreamerDecoder> decoder = new nsGStreamerDecoder();
|
- nsRefPtr<GStreamerDecoder> decoder = new GStreamerDecoder();
|
||||||
- if (decoder->Init(this)) {
|
- if (decoder->Init(this)) {
|
||||||
- return decoder.forget();
|
- return decoder.forget();
|
||||||
+ if (!Preferences::GetBool("media.prefer-gstreamer", false)) {
|
+ if (!Preferences::GetBool("media.prefer-gstreamer", false)) {
|
||||||
+ if (IsGStreamerSupportedType(aType)) {
|
+ if (IsGStreamerSupportedType(aType)) {
|
||||||
+ nsRefPtr<nsGStreamerDecoder> decoder = new nsGStreamerDecoder();
|
+ nsRefPtr<GStreamerDecoder> decoder = new GStreamerDecoder();
|
||||||
+ if (decoder->Init(this)) {
|
+ if (decoder->Init(this)) {
|
||||||
+ return decoder.forget();
|
+ return decoder.forget();
|
||||||
+ }
|
+ }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
-
|
|
||||||
#ifdef MOZ_RAW
|
#ifdef MOZ_RAW
|
||||||
if (IsRawType(aType)) {
|
if (IsRawType(aType)) {
|
||||||
nsRefPtr<nsRawDecoder> decoder = new nsRawDecoder();
|
nsRefPtr<RawDecoder> decoder = new RawDecoder();
|
||||||
if (decoder->Init(this)) {
|
if (decoder->Init(this)) {
|
||||||
return decoder.forget();
|
@@ -2576,16 +2562,26 @@ nsHTMLMediaElement::CreateDecoder(const
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
@@ -2503,25 +2492,33 @@ nsHTMLMediaElement::CreateDecoder(const
|
|
||||||
#ifdef MOZ_WEBM
|
|
||||||
if (IsWebMType(aType)) {
|
|
||||||
nsRefPtr<nsWebMDecoder> decoder = new nsWebMDecoder();
|
|
||||||
if (decoder->Init(this)) {
|
|
||||||
return decoder.forget();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
-
|
|
||||||
#ifdef MOZ_DASH
|
|
||||||
if (IsDASHMPDType(aType)) {
|
if (IsDASHMPDType(aType)) {
|
||||||
nsRefPtr<nsDASHDecoder> decoder = new nsDASHDecoder();
|
nsRefPtr<DASHDecoder> decoder = new DASHDecoder();
|
||||||
if (decoder->Init(this)) {
|
if (decoder->Init(this)) {
|
||||||
return decoder.forget();
|
return decoder.forget();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
+#ifdef MOZ_GSTREAMER
|
+#ifdef MOZ_GSTREAMER
|
||||||
+ // use GStreamer as fallback if not preferred
|
+ // use GStreamer as fallback if not preferred
|
||||||
+ if (IsGStreamerSupportedType(aType)) {
|
+ if (IsGStreamerSupportedType(aType)) {
|
||||||
+ nsRefPtr<nsGStreamerDecoder> decoder = new nsGStreamerDecoder();
|
+ nsRefPtr<GStreamerDecoder> decoder = new GStreamerDecoder();
|
||||||
+ if (decoder->Init(this)) {
|
+ if (decoder->Init(this)) {
|
||||||
+ return decoder.forget();
|
+ return decoder.forget();
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
+#endif
|
+#endif
|
||||||
|
+
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
nsresult nsHTMLMediaElement::InitializeDecoderAsClone(nsMediaDecoder* aOriginal)
|
nsresult nsHTMLMediaElement::InitializeDecoderAsClone(MediaDecoder* aOriginal)
|
||||||
{
|
{
|
||||||
NS_ASSERTION(mLoadingSrc, "mLoadingSrc must already be set");
|
NS_ASSERTION(mLoadingSrc, "mLoadingSrc must already be set");
|
||||||
NS_ASSERTION(mDecoder == nullptr, "Shouldn't have a decoder");
|
NS_ASSERTION(mDecoder == nullptr, "Shouldn't have a decoder");
|
||||||
|
|
||||||
|
diff --git a/content/media/gstreamer/GStreamerDecoder.cpp b/content/media/gstreamer/GStreamerDecoder.cpp
|
||||||
|
--- a/content/media/gstreamer/GStreamerDecoder.cpp
|
||||||
|
+++ b/content/media/gstreamer/GStreamerDecoder.cpp
|
||||||
|
@@ -2,18 +2,23 @@
|
||||||
|
/* vim:set ts=2 sw=2 sts=2 et cindent: */
|
||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||||
|
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
#include "MediaDecoderStateMachine.h"
|
||||||
|
#include "GStreamerReader.h"
|
||||||
|
#include "GStreamerDecoder.h"
|
||||||
|
+#include "nsGStreamerFormatHelper.h"
|
||||||
|
|
||||||
|
namespace mozilla {
|
||||||
|
|
||||||
|
MediaDecoderStateMachine* GStreamerDecoder::CreateStateMachine()
|
||||||
|
{
|
||||||
|
return new MediaDecoderStateMachine(this, new GStreamerReader(this));
|
||||||
|
}
|
||||||
|
|
||||||
|
+bool GStreamerDecoder::CanHandleMediaType(const char* aMIMEType,
|
||||||
|
+ const char* aCodecs) {
|
||||||
|
+ return GStreamerFormatHelper::Instance()->CanHandleMediaType(aMIMEType, aCodecs);
|
||||||
|
+}
|
||||||
|
} // namespace mozilla
|
||||||
|
|
||||||
|
diff --git a/content/media/gstreamer/GStreamerDecoder.h b/content/media/gstreamer/GStreamerDecoder.h
|
||||||
|
--- a/content/media/gstreamer/GStreamerDecoder.h
|
||||||
|
+++ b/content/media/gstreamer/GStreamerDecoder.h
|
||||||
|
@@ -11,13 +11,14 @@
|
||||||
|
|
||||||
|
namespace mozilla {
|
||||||
|
|
||||||
|
class GStreamerDecoder : public MediaDecoder
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual MediaDecoder* Clone() { return new GStreamerDecoder(); }
|
||||||
|
virtual MediaDecoderStateMachine* CreateStateMachine();
|
||||||
|
+ static bool CanHandleMediaType(const char* aMIMEType, const char* aCodecs);
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace mozilla
|
||||||
|
|
||||||
|
#endif
|
||||||
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
|
||||||
@@ -17,16 +17,17 @@ LIBXUL_LIBRARY = 1
|
@@ -17,16 +17,17 @@ LIBXUL_LIBRARY = 1
|
||||||
|
|
||||||
EXPORTS += \
|
EXPORTS += \
|
||||||
nsGStreamerDecoder.h \
|
GStreamerDecoder.h \
|
||||||
$(NULL)
|
$(NULL)
|
||||||
|
|
||||||
CPPSRCS = \
|
CPPSRCS = \
|
||||||
nsGStreamerReader.cpp \
|
GStreamerReader.cpp \
|
||||||
nsGStreamerDecoder.cpp \
|
GStreamerDecoder.cpp \
|
||||||
+ nsGStreamerFormatHelper.cpp \
|
+ nsGStreamerFormatHelper.cpp \
|
||||||
$(NULL)
|
$(NULL)
|
||||||
|
|
||||||
@ -345,45 +378,6 @@ diff --git a/content/media/gstreamer/Makefile.in b/content/media/gstreamer/Makef
|
|||||||
|
|
||||||
CFLAGS += $(GSTREAMER_CFLAGS)
|
CFLAGS += $(GSTREAMER_CFLAGS)
|
||||||
CXXFLAGS += $(GSTREAMER_CFLAGS)
|
CXXFLAGS += $(GSTREAMER_CFLAGS)
|
||||||
diff --git a/content/media/gstreamer/nsGStreamerDecoder.cpp b/content/media/gstreamer/nsGStreamerDecoder.cpp
|
|
||||||
--- a/content/media/gstreamer/nsGStreamerDecoder.cpp
|
|
||||||
+++ b/content/media/gstreamer/nsGStreamerDecoder.cpp
|
|
||||||
@@ -2,13 +2,19 @@
|
|
||||||
/* vim:set ts=2 sw=2 sts=2 et cindent: */
|
|
||||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
|
||||||
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
||||||
|
|
||||||
#include "nsBuiltinDecoderStateMachine.h"
|
|
||||||
#include "nsGStreamerReader.h"
|
|
||||||
#include "nsGStreamerDecoder.h"
|
|
||||||
+#include "nsGStreamerFormatHelper.h"
|
|
||||||
|
|
||||||
nsDecoderStateMachine* nsGStreamerDecoder::CreateStateMachine()
|
|
||||||
{
|
|
||||||
return new nsBuiltinDecoderStateMachine(this, new nsGStreamerReader(this));
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+bool nsGStreamerDecoder::CanHandleMediaType(const char* aMIMEType,
|
|
||||||
+ const char* aCodecs) {
|
|
||||||
+ return nsGStreamerFormatHelper::Instance()->CanHandleMediaType(aMIMEType, aCodecs);
|
|
||||||
+}
|
|
||||||
diff --git a/content/media/gstreamer/nsGStreamerDecoder.h b/content/media/gstreamer/nsGStreamerDecoder.h
|
|
||||||
--- a/content/media/gstreamer/nsGStreamerDecoder.h
|
|
||||||
+++ b/content/media/gstreamer/nsGStreamerDecoder.h
|
|
||||||
@@ -9,11 +9,12 @@
|
|
||||||
|
|
||||||
#include "nsBuiltinDecoder.h"
|
|
||||||
|
|
||||||
class nsGStreamerDecoder : public nsBuiltinDecoder
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
virtual nsMediaDecoder* Clone() { return new nsGStreamerDecoder(); }
|
|
||||||
virtual nsDecoderStateMachine* CreateStateMachine();
|
|
||||||
+ static bool CanHandleMediaType(const char* aMIMEType, const char* aCodecs);
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
||||||
diff --git a/content/media/gstreamer/nsGStreamerFormatHelper.cpp b/content/media/gstreamer/nsGStreamerFormatHelper.cpp
|
diff --git a/content/media/gstreamer/nsGStreamerFormatHelper.cpp b/content/media/gstreamer/nsGStreamerFormatHelper.cpp
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
@ -402,18 +396,18 @@ 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 = nullptr;
|
+GStreamerFormatHelper* GStreamerFormatHelper::gInstance = nullptr;
|
||||||
+
|
+
|
||||||
+nsGStreamerFormatHelper *nsGStreamerFormatHelper::Instance() {
|
+GStreamerFormatHelper *GStreamerFormatHelper::Instance() {
|
||||||
+ if (!gInstance) {
|
+ if (!gInstance) {
|
||||||
+ gst_init(nullptr, nullptr);
|
+ gst_init(nullptr, nullptr);
|
||||||
+ gInstance = new nsGStreamerFormatHelper();
|
+ gInstance = new GStreamerFormatHelper();
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ return gInstance;
|
+ return gInstance;
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+nsGStreamerFormatHelper::nsGStreamerFormatHelper()
|
+GStreamerFormatHelper::GStreamerFormatHelper()
|
||||||
+ : mFactories(nullptr),
|
+ : mFactories(nullptr),
|
||||||
+ mCookie(0)
|
+ mCookie(0)
|
||||||
+{
|
+{
|
||||||
@ -436,12 +430,12 @@ new file mode 100644
|
|||||||
+ memcpy(mCodecs, codecs, sizeof(codecs));
|
+ memcpy(mCodecs, codecs, sizeof(codecs));
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+nsGStreamerFormatHelper::~nsGStreamerFormatHelper() {
|
+GStreamerFormatHelper::~GStreamerFormatHelper() {
|
||||||
+ if (mFactories)
|
+ if (mFactories)
|
||||||
+ g_list_free(mFactories);
|
+ g_list_free(mFactories);
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+bool nsGStreamerFormatHelper::CanHandleMediaType(const char* aMIMEType,
|
+bool GStreamerFormatHelper::CanHandleMediaType(const char* aMIMEType,
|
||||||
+ const char *aCodecs) {
|
+ const char *aCodecs) {
|
||||||
+ GstCaps *caps = ConvertFormatsToCaps(aMIMEType, aCodecs);
|
+ GstCaps *caps = ConvertFormatsToCaps(aMIMEType, aCodecs);
|
||||||
+ if (!caps) {
|
+ if (!caps) {
|
||||||
@ -454,7 +448,7 @@ new file mode 100644
|
|||||||
+ return ret;
|
+ return ret;
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+GstCaps *nsGStreamerFormatHelper::ConvertFormatsToCaps(const char *aMIMEType,
|
+GstCaps *GStreamerFormatHelper::ConvertFormatsToCaps(const char *aMIMEType,
|
||||||
+ const char *aCodecs) {
|
+ const char *aCodecs) {
|
||||||
+ unsigned int i;
|
+ unsigned int i;
|
||||||
+
|
+
|
||||||
@ -504,7 +498,7 @@ new file mode 100644
|
|||||||
+ return caps;
|
+ return caps;
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+bool nsGStreamerFormatHelper::HaveElementsToProcessCaps(GstCaps *aCaps) {
|
+bool GStreamerFormatHelper::HaveElementsToProcessCaps(GstCaps *aCaps) {
|
||||||
+
|
+
|
||||||
+ GList *factories = GetFactories();
|
+ GList *factories = GetFactories();
|
||||||
+
|
+
|
||||||
@ -526,7 +520,7 @@ new file mode 100644
|
|||||||
+ return true;
|
+ return true;
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+GList * nsGStreamerFormatHelper::GetFactories() {
|
+GList * GStreamerFormatHelper::GetFactories() {
|
||||||
+ uint32_t cookie = gst_default_registry_get_feature_list_cookie ();
|
+ uint32_t cookie = gst_default_registry_get_feature_list_cookie ();
|
||||||
+ if (cookie != mCookie) {
|
+ if (cookie != mCookie) {
|
||||||
+ g_list_free(mFactories);
|
+ g_list_free(mFactories);
|
||||||
@ -555,23 +549,23 @@ new file mode 100644
|
|||||||
+#include <gst/gst.h>
|
+#include <gst/gst.h>
|
||||||
+#include <mozilla/Types.h>
|
+#include <mozilla/Types.h>
|
||||||
+
|
+
|
||||||
+class nsGStreamerFormatHelper {
|
+class GStreamerFormatHelper {
|
||||||
+ public:
|
+ public:
|
||||||
+ static nsGStreamerFormatHelper *Instance();
|
+ static GStreamerFormatHelper *Instance();
|
||||||
+ ~nsGStreamerFormatHelper();
|
+ ~GStreamerFormatHelper();
|
||||||
+
|
+
|
||||||
+ bool CanHandleMediaType(const char *aMIMEType,
|
+ bool CanHandleMediaType(const char *aMIMEType,
|
||||||
+ const char *aCodecs);
|
+ const char *aCodecs);
|
||||||
+
|
+
|
||||||
+ private:
|
+ private:
|
||||||
+ nsGStreamerFormatHelper();
|
+ GStreamerFormatHelper();
|
||||||
+ GstCaps *ConvertFormatsToCaps(const char *aMIMEType,
|
+ GstCaps *ConvertFormatsToCaps(const char *aMIMEType,
|
||||||
+ const char *aCodecs);
|
+ const char *aCodecs);
|
||||||
+ char * const *CodecListFromCaps(GstCaps *aCaps);
|
+ char * const *CodecListFromCaps(GstCaps *aCaps);
|
||||||
+ bool HaveElementsToProcessCaps(GstCaps *aCaps);
|
+ bool HaveElementsToProcessCaps(GstCaps *aCaps);
|
||||||
+ GList *GetFactories();
|
+ GList *GetFactories();
|
||||||
+
|
+
|
||||||
+ static nsGStreamerFormatHelper *gInstance;
|
+ static GStreamerFormatHelper *gInstance;
|
||||||
+
|
+
|
||||||
+ const char *mContainers[3][2];
|
+ const char *mContainers[3][2];
|
||||||
+ const char *mCodecs[7][2];
|
+ const char *mCodecs[7][2];
|
||||||
|
@ -1,293 +0,0 @@
|
|||||||
# 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);
|
|
@ -143,7 +143,7 @@ diff --git a/modules/libpref/src/Preferences.cpp b/modules/libpref/src/Preferenc
|
|||||||
diff --git a/toolkit/components/downloads/Makefile.in b/toolkit/components/downloads/Makefile.in
|
diff --git a/toolkit/components/downloads/Makefile.in b/toolkit/components/downloads/Makefile.in
|
||||||
--- a/toolkit/components/downloads/Makefile.in
|
--- a/toolkit/components/downloads/Makefile.in
|
||||||
+++ b/toolkit/components/downloads/Makefile.in
|
+++ b/toolkit/components/downloads/Makefile.in
|
||||||
@@ -41,9 +41,12 @@ EXTRA_COMPONENTS = \
|
@@ -42,9 +42,12 @@ EXTRA_COMPONENTS = \
|
||||||
nsDownloadManagerUI.manifest \
|
nsDownloadManagerUI.manifest \
|
||||||
$(NULL)
|
$(NULL)
|
||||||
endif
|
endif
|
||||||
@ -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
|
||||||
@@ -36,16 +36,20 @@
|
@@ -41,16 +41,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
|
||||||
|
|
||||||
@@ -2253,16 +2257,25 @@ nsDownload::SetState(DownloadState aStat
|
@@ -2740,16 +2744,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.
|
||||||
@ -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;
|
||||||
|
|
||||||
@@ -2286,19 +2299,20 @@ nsDownload::SetState(DownloadState aStat
|
@@ -2775,19 +2788,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
|
||||||
@@ -46,29 +46,33 @@ toolkit.jar:
|
@@ -49,29 +49,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)
|
||||||
@ -2187,7 +2187,7 @@ diff --git a/toolkit/xre/nsKDEUtils.cpp b/toolkit/xre/nsKDEUtils.cpp
|
|||||||
new file mode 100644
|
new file mode 100644
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/toolkit/xre/nsKDEUtils.cpp
|
+++ b/toolkit/xre/nsKDEUtils.cpp
|
||||||
@@ -0,0 +1,341 @@
|
@@ -0,0 +1,339 @@
|
||||||
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||||
+/* 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
|
||||||
@ -2353,8 +2353,6 @@ new file mode 100644
|
|||||||
+
|
+
|
||||||
+bool nsKDEUtils::command( nsIArray* command, nsIArray** output)
|
+bool nsKDEUtils::command( nsIArray* command, nsIArray** output)
|
||||||
+ {
|
+ {
|
||||||
+ NS_ENSURE_ARG( command );
|
|
||||||
+
|
|
||||||
+ nsTArray<nsCString> in;
|
+ nsTArray<nsCString> in;
|
||||||
+ PRUint32 length;
|
+ PRUint32 length;
|
||||||
+ command->GetLength( &length );
|
+ command->GetLength( &length );
|
||||||
@ -3052,7 +3050,7 @@ diff --git a/widget/gtk2/Makefile.in b/widget/gtk2/Makefile.in
|
|||||||
diff --git a/widget/gtk2/nsFilePicker.cpp b/widget/gtk2/nsFilePicker.cpp
|
diff --git a/widget/gtk2/nsFilePicker.cpp b/widget/gtk2/nsFilePicker.cpp
|
||||||
--- a/widget/gtk2/nsFilePicker.cpp
|
--- a/widget/gtk2/nsFilePicker.cpp
|
||||||
+++ b/widget/gtk2/nsFilePicker.cpp
|
+++ b/widget/gtk2/nsFilePicker.cpp
|
||||||
@@ -1,16 +1,17 @@
|
@@ -1,31 +1,33 @@
|
||||||
/* -*- 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
|
||||||
@ -3070,14 +3068,12 @@ diff --git a/widget/gtk2/nsFilePicker.cpp b/widget/gtk2/nsFilePicker.cpp
|
|||||||
#include "nsIStringBundle.h"
|
#include "nsIStringBundle.h"
|
||||||
|
|
||||||
#include "nsArrayEnumerator.h"
|
#include "nsArrayEnumerator.h"
|
||||||
@@ -19,16 +20,17 @@
|
#include "nsMemory.h"
|
||||||
|
#include "nsEnumeratorUtils.h"
|
||||||
#include "nsNetUtil.h"
|
#include "nsNetUtil.h"
|
||||||
#include "nsReadableUtils.h"
|
#include "nsReadableUtils.h"
|
||||||
#include "mozcontainer.h"
|
#include "mozcontainer.h"
|
||||||
|
|
||||||
#include "prmem.h"
|
|
||||||
#include "prlink.h"
|
|
||||||
|
|
||||||
#include "nsFilePicker.h"
|
#include "nsFilePicker.h"
|
||||||
+#include "nsKDEUtils.h"
|
+#include "nsKDEUtils.h"
|
||||||
|
|
||||||
@ -3088,7 +3084,7 @@ diff --git a/widget/gtk2/nsFilePicker.cpp b/widget/gtk2/nsFilePicker.cpp
|
|||||||
using namespace mozilla;
|
using namespace mozilla;
|
||||||
|
|
||||||
#define MAX_PREVIEW_SIZE 180
|
#define MAX_PREVIEW_SIZE 180
|
||||||
@@ -264,17 +266,19 @@ nsFilePicker::AppendFilters(int32_t aFil
|
@@ -236,17 +238,19 @@ nsFilePicker::AppendFilters(int32_t aFil
|
||||||
return nsBaseFilePicker::AppendFilters(aFilterMask);
|
return nsBaseFilePicker::AppendFilters(aFilterMask);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3109,7 +3105,7 @@ diff --git a/widget/gtk2/nsFilePicker.cpp b/widget/gtk2/nsFilePicker.cpp
|
|||||||
|
|
||||||
mFilters.AppendElement(filter);
|
mFilters.AppendElement(filter);
|
||||||
mFilterNames.AppendElement(name);
|
mFilterNames.AppendElement(name);
|
||||||
@@ -388,16 +392,32 @@ nsFilePicker::Show(int16_t *aReturn)
|
@@ -360,16 +364,32 @@ nsFilePicker::Show(int16_t *aReturn)
|
||||||
|
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
nsFilePicker::Open(nsIFilePickerShownCallback *aCallback)
|
nsFilePicker::Open(nsIFilePickerShownCallback *aCallback)
|
||||||
@ -3137,12 +3133,12 @@ diff --git a/widget/gtk2/nsFilePicker.cpp b/widget/gtk2/nsFilePicker.cpp
|
|||||||
nsXPIDLCString title;
|
nsXPIDLCString title;
|
||||||
title.Adopt(ToNewUTF8String(mTitle));
|
title.Adopt(ToNewUTF8String(mTitle));
|
||||||
|
|
||||||
GtkWindow *parent_widget = get_gtk_window_for_nsiwidget(mParentWidget);
|
GtkWindow *parent_widget =
|
||||||
|
GTK_WINDOW(mParentWidget->GetNativeData(NS_NATIVE_SHELLWIDGET));
|
||||||
|
|
||||||
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;
|
@@ -561,8 +581,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;
|
||||||
@ -3170,7 +3166,7 @@ diff --git a/widget/gtk2/nsFilePicker.cpp b/widget/gtk2/nsFilePicker.cpp
|
|||||||
+
|
+
|
||||||
+static PRInt32 windowToXid( nsIWidget* widget )
|
+static PRInt32 windowToXid( nsIWidget* widget )
|
||||||
+ {
|
+ {
|
||||||
+ GtkWindow *parent_widget = get_gtk_window_for_nsiwidget( widget );
|
+ GtkWindow *parent_widget = GTK_WINDOW(widget->GetNativeData(NS_NATIVE_SHELLWIDGET));
|
||||||
+ GdkWindow* gdk_window = gtk_widget_get_window( gtk_widget_get_toplevel( GTK_WIDGET( parent_widget )));
|
+ GdkWindow* gdk_window = gtk_widget_get_window( gtk_widget_get_toplevel( GTK_WIDGET( parent_widget )));
|
||||||
+ return GDK_WINDOW_XID( gdk_window );
|
+ return GDK_WINDOW_XID( gdk_window );
|
||||||
+ }
|
+ }
|
||||||
@ -3278,7 +3274,7 @@ diff --git a/widget/gtk2/nsFilePicker.cpp b/widget/gtk2/nsFilePicker.cpp
|
|||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ nsTArray<nsCString> output;
|
+ nsTArray<nsCString> output;
|
||||||
+ if( nsKDEUtils::commandBlockUi( command, get_gtk_window_for_nsiwidget( mParentWidget ), &output ))
|
+ if( nsKDEUtils::commandBlockUi( command, GTK_WINDOW(mParentWidget->GetNativeData(NS_NATIVE_SHELLWIDGET)), &output ))
|
||||||
+ {
|
+ {
|
||||||
+ *aReturn = nsIFilePicker::returnOK;
|
+ *aReturn = nsIFilePicker::returnOK;
|
||||||
+ mFiles.Clear();
|
+ mFiles.Clear();
|
||||||
@ -3366,7 +3362,7 @@ diff --git a/widget/gtk2/nsFilePicker.cpp b/widget/gtk2/nsFilePicker.cpp
|
|||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ nsTArray<nsCString> output;
|
+ nsTArray<nsCString> output;
|
||||||
+ if( nsKDEUtils::commandBlockUi( command, get_gtk_window_for_nsiwidget( mParentWidget ), &output ))
|
+ if( nsKDEUtils::commandBlockUi( command, GTK_WINDOW(mParentWidget->GetNativeData(NS_NATIVE_SHELLWIDGET)), &output ))
|
||||||
+ {
|
+ {
|
||||||
+ *aReturn = nsIFilePicker::returnOK;
|
+ *aReturn = nsIFilePicker::returnOK;
|
||||||
+ mFileURL = output.Length() > 0 ? output[ 0 ] : nsCString();
|
+ mFileURL = output.Length() > 0 ? output[ 0 ] : nsCString();
|
||||||
|
@ -1,103 +0,0 @@
|
|||||||
# 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=c4fe2b219941
|
REV=20238b786063
|
||||||
REPO=http://hg.mozilla.org/releases/mozilla-release
|
REPO=http://hg.mozilla.org/releases/mozilla-release
|
||||||
|
Loading…
Reference in New Issue
Block a user