Package: iceweasel
Version: 3.5.1-1
Severity: normal

tags experimental upstream
forwarded https://bugzilla.mozilla.org/show_bug.cgi?id=477564


As is reported at upstream bug #477564, webpages with lots of checkboxes
will cause Firefox, erhm, Iceweasel 3.5 to hang.

https://bugzilla.mozilla.org/show_bug.cgi?id=477564

The patch included with the upstream report (and attached here) fixes the hangs 
for me.



-- System Information:
Debian Release: squeeze/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.30.2-tuxonice (SMP w/2 CPU cores)
Locale: LANG=fi_FI.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages iceweasel depends on:
ii  debianutils                   3.2        Miscellaneous utilities specific t
ii  fontconfig                    2.6.0-4    generic font configuration library
ii  libc6                         2.9-12     GNU C Library: Shared libraries
ii  libglib2.0-0                  2.20.4-1   The GLib library of C routines
ii  libgtk2.0-0                   2.16.5-1   The GTK+ graphical user interface 
ii  libnspr4-0d                   4.8-1      NetScape Portable Runtime Library
ii  libstdc++6                    4.4.0-5    The GNU Standard C++ Library v3
ii  procps                        1:3.2.8-1  /proc file system utilities
ii  psmisc                        22.8-1     utilities that use the proc file s
ii  xulrunner-1.9.1               1.9.1.1-1  XUL + XPCOM application runner

iceweasel recommends no packages.

Versions of packages iceweasel suggests:
ii  latex-xft-fonts      1.6.3-4             TrueType versions of some TeX font
ii  libkrb53             1.6.dfsg.4~beta1-13 Transitional library package/krb4 
pn  mozplugger           <none>              (no description available)
ii  ttf-mathematica4.1   8                   Installer of Mathematica TrueType 
ii  xfonts-mathml        2                   Type1 Symbol font for MathML
ii  xprint               2:1.4.2-11          X11 print system (binary)
ii  xulrunner-1.9.1-gnom 1.9.1.1-1           Support for GNOME in xulrunner app

-- no debconf information
diff --git a/browser/components/sessionstore/src/nsSessionStore.js b/browser/components/sessionstore/src/nsSessionStore.js
--- a/browser/components/sessionstore/src/nsSessionStore.js
+++ b/browser/components/sessionstore/src/nsSessionStore.js
@@ -1472,18 +1472,25 @@ SessionStoreService.prototype = {
   _collectFormDataForFrame: function sss_collectFormDataForFrame(aDocument) {
     let formNodes = aDocument.evaluate(XPathHelper.restorableFormNodes, aDocument,
                                        XPathHelper.resolveNS,
                                        Ci.nsIDOMXPathResult.UNORDERED_NODE_ITERATOR_TYPE, null);
     let node = formNodes.iterateNext();
     if (!node)
       return null;
     
+    const MAX_GENERATED_XPATHS = 100;
+    let generatedCount = 0;
+    
     let data = {};
     do {
+      // Only generate a limited number of XPath expressions for perf reasons (cf. bug 477564)
+      if (!node.id && ++generatedCount > MAX_GENERATED_XPATHS)
+        continue;
+      
       let id = node.id ? "#" + node.id : XPathHelper.generate(node);
       if (node instanceof Ci.nsIDOMHTMLInputElement) {
         if (node.type != "file")
           data[id] = node.type == "checkbox" || node.type == "radio" ? node.checked : node.value;
         else
           data[id] = { type: "file", value: node.value };
       }
       else if (node instanceof Ci.nsIDOMHTMLTextAreaElement)

Reply via email to