038c31ecb2bd9e59311bb3009646ddc5374fa9d6
galt
  Fri Jul 13 23:06:35 2018 -0700
hgc functions using framesets and a few other odd places that make their own html head were tweaked to include the CSP header. Thisis also helpful with early errors. refs #21729

diff --git src/hg/hgc/retroClick.c src/hg/hgc/retroClick.c
index 1b94ffa..024e359 100644
--- src/hg/hgc/retroClick.c
+++ src/hg/hgc/retroClick.c
@@ -796,34 +796,33 @@
 char *table = cartString(cart, "table");
 int start = cartInt(cart, "o");
 struct sqlConnection *conn = hAllocConn(database);
 struct sqlConnection *defDbConn = NULL;
 struct mappingInfo *mi = mappingInfoNew(conn, table, mappedId);
 struct genbankCds cds = getCds(conn, mi);
 struct psl *psl;
 struct dnaSeq *rnaSeq = NULL;
 char *spec = trackDbRequiredSetting(tdb, BASE_COLOR_USE_SEQUENCE);
 char *specCopy = cloneString(spec);
 char *words[3];
 int nwords = chopByWhite(specCopy, words, ArraySize(words));
 
 char acc[512];
 
-/* Print start of HTML. */
-writeFramesetType();
-puts("<HTML>");
-printf("<HEAD>\n<TITLE>%s vs Genomic [%s]</TITLE>\n</HEAD>\n\n", mi->seqId, track);
+char title[1024];
+safef(title, sizeof title, "%s vs Genomic [%s]", mi->seqId, track);
+htmlFramesetStart(title);
 
 /* Look up alignment and sequence in database.  Always get sequence
  * from defaultDb */
 psl = loadAlign(conn, mi, start);
 if (startsWith("August",mi->geneSet))
     safef(acc, sizeof(acc), "aug-%s.T1",mi->seqId);
 else
     safef(acc, sizeof(acc), "%s",mi->seqId);
 // value is: extFile seqTbl extFileTbl
 if ((nwords != (int)ArraySize(words)) || !sameString(words[0], "extFile"))
     errAbort("invalid %s track setting: %s ", BASE_COLOR_USE_SEQUENCE, spec);
 char *seqTable = words[1];
 char *extTable = words[2];
 rnaSeq = hDnaSeqGet(database, acc, seqTable, extTable);
 if (rnaSeq == NULL)