# HG changeset patch # User Wolfgang Rosenauer # Date 1358374189 -3600 # Node ID 9d39369e1b4c766b5f706809d208e35a8d22763e # Parent 36ec036ad04d20d04292697bc008e3944d9828b3 FF19beta cycle preparation (does not build yet) diff -r 36ec036ad04d -r 9d39369e1b4c MozillaFirefox/MozillaFirefox.spec --- a/MozillaFirefox/MozillaFirefox.spec Fri Jan 11 15:58:38 2013 +0100 +++ b/MozillaFirefox/MozillaFirefox.spec Wed Jan 16 23:09:49 2013 +0100 @@ -18,8 +18,8 @@ %define major 18 -%define mainver %major.0 -%define update_channel release +%define mainver %major.99 +%define update_channel beta Name: MozillaFirefox BuildRequires: Mesa-devel @@ -95,10 +95,8 @@ Patch10: mozilla-sle11.patch Patch11: mozilla-disable-neon-option.patch Patch12: mozilla-arm-disable-edsp.patch -Patch13: mozilla-gstreamer-803287.patch Patch14: mozilla-ppc.patch Patch15: mozilla-gstreamer-760140.patch -Patch16: mozilla-webrtc.patch Patch17: mozilla-libproxy-compat.patch Patch18: mozilla-backout-677092.patch # Firefox/browser @@ -231,10 +229,8 @@ %endif #%patch11 -p1 %patch12 -p1 -%patch13 -p1 %patch14 -p1 %patch15 -p1 -%patch16 -p1 %patch17 -p1 %patch18 -p1 # diff -r 36ec036ad04d -r 9d39369e1b4c MozillaFirefox/create-tar.sh --- a/MozillaFirefox/create-tar.sh Fri Jan 11 15:58:38 2013 +0100 +++ b/MozillaFirefox/create-tar.sh Wed Jan 16 23:09:49 2013 +0100 @@ -1,9 +1,9 @@ #!/bin/bash -CHANNEL="release" +CHANNEL="beta" BRANCH="releases/mozilla-$CHANNEL" -RELEASE_TAG="FIREFOX_18_0_RELEASE" -VERSION="18.0" +RELEASE_TAG="FIREFOX_19_0b1_RELEASE" +VERSION="18.99" # mozilla echo "cloning $BRANCH..." diff -r 36ec036ad04d -r 9d39369e1b4c MozillaFirefox/mozilla-gstreamer-803287.patch --- a/MozillaFirefox/mozilla-gstreamer-803287.patch Fri Jan 11 15:58:38 2013 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -../mozilla-gstreamer-803287.patch \ No newline at end of file diff -r 36ec036ad04d -r 9d39369e1b4c MozillaFirefox/mozilla-webrtc.patch --- a/MozillaFirefox/mozilla-webrtc.patch Fri Jan 11 15:58:38 2013 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -../mozilla-webrtc.patch \ No newline at end of file diff -r 36ec036ad04d -r 9d39369e1b4c firefox-kde.patch --- a/firefox-kde.patch Fri Jan 11 15:58:38 2013 +0100 +++ b/firefox-kde.patch Wed Jan 16 23:09:49 2013 +0100 @@ -2,7 +2,7 @@ new file mode 100644 --- /dev/null +++ b/browser/base/content/browser-kde.xul -@@ -0,0 +1,1274 @@ +@@ -0,0 +1,1276 @@ +#filter substitution + +# -*- Mode: HTML -*- @@ -668,38 +668,40 @@ + class="chromeclass-toolbar-additional" + removable="false" + title="&socialToolbar.title;" -+ hidden="true"> ++ hidden="true" ++ observes="socialActiveBroadcaster"> + + -+ -+ ++ +#ifndef XP_WIN -+ ++ + + @@ -1847,7 +1849,7 @@ diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in --- a/browser/installer/package-manifest.in +++ b/browser/installer/package-manifest.in -@@ -579,18 +579,20 @@ +@@ -578,18 +578,20 @@ @BINPATH@/@PREF_DIR@/healthreport-prefs.js #endif @BINPATH@/greprefs.js diff -r 36ec036ad04d -r 9d39369e1b4c firefox-multilocale-chrome.patch --- a/firefox-multilocale-chrome.patch Fri Jan 11 15:58:38 2013 +0100 +++ b/firefox-multilocale-chrome.patch Wed Jan 16 23:09:49 2013 +0100 @@ -1,13 +1,13 @@ # HG changeset patch # User Wolfgang Rosenauer -# Parent ba286b90465d93b93487c0de6f8ebe5d1821d2c0 +# Parent 1352398be333989afdf06a2d87d63df9fed61333 Add searchplugins to chrome packaging for proper localization diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js --- a/browser/app/profile/firefox.js +++ b/browser/app/profile/firefox.js -@@ -332,16 +332,20 @@ pref("browser.download.useToolkitUI", tr - pref("browser.download.panel.removeFinishedDownloads", false); +@@ -338,16 +338,20 @@ pref("browser.download.panel.shown", fal + pref("browser.download.panel.firstSessionCompleted", false); // search engines URL pref("browser.search.searchEnginesURL", "https://addons.mozilla.org/%LOCALE%/firefox/search-engines/"); @@ -30,7 +30,7 @@ diff --git a/browser/locales/Makefile.in b/browser/locales/Makefile.in --- a/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:: $(addprefix generic/profile/,$(PROFILE_FILES)) @@ -81,13 +81,13 @@ libs-%: $(NSINSTALL) -D $(DIST)/install - @$(MAKE) -C ../../toolkit/locales libs-$* BOTH_MANIFESTS=1 - @$(MAKE) -C ../../services/sync/locales AB_CD=$* XPI_NAME=locale-$* BOTH_MANIFESTS=1 + @$(MAKE) -C ../../toolkit/locales libs-$* + @$(MAKE) -C ../../services/sync/locales 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 ../../intl/locales AB_CD=$* XPI_NAME=locale-$* BOTH_MANIFESTS=1 - @$(MAKE) libs AB_CD=$* XPI_NAME=locale-$* PREF_DIR=$(PREF_DIR) BOTH_MANIFESTS=1 - @$(MAKE) -C $(DEPTH)/$(MOZ_BRANDING_DIRECTORY)/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-$* + @$(MAKE) libs AB_CD=$* XPI_NAME=locale-$* PREF_DIR=$(PREF_DIR) + @$(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: $(call ESCAPE_WILDCARD,$(WIN32_INSTALLER_IN)) $(SUBMAKEFILES) libs-$(AB_CD) diff -r 36ec036ad04d -r 9d39369e1b4c mozilla-gstreamer-760140.patch --- a/mozilla-gstreamer-760140.patch Fri Jan 11 15:58:38 2013 +0100 +++ b/mozilla-gstreamer-760140.patch Wed Jan 16 23:09:49 2013 +0100 @@ -4,7 +4,7 @@ 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 -@@ -147,16 +147,19 @@ static NS_DEFINE_CID(kXTFServiceCID, NS_ +@@ -143,16 +143,19 @@ #include "xpcprivate.h" // nsXPConnect #include "nsScriptSecurityManager.h" #include "nsIChannelPolicy.h" @@ -14,7 +14,7 @@ #ifdef MOZ_MEDIA #include "nsHTMLMediaElement.h" +#ifdef MOZ_GSTREAMER -+#include "nsGStreamerDecoder.h" ++#include "GStreamerDecoder.h" +#endif #endif #include "nsDOMTouchEvent.h" @@ -27,7 +27,7 @@ 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 -@@ -263,17 +263,19 @@ public: +@@ -259,17 +259,19 @@ public: void UpdateMediaSize(nsIntSize size); // Returns the CanPlayStatus indicating if we can handle this @@ -48,30 +48,29 @@ // Returns true if we should handle this MIME type when it appears // as an or as a toplevel page. If, in practice, our support // 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 const char gWebMTypes[2][11]; static char const *const gWebMCodecs[4]; #endif #ifdef MOZ_GSTREAMER - 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); static const char gOmxTypes[5][16]; - static char const *const gH264Codecs[7]; #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 --- a/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; } } @@ -82,30 +81,26 @@ -#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", + char const *const nsHTMLMediaElement::gH264Codecs[9] = { + "avc1.42E01E", // H.264 Constrained Baseline Profile Level 3.0 + "avc1.42001E", // H.264 Baseline Profile Level 3.0 + "avc1.58A01E", // H.264 Extended Profile Level 3.0 + "avc1.4D401E", // H.264 Main Profile Level 3.0 + "avc1.64001E", // H.264 High Profile Level 3.0 + "avc1.64001F", // H.264 High Profile Level 3.1 + "mp4v.20.3", // 3GPP + "mp4a.40.2", // AAC-LC nullptr }; - #endif - - #ifdef MOZ_GSTREAMER +-#endif +- +-#ifdef MOZ_GSTREAMER -const char nsHTMLMediaElement::gH264Types[3][16] = { - "video/mp4", - "video/3gpp", - "video/quicktime", -}; - - bool - nsHTMLMediaElement::IsGStreamerEnabled() - { - return Preferences::GetBool("media.gstreamer.enabled"); - } -- -bool -nsHTMLMediaElement::IsH264Type(const nsACString& aType) -{ @@ -116,22 +111,26 @@ - } - return false; -} - #endif - - #ifdef MOZ_WIDGET_GONK +-#endif +- +-#ifdef MOZ_WIDGET_GONK ++ const char nsHTMLMediaElement::gOmxTypes[5][16] = { "audio/mpeg", "audio/mp4", "video/mp4", "video/3gpp", -@@ -2257,18 +2240,22 @@ nsHTMLMediaElement::IsDASHMPDType(const + "video/quicktime", + }; + +@@ -2319,18 +2298,22 @@ nsHTMLMediaElement::IsDASHMPDType(const return false; } #endif /* static */ - nsHTMLMediaElement::CanPlayStatus + nsHTMLMediaElement::CanPlayStatus nsHTMLMediaElement::CanHandleMediaType(const char* aMIMEType, - char const *const ** aCodecList) + const char *aCodecs, @@ -148,7 +147,7 @@ #endif #ifdef MOZ_OGG if (IsOggType(nsDependentCString(aMIMEType))) { -@@ -2292,20 +2279,22 @@ nsHTMLMediaElement::CanHandleMediaType(c +@@ -2354,20 +2337,22 @@ nsHTMLMediaElement::CanHandleMediaType(c if (IsDASHMPDType(nsDependentCString(aMIMEType))) { // DASH manifest uses WebM codecs only. *aCodecList = gWebMCodecs; @@ -165,7 +164,7 @@ + *aCheckCodecList = false; + if (aCodecList) + *aCodecList = nullptr; -+ if (nsGStreamerDecoder::CanHandleMediaType(aMIMEType, aCodecs)) ++ if (GStreamerDecoder::CanHandleMediaType(aMIMEType, aCodecs)) + return CANPLAY_YES; #endif #ifdef MOZ_WIDGET_GONK @@ -175,7 +174,7 @@ } #endif #ifdef MOZ_MEDIA_PLUGINS -@@ -2326,17 +2315,17 @@ bool nsHTMLMediaElement::ShouldHandleMed +@@ -2388,17 +2373,17 @@ bool nsHTMLMediaElement::ShouldHandleMed if (IsOggType(nsDependentCString(aMIMEType))) return true; #endif @@ -185,7 +184,7 @@ #endif #ifdef MOZ_GSTREAMER - if (IsH264Type(nsDependentCString(aMIMEType))) -+ if (nsGStreamerDecoder::CanHandleMediaType(aMIMEType, nullptr)) ++ if (GStreamerDecoder::CanHandleMediaType(aMIMEType, nullptr)) return true; #endif #ifdef MOZ_WIDGET_GONK @@ -194,7 +193,7 @@ } #endif #ifdef MOZ_MEDIA_PLUGINS -@@ -2367,26 +2356,31 @@ nsHTMLMediaElement::GetCanPlay(const nsA +@@ -2429,26 +2414,31 @@ nsHTMLMediaElement::GetCanPlay(const nsA { nsContentTypeParser parser(aType); nsAutoString mimeType; @@ -231,20 +230,20 @@ // of the 'codecs' parameter nsCharSeparatedTokenizer tokenizer(codecs, ','); bool expectMoreTokens = false; -@@ -2425,46 +2419,41 @@ nsHTMLMediaElement::CanPlayType(const ns +@@ -2487,43 +2477,39 @@ nsHTMLMediaElement::CanPlayType(const ns } #ifdef MOZ_GSTREAMER bool nsHTMLMediaElement::IsGStreamerSupportedType(const nsACString& aMimeType) { - if (!IsGStreamerEnabled()) + if (!MediaDecoder::IsGStreamerEnabled()) return false; - if (IsH264Type(aMimeType)) + + const char *type; + NS_CStringGetData(aMimeType, &type, nullptr); -+ if (nsGStreamerDecoder::CanHandleMediaType(type, nullptr)) ++ if (GStreamerDecoder::CanHandleMediaType(type, nullptr)) return true; - if (!Preferences::GetBool("media.prefer-gstreamer", false)) - return false; @@ -261,81 +260,115 @@ } #endif - already_AddRefed + already_AddRefed 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 decoder = new nsGStreamerDecoder(); +- nsRefPtr decoder = new GStreamerDecoder(); - if (decoder->Init(this)) { - return decoder.forget(); + if (!Preferences::GetBool("media.prefer-gstreamer", false)) { + if (IsGStreamerSupportedType(aType)) { -+ nsRefPtr decoder = new nsGStreamerDecoder(); ++ nsRefPtr decoder = new GStreamerDecoder(); + if (decoder->Init(this)) { + return decoder.forget(); + } } } #endif -- + #ifdef MOZ_RAW if (IsRawType(aType)) { - nsRefPtr decoder = new nsRawDecoder(); + nsRefPtr decoder = new RawDecoder(); if (decoder->Init(this)) { - return decoder.forget(); - } - } - #endif -@@ -2503,25 +2492,33 @@ nsHTMLMediaElement::CreateDecoder(const - #ifdef MOZ_WEBM - if (IsWebMType(aType)) { - nsRefPtr decoder = new nsWebMDecoder(); +@@ -2576,16 +2562,26 @@ nsHTMLMediaElement::CreateDecoder(const + if (IsDASHMPDType(aType)) { + nsRefPtr decoder = new DASHDecoder(); if (decoder->Init(this)) { return decoder.forget(); } } #endif -- - #ifdef MOZ_DASH - if (IsDASHMPDType(aType)) { - nsRefPtr decoder = new nsDASHDecoder(); - if (decoder->Init(this)) { - return decoder.forget(); - } - } - #endif + +#ifdef MOZ_GSTREAMER + // use GStreamer as fallback if not preferred + if (IsGStreamerSupportedType(aType)) { -+ nsRefPtr decoder = new nsGStreamerDecoder(); ++ nsRefPtr decoder = new GStreamerDecoder(); + if (decoder->Init(this)) { + return decoder.forget(); + } + } +#endif - ++ return nullptr; } - nsresult nsHTMLMediaElement::InitializeDecoderAsClone(nsMediaDecoder* aOriginal) + nsresult nsHTMLMediaElement::InitializeDecoderAsClone(MediaDecoder* aOriginal) { NS_ASSERTION(mLoadingSrc, "mLoadingSrc must already be set"); 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 --- a/content/media/gstreamer/Makefile.in +++ b/content/media/gstreamer/Makefile.in @@ -17,16 +17,17 @@ LIBXUL_LIBRARY = 1 EXPORTS += \ - nsGStreamerDecoder.h \ + GStreamerDecoder.h \ $(NULL) CPPSRCS = \ - nsGStreamerReader.cpp \ - nsGStreamerDecoder.cpp \ + GStreamerReader.cpp \ + GStreamerDecoder.cpp \ + nsGStreamerFormatHelper.cpp \ $(NULL) @@ -345,45 +378,6 @@ CFLAGS += $(GSTREAMER_CFLAGS) CXXFLAGS += $(GSTREAMER_CFLAGS) -diff --git a/content/media/gstreamer/nsGStreamerDecoder.cpp b/content/media/gstreamer/nsGStreamerDecoder.cpp ---- a/content/media/gstreamer/nsGStreamerDecoder.cpp -+++ b/content/media/gstreamer/nsGStreamerDecoder.cpp -@@ -2,13 +2,19 @@ - /* vim:set ts=2 sw=2 sts=2 et cindent: */ - /* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this file, - * You can obtain one at http://mozilla.org/MPL/2.0/. */ - - #include "nsBuiltinDecoderStateMachine.h" - #include "nsGStreamerReader.h" - #include "nsGStreamerDecoder.h" -+#include "nsGStreamerFormatHelper.h" - - nsDecoderStateMachine* nsGStreamerDecoder::CreateStateMachine() - { - return new nsBuiltinDecoderStateMachine(this, new nsGStreamerReader(this)); - } -+ -+bool nsGStreamerDecoder::CanHandleMediaType(const char* aMIMEType, -+ const char* aCodecs) { -+ return nsGStreamerFormatHelper::Instance()->CanHandleMediaType(aMIMEType, aCodecs); -+} -diff --git a/content/media/gstreamer/nsGStreamerDecoder.h b/content/media/gstreamer/nsGStreamerDecoder.h ---- a/content/media/gstreamer/nsGStreamerDecoder.h -+++ b/content/media/gstreamer/nsGStreamerDecoder.h -@@ -9,11 +9,12 @@ - - #include "nsBuiltinDecoder.h" - - class nsGStreamerDecoder : public nsBuiltinDecoder - { - public: - virtual nsMediaDecoder* Clone() { return new nsGStreamerDecoder(); } - virtual nsDecoderStateMachine* CreateStateMachine(); -+ static bool CanHandleMediaType(const char* aMIMEType, const char* aCodecs); - }; - - #endif diff --git a/content/media/gstreamer/nsGStreamerFormatHelper.cpp b/content/media/gstreamer/nsGStreamerFormatHelper.cpp new file mode 100644 --- /dev/null @@ -402,18 +396,18 @@ +#define ENTRY_FORMAT(entry) entry[0] +#define ENTRY_CAPS(entry) entry[1] + -+nsGStreamerFormatHelper* nsGStreamerFormatHelper::gInstance = nullptr; ++GStreamerFormatHelper* GStreamerFormatHelper::gInstance = nullptr; + -+nsGStreamerFormatHelper *nsGStreamerFormatHelper::Instance() { ++GStreamerFormatHelper *GStreamerFormatHelper::Instance() { + if (!gInstance) { + gst_init(nullptr, nullptr); -+ gInstance = new nsGStreamerFormatHelper(); ++ gInstance = new GStreamerFormatHelper(); + } + + return gInstance; +} + -+nsGStreamerFormatHelper::nsGStreamerFormatHelper() ++GStreamerFormatHelper::GStreamerFormatHelper() + : mFactories(nullptr), + mCookie(0) +{ @@ -436,12 +430,12 @@ + memcpy(mCodecs, codecs, sizeof(codecs)); +} + -+nsGStreamerFormatHelper::~nsGStreamerFormatHelper() { ++GStreamerFormatHelper::~GStreamerFormatHelper() { + if (mFactories) + g_list_free(mFactories); +} + -+bool nsGStreamerFormatHelper::CanHandleMediaType(const char* aMIMEType, ++bool GStreamerFormatHelper::CanHandleMediaType(const char* aMIMEType, + const char *aCodecs) { + GstCaps *caps = ConvertFormatsToCaps(aMIMEType, aCodecs); + if (!caps) { @@ -454,7 +448,7 @@ + return ret; +} + -+GstCaps *nsGStreamerFormatHelper::ConvertFormatsToCaps(const char *aMIMEType, ++GstCaps *GStreamerFormatHelper::ConvertFormatsToCaps(const char *aMIMEType, + const char *aCodecs) { + unsigned int i; + @@ -504,7 +498,7 @@ + return caps; +} + -+bool nsGStreamerFormatHelper::HaveElementsToProcessCaps(GstCaps *aCaps) { ++bool GStreamerFormatHelper::HaveElementsToProcessCaps(GstCaps *aCaps) { + + GList *factories = GetFactories(); + @@ -526,7 +520,7 @@ + return true; +} + -+GList * nsGStreamerFormatHelper::GetFactories() { ++GList * GStreamerFormatHelper::GetFactories() { + uint32_t cookie = gst_default_registry_get_feature_list_cookie (); + if (cookie != mCookie) { + g_list_free(mFactories); @@ -555,23 +549,23 @@ +#include +#include + -+class nsGStreamerFormatHelper { ++class GStreamerFormatHelper { + public: -+ static nsGStreamerFormatHelper *Instance(); -+ ~nsGStreamerFormatHelper(); ++ static GStreamerFormatHelper *Instance(); ++ ~GStreamerFormatHelper(); + + bool CanHandleMediaType(const char *aMIMEType, + const char *aCodecs); + + private: -+ nsGStreamerFormatHelper(); ++ GStreamerFormatHelper(); + GstCaps *ConvertFormatsToCaps(const char *aMIMEType, + const char *aCodecs); + char * const *CodecListFromCaps(GstCaps *aCaps); + bool HaveElementsToProcessCaps(GstCaps *aCaps); + GList *GetFactories(); + -+ static nsGStreamerFormatHelper *gInstance; ++ static GStreamerFormatHelper *gInstance; + + const char *mContainers[3][2]; + const char *mCodecs[7][2]; diff -r 36ec036ad04d -r 9d39369e1b4c mozilla-gstreamer-803287.patch --- a/mozilla-gstreamer-803287.patch Fri Jan 11 15:58:38 2013 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,293 +0,0 @@ -# HG changeset patch -# Parent 09328afa274e7cf6354f446ae37735218b796e7f -# User Wolfgang Rosenauer -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 - 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 decoder = new nsGStreamerDecoder(); -+ if (decoder->Init(this)) { -+ return decoder.forget(); -+ } -+ } -+#endif -+ - #ifdef MOZ_RAW - if (IsRawType(aType)) { - nsRefPtr decoder = new nsRawDecoder(); - if (decoder->Init(this)) { - return decoder.forget(); - } - } - #endif - #ifdef MOZ_OGG - if (IsOggType(aType)) { --#ifdef MOZ_GSTREAMER -- nsRefPtr decoder = new nsGStreamerDecoder(); --#else - nsRefPtr decoder = new nsOggDecoder(); --#endif - if (decoder->Init(this)) { - return decoder.forget(); - } - } - #endif - #ifdef MOZ_WAVE - if (IsWaveType(aType)) { - nsRefPtr decoder = new nsWaveDecoder(); -@@ -2473,44 +2497,32 @@ nsHTMLMediaElement::CreateDecoder(const - nsRefPtr decoder = new nsMediaPluginDecoder(aType); - if (decoder->Init(this)) { - return decoder.forget(); - } - } - #endif - #ifdef MOZ_WEBM - if (IsWebMType(aType)) { --#ifdef MOZ_GSTREAMER -- nsRefPtr decoder = new nsGStreamerDecoder(); --#else - nsRefPtr decoder = new nsWebMDecoder(); --#endif - if (decoder->Init(this)) { - return decoder.forget(); - } - } - #endif - - #ifdef MOZ_DASH - if (IsDASHMPDType(aType)) { - nsRefPtr decoder = new nsDASHDecoder(); - if (decoder->Init(this)) { - return decoder.forget(); - } - } - #endif - --#ifdef MOZ_GSTREAMER -- if (IsH264Type(aType)) { -- nsRefPtr 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); diff -r 36ec036ad04d -r 9d39369e1b4c mozilla-kde.patch --- a/mozilla-kde.patch Fri Jan 11 15:58:38 2013 +0100 +++ b/mozilla-kde.patch Wed Jan 16 23:09:49 2013 +0100 @@ -143,7 +143,7 @@ diff --git a/toolkit/components/downloads/Makefile.in b/toolkit/components/downloads/Makefile.in --- a/toolkit/components/downloads/Makefile.in +++ b/toolkit/components/downloads/Makefile.in -@@ -41,9 +41,12 @@ EXTRA_COMPONENTS = \ +@@ -42,9 +42,12 @@ EXTRA_COMPONENTS = \ nsDownloadManagerUI.manifest \ $(NULL) endif @@ -159,7 +159,7 @@ diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/components/downloads/nsDownloadManager.cpp --- a/toolkit/components/downloads/nsDownloadManager.cpp +++ b/toolkit/components/downloads/nsDownloadManager.cpp -@@ -36,16 +36,20 @@ +@@ -41,16 +41,20 @@ #ifdef XP_WIN #include @@ -180,7 +180,7 @@ #include "AndroidBridge.h" #endif -@@ -2253,16 +2257,25 @@ nsDownload::SetState(DownloadState aStat +@@ -2740,16 +2744,25 @@ nsDownload::SetState(DownloadState aStat nsCOMPtr pref(do_GetService(NS_PREFSERVICE_CONTRACTID)); // Master pref to control this function. @@ -206,7 +206,7 @@ int64_t goat = PR_Now() - mStartTime; 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 // retention policy, there's no reason to make the text clickable // because if it is, they'll click open the download manager and @@ -231,7 +231,7 @@ diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn --- a/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/bindings/autocomplete.xml (widgets/autocomplete.xml) content/global/bindings/browser.xml (widgets/browser.xml) @@ -3052,7 +3052,7 @@ diff --git a/widget/gtk2/nsFilePicker.cpp b/widget/gtk2/nsFilePicker.cpp --- a/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 -*- */ /* 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 @@ -3070,14 +3070,12 @@ #include "nsIStringBundle.h" #include "nsArrayEnumerator.h" -@@ -19,16 +20,17 @@ + #include "nsMemory.h" + #include "nsEnumeratorUtils.h" #include "nsNetUtil.h" #include "nsReadableUtils.h" #include "mozcontainer.h" - #include "prmem.h" - #include "prlink.h" - #include "nsFilePicker.h" +#include "nsKDEUtils.h" @@ -3088,7 +3086,7 @@ using namespace mozilla; #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); } @@ -3109,7 +3107,7 @@ mFilters.AppendElement(filter); mFilterNames.AppendElement(name); -@@ -388,16 +392,32 @@ nsFilePicker::Show(int16_t *aReturn) +@@ -360,16 +364,32 @@ nsFilePicker::Show(int16_t *aReturn) NS_IMETHODIMP nsFilePicker::Open(nsIFilePickerShownCallback *aCallback) @@ -3137,12 +3135,12 @@ nsXPIDLCString title; 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); const gchar *accept_button = (action == GTK_FILE_CHOOSER_ACTION_SAVE) - ? GTK_STOCK_SAVE : GTK_STOCK_OPEN; -@@ -588,8 +608,235 @@ nsFilePicker::Done(GtkWidget* file_choos +@@ -561,8 +581,235 @@ nsFilePicker::Done(GtkWidget* file_choos if (mCallback) { mCallback->Done(result); mCallback = nullptr; diff -r 36ec036ad04d -r 9d39369e1b4c mozilla-webrtc.patch --- a/mozilla-webrtc.patch Fri Jan 11 15:58:38 2013 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,103 +0,0 @@ -# HG changeset patch -# Parent 0b3f9d97af70d01863519daf4f57f8918b4bc17c -# User Wolfgang Rosenauer -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"); diff -r 36ec036ad04d -r 9d39369e1b4c series --- a/series Fri Jan 11 15:58:38 2013 +0100 +++ b/series Wed Jan 16 23:09:49 2013 +0100 @@ -14,11 +14,9 @@ mozilla-repo.patch mozilla-sle11.patch mozilla-arm-disable-edsp.patch -mozilla-gstreamer-803287.patch mozilla-gstreamer-760140.patch mozilla-ppc.patch mozilla-idldir.patch -mozilla-webrtc.patch mozilla-libproxy-compat.patch mozilla-backout-677092.patch #mozilla-disable-neon-option.patch