b04a39a028980ea32b2ac62950bdff0a67de16d0 galt Wed Jul 18 14:48:19 2018 -0700 Add missing CSP header to pages not handled automatically by library functions. refs #21729. diff --git src/hg/hgGenome/browseRegions.c src/hg/hgGenome/browseRegions.c index ae8edc4..f5984d5 100644 --- src/hg/hgGenome/browseRegions.c +++ src/hg/hgGenome/browseRegions.c @@ -1,72 +1,72 @@ /* Copyright (C) 2012 The Regents of the University of California * See README in this or parent directory for licensing information. */ #include "common.h" #include "hash.h" #include "portable.h" #include "bed.h" #include "htmshell.h" #include "cart.h" #include "hui.h" #include "web.h" #include "chromGraph.h" #include "hPrint.h" #include "hgGenome.h" #include "trashDir.h" static void quotedBrowserUrl(FILE *f, struct bed3 *bed, struct genoGraph *gg) /* Print URL that will open browser at bed position with genoGraph track on */ { fprintf(f, "\"../../cgi-bin/hgTracks?db=%s&position=%s:%d-%d&hgGenomeClick=browseRegions&%s=full\"", database, bed->chrom, bed->chromStart+1, bed->chromEnd, gg->name); } void browseRegions(struct sqlConnection *conn) /* Put up a frame with a list of links on the left and the * first link selected on the right. */ { struct genoGraph *gg = ggFirstVisible(); double threshold = getThreshold(); struct bed3 *bed, *bedList = regionsOverThreshold(gg); /* Define names of our two frames. */ char *browserFrame = "browser"; char *indexFrame = "index"; /* Write index html file. */ struct tempName indexTn; trashDirFile(&indexTn, "hgg", "index", ".html"); FILE *f = mustOpen(indexTn.forCgi, "w"); htmStart(f, "Region Index"); fprintf(f, "<BODY>"); fprintf(f, "<B>%s</B><BR>\n", gg->shortLabel); fprintf(f, "%3.1f Mb in<BR>\n", 0.000001*bedTotalSize((struct bed*)bedList)); fprintf(f, "%d regions > %g<BR>\n", slCount(bedList), threshold); for (bed = bedList; bed != NULL; bed = bed->next) { fprintf(f, "<A HREF="); quotedBrowserUrl(f, bed, gg); fprintf(f, " TARGET=\"%s\">", browserFrame); fprintf(f, "%s %3.1fM to %3.1fM</A><BR>", bed->chrom, 0.000001*bed->chromStart, 0.000001*bed->chromEnd); } fprintf(f, "</BODY>\n"); carefulClose(&f); /* Write frames */ hPrintf("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Frameset//EN\">\n"); -hPrintf("<HTML><HEAD><TITLE>%s Regions >= %g</TITLE></HEAD>\n", - gg->shortLabel, threshold); +hPrintf("<HTML><HEAD>\n%s<TITLE>%s Regions >= %g</TITLE></HEAD>\n", + getCspMetaHeader(), gg->shortLabel, threshold); hPrintf("<FRAMESET COLS=\"19%%,81%%\">\n"); hPrintf("<FRAME SRC=\"%s\" NAME=\"%s\">\n", indexTn.forCgi, indexFrame); hPrintf("<FRAME SRC="); quotedBrowserUrl(stdout, bedList, gg); hPrintf(" NAME=\"%s\">\n", browserFrame); hPrintf("<NOFRAMES><BODY></BODY></NOFRAMES>\n"); hPrintf("</FRAMESET>\n"); hPrintf("</HTML>\n"); }