Closed Bug 68950 Opened 24 years ago Closed 23 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: 23 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.