e0d9ec4b45b45a909e219e29d74fa8be55618078 max Fri Apr 26 03:10:32 2024 -0700 CSP for china tracking, refs #32535 diff --git src/lib/htmshell.c src/lib/htmshell.c index 54590fc..d0a096c 100644 --- src/lib/htmshell.c +++ src/lib/htmshell.c @@ -996,30 +996,32 @@ // used by hgIntegrator jsHelper and others dyStringAppend(policy, " code.jquery.com/jquery-1.9.1.min.js"); dyStringAppend(policy, " code.jquery.com/jquery-1.12.3.min.js"); dyStringAppend(policy, " code.jquery.com/ui/1.10.3/jquery-ui.min.js"); dyStringAppend(policy, " code.jquery.com/ui/1.11.0/jquery-ui.min.js"); dyStringAppend(policy, " code.jquery.com/ui/1.12.1/jquery-ui.js"); // used by google analytics dyStringAppend(policy, " www.google-analytics.com/analytics.js"); // used by google tag manager (new version of analytics) dyStringAppend(policy, " www.googletagmanager.com/gtag/js"); // cirm cdw lib and web browse dyStringAppend(policy, " www.samsarin.com/project/dagre-d3/latest/dagre-d3.js"); +// genome-china analytics +dyStringAppend(policy, " hm.baidu.com/hm.js"); dyStringAppend(policy, " cdnjs.cloudflare.com/ajax/libs/bowser/1.6.1/bowser.min.js"); dyStringAppend(policy, " cdnjs.cloudflare.com/ajax/libs/d3/3.4.4/d3.min.js"); dyStringAppend(policy, " cdnjs.cloudflare.com/ajax/libs/jquery/1.12.1/jquery.min.js"); dyStringAppend(policy, " cdnjs.cloudflare.com/ajax/libs/jstree/3.2.1/jstree.min.js"); dyStringAppend(policy, " cdnjs.cloudflare.com/ajax/libs/jstree/3.3.4/jstree.min.js"); dyStringAppend(policy, " cdnjs.cloudflare.com/ajax/libs/jstree/3.3.7/jstree.min.js"); dyStringAppend(policy, " cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"); dyStringAppend(policy, " login.persona.org/include.js"); // expMatrix dyStringAppend(policy, " ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"); dyStringAppend(policy, " ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"); dyStringAppend(policy, " ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"); @@ -1114,71 +1116,59 @@ void generateCspMetaHeader(FILE *f) /* generate meta CSP header */ { char *meta = getCspMetaHeader(); fputs(meta, f); freeMem(meta); } void _htmStartWithHead(FILE *f, char *head, char *title, boolean printDocType, int dirDepth) /* Write out bits of header that both stand-alone .htmls * and CGI returned .htmls need, including optional head info */ { if (printDocType) - { -//#define TOO_TIMID_FOR_CURRENT_HTML_STANDARDS -#ifdef TOO_TIMID_FOR_CURRENT_HTML_STANDARDS - fputs("\n", f); -#else///ifndef TOO_TIMID_FOR_CURRENT_HTML_STANDARDS - char *browserVersion; - if (btIE == cgiClientBrowser(&browserVersion, NULL, NULL) && *browserVersion < '8') - fputs("\n", f); - else fputs("\n",f); - // Strict would be nice since it fixes atleast one IE problem (use of :hover CSS pseudoclass) -#endif///ndef TOO_TIMID_FOR_CURRENT_HTML_STANDARDS - } if (doNotTranslate) fputs("\n", f); // switches off auto-translation question else fputs("\n", f); fputs("\n", f); if (doNotTranslate) fputs("\n", f); // switches off translation bar in Chrome and related browsers // CSP header generateCspMetaHeader(f); fputs(head, f); htmlFprintf(f,"%s\n", title); if (endsWith(title,"Login - UCSC Genome Browser")) fprintf(f,"\t\n"); fprintf(f, "\t\n"); if (htmlStyle != NULL) fputs(htmlStyle, f); if (htmlStyleSheet != NULL) fprintf(f,"\n", htmlStyleSheet); if (htmlStyleTheme != NULL) fputs(htmlStyleTheme, f); - +// With Analytics 4 we need the Javascript file in the header htmlPrintAnalyticsLink(f); fputs("\n\n",f); printBodyTag(f); htmlWarnBoxSetup(f); } void htmlStart(char *title) /* Write the start of an html from CGI */ { puts("Content-Type:text/html"); puts("\n"); _htmStartWithHead(stdout, "", title, TRUE, 1); }