Closed Bug 125003 Opened 23 years ago Closed 23 years ago

wyciwyg garbage in location.href

Categories

(Core :: DOM: Core & HTML, defect, P2)

x86
All
defect

Tracking

()

VERIFIED FIXED
mozilla1.0

People

(Reporter: bht237, Assigned: radha)

References

Details

(Keywords: testcase, topembed+)

Attachments

(4 files, 2 obsolete files)

Build ID: 2001-02-11-08 top.location.href of a page that is loaded from the network contains a string "wyciwig" in various string positions. Attached testcase demonstrates one such scenario. This brakes all sorts of JavaScript based navigation frameworks.
Attached file Starter page, opens new window (obsolete) —
Hmm... It doesn't reproduce straight from the attachement. Maybe the query string makes a difference. On my local server I get something like: http://localhost/wyciwyg/setter.htm It's strange, sometimes the URL actually starts with wyciwyg. Good luck!
I noticed there is a related bug 123140
Summary: wyciwig garbage in location.href → wyciwyg garbage in location.href
related to the point of being the same bug. :) *** This bug has been marked as a duplicate of 123140 ***
Status: UNCONFIRMED → RESOLVED
Closed: 23 years ago
Resolution: --- → DUPLICATE
Attachment #69023 - Attachment is obsolete: true
Attachment #69025 - Attachment is obsolete: true
wyciwyg is a protocol that saves all data in a document.write() in the cache, and restores it back when the user does a back/forward/go/reload on such pages. It is not designed and does not break all sorts of javascript based navigation in framesets. Prior to the implementation of wyciwyg, all session history related navigations to such pages were broken. wyciwyg stands for "What you cache is what you get".
Radha, Thanks for the explanation. I understand what you are saying. But I did not want to imply that wyciwyg per se breaks anything. What is breaking JavaScript-based navigation is the following: If after the onLoad event of a document that comes from the network (not document.write), its location.href is still the old wyciwyg pseudo URL of the previous document that was in the same window/frame then things are going to break. This is what the testcase attempts to demonstrate and nothing else.
This is not a duplicate of bug 123140. Please read my comments in both bugs. This is about a data corruption that may be caused by a racing condition.
Status: RESOLVED → UNCONFIRMED
Resolution: DUPLICATE → ---
i see this on linux too, build 2002-02-06-09 when a new window is opened. Confirming bug
Severity: critical → normal
Status: UNCONFIRMED → NEW
Ever confirmed: true
OS: Windows 95 → All
setting priority to P4
Priority: -- → P4
Sivakiran, do you actually see the wyciwyg string as part of the alert in the onload of the loaded file?
Over to radha for further investigation.
Assignee: jst → radha
I will download the testcases to my local machine and see the problem. I will be attending to my nsbeta1+ nominations first, before I can get to this.
Status: NEW → ASSIGNED
Target Milestone: --- → mozilla1.0
i see as if it is a protocol. wyciwyg://0/rest_of_the_url.
blocks bug 102341. Added Brendan in cc list; maybe he can allocate additional resources. My estimate is that a quick solution of this can avoid many headaches because its consequences are erratic and difficult to analyse in some cases.
Blocks: 102341
Severity: normal → blocker
I don't understand how this bug can block 102341. I read some of the latest comments in that bug. Is there no other testcases to verify that bug 102341 is indeed fixed?
Radha, in the Mozilla development environment, there is no dependency and you are of course right. There is indeed a testcase for that other bug and it _appears_ to be fixed. However, _this_ bug blocks all of my Mozilla testing activities that are not limited to testcases. A testcase pass is not the final proof that a bug is fixed. That would assume there are no bugs in testcases. Testcases are essential tools and I wouldn't submit a bug without one. I make them for you not for me. But I cannot make testcases without using Mozilla on real world sites (and that is what I do most of the time). With the Mozilla 1.0 target of this bug I am obviously getting to a stage where I cannot detect new bugs any longer before this critical milestone. I don't think that this is in anybody's interest. I am afraid to say that the best proof for this logic is _this_ bug. It is highly critical however there are no duplicates AFAIK, that means it is ahead of other developments considering the uncertainties around bug 123140. You should take advantage of me, really, and get this fixed asap and not milestone dependent.
Priority: P4 → P2
wyciwtyg related. Need to be fixed for 1.0
Keywords: nsbeta1, topembed
This will be fixed for 1.0 as targeted.
we need to be sure we're not exposing wsciwyg URLs.
I saved the testcase attachments is 69026 and 69027 in to my local machine. I click on "Open new window". The new window comes up, shows the wyciwyg:// stuff on the urlbar when "Please wait :)" is showing up on the screen. When the onloadHandler kicks in and http://bugzilla.mozilla.org/attachment.cgi?id=69026&action=view is loaded. The alert pops up showing, "http://bugzilla.mozilla.org/attachment.cgi?id=69026&action=view" in the dialog. Beatrix, Am I missing something in reproducing this bug from my local machine? You mentioned something like the testcase had to be modified. What should be modified to see the bug? What sivakiran is talking about is bug 123140. Once I change the code to strip out wyciwyg from the urlbar, that will be fixed.
Hi Radha, Thanks for testing. I repeated my local test and the error does not reproduce anymore. Let me suggest to close this. It appears that bug 102341 blocks my testing at this stage so the sooner that gets fixed the better. I think the testcase in bug 102341 covers things fairly well.
bht: 102341 is already fixed? You mean 125225 or 123140.
I can't reproduce this anymore. per bht's message above, i'm closing this out.
Status: ASSIGNED → RESOLVED
Closed: 23 years ago23 years ago
Resolution: --- → WORKSFORME
i can reproduce this on today's build 02-27-08 linux
Status: RESOLVED → REOPENED
Resolution: WORKSFORME → ---
Depends on: 123140
sivakiran: Can you explain what you can reproduce? wyciwyg:// appearing in hte beginning or the alert dialog in the test case attached shows a wyciwyg:// url in the urlbar.
wyciwyg://0// appearing in the URL. The testcase i used is http://bubblegum/ngdriver/suites/dom-html/hdoc027.html
That problem is addressed by bug 123140, which is still open and waiting for reviews.
This is indeed WFM.
Status: REOPENED → RESOLVED
Closed: 23 years ago23 years ago
Resolution: --- → WORKSFORME
New tescase reproduces errors at all times. Tested with build 2002030804, 0.9.9 branch. Note that this testcase succeeds with all browsers that I know of, including Netscape 3.
I am re-opening this bug after a new testcase is available that reproduces the error 100%.
Status: RESOLVED → REOPENED
Resolution: WORKSFORME → ---
Isn't this bug the same as bug 125225 ? The last testcase posted seems to reflect exactly the behaviour reported in 125225 ("parent frame URL changes to "wyciwyg://0//..." after using document.write in an iframe/subframe")
Pedro, I first thought the same as you did. But according to the description of bug 125225 ('URL bar changed to "wyciwyg://0//...'), bug 125225 bug is only concerned with what is shown in the URL bar and not with the corrupted data in window.location.href. To back up this logic: Bug 123140 was closed after the URL bar symptom was fixed although it has testcases that still fail. From that I conclude that we need a bug for each of the symptoms and one bug for the cause of the symptoms which is this bug.
I'm working on a fix for 125225 that will take care of location.href corruption as well wyciwyg://showing up on urlbar for frame changes.
Blocks: 130557
Blocks: 130655
I ran the latest testcase here with my patch to bug 125225. I get the dialog that says, "Success: URLs unchanged after docuemnt.write()"
Thanks Radha. This is extremely good news. I made the tescase as tough as I could and success should mean success on all levels. You can increase the number of levels in the js code beyond 6 frameset nesting levels. I can't wait for the next build to test real world sites - and things should be ok unless the testcase has a bug.
I suspect that there is a small reporting error in the testcase. After loading the testcase, if I press reload or go elsewhere and press back, the dialog says failure and gives details. But in all the detail dialogs, the value it shows for thisGoodURL, topResultURL and thisResultURL are all same and it is the top url of the page. I don't know if that means real failure or success. I haven't debugged further.
Radha, First thanks for this "extended" test. I think this is a separate issue and I am surprised that Mozilla does not crash on it. IMHO all browsers seem to have a problem with this extended test. If you don't mind, here is my best guess, partly based on painful experience with Netscape 4 and most other major browsers: If I start using the browser's history to navigate through framesets that contain generated pages, then the following may happen: If generated pages are fetched from the cache as generated content instead of being regenerated exactly as at the first time, then the sequence in which they are loaded into frames is (from experience) different. Consequently, any JavaScript code, that depends on a predetermined sequence such as hierarchical onload events, fails and causes unexpected results. If you run this testcase from the cache, i.e. loading it via the Back button, then you get these errors. Netscape 4.7 crases this way. IE4 fails but does not crash. You can possibly use this testcase to verify Mozilla behavior in an area where other browser manufacturers have not gone yet. I know that I had to write a JavaScript based history module to bybass these errors. What I did not know and this is the first time I see this, is that such errors are possible even when the file is loaded from the local file system. Generally, the behavior of the testcase should not be different if loaded via the back button. Specifically, from what I can see in IE4, a parent onLoad event fires later than a child onload event so that getGoodURL() returns an undefined goodURL value. So far I cannot see that there is a bug in the testcase. On the other hand the problem may be an onload event handler issue that has nothing to do with this bug (top.location.href and wyciwyg).
The new testcase includes reporting of top.goodURL on all levels. I cannot verify against the latest patches because I cannot compile Mozilla. But I guess it may explain failure when used with the back button.
Many thanks Radha, I am very happy about the result after esting of some public internet sites.
Status: REOPENED → RESOLVED
Closed: 23 years ago23 years ago
Resolution: --- → FIXED
verified fixed, build 2002-03-18-09
Status: RESOLVED → VERIFIED
Component: DOM: Core → DOM: Core & HTML
QA Contact: stummala → general
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: