Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(492)

Unified Diff: mozilla-tests/browser.js

Issue 2865028: Update the mozilla tests to new version (as of 2010-06-29). (Closed) Base URL: svn://chrome-svn/chrome/trunk/deps/third_party/
Patch Set: Created 10 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « mozilla-tests/bisect.sh ('k') | mozilla-tests/detect-universe.sh » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mozilla-tests/browser.js
===================================================================
--- mozilla-tests/browser.js (revision 43940)
+++ mozilla-tests/browser.js (working copy)
@@ -568,6 +568,30 @@
javascriptoptions.setIntPref('gczeal', Number(z));
}
+var gJit = { content: undefined, chrome: undefined };
+
+function jit(on)
+{
+ var jitoptions = new Preferences('javascript.options.jit.');
+
+ if (typeof gJit.content == 'undefined')
+ {
+ gJit.content = jitoptions.getBoolPref('content');
+ gJit.chrome = jitoptions.getBoolPref('chrome');
+ }
+
+ if (on)
+ {
+ jitoptions.setBoolPref('content', true);
+ jitoptions.setBoolPref('chrome', false);
+ }
+ else
+ {
+ jitoptions.setBoolPref('content', false);
+ jitoptions.setBoolPref('chrome', false);
+ }
+}
+
var gVersion = 150;
function jsTestDriverBrowserInit()
@@ -586,41 +610,84 @@
return;
}
- var re = /test=([^;]+);language=(language|type);([a-zA-Z0-9.=;\/]+)/;
- var matches = re.exec(document.location.search);
+ var properties = {};
+ var fields = document.location.search.slice(1).split(';');
+ for (var ifield = 0; ifield < fields.length; ifield++)
+ {
+ var propertycaptures = /^([^=]+)=(.*)$/.exec(fields[ifield]);
+ if (!propertycaptures)
+ {
+ properties[fields[ifield]] = true;
+ }
+ else
+ {
+ properties[propertycaptures[1]] = decodeURIComponent(propertycaptures[2]);
+ if (propertycaptures[1] == 'language')
+ {
+ // language=(type|language);mimetype
+ properties.mimetype = fields[ifield+1];
+ }
+ }
+ }
- // testpath http://machine/path-to-suite/sub-suite/test.js
- var testpath = matches[1];
- var attribute = matches[2];
- var value = matches[3];
+ if (properties.language != 'type')
+ {
+ try
+ {
+ properties.version = /javascript([.0-9]+)/.exec(properties.mimetype)[1];
+ }
+ catch(ex)
+ {
+ }
+ }
- if (testpath)
+ if (!properties.version && navigator.userAgent.indexOf('Gecko/') != -1)
{
- gTestPath = testpath;
+ // If the version is not specified, and the browser is Gecko,
+ // adjust the version to match the suite version.
+ if (properties.test.match(/^js1_6/))
+ {
+ properties.version = '1.6';
+ }
+ else if (properties.test.match(/^js1_7/))
+ {
+ properties.version = '1.7';
+ }
+ else if (properties.test.match(/^js1_8/))
+ {
+ properties.version = '1.8';
+ }
+ else if (properties.test.match(/^js1_8_1/))
+ {
+ properties.version = '1.8';
+ }
+ else
+ {
+ properties.version = '1.5';
+ }
}
- var ise4x = /e4x\//.test(testpath);
+ gTestPath = properties.test;
- var gczealmatches = /gczeal=([0-9]*)/.exec(document.location.search);
+ gVersion = 10*parseInt(properties.version.replace(/\./g, ''));
- if (gczealmatches)
+ if (properties.gczeal)
{
- var zeal = Number(gczealmatches[1]);
- gczeal(zeal);
+ gczeal(Number(properties.gczeal));
}
- var versionmatches = /version=([.0-9]*)/.exec(value);
+ /*
+ * since the default setting of jit changed from false to true
+ * in http://hg.mozilla.org/tracemonkey/rev/685e00e68be9
+ * bisections which depend upon jit settings can be thrown off.
+ * default jit(false) to make bisections depending upon jit settings
+ * consistent over time. This is not needed in shell tests as the default
+ * jit setting has not changed there.
+ */
- if (!versionmatches)
- {
- gVersion = 150;
- }
- else
- {
- gVersion = 10*parseInt(versionmatches[1].replace(/\./g, ''));
- }
+ jit(properties.jit);
- var testpathparts = testpath.split(/\//);
+ var testpathparts = properties.test.split(/\//);
if (testpathparts.length < 3)
{
@@ -631,53 +698,59 @@
var subsuite = testpathparts[testpathparts.length - 2];
var test = testpathparts[testpathparts.length - 1];
- outputscripttag(suitepath + '/shell.js', attribute, value,
- ise4x);
- outputscripttag(suitepath + '/browser.js', attribute, value,
- ise4x);
- outputscripttag(suitepath + '/' + subsuite + '/shell.js', attribute, value,
- ise4x);
- outputscripttag(suitepath + '/' + subsuite + '/browser.js', attribute, value,
- ise4x);
- outputscripttag(suitepath + '/' + subsuite + '/' + test, attribute, value,
- ise4x);
+ document.write('<title>' + suitepath + '/' + subsuite + '/' + test + '<\/title>');
- document.write('<title>' + suitepath + '/' + subsuite + '/' + test +
- '<\/title>');
+ // XXX bc - the first document.written script is ignored if the protocol
+ // is file:. insert an empty script tag, to work around it.
+ document.write('<script></script>');
- outputscripttag('js-test-driver-end.js', attribute, value,
- false);
+ outputscripttag(suitepath + '/shell.js', properties);
+ outputscripttag(suitepath + '/browser.js', properties);
+ outputscripttag(suitepath + '/' + subsuite + '/shell.js', properties);
+ outputscripttag(suitepath + '/' + subsuite + '/browser.js', properties);
+ outputscripttag(suitepath + '/' + subsuite + '/' + test, properties,
+ properties.e4x || /e4x\//.test(properties.test));
+ outputscripttag('js-test-driver-end.js', properties);
return;
}
-function outputscripttag(src, attribute, value, ise4x)
+function outputscripttag(src, properties, e4x)
{
if (!src)
{
return;
}
+ if (e4x)
+ {
+ // e4x requires type=mimetype;e4x=1
+ properties.language = 'type';
+ }
+
var s = '<script src="' + src + '" ';
- if (ise4x)
+ if (properties.language != 'type')
{
- if (attribute == 'type')
+ s += 'language="javascript';
+ if (properties.version)
{
- value += ';e4x=1 ';
+ s += properties.version;
}
- else
+ }
+ else
+ {
+ s += 'type="' + properties.mimetype;
+ if (properties.version)
{
- s += ' type="text/javascript';
- if (gVersion != 150)
- {
- s += ';version=' + gVersion/100;
- }
- s += ';e4x=1" ';
+ s += ';version=' + properties.version;
}
+ if (e4x)
+ {
+ s += ';e4x=1';
+ }
}
+ s += '"><\/script>';
- s += attribute + '="' + value + '"><\/script>';
-
document.write(s);
}
@@ -702,6 +775,18 @@
{
var javascriptoptions = new Preferences('javascript.options.');
javascriptoptions.clearPref('gczeal');
+
+ var jitoptions = new Preferences('javascript.options.jit.');
+ if (typeof gJit.content != 'undefined')
+ {
+ jitoptions.setBoolPref('content', gJit.content);
+ }
+
+ if (typeof gJit.chrome != 'undefined')
+ {
+ jitoptions.setBoolPref('chrome', gJit.chrome);
+ }
+
optionsReset();
}
catch(ex)
« no previous file with comments | « mozilla-tests/bisect.sh ('k') | mozilla-tests/detect-universe.sh » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698