Closed Bug 299008 Opened 20 years ago Closed 19 years ago

Going back from a XUL error page does not restore form data

Categories

(Core :: DOM: Navigation, defect, P1)

defect

Tracking

()

RESOLVED FIXED
mozilla1.8beta2

People

(Reporter: bugs.caleb, Assigned: Biesinger)

Details

(Keywords: dataloss, regression, Whiteboard: [bs] has patch (biesi), needs review (jst or bryner))

Attachments

(1 file, 1 obsolete file)

It seems that if you type something in a text field (this probably affects other
form elements aswell), go to an invalid website, and then press back and the
text is lost!

This seems to affect both XML parser errors, and XUL error pages.

To reproduce:
1. Open this page https://bugzilla.mozilla.org/show_bug.cgi?id=295732
2. Type anything in the "Additional Comments:" textarea
3. Type blagasfasdfasdfasdf.com in the address bar and press Enter
4. Press back, and the text is gone!

Note: Step 3 results in an XML error, but it should result in a XUL error page
(this is a "bug" with the XUL error pages - missing description of an error or
such).
Flags: blocking1.8b4?
Flags: blocking1.8b3?
Severity: normal → critical
OS: Windows XP → All
(In reply to comment #0)
> It seems that if you type something in a text field (this probably affects other
> form elements aswell), go to an invalid website, and then press back and the
> text is lost!
> 
> This seems to affect both XML parser errors, and XUL error pages.
> 
> To reproduce:
> 1. Open this page https://bugzilla.mozilla.org/show_bug.cgi?id=295732
> 2. Type anything in the "Additional Comments:" textarea
> 3. Type blagasfasdfasdfasdf.com in the address bar and press Enter
> 4. Press back, and the text is gone!
> 
> Note: Step 3 results in an XML error, but it should result in a XUL error page
> (this is a "bug" with the XUL error pages - missing description of an error or
> such).

Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8b2) Gecko/20050628 Maimedbat
Firefox/1.0+

Same result when tested on this build.
Flags: blocking1.8b3? → blocking1.8b3+
Whiteboard: [cb] regression. needs investigation.
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8b2) Gecko/20050628
Firefox/1.0+ ID:2005062808

Testing with a new build that fixes the XML error (now a XUL error page shows up
at step 3).

Note: Bfcache/fastback is _DISABLED_!
Assignee: adamlock → bryner
I see the behavior described in comment 0 as far back as 20050201 on the trunk.
Will test further.
Regression range: Between 2005-01-30 08:00 and 2005-01-31 07:00

http://bonsai.mozilla.org/cvsquery.cgi?treeid=default&module=PhoenixTinderbox&branch=HEAD&branchtype=match&dir=&file=&filetype=match&who=&whotype=match&sortby=Date&hours=2&date=explicit&mindate=2005-01-30+08%3A00&maxdate=2005-01-31+07%3A00&cvsroot=%2Fcvsroot

Bug 157004 fixed the fact that you had to reload an error page to go back to the
previous page using the back button, but it apparently caused this bug.
Flags: blocking1.8b4?
Keywords: regression
biesi, can you take a look please?
Assignee: bryner → cbiesinger
Priority: -- → P1
Target Milestone: --- → mozilla1.8beta2
I do not see this on a page with XML parse errors, only on an error page.
Testcase: type something in this bug's additional comment field, load
data:text/xml,asdf, click back -- text is still there.
Summary: Going back from a XUL error page/XML error results in data loss → Going back from a XUL error page does not restore form data
Attached patch patch (obsolete) — Splinter Review
What's going on is this: Embed saves the form data on the docshell's current
mOSHE.
Embed is called when the document starts loading, which is some time after
LoadErrorPage.
But LoadErrorPage overwrote mOSHE with mLSHE, which means that the form data
was stored on the error page's SH entry.

With this patch, mOSHE gets its new value in Embed.
Attachment #187582 - Flags: review?(jst)
Hardware: PC → All
Whiteboard: [cb] regression. needs investigation. → [bs] has patch (biesi), needs review (jst or bryner)
Status: NEW → ASSIGNED
Comment on attachment 187582 [details] [diff] [review]
patch

r=jst, but I'd love to have either bz or darin look at this too.
Attachment #187582 - Flags: superreview?(bzbarsky)
Attachment #187582 - Flags: review?(jst)
Attachment #187582 - Flags: review+
Comment on attachment 187582 [details] [diff] [review]
patch

sr=bzbarsky if everything (page titles, etc) is still happy.
Attachment #187582 - Flags: superreview?(bzbarsky) → superreview+
Attachment #187582 - Flags: approval1.8b3?
Attachment #187582 - Flags: approval1.8b3? → approval1.8b3+
After applying the patch:

 * Going back from the XUL error page restores the title, etc..
 * The "Try Again" button in the error page re-loads the previous page, and not
the current operation.
(In reply to comment #10)
> After applying the patch:
> 
>  * Going back from the XUL error page restores the title, etc..
>  * The "Try Again" button in the error page re-loads the previous page, and not
> the current operation.
> 

Oh, forgot to mention that it DOES fix this bug.
Attachment #187582 - Flags: approval1.8b3+ → approval1.8b3?
I think the page title comment was more about shistory entries... that the title
bar etc show the right title is really no surprise, that uses different mechanisms.
Comment on attachment 187582 [details] [diff] [review]
patch

hm, yeah. try again does reload the wrong page...

history titles are correct though.

Odd... try again and reload now do different things...
Attachment #187582 - Attachment is obsolete: true
Attached patch fix try againSplinter Review
The mLSHE that referred to the real page load was cleared in InternalLoad; this
patch makes it so that it doesn't get cleared and that thus mOSHE will
eventually refer to the right page.
Attachment #188111 - Flags: superreview?(bzbarsky)
Attachment #188111 - Flags: review?(jst)
Comment on attachment 188111 [details] [diff] [review]
fix try again

sr=bzbarsky, but file a followup bug on checking out geneneral interaction of
bfcache and error pages, ok?  I suspect they don't play nice with each other.
Attachment #188111 - Flags: superreview?(bzbarsky) → superreview+
(In reply to comment #14)
> Created an attachment (id=188111) [edit]
> fix try again

After applying this patch:

1. Go to http://www.betanews.com and wait for it to completely load
2. Type anything in the "search" box on the top-left part of the page
3. Go to http://asjfdaskfhaskjhfkahfhkajhfaksjdfh.com or just show a xul error page
4. Go back

Results:

* With bfcache: the form elemnt is emptied (dataloss)
* Without bfcache: the form element is kept intact

I'd like a confirmation on this!
I'd like to leave bfcache issues to bug 299547. it's not like I know the code..
Comment on attachment 188111 [details] [diff] [review]
fix try again

r=jst
Attachment #188111 - Flags: review?(jst) → review+
Comment on attachment 188111 [details] [diff] [review]
fix try again

this patch makes sure that form info is stored on the right history entry, so
that it can successfully be restored.
Attachment #188111 - Flags: approval1.8b3?
Comment on attachment 188111 [details] [diff] [review]
fix try again

a=bsmedberg for expeditious landing. If this doesn't make the nightlies
tomorrow morning, please check with me or cbeard.
Attachment #188111 - Flags: approval1.8b3? → approval1.8b3+
Checking in docshell/base/nsDocShell.cpp;
/cvsroot/mozilla/docshell/base/nsDocShell.cpp,v  <--  nsDocShell.cpp
new revision: 1.697; previous revision: 1.696
done


should be in time for the nightlies, I assume.
Status: ASSIGNED → RESOLVED
Closed: 19 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: