Commit dea79c01 authored by ojan@google.com's avatar ojan@google.com

Get rid of all query parameters since the http server for src.chromium.org

throws a 500 when there is an unsupported query parameter. Use hash parameters
for everything instead.

TBR since the dashboard is broken until this is checked in.

TBR=arv@chromium.org
BUG=none
TEST=manual
Review URL: http://codereview.chromium.org/193066

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25824 0039d316-1c4b-4281-b951-d872f2087c98
parent 02eba0d9
...@@ -269,38 +269,16 @@ ...@@ -269,38 +269,16 @@
document.getElementsByTagName('head')[0].appendChild(script); document.getElementsByTagName('head')[0].appendChild(script);
} }
// Parse hash parameters.
// Permalinkable state of the page.
var currentState = {};
// Parse query parameters. if (stringContains(window.location.hash, "debug=true")) {
var queryState = {'debug': false, 'testType': 'layout_test_results'};
function handleValidQueryParameter(key, value) {
switch (key) {
case 'testType':
validateParameter(queryState, key, value,
function() {
return isValidName(value);
});
return true;
case 'debug':
queryState[key] = value == 'true';
return true;
default:
return false;
}
}
parseParameters(window.location.search.substring(1),
handleValidQueryParameter);
if (queryState['debug']) {
// In debug mode point to the results.json and expectations.json in the // In debug mode point to the results.json and expectations.json in the
// local tree. Useful for debugging changes to the python JSON generator. // local tree. Useful for debugging changes to the python JSON generator.
var builders = {'DUMMY_BUILDER_NAME': ''}; var builders = {'DUMMY_BUILDER_NAME': ''};
var builderBase = '../../Debug/'; var builderBase = '../../Debug/';
queryState['testType'] = 'layout-test-results'; currentState['testType'] = 'layout-test-results';
} else { } else {
// Map of builderName (the name shown in the waterfall) // Map of builderName (the name shown in the waterfall)
// to builderPath (the path used in the builder's URL) // to builderPath (the path used in the builder's URL)
...@@ -322,17 +300,14 @@ ...@@ -322,17 +300,14 @@
var builderBase = 'http://build.chromium.org/buildbot/'; var builderBase = 'http://build.chromium.org/buildbot/';
} }
// Parse hash parameters.
// Permalinkable state of the page.
var currentState = {};
var defaultStateValues = { var defaultStateValues = {
sortOrder: BACKWARD, sortOrder: BACKWARD,
sortColumn: 'flakiness', sortColumn: 'flakiness',
showWontFix: false, showWontFix: false,
showCorrectExpectations: false, showCorrectExpectations: false,
showFlaky: true, showFlaky: true,
maxResults: 200 maxResults: 200,
testType: 'layout_test_results'
}; };
for (var builder in builders) { for (var builder in builders) {
...@@ -353,6 +328,14 @@ ...@@ -353,6 +328,14 @@
function handleValidHashParameter(key, value) { function handleValidHashParameter(key, value) {
switch(key) { switch(key) {
case 'testType':
validateParameter(currentState, key, value,
function() {
return isValidName(value);
});
return true;
case 'tests': case 'tests':
validateParameter(currentState, key, value, validateParameter(currentState, key, value,
function() { function() {
...@@ -397,6 +380,7 @@ ...@@ -397,6 +380,7 @@
return true; return true;
case 'debug':
case 'showWontFix': case 'showWontFix':
case 'showCorrectExpectations': case 'showCorrectExpectations':
case 'showFlaky': case 'showFlaky':
...@@ -415,8 +399,6 @@ ...@@ -415,8 +399,6 @@
function parseAllParameters() { function parseAllParameters() {
oldLocation = window.location.href; oldLocation = window.location.href;
parseParameters(window.location.search.substring(1),
handleValidQueryParameter);
parseParameters(window.location.hash.substring(1), parseParameters(window.location.hash.substring(1),
handleValidHashParameter); handleValidHashParameter);
fillDefaultStateValues(); fillDefaultStateValues();
...@@ -439,7 +421,7 @@ ...@@ -439,7 +421,7 @@
} }
function getPathToBuilderResultsFile(builderName) { function getPathToBuilderResultsFile(builderName) {
return builderBase + queryState['testType'] + '/' + return builderBase + currentState['testType'] + '/' +
builders[builderName] + '/'; builders[builderName] + '/';
} }
...@@ -1104,7 +1086,6 @@ ...@@ -1104,7 +1086,6 @@
tableHeaders.shift(); tableHeaders.shift();
if (currentState.tests) { if (currentState.tests) {
tableHeaders.unshift('builder'); tableHeaders.unshift('builder');
generatePageForIndividualTests(currentState.tests.split(',')); generatePageForIndividualTests(currentState.tests.split(','));
} else { } else {
tableHeaders.unshift('test'); tableHeaders.unshift('test');
...@@ -1212,6 +1193,9 @@ ...@@ -1212,6 +1193,9 @@
$('max-results-input').value = currentState.maxResults; $('max-results-input').value = currentState.maxResults;
} }
var singleBuilderViewParameters = ['sortOrder', 'sortColumn', 'showWontFix',
'showCorrectExpectations', 'showFlaky: true', 'maxResults'];
/** /**
* Sets the page state and regenerates the page. Takes varargs of key, value * Sets the page state and regenerates the page. Takes varargs of key, value
* pairs. * pairs.
...@@ -1220,7 +1204,7 @@ ...@@ -1220,7 +1204,7 @@
for (var i = 0; i < arguments.length; i = i + 2) { for (var i = 0; i < arguments.length; i = i + 2) {
var key = arguments[i]; var key = arguments[i];
if (key == 'tests') { if (key == 'tests') {
for (var state in currentState) { for (var state in singleBuilderViewParameters) {
delete currentState[state]; delete currentState[state];
} }
} else { } else {
...@@ -1242,8 +1226,7 @@ ...@@ -1242,8 +1226,7 @@
} }
function getPermaLinkURL() { function getPermaLinkURL() {
return window.location.pathname + '?' + joinParameters(queryState) + '#' + return window.location.pathname + '#' + joinParameters(currentState);
joinParameters(currentState);
} }
function joinParameters(stateObject) { function joinParameters(stateObject) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment