Let me reply that with original Scalix 11 code, having a view on the SAC scripts.
This part in the brwsniff.js handles the values for Seamonkey ..
Code: Select all
...
// Mozilla Seamonkey
b[0]="mozsea";
b[1]=brs.match(/rv\x3a(\d+(\.?\d)*)/)[1];
b[2]="gecko";
b[3]=getGeckoVersion();
return b;
...
... it handels it correct with a gecko engine and return all important values.
Now lets have a look at the next step of compatibility check, located in Utilities.js...
Code: Select all
...
} else if ( browserID == "mozsea" ) {
if ( browserMajorVersion > 1 ||
( browserMajorVersion == 1 &&
browserMinorVersion >= 7 ) ) {
gUnsupportedBrowser = false;
}
...
This code handels the Seamonkey browsers identifed as above, and the if-command says, when Major >1 and Minor >=7 (aka v1.7+) the browser is supported. Seamonkey is the continued work of Mozilla Suite that ended with 1.7.6. Seamonkey suite is currently at 1.1.3, but internal its a 1.8.1+ Mozilla Suite.
Now code is "meant" to accept seamonkey but we know it gets rejected. The bug is located in the numeric compare "browserMinorVersion >= 7". For my browser this compare resolves as "8.1.2pre">=7. Javascript tries to convert the left string to number, but fails due to dots and chars, nulling it. JS finally compares 0>=7 and of course returns false. So where do these versions come from? Lets look back at brwsniff.js
Code: Select all
// Return browser's (actual) major version or -1 if bad version entered
function getMajorVersion(v) {
return (isEmpty(v) ? -1 : (hasDot(v) ? v : v.match(/(\d*)(\.\d*)*/)[1]));
}
// Return browser's (actual) minor version or -1 if bad version entered
function getMinorVersion(v) {
return (!isEmpty(v) ? (!hasDot(v) ? v.match(/\.(\d*([-\.]\d*)*)/)[1] : 0) : -1);
}
These functions extract major/minor from b[1] value of first code part. It cuts it by the dots and thats fine but the minor regexp is too greedy and returns everything past the first dot. That works unless a brower (not just SM) gets a patch version containing letters and more dots. The only thing my patch does is taking only the "major" part of the "minor" version to allow following numeric compares to success.
~~~
I assume, Seamonkey was intend to be supported in development when its version was just "1.8". I understand you guys did NO TESTING, when Scalix rejected this Browser as unsupported in later days.
So better fix the bug (not just for seamoney, others may get miss-rejected too) and do some testing to avoid new bugs. Otherwise present me an official 1.8.1 Mozilla Suite
