{ "log": { "version": "1.2", "creator": { "name": "WebInspector", "version": "537.36" }, "pages": [ { "startedDateTime": "2016-11-28T23:32:55.813Z", "id": "page_1", "title": "https://ci.blueocean.io/blue/organizations/jenkins/blueocean/activity", "pageTimings": { "onContentLoad": 3687.9030000418425, "onLoad": 3687.6720000291243 } } ], "entries": [ { "startedDateTime": "2016-11-28T23:32:55.813Z", "time": 246.40199996065348, "request": { "method": "GET", "url": "https://ci.blueocean.io/blue/organizations/jenkins/blueocean/activity", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Pragma", "value": "no-cache" }, { "name": "Accept-Encoding", "value": "gzip, deflate, sdch, br" }, { "name": "Host", "value": "ci.blueocean.io" }, { "name": "Accept-Language", "value": "en-US,en;q=0.8,nb;q=0.6" }, { "name": "Upgrade-Insecure-Requests", "value": "1" }, { "name": "User-Agent", "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36" }, { "name": "Accept", "value": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" }, { "name": "Cache-Control", "value": "no-cache" }, { "name": "Cookie", "value": "jenkins-timestamper-offset=-39600000; JSESSIONID.a1789e9f=82v0tfh22kj71jn0u9xt78vw2" }, { "name": "Connection", "value": "keep-alive" } ], "queryString": [], "cookies": [ { "name": "jenkins-timestamper-offset", "value": "-39600000", "expires": null, "httpOnly": false, "secure": false }, { "name": "JSESSIONID.a1789e9f", "value": "82v0tfh22kj71jn0u9xt78vw2", "expires": null, "httpOnly": false, "secure": false } ], "headersSize": 578, "bodySize": 0 }, "response": { "status": 302, "statusText": "Found", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Location", "value": "https://ci.blueocean.io/blue/organizations/jenkins/blueocean/activity/" }, { "name": "Date", "value": "Mon, 28 Nov 2016 23:32:55 GMT" }, { "name": "X-Content-Type-Options", "value": "nosniff" }, { "name": "Server", "value": "nginx/1.9.14" }, { "name": "Connection", "value": "keep-alive" }, { "name": "Transfer-Encoding", "value": "chunked" } ], "cookies": [], "content": { "size": 0, "mimeType": "x-unknown", "compression": 0 }, "redirectURL": "https://ci.blueocean.io/blue/organizations/jenkins/blueocean/activity/", "headersSize": 248, "bodySize": 0, "_transferSize": 248 }, "cache": {}, "timings": { "blocked": 1.1, "dns": -1, "connect": -1, "send": 0.08499999999999996, "wait": 244.519, "receive": 0.6979999606534761, "ssl": -1 }, "serverIPAddress": "107.22.181.102", "connection": "8277", "pageref": "page_1" }, { "startedDateTime": "2016-11-28T23:32:56.060Z", "time": 253.3640000037849, "request": { "method": "GET", "url": "https://ci.blueocean.io/blue/organizations/jenkins/blueocean/activity/", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Pragma", "value": "no-cache" }, { "name": "Accept-Encoding", "value": "gzip, deflate, sdch, br" }, { "name": "Host", "value": "ci.blueocean.io" }, { "name": "Accept-Language", "value": "en-US,en;q=0.8,nb;q=0.6" }, { "name": "Upgrade-Insecure-Requests", "value": "1" }, { "name": "User-Agent", "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36" }, { "name": "Accept", "value": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" }, { "name": "Cache-Control", "value": "no-cache" }, { "name": "Cookie", "value": "jenkins-timestamper-offset=-39600000; JSESSIONID.a1789e9f=82v0tfh22kj71jn0u9xt78vw2" }, { "name": "Connection", "value": "keep-alive" } ], "queryString": [], "cookies": [ { "name": "jenkins-timestamper-offset", "value": "-39600000", "expires": null, "httpOnly": false, "secure": false }, { "name": "JSESSIONID.a1789e9f", "value": "82v0tfh22kj71jn0u9xt78vw2", "expires": null, "httpOnly": false, "secure": false } ], "headersSize": 579, "bodySize": 0 }, "response": { "status": 200, "statusText": "OK", "httpVersion": "HTTP/1.1", "headers": [ { "name": "Date", "value": "Mon, 28 Nov 2016 23:32:56 GMT" }, { "name": "Content-Encoding", "value": "gzip" }, { "name": "X-Content-Type-Options", "value": "nosniff" }, { "name": "Server", "value": "nginx/1.9.14" }, { "name": "Connection", "value": "keep-alive" }, { "name": "Transfer-Encoding", "value": "chunked" }, { "name": "Content-Type", "value": "text/html;charset=UTF-8" } ], "cookies": [], "content": { "size": 2961, "mimeType": "text/html", "compression": 1860, "text": "\n \n\n
\n * This function will throw an error if the module is not already loaded via an outer call to 'import'\n * (or 'import').\n *\n * @param moduleQName The module \"qualified\" name containing the module name prefixed with the namespace\n * separated by a colon i.e. \" \n * The assumption is that the CSS can be accessed at e.g.\n * {@code \n * This should only ever be called from a test environment.\n */\nexports.initJenkinsGlobal = function() {\n internal.initJenkinsGlobal();\n};\n\ninternal.onJenkinsGlobalInit(function(jenkinsCIGlobal) {\n // For backward compatibility, we need to make some js-modules\n // functions globally available e.g. to allow legacy code wait for\n // certain modules to be loaded, as with legacy adjuncts.\n if (!jenkinsCIGlobal._internal) {\n // Put the functions on an object called '_internal' as a way\n // of hinting to people to not use it.\n jenkinsCIGlobal._internal = {\n import: exports.import,\n addScript: internal.addScript\n };\n }\n});\n},{\"./internal\":2,\"./promise\":3}],2:[function(require,module,exports){\nvar promise = require(\"./promise\");\nvar windowHandle = require(\"window-handle\");\nvar jenkinsCIGlobal;\nvar globalInitListeners = [];\nvar whoami;\n\nexports.whoami = function(moduleQName) {\n if (moduleQName) {\n whoami = exports.parseResourceQName(moduleQName);\n whoami.nsProvider = getBundleNSProviderFromScriptElement(whoami.namespace, whoami.moduleName);\n }\n return whoami;\n};\n\nexports.onReady = function(callback) {\n // This allows test based initialization of js-modules when there might \n // not yet be a global window object.\n if (jenkinsCIGlobal) {\n callback();\n } else {\n windowHandle.getWindow(function() {\n callback();\n });\n } \n};\n\nexports.onJenkinsGlobalInit = function(callback) {\n globalInitListeners.push(callback);\n};\n\nexports.initJenkinsGlobal = function() {\n jenkinsCIGlobal = {\n };\n if (globalInitListeners) {\n for (var i = 0; i < globalInitListeners.length; i++) {\n globalInitListeners[i](jenkinsCIGlobal);\n }\n }\n};\n\nexports.clearJenkinsGlobal = function() { \n jenkinsCIGlobal = undefined;\n whoami = undefined;\n};\n\nexports.getJenkins = function() {\n if (jenkinsCIGlobal) {\n return jenkinsCIGlobal;\n }\n var window = windowHandle.getWindow();\n if (window.jenkinsCIGlobal) {\n jenkinsCIGlobal = window.jenkinsCIGlobal;\n } else {\n exports.initJenkinsGlobal();\n jenkinsCIGlobal.rootURL = getRootURL();\n window.jenkinsCIGlobal = jenkinsCIGlobal;\n } \n return jenkinsCIGlobal;\n};\n\nexports.getModuleNamespaceObj = function(moduleSpec) {\n if (moduleSpec.namespace) {\n return exports.getNamespace(moduleSpec.namespace);\n } else {\n return exports.getGlobalModules();\n }\n}\n\nexports.getNamespace = function(namespaceName) {\n var namespaces = exports.getNamespaces();\n var namespace = namespaces[namespaceName];\n if (!namespace) {\n namespace = {\n globalNS: false \n };\n namespaces[namespaceName] = namespace;\n }\n return namespace;\n};\n\nexports.import = function(moduleQName, onRegisterTimeout) {\n return promise.make(function (resolve, reject) {\n // Some functions here needs to access the 'window' global. We want to make sure that\n // exists before attempting to fulfill the require operation. It may not exists\n // immediately in a test env.\n exports.onReady(function() {\n var moduleSpec = exports.parseResourceQName(moduleQName);\n var module = exports.getModule(moduleSpec);\n \n if (module) {\n // module already loaded\n resolve(module.exports);\n } else {\n if (onRegisterTimeout === 0) {\n if (moduleSpec.namespace) {\n throw 'Module ' + moduleSpec.namespace + ':' + moduleSpec.moduleName + ' require failure. Async load mode disabled.';\n } else {\n throw 'Global module ' + moduleSpec.moduleName + ' require failure. Async load mode disabled.';\n }\n }\n\n // module not loaded. Load async, fulfilling promise once registered\n exports.loadModule(moduleSpec, onRegisterTimeout)\n .onFulfilled(function (moduleExports) {\n resolve(moduleExports);\n })\n .onRejected(function (error) {\n reject(error);\n });\n }\n });\n }); \n};\n\nexports.loadModule = function(moduleSpec, onRegisterTimeout) {\n var moduleNamespaceObj = exports.getModuleNamespaceObj(moduleSpec);\n var module = moduleNamespaceObj[moduleSpec.moduleName];\n \n if (module) {\n // Module already loaded. This prob shouldn't happen.\n console.log(\"Unexpected call to 'loadModule' for a module (\" + moduleSpec.moduleName + \") that's already loaded.\");\n return promise.make(function (resolve) {\n resolve(module.exports);\n });\n }\n\n function waitForRegistration(loadingModule, onRegisterTimeout) {\n return promise.make(function (resolve, reject) {\n if (typeof onRegisterTimeout !== \"number\") {\n onRegisterTimeout = 10000;\n }\n \n var timeoutObj = setTimeout(function () {\n // Timed out waiting on the module to load and register itself.\n if (!loadingModule.loaded) {\n var moduleSpec = loadingModule.moduleSpec;\n var errorDetail;\n \n if (moduleSpec.namespace) {\n errorDetail = \"Timed out waiting on module '\" + moduleSpec.namespace + \":\" + moduleSpec.moduleName + \"' to load.\";\n } else {\n errorDetail = \"Timed out waiting on global module '\" + moduleSpec.moduleName + \"' to load.\";\n } \n console.error('Module load failure: ' + errorDetail);\n\n // Call the reject function and tell it we timed out\n reject({\n reason: 'timeout',\n detail: errorDetail\n });\n }\n }, onRegisterTimeout);\n \n loadingModule.waitList.push({\n resolve: resolve,\n timeoutObj: timeoutObj\n }); \n });\n }\n \n var loadingModule = getLoadingModule(moduleNamespaceObj, moduleSpec.moduleName);\n if (!loadingModule.waitList) {\n loadingModule.waitList = [];\n }\n loadingModule.moduleSpec = moduleSpec; \n loadingModule.loaded = false;\n\n try {\n return waitForRegistration(loadingModule, onRegisterTimeout);\n } finally {\n // We can auto/dynamic load modules in a non-global namespace. Global namespace modules\n // need to make sure they load themselves (via an adjunct, or whatever).\n if (moduleSpec.namespace) {\n var scriptId = exports.toModuleId(moduleSpec.namespace, moduleSpec.moduleName) + ':js';\n var scriptSrc = exports.toModuleSrc(moduleSpec, 'js');\n var scriptEl = exports.addScript(scriptSrc, {\n scriptId: scriptId,\n scriptSrcBase: ''\n });\n\n if (scriptEl) {\n // Set the module spec info on the \n *
\n * \n * @param scriptSrc The script src.\n * @param options Optional script load options object. See above.\n */\nexports.addScript = function(scriptSrc, options) {\n internal.onReady(function() {\n internal.addScript(scriptSrc, options);\n }); \n};\n\n/**\n * Set the module registration timeout i.e. the length of time to wait for a module to load before failing.\n *\n * @param timeout Millisecond duration before onRegister times out. Defaults to 10000 (10s) if not specified.\n */\nexports.setRegisterTimeout = function(timeout) {\n onRegisterTimeout = timeout;\n}\n\n/**\n * Set the Jenkins root/base URL.\n * \n * @param rootUrl The root/base URL.\n */\nexports.setRootURL = function(rootUrl) {\n internal.setRootURL(rootUrl);\n};\n\nexports.getRootURL = internal.getRootURL;\nexports.getAdjunctURL = internal.getAdjunctURL;\n\n/**\n * Manually initialise the Jenkins Global.\n *