diff options
author | Phil Hughes <me@iamphill.com> | 2018-04-17 14:45:03 +0300 |
---|---|---|
committer | Filipa Lacerda <filipa@gitlab.com> | 2018-04-20 11:56:12 +0300 |
commit | 836cc6bc53537bea3b17cda6126fefb3fc22e0f0 (patch) | |
tree | 4bc2ecaa66eeb3e160c1258a73c9a1b4e38711ca /app | |
parent | d676ef1fa88efffb53a553717ae420b498642199 (diff) |
Merge branch '45406-error-getting-performance-bar-results-for-uuid-regularly-seen-in-production' into 'master'
Resolve ""Error getting performance bar results for [UUID]" regularly seen in production"
Closes #45406
See merge request gitlab-org/gitlab-ce!18419
Diffstat (limited to 'app')
-rw-r--r-- | app/assets/javascripts/performance_bar/services/performance_bar_service.js | 30 |
1 files changed, 13 insertions, 17 deletions
diff --git a/app/assets/javascripts/performance_bar/services/performance_bar_service.js b/app/assets/javascripts/performance_bar/services/performance_bar_service.js index 3ebfaa87a4e..bc71911ae35 100644 --- a/app/assets/javascripts/performance_bar/services/performance_bar_service.js +++ b/app/assets/javascripts/performance_bar/services/performance_bar_service.js @@ -10,29 +10,25 @@ export default class PerformanceBarService { } static registerInterceptor(peekUrl, callback) { - vueResourceInterceptor = (request, next) => { - next(response => { - const requestId = response.headers['x-request-id']; - const requestUrl = response.url; - - if (requestUrl !== peekUrl && requestId) { - callback(requestId, requestUrl); - } - }); - }; - - Vue.http.interceptors.push(vueResourceInterceptor); - - return axios.interceptors.response.use(response => { + const interceptor = response => { const requestId = response.headers['x-request-id']; - const requestUrl = response.config.url; + // Get the request URL from response.config for Axios, and response for + // Vue Resource. + const requestUrl = (response.config || response).url; + const cachedResponse = response.headers['x-gitlab-from-cache'] === 'true'; - if (requestUrl !== peekUrl && requestId) { + if (requestUrl !== peekUrl && requestId && !cachedResponse) { callback(requestId, requestUrl); } return response; - }); + }; + + vueResourceInterceptor = (request, next) => next(interceptor); + + Vue.http.interceptors.push(vueResourceInterceptor); + + return axios.interceptors.response.use(interceptor); } static removeInterceptor(interceptor) { |