Page Speed Optimization Libraries
1.7.30.1
|
00001 00017 00018 00019 namespace net_instaweb { 00020 00021 const char kGaSnippetGetTracker[] = "_modpagespeed_getRewriteTracker("; 00022 00023 const char kGaSnippetPrefix[] = 00024 "var _gaq = _gaq || [];\n" 00025 "(function(){\n" 00026 " function functionName(fn) {\n" 00027 " var name = /\\W*function\\s+([\\w\\$]+)\\(/.exec(fn);\n" 00028 " if (!name)\n" 00029 " return 'No name';\n" 00030 " return name[1];\n" 00031 " }\n" 00032 " var nameSpace = '_gat';\n" 00033 " var existingGat = window[nameSpace];\n" 00034 " if (existingGat && typeof existingGat['_getTracker'] == 'function') {\n" 00035 " return;\n" 00036 " }\n" 00037 "\n" 00038 " var gaqAccounts = [];\n" 00039 " function setAccount(acct, prefix) {\n" 00040 " if (gaqAccounts[prefix] != acct) {\n" 00041 " gaqAccounts[prefix] = acct;\n" 00042 " _gaq.push([prefix + '_setAccount', acct]);\n" 00043 " }\n" 00044 " }\n" 00045 "\n" 00046 " window['_modpagespeed_getRewriteTracker'] = function(tracker_acct,\n" 00047 " tracker_name) {\n" 00048 " var prefix = tracker_name ? tracker_name + '.' : '';\n" 00049 "\n" 00050 " function deferTrackerFunc(fn) {\n" 00051 " return function() {\n" 00052 " setAccount(tracker_acct, prefix);\n" 00053 " var pushArgs = [fn];\n" 00054 " [].push.apply(pushArgs, arguments);\n" 00055 " _gaq.push(pushArgs);\n" 00056 " };\n" 00057 " }\n" 00058 " var pageTrackerMethodNames = [\n"; 00059 00060 const char kGaSnippetSuffix[] = 00061 " ];\n" 00062 " var pageTracker = {\n" 00063 " initData: function() {},\n" 00064 " };\n" 00065 " for (var i=pageTrackerMethodNames.length; i--;) {\n" 00066 " var n = pageTrackerMethodNames[i];\n" 00067 " pageTracker[n] = deferTrackerFunc(prefix + n);\n" 00068 " }\n" 00069 " return pageTracker;\n" 00070 " };\n" 00071 "\n" 00072 " var ga = document.createElement('script');\n" 00073 " ga.type = 'text/javascript'; ga.async = true;\n" 00074 " ga.src = ('https:' == document.location.protocol ? 'https:///ssl' :\n" 00075 " 'http:///www') + '.google-analytics.com/ga.js';\n" 00076 " var s = document.getElementsByTagName('script')[0];\n" 00077 " s.parentNode.insertBefore(ga, s);\n" 00078 "})();\n"; 00079 }