Closed Bug 68950 Opened 24 years ago Closed 24 years ago

resource://MagicVar/ broken

Categories

(Core :: Networking, defect)

x86
Linux
defect
Not set
normal

Tracking

()

VERIFIED FIXED
mozilla1.0

People

(Reporter: akkzilla, Assigned: darin.moz)

References

()

Details

(Keywords: testcase)

There used to be some special codes, enumerated in http://lxr.mozilla.org/seamonkey/source/netwerk/protocol/res/src/nsResProtocolHandler.cpp#94 such that resource://MagicVar/blah mapped to special things, e.g. resource://TempDir/foo.html would have looked in the system's temp dir. This no longer works. (This is being split off from bug 12911, where there's lots of discussion about this.) Initially giving to Conrad because he owns bug 12911, but it's really a netlib issue.
Here's why it doesn't work (copied from bug 12911): First, the MagicVar is being treated as a hostname and case folded, so it no longer matches the key in the hash table. If you add tempdir as well as TempDir in nsResProtocolHandler.cpp, what happens is that nsResChannel::AsyncRead calls EnsureNextResolvedChannel, which correctly maps the url to file:///tmp/..., then AsyncRead does mResolvedChannel->AsyncRead, then while we're waiting for the read, EnsureNextResolvedChannel gets called again many more times from nsResChannel::GetLocalFile (and perhaps from other routines), and this time it doesn't find the right match, probably because mCurrentIndex is now wrong inside Next. This I think causes mResolvedChannel, which was set correctly before, to get reset to null, so the actual load of the url fails (but there's no error message because netlib now thinks it never had a url to load at all).
Blocks: 12911
Setting milestone. If somebody wants this sooner let me know.
Status: NEW → ASSIGNED
Target Milestone: --- → mozilla1.0
mass move, v2. qa to me.
QA Contact: tever → benc
Darin made things better in netwerk/protocol/res, as far as the mResolvedChannel sticky-bad state commented on by akkana here. However, the case-folding may still be a problem. /be
i assume that "case folding" means making things lowercase... if so, then that should be the only remaining bug here. ccarlen: i can take this bug if you like.
-> darin
Assignee: ccarlen → darin
Status: ASSIGNED → NEW
FIXED by my checkin for bug 99410
Status: NEW → RESOLVED
Closed: 24 years ago
Resolution: --- → FIXED
Can someone give me a test case, perhaps tell me where TempDir is for the main three platforms?
Keywords: verifyme
benc: depends greatly on your personal settings, but... XP_UNIX - $TMPDIR or /tmp XP_WIN - whatever the WIN32 GetTempPath() call returns (probably c:\windows\temp or c:\temp ??). may depend on your environment vars. XP_MAC - usually a hidden directory called "Temporary Folder" in your first volume.
I'm going to verify against resource://TempDir/foo.html, but someone is going to have to translate if they want me to do anything else. VERIFIED: mozilla 1.1 Mac OS X - UNIX path is /private/tmp/<UID>/Temporary Items
Keywords: testcase
Whiteboard: checkwin checklinux
VERIFIED: mozilla 1.2, Win98 looks like it is the target of "TEMP="
Keywords: verifyme
Whiteboard: checkwin checklinux → checklinux
VERIFIED: linux. directory maps to -> file:///tmp/
Status: RESOLVED → VERIFIED
Whiteboard: checklinux
You need to log in before you can comment on or make changes to this bug.