src/hg/hgTracks/config.c 1.87

1.87 2009/12/08 18:44:27 tdreszer
Created static variable advancedJsEnabled to avoid excessive calls to look it up
Index: src/hg/hgTracks/config.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/hgTracks/config.c,v
retrieving revision 1.86
retrieving revision 1.87
diff -b -B -U 4 -r1.86 -r1.87
--- src/hg/hgTracks/config.c	12 Nov 2009 20:50:54 -0000	1.86
+++ src/hg/hgTracks/config.c	8 Dec 2009 18:44:27 -0000	1.87
@@ -443,17 +443,21 @@
 
 boolean advancedJavascriptFeaturesEnabled(struct cart *cart)
 // Returns TRUE if advanced javascript features are currently enabled
 {
-char *ua = cgiUserAgent();
-boolean defaultVal = TRUE;
+static boolean alreadyLookedForadvancedJs = FALSE;
+static boolean advancedJsEnabled = FALSE;
+if(!alreadyLookedForadvancedJs)
+    {
+    char *ua = cgiUserAgent();
+    boolean defaultVal = TRUE;
 
-// dragZooming was broken in version 530.4 of AppleWebKit browsers (used by Safari, Chrome and some other browsers).
-// This was explicitly fixed by the WebKit team in version 531.0.1 (see http://trac.webkit.org/changeset/45143).
-// The AppleWebKit version provided by the browser in user agent doesn't always include the minor version number, so to
-// be overly conservative we default drag-and-drop to off when AppleWebKit major version == 530
+    // dragZooming was broken in version 530.4 of AppleWebKit browsers (used by Safari, Chrome and some other browsers).
+    // This was explicitly fixed by the WebKit team in version 531.0.1 (see http://trac.webkit.org/changeset/45143).
+    // The AppleWebKit version provided by the browser in user agent doesn't always include the minor version number, so to
+    // be overly conservative we default drag-and-drop to off when AppleWebKit major version == 530
 
-if(ua != NULL)
+    if(ua != NULL)
     {
     char *needle = "AppleWebKit/";
     char *ptr = strstr(ua, needle);
     if(ptr != NULL)
@@ -462,6 +466,11 @@
         sscanf(ptr + strlen(needle), "%d", &version);
         defaultVal = (version != 530);
         }
     }
-return cartUsualBoolean(cart, "enableAdvancedJavascript", defaultVal);
+    advancedJsEnabled = cartUsualBoolean(cart, "enableAdvancedJavascript", defaultVal);
+    alreadyLookedForadvancedJs = TRUE;
+    }
+//else
+//    warn("already looked up advancedJsEnabled");  // got msg 41 times in one page!
+return advancedJsEnabled;
 }