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)