Hello community,

here is the log from the commit of package xulrunner for openSUSE:12.2 checked 
in at 2012-07-31 14:05:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.2/xulrunner (Old)
 and      /work/SRC/openSUSE:12.2/.xulrunner.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "xulrunner", Maintainer is "gnome-maintain...@suse.de"

Changes:
--------
--- /work/SRC/openSUSE:12.2/xulrunner/xulrunner.changes 2012-07-30 
02:38:14.000000000 +0200
+++ /work/SRC/openSUSE:12.2/.xulrunner.new/xulrunner.changes    2012-07-31 
14:19:08.000000000 +0200
@@ -2 +2 @@
-Fri Jun 15 12:40:23 UTC 2012 - w...@rosenauer.org
+Sat Jul 14 19:33:44 UTC 2012 - w...@rosenauer.org
@@ -4,2 +4,38 @@
-- update to 13.0.1
-  * bugfix release
+- update to 14.0.1 (bnc#771583)
+  * MFSA 2012-42/CVE-2012-1949/CVE-2012-1948
+    Miscellaneous memory safety hazards
+  * MFSA 2012-43/CVE-2012-1950
+    Incorrect URL displayed in addressbar through drag and drop
+  * MFSA 2012-44/CVE-2012-1951/CVE-2012-1954/CVE-2012-1953/CVE-2012-1952
+    Gecko memory corruption
+  * MFSA 2012-45/CVE-2012-1955 (bmo#757376)
+    Spoofing issue with location
+  * MFSA 2012-46/CVE-2012-1966 (bmo#734076)
+    XSS through data: URLs
+  * MFSA 2012-47/CVE-2012-1957 (bmo#750096)
+    Improper filtering of javascript in HTML feed-view
+  * MFSA 2012-48/CVE-2012-1958 (bmo#750820)
+    use-after-free in nsGlobalWindow::PageHidden
+  * MFSA 2012-49/CVE-2012-1959 (bmo#754044, bmo#737559)
+    Same-compartment Security Wrappers can be bypassed
+  * MFSA 2012-50/CVE-2012-1960 (bmo#761014)
+    Out of bounds read in QCMS
+  * MFSA 2012-51/CVE-2012-1961 (bmo#761655)
+    X-Frame-Options header ignored when duplicated
+  * MFSA 2012-52/CVE-2012-1962 (bmo#764296)
+    JSDependentString::undepend string conversion results in memory
+    corruption
+  * MFSA 2012-53/CVE-2012-1963 (bmo#767778)
+    Content Security Policy 1.0 implementation errors cause data
+    leakage
+  * MFSA 2012-55/CVE-2012-1965 (bmo#758990)
+    feed: URLs with an innerURI inherit security context of page
+  * MFSA 2012-56/CVE-2012-1967 (bmo#758344)
+    Code execution through javascript: URLs
+- license change from tri license to MPL-2.0
+- require NSS 3.13.5
+- PPC fixes:
+  * reenabled mozilla-yarr-pcre.patch to fix build for PPC
+  * add patches for bmo#750620 and bmo#746112
+  * fix xpcshell segfault on ppc
+- build plugin-container on every arch

Old:
----
  l10n-13.0.1.tar.bz2
  mozilla-disable-neon-option.patch
  mozilla-libnotify.patch
  mozilla-linux3.patch
  mozilla-nsSound.patch
  mozilla-revert_621446.patch
  mozilla-system-nspr.patch
  xulrunner-13.0.1-source.tar.bz2

New:
----
  l10n-14.0.1.tar.bz2
  mozilla-ppc.patch
  xulrunner-14.0.1-source.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ xulrunner.spec ++++++
--- /var/tmp/diff_new_pack.5puy4F/_old  2012-07-31 14:23:27.000000000 +0200
+++ /var/tmp/diff_new_pack.5puy4F/_new  2012-07-31 14:23:27.000000000 +0200
@@ -43,15 +43,15 @@
 BuildRequires:  wireless-tools
 %endif
 BuildRequires:  mozilla-nspr-devel >= 4.9.0
-BuildRequires:  mozilla-nss-devel >= 3.13.4
-Version:        13.0.1
+BuildRequires:  mozilla-nss-devel >= 3.13.5
+Version:        14.0.1
 Release:        0
-%define         releasedate 2012061400
-%define         version_internal 13.0.1
-%define         apiversion 13
-%define         uaweight 1300001
+%define         releasedate 2012071300
+%define         version_internal 14.0.1
+%define         apiversion 14
+%define         uaweight 1400001
 Summary:        Mozilla Runtime Environment
-License:        MPL-1.1 or GPL-2.0+ or LGPL-2.1+
+License:        MPL-2.0
 Group:          Productivity/Other
 Url:            http://www.mozilla.org/
 Provides:       gecko
@@ -77,14 +77,9 @@
 Patch7:         mozilla-ntlm-full-path.patch
 Patch8:         mozilla-dump_syms-static.patch
 Patch9:         mozilla-sle11.patch
-Patch10:        mozilla-linux3.patch
-Patch11:        mozilla-disable-neon-option.patch
-Patch12:        mozilla-system-nspr.patch
-Patch13:        mozilla-revert_621446.patch
-Patch14:        mozilla-yarr-pcre.patch
-Patch15:        mozilla-libnotify.patch
-Patch16:        mozilla-gcc47.patch
-Patch17:        mozilla-nsSound.patch
+Patch11:        mozilla-yarr-pcre.patch
+Patch12:        mozilla-gcc47.patch
+Patch13:        mozilla-ppc.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 Requires:       mozilla-js = %{version}
 Requires(post):  update-alternatives coreutils
@@ -94,12 +89,10 @@
 %define has_system_nss   1
 %define has_system_cairo 0
 %define localize 0
-%ifarch ppc ppc64 s390 s390x ia64 %arm
+%ifarch ppc ppc64 s390 s390x ia64
 %define crashreporter    0
-%define plugincontainer  0
 %else
 %define crashreporter    1
-%define plugincontainer  1
 %endif
 ### configuration end ###
 %define _use_internal_dependency_generator 0
@@ -166,7 +159,7 @@
 Summary:        Extra translations for XULRunner
 Group:          System/Localization
 Requires:       %{name} = %{version}
-Provides:       
locale(%{name}:af;ak;as;ast;be;bg;bn_BD;bn_IN;br;bs;csb;cy;el;en_ZA;eo;es_MX;et;eu;fa;fy_NL;ga_IE;gd;gl;gu_IN;he;hi_IN;hr;hy_AM;id;is;kk;km;kn;ku;lg;lij;lt;lv;mai;mk;ml;mn;mr;nn_NO;nso;or;pa_IN;rm;ro;si;sk;sl;son;sq;sr;sw;ta;ta_LK;te;th;tr;uk;vi;zu)
+Provides:       
locale(%{name}:af;ak;as;ast;be;bg;bn_BD;bn_IN;br;bs;csb;cy;el;en_ZA;eo;es_MX;et;eu;fa;ff;fy_NL;ga_IE;gd;gl;gu_IN;he;hi_IN;hr;hy_AM;id;is;kk;km;kn;ku;lg;lij;lt;lv;mai;mk;ml;mr;nn_NO;nso;or;pa_IN;rm;ro;si;sk;sl;son;sq;sr;ta;ta_LK;te;th;tr;uk;vi;zu)
 Obsoletes:      %{name}-translations < %{version}-%{release}
 
 %description translations-other
@@ -201,14 +194,9 @@
 %if %suse_version < 1120
 %patch9 -p1
 %endif
-%patch10 -p1
 %patch11 -p1
 %patch12 -p1
 %patch13 -p1
-#%patch14 -p1
-%patch15 -p1
-%patch16 -p1
-%patch17 -p1
 
 %build
 # no need to add build time to binaries
@@ -289,11 +277,6 @@
 ac_add_options --disable-crashreporter
 EOF
 %endif
-%if ! %plugincontainer
-cat << EOF >> $MOZCONFIG
-ac_add_options --disable-ipc
-EOF
-%endif
 # S/390
 %ifarch s390 s390x
 cat << EOF >> $MOZCONFIG
@@ -303,7 +286,17 @@
 # ARM
 %ifarch %arm
 cat << EOF >> $MOZCONFIG
-ac_add_options --disable-neon
+%ifarch armv7l
+ac_add_options --with-arch=armv7-a
+ac_add_options --with-float-abi=hard
+ac_add_options --with-fpu=vfpv3-d16
+ac_add_options --with-thumb=yes
+%endif
+%ifarch armv5tel
+ac_add_options --with-arch=armv5te
+ac_add_options --with-float-abi=soft
+ac_add_options --with-thumb=no
+%endif
 EOF
 %endif
 make -f client.mk build
@@ -464,15 +457,13 @@
 %{_libdir}/xulrunner-%{version_internal}/chrome.manifest
 %{_libdir}/xulrunner-%{version_internal}/dependentlibs.list
 %{_libdir}/xulrunner-%{version_internal}/mozilla-xremote-client
-%if %plugincontainer
 %{_libdir}/xulrunner-%{version_internal}/plugin-container
-%endif
-%{_libdir}/xulrunner-%{version_internal}/run-mozilla.sh
 %{_libdir}/xulrunner-%{version_internal}/xulrunner
 %{_libdir}/xulrunner-%{version_internal}/xulrunner-bin
 %{_libdir}/xulrunner-%{version_internal}/xulrunner-stub
 %{_libdir}/xulrunner-%{version_internal}/platform.ini
 %{_libdir}/xulrunner-%{version_internal}/omni.ja
+%{_libdir}/xulrunner-%{version_internal}/README.xulrunner
 # crashreporter files
 %if %crashreporter
 %{_libdir}/xulrunner-%{version_internal}/crashreporter
@@ -499,7 +490,6 @@
 
 %files devel
 %defattr(-,root,root)
-%{_libdir}/xulrunner-%{version_internal}/xpcshell
 %{_libdir}/xulrunner-devel-%{version_internal}/
 # FIXME symlink dynamic libs below sdk/lib
 %attr(644,root,root) %{_libdir}/pkgconfig/*

++++++ compare-locales.tar.bz2 ++++++

++++++ create-tar.sh ++++++
--- /var/tmp/diff_new_pack.5puy4F/_old  2012-07-31 14:23:27.000000000 +0200
+++ /var/tmp/diff_new_pack.5puy4F/_new  2012-07-31 14:23:27.000000000 +0200
@@ -2,8 +2,8 @@
 
 CHANNEL="release"
 BRANCH="releases/mozilla-$CHANNEL"
-RELEASE_TAG="FIREFOX_13_0_1_RELEASE"
-VERSION="13.0.1"
+RELEASE_TAG="FIREFOX_14_0_1_RELEASE"
+VERSION="14.0.1"
 
 # mozilla
 hg clone http://hg.mozilla.org/$BRANCH mozilla

++++++ l10n-13.0.1.tar.bz2 -> l10n-14.0.1.tar.bz2 ++++++
/work/SRC/openSUSE:12.2/xulrunner/l10n-13.0.1.tar.bz2 
/work/SRC/openSUSE:12.2/.xulrunner.new/l10n-14.0.1.tar.bz2 differ: char 11, 
line 1

++++++ mozilla-gcc47.patch ++++++
--- /var/tmp/diff_new_pack.5puy4F/_old  2012-07-31 14:23:27.000000000 +0200
+++ /var/tmp/diff_new_pack.5puy4F/_new  2012-07-31 14:23:27.000000000 +0200
@@ -1,113 +1,14 @@
 # HG changeset patch
-# Parent 7bc8f0e5bed8cb2212e27228e628861737256459
-Patch to make Mozilla build with gcc 4.7, including
-- Bug 734490 - "no viable overloaded 'PRIxPTR'" when building with Clang or 
GCC 4.7 (TM: Mozilla14)
-- Bug 741348 - Work around crashreporter client build failure with gcc 4.7 
(TM: Mozilla15)
+# User Mike Hommey <mh+mozi...@glandium.org>
+# Date 1336991062 -7200
+# Node ID 234d34706ea1a0e9a9d2c61561c4441590712df0
+# Parent  0f2f145158b595f5242bf0d79b2de413373730c1
+Bug 741348 - Work around crashreporter client build failure with gcc 4.7
 
-diff --git a/layout/base/tests/TestPoisonArea.cpp 
b/layout/base/tests/TestPoisonArea.cpp
---- a/layout/base/tests/TestPoisonArea.cpp
-+++ b/layout/base/tests/TestPoisonArea.cpp
-@@ -392,53 +392,53 @@ ReservePoisonArea()
- {
-   if (sizeof(uintptr_t) == 8) {
-     // Use the hardware-inaccessible region.
-     // We have to avoid 64-bit constants and shifts by 32 bits, since this
-     // code is compiled in 32-bit mode, although it is never executed there.
-     uintptr_t result = (((uintptr_t(0x7FFFFFFFu) << 31) << 1 |
-                          uintptr_t(0xF0DEAFFFu)) &
-                         ~uintptr_t(PAGESIZE-1));
--    printf("INFO | poison area assumed at 0x%.*"PRIxPTR"\n", SIZxPTR, result);
-+    printf("INFO | poison area assumed at 0x%.*" PRIxPTR "\n", SIZxPTR, 
result);
-     return result;
-   } else {
-     // First see if we can allocate the preferred poison address from the OS.
-     uintptr_t candidate = (0xF0DEAFFF & ~(PAGESIZE-1));
-     void *result = ReserveRegion(candidate, false);
-     if (result == (void *)candidate) {
-       // success - inaccessible page allocated
--      printf("INFO | poison area allocated at 0x%.*"PRIxPTR
-+      printf("INFO | poison area allocated at 0x%.*" PRIxPTR
-              " (preferred addr)\n", SIZxPTR, (uintptr_t)result);
-       return candidate;
-     }
- 
-     // That didn't work, so see if the preferred address is within a range
-     // of permanently inacessible memory.
-     if (ProbeRegion(candidate)) {
-       // success - selected page cannot be usable memory
-       if (result != MAP_FAILED)
-         ReleaseRegion(result);
--      printf("INFO | poison area assumed at 0x%.*"PRIxPTR
-+      printf("INFO | poison area assumed at 0x%.*" PRIxPTR
-              " (preferred addr)\n", SIZxPTR, candidate);
-       return candidate;
-     }
- 
-     // The preferred address is already in use.  Did the OS give us a
-     // consolation prize?
-     if (result != MAP_FAILED) {
--      printf("INFO | poison area allocated at 0x%.*"PRIxPTR
-+      printf("INFO | poison area allocated at 0x%.*" PRIxPTR
-              " (consolation prize)\n", SIZxPTR, (uintptr_t)result);
-       return (uintptr_t)result;
-     }
- 
-     // It didn't, so try to allocate again, without any constraint on
-     // the address.
-     result = ReserveRegion(0, false);
-     if (result != MAP_FAILED) {
--      printf("INFO | poison area allocated at 0x%.*"PRIxPTR
-+      printf("INFO | poison area allocated at 0x%.*" PRIxPTR
-              " (fallback)\n", SIZxPTR, (uintptr_t)result);
-       return (uintptr_t)result;
-     }
- 
-     printf("ERROR | no usable poison area found\n");
-     return 0;
-   }
- }
-@@ -450,17 +450,17 @@ static uintptr_t
- ReservePositiveControl()
- {
- 
-   void *result = ReserveRegion(0, false);
-   if (result == MAP_FAILED) {
-     printf("ERROR | allocating positive control | %s\n", LastErrMsg());
-     return 0;
-   }
--  printf("INFO | positive control allocated at 0x%.*"PRIxPTR"\n",
-+  printf("INFO | positive control allocated at 0x%.*" PRIxPTR "\n",
-          SIZxPTR, (uintptr_t)result);
-   return (uintptr_t)result;
- }
- 
- /* The "negative control" area confirms that our probe logic does detect a
-  * page that is readable, writable, or executable.
-  */
- static uintptr_t
-@@ -481,17 +481,17 @@ ReserveNegativeControl()
-   // Now mark it executable as well as readable and writable.
-   // (mmap(PROT_EXEC) may fail when applied to anonymous memory.)
- 
-   if (MakeRegionExecutable(result)) {
-     printf("ERROR | making negative control executable | %s\n", LastErrMsg());
-     return 0;
-   }
- 
--  printf("INFO | negative control allocated at 0x%.*"PRIxPTR"\n",
-+  printf("INFO | negative control allocated at 0x%.*" PRIxPTR "\n",
-          SIZxPTR, (uintptr_t)result);
-   return (uintptr_t)result;
- }
- 
- static void
- JumpTo(uintptr_t opaddr)
- {
- #ifdef __ia64
 diff --git 
a/toolkit/crashreporter/google-breakpad/src/common/linux/Makefile.in 
b/toolkit/crashreporter/google-breakpad/src/common/linux/Makefile.in
 --- a/toolkit/crashreporter/google-breakpad/src/common/linux/Makefile.in
 +++ b/toolkit/crashreporter/google-breakpad/src/common/linux/Makefile.in
-@@ -61,8 +61,11 @@ HOST_CPPSRCS = \
+@@ -65,8 +65,11 @@ HOST_CPPSRCS = \
    file_id.cc \
    guid_creator.cc \
    $(NULL)

++++++ mozilla-pkgconfig.patch ++++++
--- /var/tmp/diff_new_pack.5puy4F/_old  2012-07-31 14:23:27.000000000 +0200
+++ /var/tmp/diff_new_pack.5puy4F/_new  2012-07-31 14:23:27.000000000 +0200
@@ -14,7 +14,7 @@
  # Add pkg-config files to the install:: target
  
 +# the apilibdir always ends with 1.9 as every patch update will provide a link
-+apilibdir = $(dir $(installdir))xulrunner-13
++apilibdir = $(dir $(installdir))xulrunner-14
 +
  pkg_config_files = \
        libxul.pc \

++++++ mozilla-ppc.patch ++++++
# HG changeset patch
# Parent 67e6f1e1d06ca3d54cea1d26877c2a68f0c096e5
# 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

diff --git a/js/src/yarr/YarrInterpreter.h b/js/src/yarr/YarrInterpreter.h
--- a/js/src/yarr/YarrInterpreter.h
+++ b/js/src/yarr/YarrInterpreter.h
@@ -162,17 +162,17 @@ struct ByteTerm {
         , m_invert(invert)
     {
         atom.characterClass = characterClass;
         atom.quantityType = QuantifierFixedCount;
         atom.quantityCount = 1;
         inputPosition = inputPos;
     }
 
-    ByteTerm(Type type, unsigned subpatternId, ByteDisjunction* 
parenthesesInfo, bool capture, int inputPos)
+    ByteTerm(Type type, unsigned subpatternId, ByteDisjunction* 
parenthesesInfo, bool capture, int inputPos) __attribute__((noinline))
         : type(type)
         , m_capture(capture)
         , m_invert(false)
     {
         atom.subpatternId = subpatternId;
         atom.parenthesesDisjunction = parenthesesInfo;
         atom.quantityType = QuantifierFixedCount;
         atom.quantityCount = 1;
@@ -183,17 +183,17 @@ struct ByteTerm {
         : type(type)
         , m_capture(false)
         , m_invert(invert)
     {
         atom.quantityType = QuantifierFixedCount;
         atom.quantityCount = 1;
     }
 
-    ByteTerm(Type type, unsigned subpatternId, bool capture, bool invert, int 
inputPos)
+    ByteTerm(Type type, unsigned subpatternId, bool capture, bool invert, int 
inputPos) __attribute__((noinline))
         : type(type)
         , m_capture(capture)
         , m_invert(invert)
     {
         atom.subpatternId = subpatternId;
         atom.quantityType = QuantifierFixedCount;
         atom.quantityCount = 1;
         inputPosition = inputPos;
diff --git a/js/src/yarr/YarrPattern.h b/js/src/yarr/YarrPattern.h
--- a/js/src/yarr/YarrPattern.h
+++ b/js/src/yarr/YarrPattern.h
@@ -166,17 +166,17 @@ struct PatternTerm {
         , m_capture(false)
         , m_invert(invert)
     {
         characterClass = charClass;
         quantityType = QuantifierFixedCount;
         quantityCount = 1;
     }
 
-    PatternTerm(Type type, unsigned subpatternId, PatternDisjunction* 
disjunction, bool capture = false, bool invert = false)
+    PatternTerm(Type type, unsigned subpatternId, PatternDisjunction* 
disjunction, bool capture = false, bool invert = false) 
__attribute__((noinline))
         : type(type)
         , m_capture(capture)
         , m_invert(invert)
     {
         parentheses.disjunction = disjunction;
         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
@@ -1086,17 +1086,19 @@ struct arena_s {
 static unsigned                ncpus;
 #endif
 
 /*
  * When MALLOC_STATIC_SIZES is defined most of the parameters
  * controlling the malloc behavior are defined as compile-time constants
  * for best performance and cannot be altered at runtime.
  */
+#if !(defined(__powerpc__))
 #define MALLOC_STATIC_SIZES 1
+#endif
 
 #ifdef MALLOC_STATIC_SIZES
 
 /*
  * VM page size. It must divide the runtime CPU page size or the code
  * will abort.
  */
 #define pagesize_2pow                  ((size_t) 12)
diff --git a/mfbt/double-conversion/utils.h b/mfbt/double-conversion/utils.h
--- a/mfbt/double-conversion/utils.h
+++ b/mfbt/double-conversion/utils.h
@@ -49,17 +49,18 @@
 // evaluate: 89255.0/1e22. If the floating-point stack is 64 bits wide then
 // the result is equal to 89255e-22.
 // The best way to test this, is to create a division-function and to compare
 // the output of the division with the expected result. (Inlining must be
 // disabled.)
 // On Linux,x86 89255e-22 != Div_double(89255.0/1e22)
 #if defined(_M_X64) || defined(__x86_64__) || \
     defined(__ARMEL__) || \
-    defined(_MIPS_ARCH_MIPS32R2)
+    defined(_MIPS_ARCH_MIPS32R2) || \
+    defined(__powerpc__) || defined(__powerpc64__)
 #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
 #elif defined(_M_IX86) || defined(__i386__)
 #if defined(_WIN32)
 // Windows uses a 64bit wide floating point stack.
 #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
 #else
 #undef DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS
 #endif  // _WIN32
++++++ mozilla-prefer_plugin_pref.patch ++++++
--- /var/tmp/diff_new_pack.5puy4F/_old  2012-07-31 14:23:27.000000000 +0200
+++ /var/tmp/diff_new_pack.5puy4F/_new  2012-07-31 14:23:27.000000000 +0200
@@ -4,7 +4,7 @@
 diff --git a/dom/plugins/base/nsPluginHost.cpp 
b/dom/plugins/base/nsPluginHost.cpp
 --- a/dom/plugins/base/nsPluginHost.cpp
 +++ b/dom/plugins/base/nsPluginHost.cpp
-@@ -1580,17 +1580,48 @@ nsPluginHost::FindPluginForType(const ch
+@@ -1561,17 +1561,45 @@ nsPluginHost::FindPluginForType(const ch
                                  bool aCheckEnabled)
  {
    if (!aMimeType) {
@@ -13,18 +13,15 @@
  
    LoadPlugins();
  
-+  nsresult res;
-+  nsCOMPtr<nsIPrefBranch> prefB (do_QueryInterface(mPrefService));
-+
 +  char *preferredPluginPath = NULL;
 +  nsCAutoString mimetypePrefString ("modules.plugins.mimetype.");
 +  mimetypePrefString.Append(aMimeType);
 +  const char *mimetypePrefChar = mimetypePrefString.get();
-+  res = prefB->GetCharPref(mimetypePrefChar, &preferredPluginPath);
-+
-+  if(!NS_SUCCEEDED(res)) preferredPluginPath = NULL;
++  nsAdoptingCString pluginPath = Preferences::GetCString(mimetypePrefChar);
++  preferredPluginPath = (char*) pluginPath.get();
 +
    nsPluginTag *plugin = mPlugins;
++
 +  if(preferredPluginPath) {
 +    while (nsnull != plugin) {
 +      if (0 == PL_strcasecmp(plugin->mFileName.get(), preferredPluginPath) ||

++++++ mozilla-yarr-pcre.patch ++++++
--- /var/tmp/diff_new_pack.5puy4F/_old  2012-07-31 14:23:27.000000000 +0200
+++ /var/tmp/diff_new_pack.5puy4F/_new  2012-07-31 14:23:27.000000000 +0200
@@ -1,15 +1,21 @@
+# HG changeset patch
+# Parent 831eeca7b7cfa9ae2458d9efafe168027259965f
+# User Landry Breuil <lan...@openbsd.org>
+Bug 691898 - Use YARR regexp interpreter instead of PCRE on platforms where 
YARR JIT is not supported r=dmandelin
+PCRE doesn't build anyway.
+
 diff --git a/js/src/Makefile.in b/js/src/Makefile.in
 --- a/js/src/Makefile.in
 +++ b/js/src/Makefile.in
-@@ -332,30 +332,33 @@ CPPSRCS +=       checks.cc \
-               platform.cc \
-               utils.cc \
-               $(NONE)
- 
+@@ -315,30 +315,33 @@ ifeq (mips, $(findstring mips,$(TARGET_C
+ CPPSRCS +=    TrampolineMIPS.cpp
+ endif
  #
- # END enclude sources for V8 dtoa
+ # END enclude sources for the method JIT
  #############################################
  
+ endif
+ 
 -# For architectures without YARR JIT, PCRE is faster than the YARR
 -# interpreter (bug 684559).
 -
@@ -70,7 +76,7 @@
 diff --git a/js/src/vm/RegExpObject-inl.h b/js/src/vm/RegExpObject-inl.h
 --- a/js/src/vm/RegExpObject-inl.h
 +++ b/js/src/vm/RegExpObject-inl.h
-@@ -132,16 +132,17 @@ RegExpObject::setMultiline(bool enabled)
+@@ -132,26 +132,28 @@ RegExpObject::setMultiline(bool enabled)
  }
  
  inline void
@@ -88,10 +94,21 @@
      return cx->methodJitEnabled;
  #else
      return true;
+ #endif
+ }
++#endif
+ 
+ inline bool
+ RegExpToShared(JSContext *cx, JSObject &obj, RegExpGuard *g)
+ {
+     JS_ASSERT(ObjectClassIs(obj, ESClass_RegExp, cx));
+     if (obj.isRegExp())
+         return obj.asRegExp().getShared(cx, g);
+     return Proxy::regexp_toShared(cx, &obj, g);
 diff --git a/js/src/vm/RegExpObject.cpp b/js/src/vm/RegExpObject.cpp
 --- a/js/src/vm/RegExpObject.cpp
 +++ b/js/src/vm/RegExpObject.cpp
-@@ -162,17 +162,16 @@ MatchPairs::checkAgainst(size_t inputLen
+@@ -163,17 +163,16 @@ MatchPairs::checkAgainst(size_t inputLen
              continue;
          JS_ASSERT(size_t(p.limit) <= inputLength);
      }
@@ -109,7 +126,7 @@
          JS_NOT_REACHED("Called reportYarrError with value for no error");
          return;
  #define COMPILE_EMSG(__code, __msg)                                           
                   \
-@@ -194,52 +193,16 @@ RegExpCode::reportYarrError(JSContext *c
+@@ -195,73 +194,36 @@ RegExpCode::reportYarrError(JSContext *c
        COMPILE_EMSG(QuantifierTooLarge, JSMSG_BAD_QUANTIFIER);
        COMPILE_EMSG(EscapeUnterminated, JSMSG_TRAILING_SLASH);
  #undef COMPILE_EMSG
@@ -157,16 +174,100 @@
  bool
  RegExpCode::compile(JSContext *cx, JSLinearString &pattern, unsigned 
*parenCount, RegExpFlag flags)
  {
- #if ENABLE_YARR_JIT
+-#if ENABLE_YARR_JIT
      /* Parse the pattern. */
      ErrorCode yarrError;
      YarrPattern yarrPattern(pattern, bool(flags & IgnoreCaseFlag), bool(flags 
& MultilineFlag),
                              &yarrError);
+     if (yarrError) {
+         reportYarrError(cx, NULL, yarrError);
+         return false;
+     }
+     *parenCount = yarrPattern.m_numSubpatterns;
+ 
+     /*
+      * The YARR JIT compiler attempts to compile the parsed pattern. If
+      * it cannot, it informs us via |codeBlock.isFallBack()|, in which
+      * case we have to bytecode compile it.
+      */
+ 
+-#ifdef JS_METHODJIT
++#if ENABLE_YARR_JIT && defined(JS_METHODJIT)
+     if (isJITRuntimeEnabled(cx) && !yarrPattern.m_containsBackreferences) {
+         JSC::ExecutableAllocator *execAlloc = 
cx->runtime->getExecutableAllocator(cx);
+         if (!execAlloc) {
+             js_ReportOutOfMemory(cx);
+             return false;
+         }
+ 
+         JSGlobalData globalData(execAlloc);
+@@ -272,58 +234,41 @@ RegExpCode::compile(JSContext *cx, JSLin
+ #endif
+ 
+     WTF::BumpPointerAllocator *bumpAlloc = 
cx->runtime->getBumpPointerAllocator(cx);
+     if (!bumpAlloc) {
+         js_ReportOutOfMemory(cx);
+         return false;
+     }
+ 
++#if ENABLE_YARR_JIT
+     codeBlock.setFallBack(true);
++#endif
+     byteCode = byteCompile(yarrPattern, bumpAlloc).get();
+     return true;
+-#else /* !defined(ENABLE_YARR_JIT) */
+-    int error = 0;
+-    compiled = jsRegExpCompile(pattern.chars(), pattern.length(),
+-                  ignoreCase() ? JSRegExpIgnoreCase : JSRegExpDoNotIgnoreCase,
+-                  multiline() ? JSRegExpMultiline : JSRegExpSingleLine,
+-                  parenCount, &error);
+-    if (error) {
+-        reportPCREError(cx, error);
+-        return false;
+-    }
+-    return true;
+-#endif
+ }
+ 
+ RegExpRunStatus
+ RegExpCode::execute(JSContext *cx, const jschar *chars, size_t length, size_t 
start,
+                     int *output, size_t outputCount)
+ {
+     int result;
+ #if ENABLE_YARR_JIT
+     (void) cx; /* Unused. */
+     if (codeBlock.isFallBack())
+         result = JSC::Yarr::interpret(byteCode, chars, start, length, output);
+     else
+         result = JSC::Yarr::execute(codeBlock, chars, start, length, output);
+ #else
+-    result = jsRegExpExecute(cx, compiled, chars, length, start, output, 
outputCount);
++    result = JSC::Yarr::interpret(byteCode, chars, start, length, output);
+ #endif
+ 
+     if (result == -1)
+         return RegExpRunStatus_Success_NotFound;
+ 
+-#if !ENABLE_YARR_JIT
+-    if (result < 0) {
+-        reportPCREError(cx, result);
+-        return RegExpRunStatus_Error;
+-    }
+-#endif
+-
+     JS_ASSERT(result >= 0);
+     return RegExpRunStatus_Success;
+ }
+ 
+ /* RegExpObject */
+ 
+ static void
+ regexp_trace(JSTracer *trc, JSObject *obj)
 diff --git a/js/src/vm/RegExpObject.h b/js/src/vm/RegExpObject.h
 --- a/js/src/vm/RegExpObject.h
 +++ b/js/src/vm/RegExpObject.h
-@@ -46,20 +46,18 @@
- #include <stddef.h>
+@@ -47,20 +47,18 @@
+ #include "jscntxt.h"
  #include "jsobj.h"
  
  #include "js/TemplateLib.h"
@@ -187,6 +288,91 @@
   *
   *   RegExpObject - The JS-visible object whose .[[Class]] equals "RegExp"
   *
+@@ -108,78 +106,61 @@ class RegExpObjectBuilder
+ 
+ JSObject *
+ CloneRegExpObject(JSContext *cx, JSObject *obj, JSObject *proto);
+ 
+ namespace detail {
+ 
+ class RegExpCode
+ {
+-#if ENABLE_YARR_JIT
+     typedef JSC::Yarr::BytecodePattern BytecodePattern;
+     typedef JSC::Yarr::ErrorCode ErrorCode;
++    typedef JSC::Yarr::YarrPattern YarrPattern;
++#if ENABLE_YARR_JIT
+     typedef JSC::Yarr::JSGlobalData JSGlobalData;
+     typedef JSC::Yarr::YarrCodeBlock YarrCodeBlock;
+-    typedef JSC::Yarr::YarrPattern YarrPattern;
+ 
+     /* Note: Native code is valid only if |codeBlock.isFallBack() == false|. 
*/
+     YarrCodeBlock   codeBlock;
++#endif
+     BytecodePattern *byteCode;
+-#else
+-    JSRegExp        *compiled;
+-#endif
+ 
+   public:
+     RegExpCode()
+       :
+ #if ENABLE_YARR_JIT
+         codeBlock(),
++#endif
+         byteCode(NULL)
+-#else
+-        compiled(NULL)
+-#endif
+     { }
+ 
+     ~RegExpCode() {
+ #if ENABLE_YARR_JIT
+         codeBlock.release();
++#endif
+         if (byteCode)
+             Foreground::delete_<BytecodePattern>(byteCode);
+-#else
+-        if (compiled)
+-            jsRegExpFree(compiled);
+-#endif
+     }
+ 
+     static bool checkSyntax(JSContext *cx, TokenStream *tokenStream, 
JSLinearString *source) {
+-#if ENABLE_YARR_JIT
+         ErrorCode error = JSC::Yarr::checkSyntax(*source);
+         if (error == JSC::Yarr::NoError)
+             return true;
+ 
+         reportYarrError(cx, tokenStream, error);
+         return false;
+-#else
+-# error "Syntax checking not implemented for !ENABLE_YARR_JIT"
+-#endif
+     }
+ 
+ #if ENABLE_YARR_JIT
+     static inline bool isJITRuntimeEnabled(JSContext *cx);
++#endif
+     static void reportYarrError(JSContext *cx, TokenStream *ts, 
JSC::Yarr::ErrorCode error);
+-#else
+-    static void reportPCREError(JSContext *cx, int error);
+-#endif
+ 
+     static size_t getOutputSize(size_t pairCount) {
+-#if ENABLE_YARR_JIT
+         return pairCount * 2;
+-#else
+-        return pairCount * 3; /* Should be x2, but PCRE has... needs. */
+-#endif
+     }
+ 
+     bool compile(JSContext *cx, JSLinearString &pattern, unsigned 
*parenCount, RegExpFlag flags);
+ 
+ 
+     RegExpRunStatus
+     execute(JSContext *cx, const jschar *chars, size_t length, size_t start,
+             int *output, size_t outputCount);
 diff --git a/js/src/yarr/wtfbridge.h b/js/src/yarr/wtfbridge.h
 --- a/js/src/yarr/wtfbridge.h
 +++ b/js/src/yarr/wtfbridge.h

++++++ source-stamp.txt ++++++
--- /var/tmp/diff_new_pack.5puy4F/_old  2012-07-31 14:23:27.000000000 +0200
+++ /var/tmp/diff_new_pack.5puy4F/_new  2012-07-31 14:23:27.000000000 +0200
@@ -1,2 +1,2 @@
-REV=2b643ea8edf9
+REV=e5728a4e106c
 REPO=http://hg.mozilla.org/releases/mozilla-release

++++++ xulrunner-13.0.1-source.tar.bz2 -> xulrunner-14.0.1-source.tar.bz2 ++++++
/work/SRC/openSUSE:12.2/xulrunner/xulrunner-13.0.1-source.tar.bz2 
/work/SRC/openSUSE:12.2/.xulrunner.new/xulrunner-14.0.1-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

Reply via email to