Closed
Bug 229877
(iecompatmanager)
Opened 21 years ago
Closed 13 years ago
implement Internet Explorer DOM features with a whitelist (site manager)
Categories
(Core :: DOM: Core & HTML, defect)
Core
DOM: Core & HTML
Tracking
()
RESOLVED
WONTFIX
People
(Reporter: iamawalrus, Assigned: iamawalrus)
Details
Attachments
(1 file, 2 obsolete files)
33.94 KB,
patch
|
Details | Diff | Splinter Review |
As we all know, mozilla does not implement some of the MS IE DHTML specific features. The bug 154589 has a patch that provide document.all and some other features. However, it does not provide a good strategy to apply them so that it will break if (document.all) { } else { } , which is not acceptable. My proposal is to add a manager to apply the w3c incompatible features. The manager maintains a list. Document.all is defined only for the urls in this list. For example, when a site has been spotted using the IE specifiec DTHML like document.all and can not work correctly with Mozilla, we can add it to the list and make it work. By this way, we won't break any good site but give the users a chance to view some incompatible site without the obligation to change to IE. It is even good for the evangelism. It can educate people that the sites can not work with mozilla is because they are w3c incompatible. Only not to implement them mostly makes people to think it is the fault of mozilla. Furthermore, we can even get some lists of the incompatible sites. It is an active way to push the evangelism.
This patch is based on bug 154589 but also provide a manager in the menu Tool->W3C Compatible Manager. You can use it to turn on/off the defination of document.all for the special url.
Comment 2•21 years ago
|
||
I'm quite sure this is a DUPLICATE of a bug marked as WONTFIX.
Whiteboard: DUPEME
Comment 3•21 years ago
|
||
*** This bug has been marked as a duplicate of 74201 ***
Status: NEW → RESOLVED
Closed: 21 years ago
Resolution: --- → DUPLICATE
Updated•21 years ago
|
Whiteboard: DUPEME
This is not a dupe of bug 74201. Bug 74201 only request the implemention of document.all, which will break a lot of site that use document.all to identify the browser type. And that is the reason that bug has been marked as WONTFIX. This bug does not request implementing doucment.all mindlessly and won't break any w3c compatible site. Furthermore, there's a patch here.
Status: RESOLVED → REOPENED
Resolution: DUPLICATE → ---
fix an index typo in previous patch
Attachment #138265 -
Attachment is obsolete: true
Comment 6•21 years ago
|
||
With this fix, Mozilla might actually provide users of non-Windows platforms with the ability to access the whole web, not just to a subset of conforming websites. You got my vote. Prog.
Comment 7•21 years ago
|
||
You probably have a typo in the following comment:
> +textW3CIncompat=Sites which contains W3C incompatible contends
Shouldn't that be contents (or content)?
Prog.
Prog, Thanks for your vote and comment! I will fix the typo.
Comment 9•21 years ago
|
||
Many sites that use document.all use other IEisms, for example quite a few sites in china doing fooElm.left = rather than fooElm.style.left =. This is a partial solution only to add doc.all and outerHTML. Robin - so the user (or vendor) has to specify what sites go into this mode, right?
Assignee | ||
Comment 10•21 years ago
|
||
Doron, You are right. User has to specify what sites go into this mode. It is a bit like the image manager and popup manager. Document.all will not be defined unless the user specifies the site is not W3C compatible by adding it to a black list :)
Comment 11•21 years ago
|
||
Most IE-only scripts uses document.NAME for everything, and so: document.getElementById('foo') -> document.foo document.forms['name'].elements['name2'] -> document.name.name2 JS scripts for animating -> behaviours -> filters and others... This is a swamp and this patch makes a step into it. As Doron mentioned in Comment #9 this patch won't help 95% of IE-only JS code, but will produce inifitiy number of bugs in bugzilla about bad work of manager. I'm stronly against "trying" in application. It _can_ do something or it cannot. If some code _can_ block popups (or 9x% of them), it's ok, but if such code can fix about 5-10% of scripts (those who ARE W3C ready, but with bad browser recognision) it's useless - and it'll add next manager to the list. Not good for clear UI.
Assignee | ||
Comment 12•21 years ago
|
||
Zbigniew, I understand what you mean. The patch does need improvement. Can we do it step by step as long as we lose and break nothing we have already had? Be 100% compatible with IE is not my goal. We can evaluate what should be in and what not depends on the severity. BTW, Document.NAME has been in the patch. If any bug will be reported to the manager, it mostly had already been reported to the browser or will be no matter if the manager exists, especially when the adoption of mozilla increases in normal users. And you seldom get any chance to educate the end users that these bugs are due to W3C incompatible. But this manager will. When some people report a bug to the manager, at least they know the reason, know whose fault it is and know the bug should be an RFE. I don't like *trying* in application as well as you. But when the *trying* is inevitable, what would you like the users to try? IE or a mode in mozilla?
Comment 13•21 years ago
|
||
As an end user, I appreciate this bug. If I do find sites that don't work in Mozilla, I would rather try a mode in Mozilla first, and then use IE if it still doesn't work. Either case it does not really matter if the mode in Mozilla is perfect or not. If it can make me view one more site in Moz that would normally require me to switch to IE, then it is already worth it.
Don't forget that what Mozilla supports implements what web pages do. If web authors think we support these IE-only features, then they become OK to use for more people, which makes it harder for anyone else implementing a web user agent and pushes the web closer to vendor lock-in.
s/implements/influences/ s/for more people/for more authors/
Comment 16•21 years ago
|
||
To Robin Lu: can you please make me an xpi extension that would add this manager? I would love to download this... :)
Assignee | ||
Comment 17•21 years ago
|
||
dbaron, I want the mozilla to influence people too, even more, but not in the defensive way. This manager is like a ruler to measure the website. We have that ruler in our mind. Now we give it to the end users. When they know what is right and what is wrong, the influence would be many more times than us. It is not an honour to be in the "W3C Incompatible List". What would influence the authors more? Less than 10% browsers can not render their pages or more and more people know they are not qualified? Bamm, An xpi extension is not enough. I will find a place to upload my private build of mozilla for linux and let you know as soon as possible.
Comment 18•21 years ago
|
||
Robin: ok, comparing to bug 154589 this one is smarter, but how many web-authors will say "why should I change my code if You can use feature in Your Mozilla to make it work like standard IE" ? I'm afraid many. (yesterday's anwser on evangelization mail): "We strongly suggest You change Your browser to IE, because Mozilla browser is not best tool in fact of lack compatiblity with many standards that IE supports." I'm afraid that this will sacrifice standard promotion in the name of Mozilla's promotion. If we would invent how to make sure nobody will think about it as "Mozilla's experimental standard compilance - at least" then it'll really help without side effect i think
Assignee | ||
Comment 19•21 years ago
|
||
experimental builds can be found at: http://eri.sun.com.cn/Download/moz/mozilla-i686-pc-linux-rh9.tar.gz http://eri.sun.com.cn/Download/moz/mozilla-sparc-sun-solaris2.8.tar.gz
Updated•21 years ago
|
Alias: iecompatmanager
Comment 20•21 years ago
|
||
Can you give an example of a site you have found where this fix actually makes the entire site? Is there really a site that only uses the document.all IEism and everything else is standards compliant? I like the idea, but I think this is the tip of the iceberg....
Comment 21•21 years ago
|
||
I tested all links from www.osiolki.net (Polish site made by Opera/Mozilla supporters to list all non-W3C sites and try to fix their problems) - i wasn't able to fix any of this site with this manager. Still same problems - window.event, myDiv.innerHTML, window._content, some sites founded me with Server-side, and profiled NS4 code.
Comment 22•21 years ago
|
||
I think time should be spent on fixing all Mozilla bugs. When all bugs are gone, and I can write valid code that looks fine in Mozilla - specially in RTL - then go and do whatever you like. To be specific, fix the RTL list bug. Failing to render a list in RTL page is really basic thing. Then fix the slow editing of Hebrew text on Mac OS X. Today I tried to type few letters in a big wiki page, and I had to wait more then 30 seconds after each character looking at the spinning beach ball.
Comment 23•21 years ago
|
||
> It can educate people that the sites can not work with mozilla is because they are w3c incompatible. How on earth can it possibly educate people that sites can't work with Mozilla... if you make them work? > It is an active way to push the evangelism. We have seen in the past from an evangelism standpoint that once you make it work, sites have no motivation or practical reason to change at all. This in fact would be a major deterrent to the evangelism campaign against document.all.
Assignee | ||
Comment 24•21 years ago
|
||
For more W3C incompatible features, welcome to report new bugs that depend on this bug.
Comment 25•21 years ago
|
||
I could, however, see this as quite an asset to DOM Inspector.
Comment 26•21 years ago
|
||
M.Kaply wrote, in comment #20: > Is there really a site that only uses the document.all IEism and everything > else is standards compliant? There are several sites that Mozilla can't currently handle due to document.all, but are perfectly usable in Opera 7.50 - citypay.co.il, mybills.co.il and homeless.co.il are typical examples (see Bug 221311, Bug 208676 and Bug 213804). Most end-users will do without full IE compatibility as long as the number of websites that remain accessible and usable is within reason. Fixing this bug will bring us into that realm, but we're not there yet. Prog.
Comment 27•21 years ago
|
||
Here's a suggestion on how to communicate with the regular user: I use a Firebird extension called "JavaScript Console Status" that displays a red "X" in the status bar whenever a JS error occurs in a page. Clicking it opens the JS Console. It's rather unobtrusive. Something similar that would open the "Proprietary J(ava)Script Manager" instead would be an easy and clean way to convey to the normal user that her/his problem with the functionality in a page might be solvable.
Comment 28•21 years ago
|
||
I'd like to see more evidence than the three sites given in comment 26, for the claim that supporting document.all (and maybe a few more IE quirks) gains us a number of working sites that leaves the non-working IE-only site tally "within reason". Maybe we can even agree on what number or fraction that phrase means! I meddled with the Summary to make it more precise; I left the "manager" keyword in it in case people use that along with the alias. If we used the whitelist sparingly, only for those sites for which there is (a) no hope of reform; (b) easily achieved compatibility, then I personally would consider taking the patch into the default build. Other drivers@mozilla.org should weigh in. /be
Summary: implement Internet Explorer DOM features with a manager → implement Internet Explorer DOM features with a whitelist (site manager)
Comment 29•21 years ago
|
||
I think we have three separate problems here. First is how to implement it, not to make it destructive for w3c standards. Second, is there any real reason to work on it. Third, how this can influence standard compatibility on web pages. I think that first problem is easies one. I really like laszo's idea from Comment #27 about some box in status bar. Second is not so easy. Because empty words about "whole world IE-only compilant" doesn't match with mine experiences (and not only mine). The number of web pages that are IE-only is falling down everyday. And third is the most problematic one. We never ever will be able to explain to "big world" that it's only option. We will be judged as "IE compilant" and we will be cursed by this forever. Also nobody will care that "it has to be turned on" - bas webdesigners (and Microsoft itself) will reach one more reason for their way.
Assignee | ||
Comment 30•21 years ago
|
||
The patch synced with trunk
Attachment #138514 -
Attachment is obsolete: true
Assignee | ||
Comment 31•21 years ago
|
||
Comment on attachment 142296 [details] [diff] [review] patch seeking review
Attachment #142296 -
Flags: review?(jst)
Comment 32•21 years ago
|
||
IMHO we should not take this without: (a) a _significant_ study into the effects of the patch (b) a specification stating exactly what it is we implement and how (c) a test suite testing that we implement what our spec says I am generally against any modal standards support, as it makes testing orders of magnitude harder, makes the code harder to maintain, and makes us less predictable for authors. If we were to implement this, it would IMHO have to be on all pages, not just a subset of those that need it. I am generally against any hard-coding of specific sites in our behaviour. Doing so makes evangelism very hard ("just add us to the list!"), raises concerns of complaints from sites that do not want to be libelled ("remove us from the list or we'll sue you for saying we aren't standards compliant!"), and makes testing and authoring harder. I am generally against any new UI for esoteric features such as this. Users don't have the first clue as to what this kind of thing is and they should not need to ever know. See also comment 14 and comment 23. In conclusion I recommend WONTFIX.
Comment 33•21 years ago
|
||
Re: comment 29: "The number of web pages that are IE-only is falling down everyday." If that's really true, then we should not mitigate that trend by supporting IE-only features. But is it true? Comment 32's "(a) a _significant_ study into the effects of the patch" is necessary for the patch to move forward. Who will do this study? /be
Comment 34•21 years ago
|
||
Comment on attachment 142296 [details] [diff] [review] patch There's a lot of questions that need to be answered here before it's worth reviewing this, especially comment 28, and I must say that I agree with everything Ian says in comment 32. In short, I'm generally against this, I think I'd rather see Mozilla get a well-documented document.all property than one that's conditionally turned on or off on a per site basis.
Attachment #142296 -
Flags: review?(jst)
Assignee | ||
Comment 35•21 years ago
|
||
The sites that Mozilla can't handle but work with the patch: mail.263.net 263 is one of the the biggest ISP in Beijing, China. It's their mail service website. www.5460.net one of the most famours alumnus site in China www.dangdang.com China amazon www.tianyaclub.com a famous Chines Forum ...
Comment 36•21 years ago
|
||
Can you explain (bearing in mind I don't read Chinese) which parts of those sites are broken, and what parts of the code it is that makes them break? Have those sites been evangelised?
Assignee | ||
Comment 37•21 years ago
|
||
(In reply to comment #32) > I am generally against any hard-coding of specific sites in our behaviour. It's not hard-coding of specific sites. The list is maintainable by the users. > or we'll sue you for saying we aren't standards compliant!"), If so, I think image blocker may get more chance to be sued. > I am generally against any new UI for esoteric features such as this. It could be an esoteri feature. But it give the user a chance to just swith a status in mozilla instead of switch to IE, which is more ugly and unacceptible. And it won't affect the user in any way if the sites work just fine. > Users don't have the first clue as to what this kind of thing is and they should not need to ever know. Do you mean the evangelism work should only be done to the website developers? Then I think you might just miss the real power that pushes the web world.
Comment 38•21 years ago
|
||
> Do you mean the evangelism work should only be done to the website developers?
> Then I think you might just miss the real power that pushes the web world.
This makes no sense. Most end users have no clue about what is web standard and
what is not. Trying to get them to learn is like trying to teach a pig to sing
-- it does you no good and it annoys the pig.
The big problem with any emulation of document.all, whether on a site
whitelisted basis or for all sites, is that it means no site webmaster ever
hears complaints or otherwise feels pain about using a non-standard IE feature.
It's true that by making end users feel pain, enough that some of them might
complain to the webmaster, we hurt our reputation with many end users who cannot
tell what's wrong, and simply blame Mozilla.
That's the rub, and that's why I prefer a site whitelist approach. If we just
make document.all work across the board, other sites than those we'd whitelist
will never be evangelised, that otherwise would have been.
I must have misread this bug, tho -- a whitelist should be maintained by an open
evangelism group, and shared among all instances of Mozilla, or at least all
that come from a particula distributor associated with the evangelism group.
It's crazy to make end-users hand-craft their own personal whitelists. What's
the point? There isn't even a way to collect and collate all such lists.
jst: if we allow document.all to work for all sites, many will then want
document.id or even window.id to work, no? We would be on the slippery slope
for all offending sites, not just for those that are hopelessly immune to
evangelism. Yeah, I'm arguing here that some such sites can be identified up
front. At least the whitelist could evolve over time, even if it wrongly listed
a site that *could* have been evangelised, provided some evangelist tried in
spite of the whitelist entry to change the site's webmaster's mind.
/be
Comment 39•21 years ago
|
||
> if we allow document.all to work for all sites, many will then want > document.id or even window.id to work, no? Brendan, I think there is some confusion about Robin's proposal. When I looked over this patch a while back, it looked to me like it was doing far more than just document.all[]. I read comment 1 to mean that only the document.all parts are allowed to be switched off. This is what the patch seemed to do too. For example, I recollect it unconditionally implemented outerHTML. It also did some classinfo foo that sure looked to me like an attempt at window.id and document.id support. I suspect, most of the sites that work because of this patch, are not just dependant on document.all[]. I must add that I did not read too carefully, and that I am not exactly a classinfo guru. Robin, please do correct me if I am misreading your patch and proposal. I second what Hixie said in comment 32. If this is going to be done, we need to start with a spec that more precisely defines this "mode", and some tests to go along with it.
Assignee | ||
Comment 40•21 years ago
|
||
Harshal, You are right about the patch. The patch is based on the one for bug 154589. It implements document.all, outHTML and document.id. The main concern in that bug is that document.all will cause regression to the sites which use it to identify the browser type. So, I made a manager for document.all to make it work conditionaly. If you think the strategy is acceptible, we can work together to determine which should be controled by the manager and which shouldn't. Also, if the community wants to "start with a spec that more precisely defines this "mode", and some tests to go along with it", I can't be more happy. Brendan, My thought on the whitelist is different from you. The control of the list is in the users. The user scenario is: the user meets a site that can't work, then he/she tries to the incompatible mode for the site. Actually, It is an inevitable trying. Currently, the user will try IE and the trying doesn't give them the truth. Why don't we give them a chance to try with the truth? You can see it as a bonus to let the users know W3C in the same time. It's not like teaching pig to sing.
Comment 41•21 years ago
|
||
Suggestion for how to balance the evangelism aspect with the "make it work, dammit" aspect: Implement a customized whitelist, as discussed above. When a webpage tries to use (say) document.all, open an HTML popup or dialog that says the following: The web page has attempted to use browser functionality which violates web standards, thus causing the following error: document.all has no properties * For more information see <a href="...">here</a>. <!-- link to explanation about importance of standards --> * To see a detailed explanation which you can send to the web site owner, look here <a href="...">here</a>. <!-- shows the error info along with some brief generic evangelism text and tells the user to paste it into a message to the webmaster. --> * [Enable] the use of standard-violating extensions for this web site. <!-- whitelist --> * [Ignore] this error for this site. I'll leave it to the keener to rearrange this into a sane and guideline-conforming UI, but you get the idea.
Comment 42•21 years ago
|
||
> The web page has attempted to use browser functionality which
that is not a good idea, considering code like
if (document.all) { ... }
else if (document.getElementById) { ... }
which would trigger such a warning.
Comment 43•21 years ago
|
||
> that is not a good idea, considering code like
> if (document.all) { ... }
> else if (document.getElementById) { ... }
> which would trigger such a warning.
Special-case that. Trigger the evangelism/whitelist popup only if a field of a
(non-overriden) document.all is accessed.
Comment 44•21 years ago
|
||
Guys, guys, guys. Get real. We're not adding UI for something like this. Users should never be exposed to the underlying Web technologies. As far as the user is concerned, things should just work. Now, if we want to implement document.all or anything else, we need a spec for it first. Then we could get this spec into a W3C spec, and we could ensure interoperability among the modern browsers. So if you want this: Write a spec. Write a test suite for the spec. ...then come back to this bug. Without a spec and something to test its implementations, there is no real point even discussing this.
Comment 45•21 years ago
|
||
Hixie, do you happen to know what spec does Opera rely on in its implementation of document.all? Prog.
Comment 46•21 years ago
|
||
It doesn't have one, which is one of the reasons some people here have suggested that future versions of Opera should remove the document.all support altogether.
Comment 47•21 years ago
|
||
(In reply to comment #43) > Special-case that. Trigger the evangelism/whitelist popup only if a field of a > (non-overriden) document.all is accessed. Uh, you want document.all be undefined, but document.all["foo"] to invoke some code? I don't know spidermonkey, but this sounds to me like it would require ugly hacks.
Comment 48•21 years ago
|
||
Reply to comment #47: Maybe this will work? http://bugzilla.mozilla.org/show_bug.cgi?id=154589#c62
Comment 49•21 years ago
|
||
Ian, I have to say that that would _greatly_ increase the chance of evangelism succeeding... I've often been told by web site owners "but it works in Opera and Safari! Why not in Mozilla?"
Comment 50•21 years ago
|
||
Re: comment 47 and comment 48: ECMA-262 specifies that object converts only to boolean true, never to false. We would have to hack SpiderMonkey to do anything that overloads false and an array on document.all, depending on context. I don't think such overloading is a good idea, in any event. I am still against enabling document.all support across the board. I would love to see Opera reverse itself, but I wonder whether "some people" in comment 46 is a set larger than {Hixie} ;-). How do we get KTHML/Safari to reverse course? I agree we don't want any UI in the user's face. If you are doing a hardcore geek evangelist Mozilla distribution, then sure, knock yourself out. Not in the main products. /be
Comment 51•21 years ago
|
||
As far as I know, safari doesn't have document.all, though khtml does. At least hyatt said so. :) The patch seems to be China-oriented, as I wrote an XBL back at Netscape that added all of these IEisms for the china effort back then, and it did fix a lot of stuff.
Comment 52•21 years ago
|
||
If it's really China-oriented, than meaby make extension instead pushing it to main source? Then any Chinese lozalization would be able to add this by default, and evangelization wouldn't suffer so much.
Comment 53•21 years ago
|
||
(In reply to comment #52) > If it's really China-oriented, than meaby make extension instead pushing it to > main source? It's *not* only China-oriented. There are currently 14 open evangelism bugs in bugzilla for Israeli websites with ducument.all: http://snipurl.com/il_document_all A trivial note: the population of China is 200 times bigger than Israel's... Prog.
Comment 54•21 years ago
|
||
(In reply to comment #52) > If it's really China-oriented, than meaby make extension instead pushing it to > main source? I don't think that's possible.
Comment 55•21 years ago
|
||
Re: http://bugzilla.mozilla.org/show_bug.cgi?id=229877#c53, what else besides document.all do those sites depend on in the way of IE quirks and extensions? /be
Comment 56•21 years ago
|
||
Shosh, perhaps you can answer comment 55 and provide a general analysis on what is currently required (besides document.all) to properly render the sites in http://snipurl.com/il_document_all Prog.
Comment 57•20 years ago
|
||
I'm voting for this bug-I want mozilla to be as usable as possible even for the many websites that won't even consider the possibility that there's a browser besides IE.
Comment 58•20 years ago
|
||
For those who care, bug 248549 might be of interest.
Comment 59•20 years ago
|
||
Robin, can you update the patch against the trunk?
Comment 60•20 years ago
|
||
I surely appreciate the work that is done here but I really hope that this bug will be marked as WONTFIX. If it was possible to vote against a bug I'd surely vote against this one. Such things should be made as an extension IMHO. Even using a whitelist system I don't think it is worth adding all this code into the browser; Mozilla is all about standards. It would be really bad to start seeing some site saying: "This site is compatible with Microsoft Exporer only. It seems you are using a mozilla browser; you can enter this site if you add it to your IE Dom whitelist" Let put some pressure on webdevelopers that are not standards aware (and don't move this pressure on mozilla developers instead). With such features they'll never learn. If it simply doesn't work in non-ie broswers I don't think they will let 25% of the webusers to not enter their sites. If it works also in mozilla browsers thanks to the whitelist feature, why would webdeveloper bother to rework their site ?
Comment 61•20 years ago
|
||
(In reply to comment #60) > never learn. If it simply doesn't work in non-ie broswers I don't think they > will let 25% of the webusers to not enter their sites. If it works also in Well, that's the chicken. The egg, of course, is to get 25% of browser marketshare into non-IE browsers, at which point this entire issue becomes virtually moot.
Comment 62•19 years ago
|
||
Just a note in regards to the very high "IE" percentages reported by websites. It's worth noting the widely available ability to change the ID your browser reports. We don't know how many of those "IE" users are actually using Konqueror or Mozilla, impersonating IE. Since that suffices for a large number of broken websites (and is standard advice often given out), it may be quite common.
Updated•15 years ago
|
QA Contact: ian → general
Comment 63•13 years ago
|
||
IE9 Standards Mode is more like Gecko, Presto and WebKit. Presto has shifted over time to implement less IE stuff in order to be more compatible with the Web. WebKit prefers to reverse engineer Gecko over Trident. I think it's time to WONTFIX.
Comment 64•13 years ago
|
||
I agree, esp. since we certainly have >25% non-IE market share now. ;)
Comment 65•13 years ago
|
||
Indeed.
Status: ASSIGNED → RESOLVED
Closed: 21 years ago → 13 years ago
Resolution: --- → WONTFIX
Updated•5 years ago
|
Component: DOM → DOM: Core & HTML
You need to log in
before you can comment on or make changes to this bug.
Description
•