Hello community, here is the log from the commit of package MozillaFirefox for openSUSE:Factory checked in at 2013-02-20 09:31:38 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/MozillaFirefox (Old) and /work/SRC/openSUSE:Factory/.MozillaFirefox.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "MozillaFirefox", Maintainer is "[email protected]" Changes: -------- --- /work/SRC/openSUSE:Factory/MozillaFirefox/MozillaFirefox.changes 2013-02-09 10:13:39.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.MozillaFirefox.new/MozillaFirefox.changes 2013-02-20 09:31:40.000000000 +0100 @@ -1,0 +2,27 @@ +Sat Feb 16 07:08:55 UTC 2013 - [email protected] + +- 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) + +------------------------------------------------------------------- Old: ---- firefox-18.0.2-source.tar.bz2 l10n-18.0.2.tar.bz2 mozilla-gstreamer-803287.patch mozilla-webrtc.patch New: ---- firefox-19.0-source.tar.bz2 firefox-712763.patch l10n-19.0.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ MozillaFirefox.spec ++++++ --- /var/tmp/diff_new_pack.7KvFD9/_old 2013-02-20 09:31:57.000000000 +0100 +++ /var/tmp/diff_new_pack.7KvFD9/_new 2013-02-20 09:31:57.000000000 +0100 @@ -2,7 +2,7 @@ # spec file for package MozillaFirefox # # 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 # remain the property of their copyright owners, unless otherwise agreed @@ -17,8 +17,8 @@ # -%define major 18 -%define mainver %major.0.2 +%define major 19 +%define mainver %major.0 %define update_channel release Name: MozillaFirefox @@ -54,7 +54,7 @@ %endif Version: %{mainver} Release: 0 -%define releasedate 2013020100 +%define releasedate 2013021500 Provides: firefox = %{mainver} Provides: firefox = %{version}-%{release} Provides: web_browser @@ -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-webrtc-ppc.patch # Firefox/browser @@ -108,6 +106,7 @@ Patch33: firefox-no-default-ualocale.patch Patch34: firefox-multilocale-chrome.patch Patch35: firefox-branded-icons.patch +Patch36: firefox-712763.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build Requires(post): coreutils shared-mime-info desktop-file-utils Requires(postun): shared-mime-info desktop-file-utils @@ -231,10 +230,8 @@ %endif #%patch11 -p1 %patch12 -p1 -%patch13 -p1 %patch14 -p1 %patch15 -p1 -%patch16 -p1 %patch17 -p1 %patch18 -p1 # @@ -248,6 +245,7 @@ %patch33 -p1 %patch34 -p1 %patch35 -p1 +%patch36 -p1 %build # no need to add build time to binaries ++++++ compare-locales.tar.bz2 ++++++ ++++++ create-tar.sh ++++++ --- /var/tmp/diff_new_pack.7KvFD9/_old 2013-02-20 09:31:57.000000000 +0100 +++ /var/tmp/diff_new_pack.7KvFD9/_new 2013-02-20 09:31:57.000000000 +0100 @@ -2,8 +2,8 @@ CHANNEL="release" BRANCH="releases/mozilla-$CHANNEL" -RELEASE_TAG="FIREFOX_18_0_2_RELEASE" -VERSION="18.0.2" +RELEASE_TAG="FIREFOX_19_0_RELEASE" +VERSION="19.0" # mozilla echo "cloning $BRANCH..." ++++++ firefox-18.0.2-source.tar.bz2 -> firefox-19.0-source.tar.bz2 ++++++ /work/SRC/openSUSE:Factory/MozillaFirefox/firefox-18.0.2-source.tar.bz2 /work/SRC/openSUSE:Factory/.MozillaFirefox.new/firefox-19.0-source.tar.bz2 differ: char 11, line 1 ++++++ firefox-712763.patch ++++++ # HG changeset patch # User Tim Taubert <[email protected]> # 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) ++++++ firefox-kde.patch ++++++ --- /var/tmp/diff_new_pack.7KvFD9/_old 2013-02-20 09:31:57.000000000 +0100 +++ /var/tmp/diff_new_pack.7KvFD9/_new 2013-02-20 09:31:57.000000000 +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 +<?xml version="1.0"?> +# -*- Mode: HTML -*- @@ -668,38 +668,40 @@ + class="chromeclass-toolbar-additional" + removable="false" + title="&socialToolbar.title;" -+ hidden="true"> ++ hidden="true" ++ observes="socialActiveBroadcaster"> + <toolbarbutton id="social-provider-button" + class="toolbarbutton-1" + type="menu"> + <menupopup id="social-statusarea-popup"> -+ <menuitem id="social-statusarea-user" pack="start" align="center" class="menuitem-iconic" -+ onclick="SocialUI.showProfile(); document.getElementById('social-statusarea-popup').hidePopup();"> -+ <image id="social-statusarea-user-portrait"/> ++ <menuitem class="social-statusarea-user menuitem-iconic" pack="start" align="center" ++ observes="socialBroadcaster_userDetails" ++ oncommand="SocialUI.showProfile(); document.getElementById('social-statusarea-popup').hidePopup();"> ++ <image class="social-statusarea-user-portrait" ++ observes="socialBroadcaster_userDetails"/> + <vbox> -+ <label id="social-statusarea-notloggedin" -+ value="&social.notLoggedIn.label;"/> -+ <label id="social-statusarea-username"/> ++ <label class="social-statusarea-loggedInStatus" ++ observes="socialBroadcaster_userDetails"/> + </vbox> + </menuitem> +#ifndef XP_WIN -+ <menuseparator/> ++ <menuseparator class="social-statusarea-separator"/> +#endif -+ <menuitem id="social-toggle-sidebar-menuitem" ++ <menuitem class="social-toggle-sidebar-menuitem" + type="checkbox" + autocheck="false" + command="Social:ToggleSidebar" + label="&social.toggleSidebar.label;" + accesskey="&social.toggleSidebar.accesskey;"/> -+ <menuitem id="social-toggle-notifications-menuitem" ++ <menuitem class="social-toggle-notifications-menuitem" + type="checkbox" + autocheck="false" + command="Social:ToggleNotifications" + label="&social.toggleNotifications.label;" + accesskey="&social.toggleNotifications.accesskey;"/> -+ <menuseparator/> -+ <menuitem id="social-remove-menuitem" -+ oncommand="SocialUI.disableWithConfirmation();"/> ++ <menuseparator class="social-statusarea-separator"/> ++ <menuitem class="social-toggle-menuitem" command="Social:Toggle"/> ++ <menuitem class="social-remove-menuitem" command="Social:Remove"/> + </menupopup> + </toolbarbutton> + </toolbaritem> @@ -1612,7 +1614,7 @@ + + cmdstr->SetData( NS_LITERAL_CSTRING( "RUN" )); + command->AppendElement( cmdstr, false ); -+ nsCAutoString app; ++ nsAutoCString app; + nsresult rv = aApplication->GetNativePath( app ); + NS_ENSURE_SUCCESS( rv, rv ); + appstr->SetData( app ); @@ -1651,7 +1653,7 @@ + if( !resstr ) + return NS_ERROR_FAILURE; + -+ nsCAutoString path; ++ nsAutoCString path; + resstr->GetData( path ); + if (path.IsEmpty()) + return NS_ERROR_FAILURE; @@ -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 ++++++ firefox-multilocale-chrome.patch ++++++ --- /var/tmp/diff_new_pack.7KvFD9/_old 2013-02-20 09:31:57.000000000 +0100 +++ /var/tmp/diff_new_pack.7KvFD9/_new 2013-02-20 09:31:57.000000000 +0100 @@ -1,13 +1,13 @@ # HG changeset patch # User Wolfgang Rosenauer <[email protected]> -# 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) ++++++ l10n-18.0.2.tar.bz2 -> l10n-19.0.tar.bz2 ++++++ /work/SRC/openSUSE:Factory/MozillaFirefox/l10n-18.0.2.tar.bz2 /work/SRC/openSUSE:Factory/.MozillaFirefox.new/l10n-19.0.tar.bz2 differ: char 11, line 1 ++++++ mozilla-gstreamer-760140.patch ++++++ --- /var/tmp/diff_new_pack.7KvFD9/_old 2013-02-20 09:31:57.000000000 +0100 +++ /var/tmp/diff_new_pack.7KvFD9/_new 2013-02-20 09:31:57.000000000 +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 <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 -@@ -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,129 +260,124 @@ } #endif - already_AddRefed<nsMediaDecoder> + already_AddRefed<MediaDecoder> 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(); +- nsRefPtr<GStreamerDecoder> decoder = new GStreamerDecoder(); - if (decoder->Init(this)) { - return decoder.forget(); + if (!Preferences::GetBool("media.prefer-gstreamer", false)) { + if (IsGStreamerSupportedType(aType)) { -+ nsRefPtr<nsGStreamerDecoder> decoder = new nsGStreamerDecoder(); ++ nsRefPtr<GStreamerDecoder> decoder = new GStreamerDecoder(); + if (decoder->Init(this)) { + return decoder.forget(); + } } } #endif -- + #ifdef MOZ_RAW if (IsRawType(aType)) { - nsRefPtr<nsRawDecoder> decoder = new nsRawDecoder(); - if (decoder->Init(this)) { - return decoder.forget(); - } - } - #endif -@@ -2503,25 +2492,33 @@ nsHTMLMediaElement::CreateDecoder(const - #ifdef MOZ_WEBM - if (IsWebMType(aType)) { - nsRefPtr<nsWebMDecoder> decoder = new nsWebMDecoder(); + nsRefPtr<RawDecoder> decoder = new RawDecoder(); if (decoder->Init(this)) { - return decoder.forget(); - } - } - #endif -- - #ifdef MOZ_DASH +@@ -2576,16 +2562,26 @@ nsHTMLMediaElement::CreateDecoder(const if (IsDASHMPDType(aType)) { - nsRefPtr<nsDASHDecoder> decoder = new nsDASHDecoder(); + nsRefPtr<DASHDecoder> decoder = new DASHDecoder(); if (decoder->Init(this)) { return decoder.forget(); } } #endif + +#ifdef MOZ_GSTREAMER + // use GStreamer as fallback if not preferred + if (IsGStreamerSupportedType(aType)) { -+ nsRefPtr<nsGStreamerDecoder> decoder = new nsGStreamerDecoder(); ++ nsRefPtr<GStreamerDecoder> 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/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 \ - $(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 @@ +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 "nsBuiltinDecoderStateMachine.h" - #include "nsGStreamerReader.h" - #include "nsGStreamerDecoder.h" + #include "MediaDecoderStateMachine.h" + #include "GStreamerReader.h" + #include "GStreamerDecoder.h" +#include "nsGStreamerFormatHelper.h" - nsDecoderStateMachine* nsGStreamerDecoder::CreateStateMachine() + namespace mozilla { + + MediaDecoderStateMachine* GStreamerDecoder::CreateStateMachine() { - return new nsBuiltinDecoderStateMachine(this, new nsGStreamerReader(this)); + return new MediaDecoderStateMachine(this, new GStreamerReader(this)); } -+ -+bool nsGStreamerDecoder::CanHandleMediaType(const char* aMIMEType, + ++bool GStreamerDecoder::CanHandleMediaType(const char* aMIMEType, + const char* aCodecs) { -+ return nsGStreamerFormatHelper::Instance()->CanHandleMediaType(aMIMEType, aCodecs); ++ return GStreamerFormatHelper::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 @@ + } // 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 @@ - #include "nsBuiltinDecoder.h" + namespace mozilla { - class nsGStreamerDecoder : public nsBuiltinDecoder + class GStreamerDecoder : public MediaDecoder { public: - virtual nsMediaDecoder* Clone() { return new nsGStreamerDecoder(); } - virtual nsDecoderStateMachine* CreateStateMachine(); + 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 += \ + GStreamerDecoder.h \ + $(NULL) + + CPPSRCS = \ + GStreamerReader.cpp \ + GStreamerDecoder.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/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 <gst/gst.h> +#include <mozilla/Types.h> + -+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]; ++++++ mozilla-kde.patch ++++++ --- /var/tmp/diff_new_pack.7KvFD9/_old 2013-02-20 09:31:57.000000000 +0100 +++ /var/tmp/diff_new_pack.7KvFD9/_new 2013-02-20 09:31:57.000000000 +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 <shlobj.h> @@ -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<nsIPrefBranch> 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) @@ -2187,7 +2187,7 @@ new file mode 100644 --- /dev/null +++ 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 -*- */ +/* 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 @@ -2353,8 +2353,6 @@ + +bool nsKDEUtils::command( nsIArray* command, nsIArray** output) + { -+ NS_ENSURE_ARG( command ); -+ + nsTArray<nsCString> in; + PRUint32 length; + command->GetLength( &length ); @@ -3052,7 +3050,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 +3068,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 +3084,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 +3105,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 +3133,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; @@ -3170,7 +3166,7 @@ + +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 ))); + return GDK_WINDOW_XID( gdk_window ); + } @@ -3278,7 +3274,7 @@ + } + + 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; + mFiles.Clear(); @@ -3366,7 +3362,7 @@ + } + + 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; + mFileURL = output.Length() > 0 ? output[ 0 ] : nsCString(); ++++++ source-stamp.txt ++++++ --- /var/tmp/diff_new_pack.7KvFD9/_old 2013-02-20 09:31:57.000000000 +0100 +++ /var/tmp/diff_new_pack.7KvFD9/_new 2013-02-20 09:31:57.000000000 +0100 @@ -1,2 +1,2 @@ -REV=c4fe2b219941 +REV=20238b786063 REPO=http://hg.mozilla.org/releases/mozilla-release -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
