Hello community, here is the log from the commit of package seamonkey for openSUSE:Factory checked in at 2012-10-11 11:27:01 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/seamonkey (Old) and /work/SRC/openSUSE:Factory/.seamonkey.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "seamonkey", Maintainer is "gnome-maintain...@suse.de" Changes: -------- --- /work/SRC/openSUSE:Factory/seamonkey/seamonkey.changes 2012-09-13 00:07:05.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.seamonkey.new/seamonkey.changes 2012-10-11 11:30:45.000000000 +0200 @@ -1,0 +2,37 @@ +Mon Oct 8 20:32:50 UTC 2012 - w...@rosenauer.org + +- update to SeaMonkey 2.13 (bnc#783533) + * MFSA 2012-74/CVE-2012-3982/CVE-2012-3983 + Miscellaneous memory safety hazards + * MFSA 2012-75/CVE-2012-3984 (bmo#575294) + select element persistance allows for attacks + * MFSA 2012-76/CVE-2012-3985 (bmo#655649) + Continued access to initial origin after setting document.domain + * MFSA 2012-77/CVE-2012-3986 (bmo#775868) + Some DOMWindowUtils methods bypass security checks + * MFSA 2012-79/CVE-2012-3988 (bmo#725770) + DOS and crash with full screen and history navigation + * MFSA 2012-80/CVE-2012-3989 (bmo#783867) + Crash with invalid cast when using instanceof operator + * MFSA 2012-81/CVE-2012-3991 (bmo#783260) + GetProperty function can bypass security checks + * MFSA 2012-82/CVE-2012-3994 (bmo#765527) + top object and location property accessible by plugins + * MFSA 2012-83/CVE-2012-3993/CVE-2012-4184 (bmo#768101, bmo#780370) + Chrome Object Wrapper (COW) does not disallow acces to privileged + functions or properties + * MFSA 2012-84/CVE-2012-3992 (bmo#775009) + Spoofing and script injection through location.hash + * MFSA 2012-85/CVE-2012-3995/CVE-2012-4179/CVE-2012-4180/ + CVE-2012-4181/CVE-2012-4182/CVE-2012-4183 + Use-after-free, buffer overflow, and out of bounds read issues + found using Address Sanitizer + * MFSA 2012-86/CVE-2012-4185/CVE-2012-4186/CVE-2012-4187/ + CVE-2012-4188 + Heap memory corruption issues found using Address Sanitizer + * MFSA 2012-87/CVE-2012-3990 (bmo#787704) + Use-after-free in the IME State Manager +- requires NSPR 4.9.2 +- improve GStreamer integration (bmo#760140) + +------------------------------------------------------------------- Old: ---- l10n-2.12.1.tar.bz2 seamonkey-2.12.1-source.tar.bz2 New: ---- l10n-2.13.tar.bz2 mozilla-gstreamer-760140.patch seamonkey-2.13-source.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ seamonkey.spec ++++++ --- /var/tmp/diff_new_pack.HxVzFX/_old 2012-10-11 11:30:53.000000000 +0200 +++ /var/tmp/diff_new_pack.HxVzFX/_new 2012-10-11 11:30:53.000000000 +0200 @@ -48,9 +48,9 @@ %endif Provides: web_browser Provides: browser(npapi) -Version: 2.12.1 +Version: 2.13 Release: 0 -%define releasedate 2012090400 +%define releasedate 2012100800 Summary: The successor of the Mozilla Application Suite License: MPL-2.0 Group: Productivity/Networking/Web/Browsers @@ -75,6 +75,7 @@ Patch7: mozilla-ntlm-full-path.patch Patch8: mozilla-ua-locale.patch Patch9: mozilla-ppc.patch +Patch10: mozilla-gstreamer-760140.patch Patch20: seamonkey-ua-locale.patch Patch21: seamonkey-shared-nss-db.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -153,7 +154,7 @@ %package translations-other Summary: Extra translations for SeaMonkey Group: System/Localization -Provides: locale(%{name}:be;lt;sk;tr;uk) +Provides: locale(%{name}:be;gl;lt;sk;tr;uk) PreReq: %{name} = %{version} %description translations-other @@ -176,6 +177,7 @@ %patch7 -p1 %patch8 -p1 %patch9 -p1 +%patch10 -p1 popd # comm patches %patch20 -p1 ++++++ compare-locales.tar.bz2 ++++++ ++++++ create-tar.sh ++++++ --- /var/tmp/diff_new_pack.HxVzFX/_old 2012-10-11 11:30:53.000000000 +0200 +++ /var/tmp/diff_new_pack.HxVzFX/_new 2012-10-11 11:30:53.000000000 +0200 @@ -2,8 +2,8 @@ CHANNEL="release" BRANCH="releases/comm-$CHANNEL" -RELEASE_TAG="SEAMONKEY_2_12_1_RELEASE" -VERSION="2.12.1" +RELEASE_TAG="SEAMONKEY_2_13_RELEASE" +VERSION="2.13" echo "cloning $BRANCH..." hg clone http://hg.mozilla.org/$BRANCH seamonkey ++++++ l10n-2.12.1.tar.bz2 -> l10n-2.13.tar.bz2 ++++++ /work/SRC/openSUSE:Factory/seamonkey/l10n-2.12.1.tar.bz2 /work/SRC/openSUSE:Factory/.seamonkey.new/l10n-2.13.tar.bz2 differ: char 11, line 1 ++++++ mozilla-gstreamer-760140.patch ++++++ From: Alessandro Decina <alessandr...@gmail.com> Bug 760140 - Query the GstRegistry for the required demuxers/decoders from canPlayType diff --git a/content/base/src/nsContentUtils.cpp b/content/base/src/nsContentUtils.cpp --- a/content/base/src/nsContentUtils.cpp +++ b/content/base/src/nsContentUtils.cpp @@ -137,16 +137,19 @@ static NS_DEFINE_CID(kXTFServiceCID, NS_ #include "xpcprivate.h" // nsXPConnect #include "nsScriptSecurityManager.h" #include "nsIChannelPolicy.h" #include "nsChannelPolicy.h" #include "nsIContentSecurityPolicy.h" #include "nsContentDLF.h" #ifdef MOZ_MEDIA #include "nsHTMLMediaElement.h" +#ifdef MOZ_GSTREAMER +#include "nsGStreamerDecoder.h" +#endif #endif #include "nsDOMTouchEvent.h" #include "nsIContentViewer.h" #include "nsIObjectLoadingContent.h" #include "nsCCUncollectableMarker.h" #include "mozilla/Base64.h" #include "mozilla/Preferences.h" #include "nsDOMMutationObserver.h" @@ -6511,26 +6514,23 @@ nsContentUtils::FindInternalContentViewe } return docFactory.forget(); } } } #endif #ifdef MOZ_GSTREAMER - if (nsHTMLMediaElement::IsH264Enabled()) { - for (unsigned int i = 0; i < ArrayLength(nsHTMLMediaElement::gH264Types); ++i) { - const char* type = nsHTMLMediaElement::gH264Types[i]; - if (!strcmp(aType, type)) { - docFactory = do_GetService("@mozilla.org/content/document-loader-factory;1"); - if (docFactory && aLoaderType) { - *aLoaderType = TYPE_CONTENT; - } - return docFactory.forget(); + if (nsHTMLMediaElement::IsGStreamerEnabled()) { + if (nsGStreamerDecoder::CanHandleMediaType(aType, NULL)) { + docFactory = do_GetService("@mozilla.org/content/document-loader-factory;1"); + if (docFactory && aLoaderType) { + *aLoaderType = TYPE_CONTENT; } + return docFactory.forget(); } } #endif #endif // MOZ_MEDIA return NULL; } diff --git a/content/html/content/public/nsHTMLMediaElement.h b/content/html/content/public/nsHTMLMediaElement.h --- a/content/html/content/public/nsHTMLMediaElement.h +++ b/content/html/content/public/nsHTMLMediaElement.h @@ -250,17 +250,19 @@ public: void UpdateMediaSize(nsIntSize size); // Returns the CanPlayStatus indicating if we can handle this // MIME type. The MIME type should not include the codecs parameter. // If it returns anything other than CANPLAY_NO then it also // returns a null-terminated list of supported codecs // in *aSupportedCodecs. This list should not be freed, it is static data. static CanPlayStatus CanHandleMediaType(const char* aMIMEType, - char const *const ** aSupportedCodecs); + const char* aCodecs, + char const *const ** aSupportedCodecs, + bool* aCheckSupportedCodecs); // Returns the CanPlayStatus indicating if we can handle the // full MIME type including the optional codecs parameter. static CanPlayStatus GetCanPlay(const nsAString& aType); // Returns true if we should handle this MIME type when it appears // as an <object> or as a toplevel page. If, in practice, our support // for the type is more limited than appears in the wild, we should return @@ -290,20 +292,17 @@ public: #ifdef MOZ_WEBM static bool IsWebMEnabled(); static bool IsWebMType(const nsACString& aType); static const char gWebMTypes[2][17]; static char const *const gWebMCodecs[4]; #endif #ifdef MOZ_GSTREAMER - static bool IsH264Enabled(); - static bool IsH264Type(const nsACString& aType); - static const char gH264Types[3][17]; - static char const *const gH264Codecs[7]; + static bool IsGStreamerEnabled(); #endif #ifdef MOZ_MEDIA_PLUGINS static bool IsMediaPluginsEnabled(); static bool IsMediaPluginsType(const nsACString& aType); #endif /** diff --git a/content/html/content/src/nsHTMLMediaElement.cpp b/content/html/content/src/nsHTMLMediaElement.cpp --- a/content/html/content/src/nsHTMLMediaElement.cpp +++ b/content/html/content/src/nsHTMLMediaElement.cpp @@ -2070,68 +2070,40 @@ nsHTMLMediaElement::IsWebMType(const nsA } } return false; } #endif #ifdef MOZ_GSTREAMER -const char nsHTMLMediaElement::gH264Types[3][17] = { - "video/mp4", - "video/3gpp", - "video/quicktime", -}; - -char const *const nsHTMLMediaElement::gH264Codecs[7] = { - "avc1.42E01E", - "avc1.42001E", - "avc1.58A01E", - "avc1.4D401E", - "avc1.64001E", - "mp4a.40.2", - nsnull -}; - bool -nsHTMLMediaElement::IsH264Enabled() +nsHTMLMediaElement::IsGStreamerEnabled() { - return Preferences::GetBool("media.h264.enabled"); -} - -bool -nsHTMLMediaElement::IsH264Type(const nsACString& aType) -{ - if (!IsH264Enabled()) { - return false; - } - - for (PRUint32 i = 0; i < ArrayLength(gH264Types); ++i) { - if (aType.EqualsASCII(gH264Types[i])) { - return true; - } - } - - return false; + return Preferences::GetBool("media.gstreamer.enabled"); } #endif #ifdef MOZ_MEDIA_PLUGINS bool nsHTMLMediaElement::IsMediaPluginsEnabled() { return Preferences::GetBool("media.plugins.enabled"); } #endif /* static */ nsHTMLMediaElement::CanPlayStatus nsHTMLMediaElement::CanHandleMediaType(const char* aMIMEType, - char const *const ** aCodecList) + const char *aCodecs, + char const *const ** aCodecList, + bool* aCheckCodecList) { + if (aCheckCodecList) + *aCheckCodecList = true; #ifdef MOZ_RAW if (IsRawType(nsDependentCString(aMIMEType))) { *aCodecList = gRawCodecs; return CANPLAY_MAYBE; } #endif #ifdef MOZ_OGG if (IsOggType(nsDependentCString(aMIMEType))) { @@ -2148,20 +2120,22 @@ nsHTMLMediaElement::CanHandleMediaType(c #ifdef MOZ_WEBM if (IsWebMType(nsDependentCString(aMIMEType))) { *aCodecList = gWebMCodecs; return CANPLAY_YES; } #endif #ifdef MOZ_GSTREAMER - if (IsH264Type(nsDependentCString(aMIMEType))) { - *aCodecList = gH264Codecs; - return CANPLAY_MAYBE; - } + if (aCheckCodecList) + *aCheckCodecList = false; + if (aCodecList) + *aCodecList = NULL; + if (nsGStreamerDecoder::CanHandleMediaType(aMIMEType, aCodecs)) + return CANPLAY_YES; #endif #ifdef MOZ_MEDIA_PLUGINS if (GetMediaPluginHost()->FindDecoder(nsDependentCString(aMIMEType), aCodecList)) return CANPLAY_MAYBE; #endif return CANPLAY_NO; } @@ -2176,17 +2150,17 @@ bool nsHTMLMediaElement::ShouldHandleMed if (IsOggType(nsDependentCString(aMIMEType))) return true; #endif #ifdef MOZ_WEBM if (IsWebMType(nsDependentCString(aMIMEType))) return true; #endif #ifdef MOZ_GSTREAMER - if (IsH264Type(nsDependentCString(aMIMEType))) + if (nsGStreamerDecoder::CanHandleMediaType(aMIMEType, NULL)) return true; #endif #ifdef MOZ_MEDIA_PLUGINS if (GetMediaPluginHost()->FindDecoder(nsDependentCString(aMIMEType), NULL)) return true; #endif // We should not return true for Wave types, since there are some // Wave codecs actually in use in the wild that we don't support, and @@ -2212,26 +2186,31 @@ nsHTMLMediaElement::GetCanPlay(const nsA { nsContentTypeParser parser(aType); nsAutoString mimeType; nsresult rv = parser.GetType(mimeType); if (NS_FAILED(rv)) return CANPLAY_NO; NS_ConvertUTF16toUTF8 mimeTypeUTF8(mimeType); + nsAutoString codecs; + rv = parser.GetParameter("codecs", codecs); + NS_ConvertUTF16toUTF8 codecsUTF8(codecs); char const *const * supportedCodecs; + bool checkSupportedCodecs = true; CanPlayStatus status = CanHandleMediaType(mimeTypeUTF8.get(), - &supportedCodecs); + codecsUTF8.get(), + &supportedCodecs, + &checkSupportedCodecs); if (status == CANPLAY_NO) return CANPLAY_NO; - nsAutoString codecs; - rv = parser.GetParameter("codecs", codecs); - if (NS_FAILED(rv)) { - // Parameter not found or whatever + if (codecs.IsEmpty() || !checkSupportedCodecs) { + /* no codecs to check for or they were already checked in CanHandleMediaType + * above */ return status; } CanPlayStatus result = CANPLAY_YES; // See http://www.rfc-editor.org/rfc/rfc4281.txt for the description // of the 'codecs' parameter nsCharSeparatedTokenizer tokenizer(codecs, ','); bool expectMoreTokens = false; @@ -2309,17 +2288,19 @@ nsHTMLMediaElement::CreateDecoder(const nsRefPtr<nsWebMDecoder> decoder = new nsWebMDecoder(); if (decoder->Init(this)) { return decoder.forget(); } } #endif #ifdef MOZ_GSTREAMER - if (IsH264Type(aType)) { + const char *type; + NS_CStringGetData(aType, &type, NULL); + if (nsGStreamerDecoder::CanHandleMediaType(type, NULL)) { nsRefPtr<nsGStreamerDecoder> decoder = new nsGStreamerDecoder(); if (decoder->Init(this)) { return decoder.forget(); } } #endif return nsnull; } diff --git a/content/media/gstreamer/Makefile.in b/content/media/gstreamer/Makefile.in --- a/content/media/gstreamer/Makefile.in +++ b/content/media/gstreamer/Makefile.in @@ -16,16 +16,17 @@ LIBXUL_LIBRARY = 1 EXPORTS += \ nsGStreamerDecoder.h \ $(NULL) CPPSRCS = \ nsGStreamerReader.cpp \ nsGStreamerDecoder.cpp \ + nsGStreamerFormatHelper.cpp \ $(NULL) FORCE_STATIC_LIB = 1 include $(topsrcdir)/config/rules.mk CFLAGS += $(GSTREAMER_CFLAGS) CXXFLAGS += $(GSTREAMER_CFLAGS) diff --git a/content/media/gstreamer/nsGStreamerDecoder.cpp b/content/media/gstreamer/nsGStreamerDecoder.cpp --- a/content/media/gstreamer/nsGStreamerDecoder.cpp +++ b/content/media/gstreamer/nsGStreamerDecoder.cpp @@ -2,13 +2,19 @@ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "nsBuiltinDecoderStateMachine.h" #include "nsGStreamerReader.h" #include "nsGStreamerDecoder.h" +#include "nsGStreamerFormatHelper.h" nsDecoderStateMachine* nsGStreamerDecoder::CreateStateMachine() { return new nsBuiltinDecoderStateMachine(this, new nsGStreamerReader(this)); } + +bool nsGStreamerDecoder::CanHandleMediaType(const char* aMIMEType, + const char* aCodecs) { + return nsGStreamerFormatHelper::Instance()->CanHandleMediaType(aMIMEType, aCodecs); +} diff --git a/content/media/gstreamer/nsGStreamerDecoder.h b/content/media/gstreamer/nsGStreamerDecoder.h --- a/content/media/gstreamer/nsGStreamerDecoder.h +++ b/content/media/gstreamer/nsGStreamerDecoder.h @@ -9,11 +9,12 @@ #include "nsBuiltinDecoder.h" class nsGStreamerDecoder : public nsBuiltinDecoder { public: virtual nsMediaDecoder* Clone() { return new nsGStreamerDecoder(); } virtual nsDecoderStateMachine* CreateStateMachine(); + static bool CanHandleMediaType(const char* aMIMEType, const char* aCodecs); }; #endif diff --git a/content/media/gstreamer/nsGStreamerFormatHelper.cpp b/content/media/gstreamer/nsGStreamerFormatHelper.cpp new file mode 100644 --- /dev/null +++ b/content/media/gstreamer/nsGStreamerFormatHelper.cpp @@ -0,0 +1,149 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim:set ts=2 sw=2 sts=2 et cindent: */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "nsGStreamerFormatHelper.h" +#include "nsCharSeparatedTokenizer.h" +#include "nsXPCOMStrings.h" + +#define ENTRY_FORMAT(entry) entry[0] +#define ENTRY_CAPS(entry) entry[1] + +nsGStreamerFormatHelper* nsGStreamerFormatHelper::gInstance = NULL; + +nsGStreamerFormatHelper *nsGStreamerFormatHelper::Instance() { + if (!gInstance) { + gst_init(NULL, NULL); + gInstance = new nsGStreamerFormatHelper(); + } + + return gInstance; +} + +nsGStreamerFormatHelper::nsGStreamerFormatHelper() + : mFactories(NULL), + mCookie(0) +{ + const char *containers[3][2] = { + {"video/mp4", "video/quicktime"}, + {"audio/mp4", "audio/mpeg, mpegversion=(int)4"}, + {"audio/mpeg", "audio/mpeg, mpegversion=(int)1"}, + }; + memcpy(mContainers, containers, sizeof(containers)); + + const char *codecs[7][2] = { + {"avc1.42E01E", "video/x-h264"}, + {"avc1.42001E", "video/x-h264"}, + {"avc1.58A01E", "video/x-h264"}, + {"avc1.4D401E", "video/x-h264"}, + {"avc1.64001E", "video/x-h264"}, + {"mp4a.40.2", "audio/mpeg, mpegversion=(int)4"}, + {"mp3", "audio/mpeg, mpegversion=(int)1"}, + }; + memcpy(mCodecs, codecs, sizeof(codecs)); +} + +nsGStreamerFormatHelper::~nsGStreamerFormatHelper() { + if (mFactories) + g_list_free(mFactories); +} + +bool nsGStreamerFormatHelper::CanHandleMediaType(const char* aMIMEType, + const char *aCodecs) { + GstCaps *caps = ConvertFormatsToCaps(aMIMEType, aCodecs); + if (!caps) { + return false; + } + + bool ret = HaveElementsToProcessCaps(caps); + gst_caps_unref(caps); + + return ret; +} + +GstCaps *nsGStreamerFormatHelper::ConvertFormatsToCaps(const char *aMIMEType, + const char *aCodecs) { + unsigned int i; + + /* convert aMIMEType to gst container caps */ + const char *capsString = NULL; + for (i = 0; i < G_N_ELEMENTS(mContainers); i++) { + if (!strcmp(ENTRY_FORMAT(mContainers[i]), aMIMEType)) { + capsString = ENTRY_CAPS(mContainers[i]); + break; + } + } + + if (!capsString) { + /* we couldn't find any matching caps */ + return NULL; + } + + GstCaps *caps = gst_caps_from_string(capsString); + /* container only */ + if (!aCodecs) { + return caps; + } + + nsDependentCSubstring codecs(aCodecs, strlen(aCodecs)); + nsCCharSeparatedTokenizer tokenizer(codecs, ','); + while (tokenizer.hasMoreTokens()) { + const nsCSubstring& codec = tokenizer.nextToken(); + capsString = NULL; + + for (i = 0; i < G_N_ELEMENTS(mCodecs); i++) { + if (codec.Equals(ENTRY_FORMAT(mCodecs[i]))) { + capsString = ENTRY_CAPS(mCodecs[i]); + break; + } + } + + if (!capsString) { + gst_caps_unref(caps); + return NULL; + } + + GstCaps *tmp = gst_caps_from_string(capsString); + /* appends and frees tmp */ + gst_caps_append(caps, tmp); + } + + return caps; +} + +bool nsGStreamerFormatHelper::HaveElementsToProcessCaps(GstCaps *aCaps) { + + GList *factories = GetFactories(); + + GList *list; + /* here aCaps contains [containerCaps, [codecCaps1, [codecCaps2, ...]]] so process + * caps structures individually as we want one element for _each_ + * structure */ + for (unsigned int i = 0; i < gst_caps_get_size(aCaps); i++) { + GstStructure *s = gst_caps_get_structure(aCaps, i); + GstCaps *caps = gst_caps_new_full(gst_structure_copy(s), NULL); + list = gst_element_factory_list_filter (factories, caps, GST_PAD_SINK, FALSE); + gst_caps_unref(caps); + if (!list) { + return false; + } + g_list_free(list); + } + + return true; +} + +GList * nsGStreamerFormatHelper::GetFactories() { + uint32_t cookie = gst_default_registry_get_feature_list_cookie (); + if (cookie != mCookie) { + g_list_free(mFactories); + mFactories = gst_element_factory_list_get_elements + (GST_ELEMENT_FACTORY_TYPE_DEMUXER | GST_ELEMENT_FACTORY_TYPE_DECODER, + GST_RANK_MARGINAL); + mCookie = cookie; + } + + return mFactories; +} diff --git a/content/media/gstreamer/nsGStreamerFormatHelper.h b/content/media/gstreamer/nsGStreamerFormatHelper.h new file mode 100644 --- /dev/null +++ b/content/media/gstreamer/nsGStreamerFormatHelper.h @@ -0,0 +1,37 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim:set ts=2 sw=2 sts=2 et cindent: */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#if !defined(nsGStreamerFormatHelper_h_) +#define nsGStreamerFormatHelper_h_ + +#include <gst/gst.h> +#include <mozilla/Types.h> + +class nsGStreamerFormatHelper { + public: + static nsGStreamerFormatHelper *Instance(); + ~nsGStreamerFormatHelper(); + + bool CanHandleMediaType(const char *aMIMEType, + const char *aCodecs); + + private: + nsGStreamerFormatHelper(); + GstCaps *ConvertFormatsToCaps(const char *aMIMEType, + const char *aCodecs); + char * const *CodecListFromCaps(GstCaps *aCaps); + bool HaveElementsToProcessCaps(GstCaps *aCaps); + GList *GetFactories(); + + static nsGStreamerFormatHelper *gInstance; + + const char *mContainers[3][2]; + const char *mCodecs[7][2]; + GList *mFactories; + uint32_t mCookie; +}; + +#endif diff --git a/modules/libpref/src/init/all.js b/modules/libpref/src/init/all.js --- a/modules/libpref/src/init/all.js +++ b/modules/libpref/src/init/all.js @@ -159,17 +159,17 @@ pref("media.opus.enabled", true); #endif #ifdef MOZ_WAVE pref("media.wave.enabled", true); #endif #ifdef MOZ_WEBM pref("media.webm.enabled", true); #endif #ifdef MOZ_GSTREAMER -pref("media.h264.enabled", true); +pref("media.gstreamer.enabled", true); #endif // Whether to autostart a media element with an |autoplay| attribute pref("media.autoplay.enabled", true); // 0 = Off, 1 = Full, 2 = Tagged Images Only. // See eCMSMode in gfx/thebes/gfxPlatform.h ++++++ mozilla-gstreamer.patch ++++++ --- /var/tmp/diff_new_pack.HxVzFX/_old 2012-10-11 11:30:53.000000000 +0200 +++ /var/tmp/diff_new_pack.HxVzFX/_new 2012-10-11 11:30:53.000000000 +0200 @@ -1,14 +1,12 @@ # HG changeset patch -# Parent a9a49c20c491011f981b6c110aadfa6a01a1431e +# Parent e4b87e710b1a5f0bb7db058911bc163b4bf30227 # User Wolfgang Rosenauer <w...@rosenauer.org> -Bug 761030 - Crash with HTML 5 video with gstreamer enabled (TM: 16) - No Bug - use GStreamer _only_ for MP4 (not WebM/OGG) diff --git a/content/html/content/src/nsHTMLMediaElement.cpp b/content/html/content/src/nsHTMLMediaElement.cpp --- a/content/html/content/src/nsHTMLMediaElement.cpp +++ b/content/html/content/src/nsHTMLMediaElement.cpp -@@ -2278,21 +2278,17 @@ nsHTMLMediaElement::CreateDecoder(const +@@ -2277,21 +2277,17 @@ nsHTMLMediaElement::CreateDecoder(const nsRefPtr<nsRawDecoder> decoder = new nsRawDecoder(); if (decoder->Init(this)) { return decoder.forget(); @@ -30,7 +28,7 @@ #ifdef MOZ_WAVE if (IsWaveType(aType)) { nsRefPtr<nsWaveDecoder> decoder = new nsWaveDecoder(); -@@ -2306,21 +2302,17 @@ nsHTMLMediaElement::CreateDecoder(const +@@ -2305,21 +2301,17 @@ nsHTMLMediaElement::CreateDecoder(const nsRefPtr<nsMediaPluginDecoder> decoder = new nsMediaPluginDecoder(aType); if (decoder->Init(this)) { return decoder.forget(); @@ -52,25 +50,3 @@ #ifdef MOZ_GSTREAMER if (IsH264Type(aType)) { -diff --git a/content/media/gstreamer/nsGStreamerReader.cpp b/content/media/gstreamer/nsGStreamerReader.cpp ---- a/content/media/gstreamer/nsGStreamerReader.cpp -+++ b/content/media/gstreamer/nsGStreamerReader.cpp -@@ -447,16 +447,18 @@ bool nsGStreamerReader::DecodeVideoFrame - for(int i = 0; i < 3; i++) { - b.mPlanes[i].mData = data + gst_video_format_get_component_offset(format, i, - width, height); - b.mPlanes[i].mStride = gst_video_format_get_row_stride(format, i, width); - b.mPlanes[i].mHeight = gst_video_format_get_component_height(format, - i, height); - b.mPlanes[i].mWidth = gst_video_format_get_component_width(format, - i, width); -+ b.mPlanes[i].mOffset = 0; -+ b.mPlanes[i].mSkip = 0; - } - - bool isKeyframe = !GST_BUFFER_FLAG_IS_SET(buffer, - GST_BUFFER_FLAG_DELTA_UNIT); - /* XXX ? */ - PRInt64 offset = 0; - VideoData *video = VideoData::Create(mInfo, - mDecoder->GetImageContainer(), ++++++ mozilla-ntlm-full-path.patch ++++++ --- /var/tmp/diff_new_pack.HxVzFX/_old 2012-10-11 11:30:53.000000000 +0200 +++ /var/tmp/diff_new_pack.HxVzFX/_new 2012-10-11 11:30:53.000000000 +0200 @@ -1,12 +1,12 @@ # HG changeset patch # User Petr Cerny <pce...@novell.com> -# Parent a843037ea4cee813a68dd529e7a503d1e40b81e4 +# Parent 4f5fe2278cd5cff898ad762457312f60a7e82a67 Bug 634334 - call to the ntlm_auth helper fails diff --git a/extensions/auth/nsAuthSambaNTLM.cpp b/extensions/auth/nsAuthSambaNTLM.cpp --- a/extensions/auth/nsAuthSambaNTLM.cpp +++ b/extensions/auth/nsAuthSambaNTLM.cpp -@@ -200,17 +200,17 @@ static PRUint8* ExtractMessage(const nsA +@@ -168,17 +168,17 @@ static PRUint8* ExtractMessage(const nsA nsresult nsAuthSambaNTLM::SpawnNTLMAuthHelper() { @@ -14,14 +14,14 @@ if (!username) return NS_ERROR_FAILURE; - char* args[] = { + const char* const args[] = { - "ntlm_auth", + "/usr/bin/ntlm_auth", "--helper-protocol", "ntlmssp-client-1", "--use-cached-creds", - "--username", const_cast<char*>(username), + "--username", username, nsnull }; - bool isOK = SpawnIOChild(args, &mChildPID, &mFromChildFD, &mToChildFD); + bool isOK = SpawnIOChild(const_cast<char* const*>(args), &mChildPID, &mFromChildFD, &mToChildFD); if (!isOK) ++++++ mozilla-ppc.patch ++++++ --- /var/tmp/diff_new_pack.HxVzFX/_old 2012-10-11 11:30:53.000000000 +0200 +++ /var/tmp/diff_new_pack.HxVzFX/_new 2012-10-11 11:30:53.000000000 +0200 @@ -1,5 +1,5 @@ # HG changeset patch -# Parent 0f6722dd9d75458124795d22e9240887c9b4aeca +# Parent 58ae98c85e39def96a90cb21c90e871f41a03a71 # User Wolfgang Rosenauer <w...@rosenauer.org> Bug 746112 - RegExp hang on ppc64 in execute. Bug 750620 - Make double-conversion portable to exotic architectures. TM: mozilla15 @@ -67,9 +67,9 @@ parentheses.subpatternId = subpatternId; parentheses.isCopy = false; parentheses.isTerminal = false; -diff --git a/memory/jemalloc/jemalloc.c b/memory/jemalloc/jemalloc.c ---- a/memory/jemalloc/jemalloc.c -+++ b/memory/jemalloc/jemalloc.c +diff --git a/memory/mozjemalloc/jemalloc.c b/memory/mozjemalloc/jemalloc.c +--- a/memory/mozjemalloc/jemalloc.c ++++ b/memory/mozjemalloc/jemalloc.c @@ -1086,17 +1086,19 @@ struct arena_s { static unsigned ncpus; #endif ++++++ mozilla-shared-nss-db.patch ++++++ --- /var/tmp/diff_new_pack.HxVzFX/_old 2012-10-11 11:30:53.000000000 +0200 +++ /var/tmp/diff_new_pack.HxVzFX/_new 2012-10-11 11:30:53.000000000 +0200 @@ -7,7 +7,7 @@ diff --git a/config/autoconf.mk.in b/config/autoconf.mk.in --- a/config/autoconf.mk.in +++ b/config/autoconf.mk.in -@@ -573,16 +573,20 @@ MOZ_ENABLE_LIBNOTIFY = @MOZ_ENABLE_LIBNO +@@ -540,16 +540,20 @@ MOZ_ENABLE_LIBNOTIFY = @MOZ_ENABLE_LIBNO MOZ_ALSA_LIBS = @MOZ_ALSA_LIBS@ MOZ_ALSA_CFLAGS = @MOZ_ALSA_CFLAGS@ @@ -20,9 +20,9 @@ +NSSHELPER_CFLAGS = @NSSHELPER_CFLAGS@ +NSSHELPER_LIBS = @NSSHELPER_LIBS@ + - MOZ_NATIVE_MAKEDEPEND = @SYSTEM_MAKEDEPEND@ + MOZ_NATIVE_MAKEDEPEND = @MOZ_NATIVE_MAKEDEPEND@ - export CL_INCLUDES_PREFIX = @CL_INCLUDES_PREFIX@ + CL_INCLUDES_PREFIX = @CL_INCLUDES_PREFIX@ MOZ_AUTO_DEPS = @MOZ_AUTO_DEPS@ COMPILER_DEPEND = @COMPILER_DEPEND@ @@ -31,7 +31,7 @@ diff --git a/configure.in b/configure.in --- a/configure.in +++ b/configure.in -@@ -8270,16 +8270,31 @@ AC_SUBST(QCMS_LIBS) +@@ -8052,16 +8052,31 @@ AC_SUBST(QCMS_LIBS) dnl ======================================================== dnl HarfBuzz @@ -66,11 +66,11 @@ diff --git a/security/manager/ssl/src/Makefile.in b/security/manager/ssl/src/Makefile.in --- a/security/manager/ssl/src/Makefile.in +++ b/security/manager/ssl/src/Makefile.in -@@ -86,12 +86,14 @@ EXTRA_DEPS = $(NSS_DEP_LIBS) - DEFINES += \ - -DNSS_ENABLE_ECC \ - -DDLL_PREFIX=\"$(DLL_PREFIX)\" \ - -DDLL_SUFFIX=\"$(DLL_SUFFIX)\" \ +@@ -90,12 +90,14 @@ DEFINES += \ + $(NULL) + + EXPORTS += \ + nsNSSShutDown.h \ $(NULL) # Use local includes because they are inserted before INCLUDES @@ -107,7 +107,7 @@ #include "nsNetUtil.h" #include "nsAppDirectoryServiceDefs.h" #include "nsDirectoryService.h" -@@ -1738,18 +1745,34 @@ nsNSSComponent::InitializeNSS(bool showW +@@ -1740,18 +1747,34 @@ nsNSSComponent::InitializeNSS(bool showW ConfigureInternalPKCS11Token(); // The NSS_INIT_NOROOTINIT flag turns off the loading of the root certs @@ -147,7 +147,7 @@ diff --git a/toolkit/library/Makefile.in b/toolkit/library/Makefile.in --- a/toolkit/library/Makefile.in +++ b/toolkit/library/Makefile.in -@@ -446,17 +446,17 @@ EXTRA_DSO_LDOPTS += -INCREMENTAL:NO +@@ -441,17 +441,17 @@ EXTRA_DSO_LDOPTS += -INCREMENTAL:NO endif endif endif @@ -163,6 +163,6 @@ CXXFLAGS += $(TK_CFLAGS) OS_LIBS += \ -framework SystemConfiguration \ - -framework QuickTime \ + -framework QTKit \ -framework IOKit \ -F/System/Library/PrivateFrameworks -framework CoreUI \ ++++++ seamonkey-2.12.1-source.tar.bz2 -> seamonkey-2.13-source.tar.bz2 ++++++ /work/SRC/openSUSE:Factory/seamonkey/seamonkey-2.12.1-source.tar.bz2 /work/SRC/openSUSE:Factory/.seamonkey.new/seamonkey-2.13-source.tar.bz2 differ: char 11, line 1 -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org