Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(83)

Side by Side Diff: tools/perf/metrics/chrome_proxy.js

Issue 397483002: Move chrome_proxy tests from under tools/perf to tools/chrome_proxy/integration_tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: addressed comments and sync'ed Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « tools/perf/metrics/OWNERS ('k') | tools/perf/metrics/chrome_proxy.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 // This file contains common utilities to find chrome proxy related elements on
6 // a page and collect info from them.
7
8 (function() {
9 var PROXY_VIEW_ID = 'proxy-view-tab-content';
10 var PROXY_VIEW_EFFECTIVE_SETTINGS_ID = 'proxy-view-effective-settings';
11 var PROXY_VIEW_BAD_PROXIES_ID = 'proxy-view-bad-proxies-div';
12 var PROXY_VIEW_BAD_PROXIES_TBODY = 'proxy-view-bad-proxies-tbody';
13 var PRXOY_SETTINGS_PREFIX = 'Proxy server for HTTP: ['
14 var PROXY_SETTINGS_SIGNATURE = 'proxy.googlezip.net:443, ' +
15 'compress.googlezip.net:80, direct://';
16
17 // Returns the effective proxy in an array from settings.
18 // An example of the settings is:
19 // "Proxy server for HTTP: [proxy.googlezip.net:443, " +
20 // "compress.googlezip.net:80, direct://]"
21 function getEffectiveProxies(doc) {
22 var settings = doc.getElementById(PROXY_VIEW_EFFECTIVE_SETTINGS_ID);
23 if (settings && settings.innerHTML &&
24 settings.innerHTML.indexOf(PRXOY_SETTINGS_PREFIX) == 0) {
25 var left = settings.innerHTML.indexOf('[');
26 var right = settings.innerHTML.indexOf(']');
27 if (left >= 0 && right > left) {
28 return settings.innerHTML.substring(left + 1, right).split(/[ ,]+/);
29 }
30 }
31 return [];
32 }
33
34 // Returns an array of bad proxies. Each element is a bad proxy with
35 // attribute 'proxy' as the proxy name and attribute 'retry' as the
36 // next retry time.
37 function getBadProxyList(doc) {
38 var bad_proxies = doc.getElementById(PROXY_VIEW_BAD_PROXIES_ID);
39 if (bad_proxies.hasAttribute('style') &&
40 ('cssText' in bad_proxies.style) &&
41 bad_proxies.style.cssText == 'display: none;') {
42 return null;
43 }
44 var tbody = doc.getElementById(PROXY_VIEW_BAD_PROXIES_TBODY);
45 results = [];
46 for (var r = 0, n = tbody.rows.length; r < n; r++) {
47 results[r] = {};
48 results[r].proxy = tbody.rows[r].cells[0].innerHTML;
49 timeSpan = tbody.rows[r].cells[1].getElementsByTagName('span')[0];
50 if (timeSpan.hasAttribute('title') && timeSpan.title.indexOf('t=') == 0) {
51 results[r].retry = timeSpan.title.substr(2);
52 } else {
53 results[r].retry = '-1';
54 }
55 }
56 return results;
57 }
58
59 function getChromeProxyInfo() {
60 if (!document.getElementById(PROXY_VIEW_ID)) {
61 return null;
62 }
63 info = {};
64 info.proxies = getEffectiveProxies(document);
65 info.enabled = (info.proxies.length > 1 &&
66 info.proxies[info.proxies.length - 1] == 'direct://' &&
67 info.proxies[info.proxies.length - 2] != 'direct://');
68 info.badProxies = getBadProxyList(document);
69 return info;
70 };
71 window.__getChromeProxyInfo = getChromeProxyInfo;
72 })();
OLDNEW
« no previous file with comments | « tools/perf/metrics/OWNERS ('k') | tools/perf/metrics/chrome_proxy.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698