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)