Closed
Bug 103850
Opened 23 years ago
Closed 23 years ago
accept license agreement to go to next page failed [form sub]
Categories
(Core :: DOM: Core & HTML, defect)
Tracking
()
VERIFIED
WORKSFORME
mozilla0.9.9
People
(Reporter: jiang_wq, Assigned: radha)
References
()
Details
Attachments
(2 files)
(deleted),
text/html
|
Details | |
(deleted),
patch
|
adamlock
:
review+
darin.moz
:
superreview+
|
Details | Diff | Splinter Review |
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (Windows; U; WinNT4.0; en-US; rv:0.9.5+) Gecko/20011009
BuildID: 20011009
I click on "accept" button for some lisence agreement
to download something, but I got the very same lisence
agreement again. Can't advance to next page.
Reproducible: Always
Steps to Reproduce:
1.go to http://java.sun.com
2.click "products & APIs" in left column
3.click "Java 2 Platform, Standard Edition(J2SE)
4.click on "Java 2 SDK, Standard Edition, v1.3.1"
5.click on "Microsoft Windows"
6.scroll down to find button "continue" and click it
7.The lisence agreement appears. Scroll down to end
of page and click on "accept" button.
8.The next page is still the lisence agreement.
But if you use IE, it will be another page containing
"ftp download" button.
Comment 1•23 years ago
|
||
Confirmed on W2K 2001100903.
Intriguingly, once you click the accept button, a reload of the page--it'll ask
if you want to repost the FORMDATA, say 'Yes'--will display the proper download
page. It looks like Moz may be caching the webpages too aggressively, so it's
not updating when the current page changes.
Comment 2•23 years ago
|
||
confirming with win2k build 20011009..
-> Form submission
Assignee: asa → rods
Status: UNCONFIRMED → NEW
Component: Browser-General → Form Submission
Ever confirmed: true
QA Contact: doronr → vladimire
Comment 3•23 years ago
|
||
Summary: accept lisence agreement to go to next page failed → accept license agreement to go to next page failed
Comment 5•23 years ago
|
||
*** Bug 104605 has been marked as a duplicate of this bug. ***
Comment 6•23 years ago
|
||
workaround from the dupe :
click the "accept" button, mozilla goes to the top of that page
Press the reload button in Mozilla. A Mozilla dialog about resubmitting forms
will appear. Click OK. Now, the downloadpage will be loaded.
Comment 7•23 years ago
|
||
I see this problem on Linux, and since it's in form submission, it should be
safe to assume the bug occurs on all OS's.
Updated•23 years ago
|
OS: Windows NT → All
Comment 8•23 years ago
|
||
*** Bug 104870 has been marked as a duplicate of this bug. ***
Comment 9•23 years ago
|
||
from n.m.o.qa.browsers:
>This workaround seems to confirm that it's a cache problem. If you set
> your cache settings (Edit/Preferences, then choose Advanced / Cache) to
> "Every time I visit this page", you can get past the blockage.
Comment 10•23 years ago
|
||
gordon, any idea on what could cause this type of cache issue?
Comment 11•23 years ago
|
||
cc'ing darin for an HTTP perspective.
Comment 12•23 years ago
|
||
*** Bug 105081 has been marked as a duplicate of this bug. ***
Comment 13•23 years ago
|
||
*** Bug 105269 has been marked as a duplicate of this bug. ***
Updated•23 years ago
|
Summary: accept license agreement to go to next page failed → accept license agreement to go to next page failed [form sub]
Comment 15•23 years ago
|
||
*** Bug 105849 has been marked as a duplicate of this bug. ***
Comment 16•23 years ago
|
||
*** Bug 105942 has been marked as a duplicate of this bug. ***
Comment 17•23 years ago
|
||
*** Bug 106171 has been marked as a duplicate of this bug. ***
Comment 18•23 years ago
|
||
*** Bug 105089 has been marked as a duplicate of this bug. ***
Comment 19•23 years ago
|
||
Comment from bug 105089:
A shift+reload gets you to the download page.
ccing radha
Comment 20•23 years ago
|
||
In my testing, it definitely seemed to be a cache problem: This failure happens
only when the cache checking interval is set to "Automatic"; setting the
interval to "Check every time" or "Once per session" or "Never" allows the
servlet/forms to work correctly. Presumably the "Automatic" setting isn't
recognizing that the current page was the result of a POST, and thus changing
the POST parameters (and POSTing to the same URL) might result in a completely
different page.
Comment 21•23 years ago
|
||
the problem resides in the action href of both forms - the one that's submitted
with "continue", then the one that's submitted with "accept:
...
<FORM ACTION="/Download5" METHOD="POST">
...
<INPUT TYPE="SUBMIT" NAME="button" VALUE="continue">
...
and
...
<FORM ACTION=/Download5 METHOD=POST>
...
<INPUT TYPE=SUBMIT NAME=button VALUE="ACCEPT">
<INPUT TYPE=SUBMIT NAME=button VALUE="DECLINE">
...
As you can see the action is the same in both cases. Obviously SUN is using the
same script for handling all POST's (what is legal) but MOZ is caching the
answer to the first submission and it pulls it out of the cache by the second
submission be cause it is seeing the same HREF. (internaly MOZ is handling form
submission in the same way it handles clicks on links, but in this case is also
sending the POST values).
Comment 22•23 years ago
|
||
i think that a solution would be to ignore the cache hits in case of form
submission. in the most cases (except the rare situation where the same values
are used for a form twice and the answer is time independent) the use of cache
content while while submitting forms does not make sense.
- working on it seems to be a very important issue -
Assignee | ||
Comment 23•23 years ago
|
||
cc'ing darin. I think the problem here is, having the same url for both forms as
well as same postdata? Cache is capable of distinguishing 2 identical urls with
different postdatas. If what alexsavulov says is right, we might need better
mechanisnm in cache to distinguish such cases. However, I will see what happens
in docshell in this case.
Comment 24•23 years ago
|
||
No, HTTP can distinguish two different POSTs to the same URL, even if they have
the same data. We use an ID that is (now) initialized to the current date (in
seconds I believe) and incremented for each POST. The only way to retrieve the
results from the cache is with the URL and the ID, so each entry would be distinct.
Comment 25•23 years ago
|
||
I have an apache with mod_expires turned on and I experimented with the
following directives:
ExpiresActive on
ExpiresDefault "access plus 1 year"
and is reproductible even though
<meta HTTP-EQUIV="Pragma" CONTENT="no-cache">
is included in the HTML response.
Seems that IE ignores the HTTP field "expires" because is working correctly no
matter what the server sends.
(the test environment server serves an PHP script that has a form with an action
that references the same script where is contained).
Comment 26•23 years ago
|
||
BTW: it works with NS6.1
Comment 27•23 years ago
|
||
FWIW: this isn't a problem on the 0.9.4 branch.
with a 2001-10-17 linux build i can confirm this bug. and once i get to the
license page, i can get "unstuck" by clearing my cache and again pressing ACCEPT.
then the FTP page comes up. so, this definitely looks like a cache problem.
the correction to the PostID initialization was done on 10/22, but i have my
doubts about whether that problem is related.
there are a couple of things that could cause this bug. the most obvious one
being that it could be that docshell is setting an old CacheKey on the new
channel which would result in retrieving the POST results from the cache. i'm
not sure how this matches up to the fact that this only happens when the cache
validation pref is set to AUTOMATICALLY. anyways, once i have a debug build,
i'll be able to confirm what's actually going on here.
Comment 28•23 years ago
|
||
UPDATE:
be cause SUN has
<meta HTTP-EQUIV="Pragma" CONTECNT="no-cache">
(please note the misspelling of CONTENCT)
the bug is reproductible, no matter which kind of caching is turned on:
AUTO..., ONCE..., NEVER
Using CONTENT, the bug is reproductible only for:
ONCE..., NEVER
Comment 29•23 years ago
|
||
*** Bug 106519 has been marked as a duplicate of this bug. ***
Comment 30•23 years ago
|
||
Thanks all you for your hints. When I switch off the cache (ie, set it to ""Every
time I visit this page") the accept button works as expected, therefore I tend to
agree that it is a cache probem. Also thanks for the hint to use Shift+Reload:
This works, too!
And I confirm that the problem occurs with
the Linux RPMs for Red Hat 7.x under
- SuSE Linux 7.2 German
- SuSE Linux 7.3 German
and the Windows version under
- Windows NT 4.0 German with Service Pack 6.
Regards
Peter
Comment 31•23 years ago
|
||
*** Bug 105605 has been marked as a duplicate of this bug. ***
Comment 32•23 years ago
|
||
This workaround met with 100% success on Windows 98SE, build 2001102309:
http://java.sun.com/j2se/1.3/jre/download-windows.html
Click begin US version
Click ACCEPT
Click Refresh and repost form data.
Click HTTP Download
Click Refresh and repost form data.
Would it be a good idea to add the word Java to the subject? When searching
for this bug, I found bug 56780 instead of this one. Does this block 56780?
Comment 33•23 years ago
|
||
This bug does not have anything to do with Java!!!
Please don't add Java to any of the fileds of this bug report.
Adding Java to the fields of this bug would disturb the work of our QA troops.
If you want to publish the workaround for the existing mozilla versions, please
use mozillanews, #mozilla, news groups or whatever is best suitable to make this
workaround public.
thx
Comment 34•23 years ago
|
||
*** Bug 106446 has been marked as a duplicate of this bug. ***
Comment 35•23 years ago
|
||
*** Bug 107238 has been marked as a duplicate of this bug. ***
Comment 36•23 years ago
|
||
*** Bug 102245 has been marked as a duplicate of this bug. ***
Comment 37•23 years ago
|
||
who is in charge of generating the cache keys on cache channels?
this causes the problem here because the cache key mechanism works like this:
nsDocShell::AddToSessionHistory(nsIURI * aURI,
nsIChannel * aChannel, nsISHEntry ** aNewEntry)
{
...
if (cacheChannel) {
cacheChannel->GetCacheKey(getter_AddRefs(cacheKey));
...
// the next time we access the same URL:
nsresult nsDocShell::DoURILoad(nsIURI * aURI,
nsIURI * aReferrerURI,
nsISupports * aOwner,
nsIInputStream * aPostData,
nsIInputStream * aHeadersData)
{
...
else if (mOSHE) // for reload cases
mOSHE->GetCacheKey(getter_AddRefs(cacheKey));
// that retrieves the same cache key set previously and so
...
if (cacheChannel && cacheKey)
cacheChannel->SetCacheKey(cacheKey, cacheFlag);
// sets the same cache key for the next POST and this will go forever
Only the first time it works, as long as there is no cache key set yet.
If I change the code to:
if (cacheChannel && cacheKey) {
nsCOMPtr<nsISupportsPRUint32>
container = do_QueryInterface(cacheKey, &rv);
if (NS_FAILED(rv)) return rv;
PRUint32 post;
rv = container->GetData(&post);
post++; // increment the ID
rv = container->SetData(post);
cacheChannel->SetCacheKey(cacheKey, cacheFlag);
}
it works
I need some explanations guys, coz I'm not a cache expert :-)
Comment 38•23 years ago
|
||
interesting... http generates a unique cache key for each POST request. however,
if docshell assigns a cache key to a http channel, the http channel will use the
passed in cache key. docshell is not supposed to know the structure of the
cache key... docshell is only supposed to set the cache key when going back or
forward.
it sounds like the problem may be that docshell is setting the cache key for
normal loads. can someone confirm this? radha?
Assignee | ||
Comment 39•23 years ago
|
||
I think that is what is going on. I think this is a regression happened as part
of my checkin for bug 89309 in v. 1.357 of docshell. I think changing the last
part of code to
if (cacheChannel && cacheKey) {
if (mLoadType == LOAD_HISTORY || mLoadType == LOAD_RELOAD_CHARSET_CHANGE)
cacheChannel->SetCacheKey(cacheKey, PR_TRUE);
else if (mLoadType == LOAD_NORMAL_RELOAD)
cacheChannel->SetCacheKey(cacheKey, PR_FALSE);
}
will fix the problem here.
Comment 40•23 years ago
|
||
Yes it works, but the POST ID is not changing between different post.
If the ID is meant to be generated once per form access and not after every
POST, I would suggest we apply the patch.
Any suggestions, oppinions?
Comment 41•23 years ago
|
||
radha: i don't think we should be setting a cachekey for normal loads. it just
doesn't make sense. doing so would wipe out old cache entries, and making going
back not produce the old form post results. we should only set a cachekey when
loading for back/forward.
Comment 42•23 years ago
|
||
oh... i forgot to mention:
else if (mLoadType == LOAD_NORMAL_RELOAD)
is not working (LOAD_NORMAL_RELOAD unknown)
so i used:
else
Assignee | ||
Comment 43•23 years ago
|
||
Darin: I agree with you. CacheKey was getting set for only back/forward and
reloads only. But this behavior was broken when I fixed 89309. Now with the
suggestion I have made, we will re-instate the proper (old) behavior and take
care of 89309. I don't understand this post id that Alex is mentioning. Can you
comment on it.
Assignee | ||
Comment 44•23 years ago
|
||
Alex: You can not use just 'else'. it should be
else if (LOAD_RELOAD_NORMAL).
I will post a better patch soon.
Comment 45•23 years ago
|
||
ok.. i was a bit confused: LOAD_NORMAL_RELOAD can set a cacheKey since we'll be
reloading the page... it doesn't matter that the post ID is not incremented in
this case because the data is going to be replaced.
Comment 46•23 years ago
|
||
radha: do you want to take over this bug?
if you need a test page try:
http://206.222.241.94/multiform.php
(is my LINUX machine that provides a php script that generates a form after
every post, referencing itself in the "action". the HTTP field "expires" is set
to access + 1 y)
Assignee | ||
Comment 47•23 years ago
|
||
Taking over from Alex. Thanks for the debugging.
Assignee: alexsavulov → radha
Target Milestone: --- → mozilla0.9.6
Comment 48•23 years ago
|
||
*** Bug 107728 has been marked as a duplicate of this bug. ***
Comment 49•23 years ago
|
||
would this cover the jakarta bug?
Assignee | ||
Comment 50•23 years ago
|
||
Assignee | ||
Updated•23 years ago
|
Status: NEW → ASSIGNED
Comment 51•23 years ago
|
||
Comment on attachment 55951 [details] [diff] [review]
Patch to docshell
sr=darin (looks good to me)
Attachment #55951 -
Flags: superreview+
Comment 52•23 years ago
|
||
radha: one question... will the user still be prompted to rePOST data if they
press the reload button? or does SetCacheKey(cacheKey, FALSE) preclude this?
Assignee | ||
Comment 53•23 years ago
|
||
darin: Yes. User will be prompted with the repost dialog, if they pressed
reload on a post result page.
Comment 54•23 years ago
|
||
*** Bug 107711 has been marked as a duplicate of this bug. ***
Attachment #55951 -
Flags: review+
Comment 55•23 years ago
|
||
Comment on attachment 55951 [details] [diff] [review]
Patch to docshell
Looks good to me, r=adamlock
Assignee | ||
Comment 56•23 years ago
|
||
Fix checked in.
Status: ASSIGNED → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
Comment 57•23 years ago
|
||
*** Bug 108333 has been marked as a duplicate of this bug. ***
Comment 58•23 years ago
|
||
*** Bug 108971 has been marked as a duplicate of this bug. ***
Comment 59•23 years ago
|
||
*** Bug 109384 has been marked as a duplicate of this bug. ***
Comment 60•23 years ago
|
||
*** Bug 109882 has been marked as a duplicate of this bug. ***
Comment 61•23 years ago
|
||
*** Bug 109951 has been marked as a duplicate of this bug. ***
Comment 62•23 years ago
|
||
*** Bug 108721 has been marked as a duplicate of this bug. ***
Comment 63•23 years ago
|
||
*** Bug 110782 has been marked as a duplicate of this bug. ***
Comment 64•23 years ago
|
||
*** Bug 113254 has been marked as a duplicate of this bug. ***
Comment 65•23 years ago
|
||
The problem still happens for the linux version downloads under
java.sun.com/j2se. Reopen the bug.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Assignee | ||
Updated•23 years ago
|
Target Milestone: mozilla0.9.7 → mozilla0.9.9
Comment 67•23 years ago
|
||
WFM Linux 2002011808. I can get all the way through the Linux J2SE JRE
download, from start to finish (including license).
Please confirm.
Comment 68•23 years ago
|
||
WFM with 2002-01-20-16 on Linux. I could pass the license page for both the
Windows download and Linux download of jdk 1.3.1 as well as 1.4 beta. I used to
see this bug before, but it seams to be definately gone now.
Comment 69•23 years ago
|
||
marking worksforme per comments.
Status: REOPENED → RESOLVED
Closed: 23 years ago → 23 years ago
Resolution: --- → WORKSFORME
Comment 70•23 years ago
|
||
The problem has definitely disappeared in recent version --- my thanks to thedevelopers! Specifc: In the 0.9.7 release it works as expected. Peter
Comment 71•23 years ago
|
||
verifying on win98 2002-01-29-03-trunk and linux 2002-01-28-08-trunk
Status: RESOLVED → VERIFIED
Assignee | ||
Comment 72•23 years ago
|
||
Nominating for 0.9.4 branch. we need this patch in the 9.4 branch to take care
of some serious siebel problems(see bug 128379) I have a tree with this patch
ready to go. This has baked in the trunk for almost 3 months. I would like to
check this into 0.9.4 branch today. Sun has also verified that this patch fixes
their problem.
Updated•6 years ago
|
Component: HTML: Form Submission → DOM: Core & HTML
You need to log in
before you can comment on or make changes to this bug.
Description
•