Closed
Bug 77337
Opened 24 years ago
Closed 22 years ago
[FIX]view-source: does not allow viewing of many text files
Categories
(Core :: DOM: HTML Parser, defect, P2)
Tracking
()
VERIFIED
FIXED
mozilla1.2beta
People
(Reporter: tpowellmoz, Assigned: bzbarsky)
References
Details
(Keywords: arch)
Attachments
(1 file, 1 obsolete file)
22.50 KB,
patch
|
jst
:
review+
darin.moz
:
superreview+
|
Details | Diff | Splinter Review |
On the 2001042304 WinNT build, you can add view-source: in front of URLs to
attempt to view the source of a page. However, it apparently only supports
viewing of HTML files. JavaScript files (.js), Cascading Style Sheets (.css),
XML and other files that have a mime type of text/something get prompted to
download. This severely limits the usefulness of view source.
Expected Result:
view-source: of a text file should be shown.
Actual Result:
Mozilla prompts for download and does not show the source.
Comment 1•24 years ago
|
||
Cc:ing Vidur, Jud and Rick for thier input.
Assignee | ||
Comment 2•24 years ago
|
||
bug 76671 is about viewing source of text/sgml specifically.
I just played with this. XML files workforme -- I get the source. We _do_ fail
for text/css and text/plain. As for .js, that should be served as
application/x-javascript.... so it's not really a text type. But we could try
to show it anyway, I suppose....
The relevant code seems to be at
http://lxr.mozilla.org/seamonkey/source/htmlparser/src/nsViewSourceHTML.cpp#390
and
http://lxr.mozilla.org/seamonkey/source/htmlparser/src/nsParser.cpp#1065
Reading that, it _looks_ like CSS and text/plain should work, being valid
(though not primary) detects....
Comment 3•24 years ago
|
||
In Communicator view-source: allowed you to view ANYTHING as text.
Of course, it would still attempt to highlight HTML tags :-)
Reporter | ||
Comment 4•24 years ago
|
||
Just to clarify, I tried to view an XSL file. This caused Mozilla to prompt for
download and reported that the mimetype was text/xml. So I couldn't view this
type of xml file. Regular xml files may be okay.
JavaScript as application/x-javascript? I've seen it as text/javascript quite a
bit. In either case, it's a text file and should be viewable.
I'm sure there's other types that should also be supported. I just picked the
main ones that I miss.
Added 4xp keyword. As Neil points out, this worked in communicator 4 with
pretty much any text file. Proposing for mozilla 0.9.1 since the lack of this
feature makes it more difficult for web developers.
Keywords: 4xp,
mozilla0.9.1
Comment 5•24 years ago
|
||
I think this should be fixed soon too. Is it well-assigned? Maybe someone
could debug a bit and see where things go awry? I'll try to get to it after the
0.9 madness ends.
/be
This should be easy to fix. Will take a look.
Status: NEW → ASSIGNED
Comment 8•24 years ago
|
||
getting the downloading/helper app dialog also occurs when trying to view source
of image files [might be a different bug?].
The docshell is failing to create a content viewer for
conten-type:application/x-javascript.
Rick?
Assignee | ||
Comment 10•24 years ago
|
||
I think the reason the "regression" keyword was there is that text/plain at
least used to work and no longer does.
Keywords: regression
Assignee | ||
Comment 11•24 years ago
|
||
I have a patch attached to bug 77080 that allows loading of text/plain (again),
text/css, text/javascript, and application/x-javascript in view source.
However, that only works in a debug build. In an optimized build it fails for
some reason for application/x-javascript.
Note that a fix that will work for all text/* types will have to be a little
more clever than what we do now.
Comment 12•24 years ago
|
||
Boris: Do you think I should mark this bug a dup of 77080?
Assignee | ||
Comment 13•24 years ago
|
||
Well, to me this bug sounded like an rfe to let viewsource of _all_ text/*
types... tpowell@databeam.com, is that the case? If not, then it's a dup --
bug 77080 implements viewing text/plain, various xml/xul types, JS, and CSS in
viewsource.
Reporter | ||
Comment 14•24 years ago
|
||
Boris: Yes, this bug is about view-source support for all text/* files. XSL
files (text/xml) are not currently shown, for example. View-source should
support pretty much any text file, such as program source code (perl .pl, .pm,
C++ .cpp, .c, etc.) Of course, most of these should also display in the browser
as plain text, so view-source should be basically the same thing.
Assignee | ||
Comment 15•24 years ago
|
||
Adding dependecy. Should be looked at once 77080 is fixed.
Depends on: 77080
Assignee | ||
Comment 16•24 years ago
|
||
OK. bug 77080 is fixed now. What sort of files do we currently _not_ load in
viewsource that we should?
Comment 17•24 years ago
|
||
*** Bug 82369 has been marked as a duplicate of this bug. ***
Comment 18•24 years ago
|
||
*** Bug 82182 has been marked as a duplicate of this bug. ***
Updated•23 years ago
|
Priority: -- → P2
Comment 19•23 years ago
|
||
*** Bug 86090 has been marked as a duplicate of this bug. ***
Comment 20•23 years ago
|
||
I don't know the best place to mention it but I would like the view source
window to work for mail messages as well. I tried changing line 446 of
mailCommands.js from getBrowserURL() to
"chrome://navigator/content/viewSource.xul" but I just got a wierd invalid MIME
type dialog - Mozilla didn't have a clue :-(
Assignee | ||
Comment 21•23 years ago
|
||
neil, what mime type did it come up with for the message?
Comment 22•23 years ago
|
||
*** Bug 91666 has been marked as a duplicate of this bug. ***
Comment 23•23 years ago
|
||
*** Bug 92187 has been marked as a duplicate of this bug. ***
Comment 24•23 years ago
|
||
Boris: message/rfc822; x-view-type=view-source
Comment 25•23 years ago
|
||
Another example: bugzilla buglists! e.g.
http://bugzilla.mozilla.org/buglist.cgi?bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=greenrd%40hotmail.com&emailtype2=substring&emailreporter2=1&bugidtype=include&bug_id=&changedin=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=allwordssubstr&long_desc=&long_desc_type=allwordssubstr&bug_file_loc=&bug_file_loc_type=allwordssubstr&status_whiteboard=&status_whiteboard_type=allwordssubstr&keywords=&keywords_type=anywords&field0-0-0=noop&type0-0-0=noop&value0-0-0=&cmdtype=doit&order=Reuse+same+sort+as+last+time
lynx reports headers as:
HTTP/1.0 200 OK
Date: Mon, 20 Aug 2001 23:08:05 GMT
Server: Apache/1.3.19 (Unix) mod_throttle/3.1.2
Content-disposition: inline; filename=bugzilla_bug_list.html
Set-Cookie:
LASTORDER=bugs.bug_status%2C%20bugs.priority%2C%20map_assigned_to.login_name%2C%20bugs.bug_id
; path=/; expires=Sun, 30-Jun-2029 00:00:00 GMT
Set-Cookie: BUGLIST=95941:95942:96131:91968:96124:81772:96120:89309:76799:92329
Content-Type: text/html
X-Cache: MISS from wwwcache.lancs.ac.uk
X-Cache-Lookup: MISS from wwwcache.lancs.ac.uk:8080
Proxy-Connection: close
Content-type is text/html so it may be necessary to reopen bug 86090 or file a
new bug for this case. However, I'm no expert - please tell me what to do.
Assignee | ||
Comment 27•23 years ago
|
||
Robin: probably bug 76816 is what you're seeing.
Comment 28•23 years ago
|
||
The original bug is a dup of bug #56898.
Comment 29•23 years ago
|
||
Cannot view source of eBay auction item pages, such as:
<http://cgi.ebay.com/aw-cgi/eBayISAPI.dll?ViewItem&item=1654096985>
Type is:
application/x-unknown-content-type
Is this the same bug?
Comment 30•23 years ago
|
||
the reason that this is failing is because the content type is *not*
"allication/x-unknown-content-type" it is "application/x-unknown-content-type;
x-view-type=view-source"
unfortunately, we *only* have a content converted registered to handle
x-unk-content-type *not* with the 'x-view-type' extension :-(
So, somehow we need to educate the stream converter service about this
content-type syntax.
-- rick
Comment 31•23 years ago
|
||
Bugs targeted at mozilla1.0 without the mozilla1.0 keyword moved to mozilla1.0.1
(you can query for this string to delete spam or retrieve the list of bugs I've
moved)
Target Milestone: mozilla1.0 → mozilla1.0.1
Comment 32•23 years ago
|
||
When I try to view source of a message whose message-id ends in .com, then
choose view-source from the context menu, Mozilla asks me to save the .com file :-)
Comment 33•23 years ago
|
||
*** Bug 118096 has been marked as a duplicate of this bug. ***
Comment 34•23 years ago
|
||
As this was AutoMoved (tm) to a post 1.0 milestone, and Brendan Eich thought (8
months ago) it should be fixed "soon", I think this should be considered for
retargeting. (Like, 0.9.8 :)
Assignee | ||
Comment 35•23 years ago
|
||
Removing regression keyword since the regression was fixed in bug 77080.
Note that Brendan asked whether this bug is well-assigned. It is not, in my
opinion. The problem is that the current architecture requires us to list every
type that we have an internal handler for in nsContentDLF.cpp. For example,
consider a file at url "http://foo" served as text/x-csrc. We can't handle this
type internally, so it's not listed in nsContentDLF.cpp. The request in this
bug is that a link to "view-source:http://foo" (the only way to view source of
such a page that I can find) do something reasonable. This is only possible if
we change the type set on the channel in nsContentDLF to text/plain for
text/* types for the view-source command (I'll try this next week and see if
it works) or if we change the way the whole content handler setup works.
We could probably just add "message/rfc822; x-view-type=view-source" to the list
and let the parser know about it and it would work (again, I'll try this next
week).
I'm guessing that Brendan was asking for this to be fixed "soon" because doing
it right will take some rearchitecting...
Keywords: regression → arch
Comment 36•23 years ago
|
||
On the ebay URL posted in comment 29, I notice the server sends no
Content-Length or Content-Type (and even more screwed up, sends Server: and
Date: twice). It does set Content-Type via a meta, though:
<!--A http-equiv="Content-Type" content="text/html; charset=UTF-1-->
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=ISO8859-1">
<meta http-equiv="Expires" content="Sat, 05 Jan 2002, 05:14:19 GMT">
(With an invalid charset... wow, ebay web monkeys are pretty lame). Is it
possible to use the meta header to set the Content-Type for whereever view
source reads it from. Not a final fix, but would eliminate some cases of this bug.
Assignee | ||
Comment 37•23 years ago
|
||
> Is it possible to use the meta header to set the Content-Type
Not unless we decide that the page is text/html and parse it as such. :) At
the moment, this decision is made by the unknown content decoder (for
display purposes) which only kicks in for application/x-unknown-content-type.
Then comment #30 takes effect. The unknown decoder needs to know about view
source in the current setup....
Comment 38•23 years ago
|
||
bzbarsky, do you want to take this bug?
/be
Assignee | ||
Comment 39•23 years ago
|
||
Frankly, I have neither the time nor the knowledge of the code required to fix
this in full generality... I can do things a mimetype at a time like bug 77080,
but I would be unable to work on a general solution till well into summer, if
then.
Comment 40•23 years ago
|
||
What would happen if in line 230 of nsContentDLF.cpp the channel's content type
was set to text/plain instead of the previous content type? Would we then lose
out on syntax highlighting?
Also I think resetting the content type in line 231 is a bit strange, is this
just to avoid duplicating the code in line 238?
Assignee | ||
Comment 41•23 years ago
|
||
> Would we then lose out on syntax highlighting?
Yes. In fact the only reason the type is not text/plain to start with in the
view-source case is so that syntax highlighting will work.
So one possible solution is to scan for the type in our "list of known types" in
the view-source case and then just set the type to text/plain if the type is not
found. This will break things like view-source:view-source:http://foo, but that
does not work anyway, so.... Seem like a reasonable course of action?
Comment 42•23 years ago
|
||
> Seem like a reasonable course of action?
To me, it does. But what do I know...
Comment 43•23 years ago
|
||
*** Bug 126154 has been marked as a duplicate of this bug. ***
Comment 44•23 years ago
|
||
Another side-effect of this bug: because MailNews can't use a view source window
it actually opens a browser window. Turn off the pref to hide the tab bar when
only one tab is open, then do a view source of a message :-)
Comment 45•23 years ago
|
||
Looks like we do handle .js/.css/.xml/.html. That covers majority of the used
cases.
Comment 46•23 years ago
|
||
Is this also the bug that prevents view source from working on HTML files over
file:? That's pretty severe for page development and the nsbeta1 might need to
be reconsidered if that needs to be taken into account.
Assignee | ||
Comment 47•23 years ago
|
||
Jeremy, that falls under comment 30. Those issues are better tracked by bug
86835 which is more clealy focused on the unknown content decoder.
Comment 48•23 years ago
|
||
Soooo, this would be fixed, or at least workable around, by either of the following:
* an option to turn off syntax highlighting, and just see everything as text/plain
* an option to pass 'view source' to an external text/plain viewer or editor
(see bug #8589).
Since either of these would also provide a workaround for a large collection of
other bugs, maybe I'll take a pass at implementation of the latter... looks like
there aren't too many code paths to learn...
Assignee | ||
Comment 49•23 years ago
|
||
> * an option to turn off syntax highlighting, and just see everything as
> text/plain
The option to turn off highlighting already exists and even has UI. Making it
just view as text/plain is simple, though it would screw up HTML pages that
depend on <meta> tags for charset info.
> * an option to pass 'view source' to an external text/plain viewer or editor
> (see bug #8589).
This is what I've been thinking of too... One option is to change how the
uriloader works a bit. Right now, it uses "major/minor; options" as a key to
look up a handler (the MIME type is the key). It may be a thought to instead
try:
major/minor; options
major/*; options
*/*; options
in that order.
That way, for example, we could define "*/*; x-view-type=view-source" as being
handled internally (to fix this bug) or as being handled by a helper (to fix bug
8589).
Comment 50•23 years ago
|
||
Win 95 OSR2 Moz 0.9.9+ Nightly 2002.04.05
This bug is classified "Browser", but I Have something similar with "Mail &
Newsgroups".
When I read a newsgroup message off-line, View/Message source doen't display
anything.
When on-line, the source is normally displayed.
Do you accept this bug, or does it required to open a new number ?
Comment 51•23 years ago
|
||
It must be a new bug because message source doesn't use view-source.
Comment 52•23 years ago
|
||
*** Bug 140979 has been marked as a duplicate of this bug. ***
Updated•22 years ago
|
Target Milestone: mozilla1.2alpha → mozilla1.2beta
Assignee | ||
Comment 53•22 years ago
|
||
This fixes all the testcases I have been able to get my hands on, from this and
duplicate bugs, namely:
ftp://ftp.mozilla.org/Welcome
http://bugzilla.mozilla.org/attachment.cgi?id=81518&action=view
news://news.mozilla.org:119/3C34FF3D.2010309@netscape.com
http://wp.netscape.com/h.js
http://cgi.ebay.com/aw-cgi/eBayISAPI.dll?ViewItem&item=1247292051
http://bugzilla.mozilla.org/buglist.cgi?bug_id=77337
(this last is "fixed" in that it loads source, but bug 76816 should maybe stay
open for doing a better job showing that source).
I backed out the patch for bug 86835 because it's no longer needed with these
changes (note that the UnknownDecoder still knows about view source).
Assignee | ||
Comment 54•22 years ago
|
||
taking, too.
Assignee: harishd → bzbarsky
Status: ASSIGNED → NEW
Summary: view-source: does not allow viewing of many text files → [FIX]view-source: does not allow viewing of many text files
Assignee | ||
Comment 55•22 years ago
|
||
Attachment #97489 -
Attachment is obsolete: true
Comment 56•22 years ago
|
||
Comment on attachment 97635 [details] [diff] [review]
Minor tweak to handle servers sending us application/x-view-source content (why??)
sr=darin (looks good to me)
Attachment #97635 -
Flags: superreview+
Comment 57•22 years ago
|
||
Comment on attachment 97635 [details] [diff] [review]
Minor tweak to handle servers sending us application/x-view-source content (why??)
r=jst
Attachment #97635 -
Flags: review+
Assignee | ||
Comment 58•22 years ago
|
||
Fixed.
Status: NEW → RESOLVED
Closed: 22 years ago
Resolution: --- → FIXED
Comment 59•22 years ago
|
||
so one could view source of an image/gif now, right?
in that case you should remove the observes="isImage" from the view source
menuitem...
Assignee | ||
Comment 60•22 years ago
|
||
One _could_ do it (it would be shown as plaintext and be kinda useless). I
think one _shouldn't_ do it, however.
Comment 61•22 years ago
|
||
Why not? How is timeless (bug 84542 comment 4) otherwise going to find out that
the Mozilla banner is GIF89a?
Assignee | ||
Comment 62•22 years ago
|
||
Because viewing source on a 100kb image will take up a good chunk of CPU time
and memory... just try it. And images come a hell of a lot larger than that all
the time.
Timeless can use a friggin' image manipulation program if he wants data like
that on the image, imo.
Again, these are my opinions. The UI module owner should have the final say on
what the front end does.
Comment 63•22 years ago
|
||
biesi, timeless can type
view-source:http://mozilla.org/images/mozilla-banner.gif if he wants.
Comment 64•22 years ago
|
||
Mozilla has way too many geek features already, timeless can cope otherwise.
Nuff said!
/be
Comment 65•22 years ago
|
||
neil, at the time I made that comment no nightly with the patch was available,
and I had no easy way to test the patch.
Comment 66•22 years ago
|
||
Just tried that view-source: URL I gave earlier: Yes, it is GIF89a :-)
Status: RESOLVED → VERIFIED
Assignee | ||
Comment 67•22 years ago
|
||
*** Bug 173620 has been marked as a duplicate of this bug. ***
Assignee | ||
Comment 68•22 years ago
|
||
*** Bug 173620 has been marked as a duplicate of this bug. ***
Assignee | ||
Comment 69•22 years ago
|
||
*** Bug 56898 has been marked as a duplicate of this bug. ***
Assignee | ||
Comment 70•22 years ago
|
||
*** Bug 135624 has been marked as a duplicate of this bug. ***
Comment 71•19 years ago
|
||
Apologies if I've missed something, but line 328 in nsNetModule looks a little suspicious:
static PRUint32 g_StreamConverterCount = sizeof(g_StreamConverterCount)/sizeof(const char*);
Surely the formula should be sizeof(g_StreamConverterArray)/sizeof(const char*);?
I'm trying to debug why FF isn't starting on a new platform, it's something to do with static member initialisation in libnecko so I came across this from my lxr searching.
I have no idea how this patch worked for all the test cases though, as it looks to me like g_StreamConverterCount will be 1 and most of the converters will not be registered.
Assignee | ||
Comment 72•19 years ago
|
||
> line 328 in nsNetModule looks a little suspicious
See bug 315159.
> I have no idea how this patch worked for all the test cases though
The converters are registered as contracts; just not in the graph-making code.
You need to log in
before you can comment on or make changes to this bug.
Description
•