Closed Bug 301869 Opened 19 years ago Closed 19 years ago

Javascript objects not initializing in Deer Park 2 (but work in DP1 and earlier)

Categories

(Firefox :: General, defect)

x86
All
defect
Not set
normal

Tracking

()

RESOLVED INVALID

People

(Reporter: bucky, Unassigned)

References

()

Details

(Keywords: regression)

Attachments

(2 files)

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8b3) Gecko/20050712 Firefox/1.0+ Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8b3) Gecko/20050712 Firefox/1.0+ When rendered with Deer Park alpha 1 or earlier, the page in question at http://cms2.graphtek.com/example.html hides the textarea and replaces it with a groovy widgets to help author rich text. Starting with Deer Park alpha 2, the Javascript fails with an error. The suite of Javascript scripts aren't of my making (they are instances of the "Xinha" editor: xinha.python-hosting.com), so ability to diagnose exactly what might be happening isn't going to be amazing, but I think that additional javascripts which are to be loaded by document.write("<script src='..'></script>") calls aren't being loaded--or else aren't loaded by the time window.onload fires. In any event, Javascript which was once working (well, I cooked up the page to demonstrate a problem I'm having with a non-public page) is now failing. Reproducible: Always Steps to Reproduce: 1. Visit http://cms2.graphtek.com/example.html with Firefox 1.0.x or Deer Park alpha 1 and see it work. 2. Visit http://cms2.graphtek.com/example.heml with Deer Park alpha 2 and see it fail 3. 1 and 2 can be repeated on Linux and in XP
Component: JavaScript Console → General
Keywords: regression
QA Contact: javascript.console → general
Version: unspecified → Trunk
I am also seeing the behaviour as described by steps one & two above, & can reproduce with latest official Xinha demo too
This is a blocker for Xinha.
*** Bug 310182 has been marked as a duplicate of this bug. ***
(reprinting bug 310182 comment 0 here for reference) The Xinha text editor (which uses Midas / design-mode) works in FFx 1.0.x but not in FFx 1.5 (Gecko/20050920 Firefox/1.4). To my untrained eye, it looks like the problem is that the ternary operator in the body frame's source isn't being evaluated properly, but I may be wayyy offbase. Either way, somewhat concerning that JS that worked in previous version doesn't work in the new version.
Wit the url testcase, I get a js error: Error: CharacterMap is not defined Source File: http://xinha.gogo.co.nz/xinha-nightly/htmlarea.js Line: 5380 what also is important to know maybe is that this: <script type="text/javascript" src="/includes/xinha/plugins/character-map.js"></script> gives a 404 not found error for the character-map.js So maybe it works when you add that file back to the testcase?
I was getting ready for a mea culpa and a thankful mopping of my brow, but alas, adding a character-map.js file (a dummy, containing 'var foo="";') didn't do any good. It is still the case that Deer Park Alpha 1 and earlier executes this javascript without errors, but Deer Park Alpha 2 and later produce an error.
Yes, but you probably need to add the character-map.js from xinha: http://code.campware.org/projects/campsite/file/tags/CAMPSITE_2_3_1/campsite/implementation/management/javascript/xinha/plugins/CharacterMap/character-map.js?rev=3932 It can very well be that older Mozilla versions wrongfully not gave a js error, while current versions do (I suspect that is the case in this bug). Or you could try removing 'CharacterMap', from this code: xinha_plugins = xinha_plugins ? xinha_plugins : [ 'CharacterMap', ]; since you don't seem to use it.
Aha. But that's just the problem. NONE of the Xinha plugins seem to work anymore. Plugins are "registered" as part of a window.onload() method (actually THE window.onload method, by my reading of the code--I am not a primary Xinha contributor). They are loaded EITHER by a line like this: document.write("<script type='text/javascript' src='" + plugin_file + "'></script>"); OR by code like this: var script = document.createElement("script"); script.type = "text/javascript"; script.src = src; head.appendChild(script); The only error I get in my javascript console is "CharacterMap is not defined". CharacterMap is the first function defined in includes/xinha/plugins/CharacterMap/character-map.js, which should have been loaded by one of the methods above. This USED to work, but now has STOPPED working. Because of the text of the error, I am merely presuming that the loading method is the thing which has stopped working. Hopefully, something in my description turns a light on for somebody. I really, really want Xinha to work when the new Firefox comes out, and I really really want to fix whatever it is that needs to be fixed, wherever it is that this change needs to occur.
Alan, if you could attach a zipped file from your example, that would be great. It would allow me to minimise the testcase to see what's going on.
I diddled the paths a little, since the original used absolute paths. Some of the images referenced by the .css file are missing (wget didn't find them, and I didn't bother). Several Xinha plug-ins have been deleted to keep it under the acceptable attachment size. However, the behavior in question (works in Mozilla suite, etc., but not in Firefox's most recent beta) is demonstrable here.
Attached file testcase
Thanks Alan! Well, basically I can reduce the issue to this. Older builds added an extra newline at the beginning in this case. This was fixed with the fix for bug 111816. So the code in htmlarea.js needs to be changed to get this working again. In HTMLArea.cloneObject = function(obj) This: if (obj.constructor.toString().indexOf("function Function(") == 1) { you should change into this: if (obj.constructor.toString().indexOf("function Function(") >= 0) { Then all should work well again.
You should also change this line: if (obj.constructor.toString().indexOf("function Array(") == 1) { into this: if (obj.constructor.toString().indexOf("function Array(") >= 0) { Probably the author of htmlarea should also be notified about this, I guess.
Depends on: 111816
Thanks! I'm not sure if "fixed" is correct, since ultimately this wasn't a Firefox error, but I now understand the problem and solution.
Status: NEW → RESOLVED
Closed: 19 years ago
Resolution: --- → FIXED
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Status: REOPENED → RESOLVED
Closed: 19 years ago19 years ago
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: