af730d9e24c0642fe39657f890bc117ed015ccbf galt Wed Feb 15 01:12:26 2017 -0800 CSP code cleanup. Using new var-args versions of functions jsInlineF and jsOnEventByIdF to avoid using lots of fixed-size local javascript strings. diff --git src/hg/hgTrackUi/hgTrackUi.c src/hg/hgTrackUi/hgTrackUi.c index 3e299be..a7f855a 100644 --- src/hg/hgTrackUi/hgTrackUi.c +++ src/hg/hgTrackUi/hgTrackUi.c @@ -2737,67 +2737,63 @@ void superTrackUi(struct trackDb *superTdb, struct trackDb *tdbList) /* List tracks in this collection, with visibility controls and UI links */ { jsIncludeFile("hui.js",NULL); printf("\n
");
printf("![]() ![]() "); printf(" | |||
"); if (!tdbIsDownloadsOnly(tdb)) { char id[256]; enum trackVisibility tv = hTvFromString(cartUsualString(cart, tdb->track,hStringFromTv(tdb->visibility))); // Don't use cheapCgi code... no name and no boolshad... just js printf("", tdb->track, (tv != tvHide?" CHECKED":"")); safef(id, sizeof id, "%s", tdb->track); - safef(javascript, sizeof javascript, "superT.childChecked(this);"); - jsOnEventById("change", id, javascript); // TODO XSS Filter track as id? + jsOnEventById("change", id, "superT.childChecked(this);"); safef(javascript, sizeof(javascript), "superT.selChanged(this)"); struct slPair *event = slPairNew("change", cloneString(javascript)); hTvDropDownClassVisOnlyAndExtra(tdb->track, tv, tdb->canPack, (tv == tvHide ? "hiddenText":"normalText"), trackDbSetting(tdb, "onlyVisibility"), event); printf(" | \n"); safef(id, sizeof id, "%s_link", tdb->track); printf("" "%s ", (tdbIsDownloadsOnly(tdb)? hgFileUiName(): hgTrackUiName()), cartSessionVarName(), cartSessionId(cart), chromosome, cgiEncode(tdb->track), id, tdb->shortLabel); - safef(javascript, sizeof(javascript), "superT.submitAndLink(this);"); - jsOnEventById("click", id, javascript); // TODO XSS Filter track as id? + jsOnEventById("click", id, "superT.submitAndLink(this);"); } else { printf("Downloads", hgFileUiName(),cartSessionVarName(), cartSessionId(cart), cgiEncode(tdb->track)); printf(" | \n"); printf("%s ",tdb->shortLabel); } printf(" | \n"); printf("%s", tdb->longLabel); char *dataVersion = trackDbSetting(tdb, "dataVersion"); if (dataVersion) printf("  %s", dataVersion); printf(" |