tor-commits
Threads by month
- ----- 2026 -----
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
June 2014
- 21 participants
- 1213 discussions
[translation/https_everywhere] Update translations for https_everywhere
by translation@torproject.org 26 Jun '14
by translation@torproject.org 26 Jun '14
26 Jun '14
commit 4b5078a150d5d76970f20f9beefceec9142e132d
Author: Translation commit bot <translation(a)torproject.org>
Date: Thu Jun 26 16:15:15 2014 +0000
Update translations for https_everywhere
---
zh_TW/https-everywhere.properties | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/zh_TW/https-everywhere.properties b/zh_TW/https-everywhere.properties
index 39108e5..9e950ea 100644
--- a/zh_TW/https-everywhere.properties
+++ b/zh_TW/https-everywhere.properties
@@ -3,6 +3,6 @@ https-everywhere.menu.globalDisable = 停用 HTTPS Everywhere
https-everywhere.menu.enableDisable = 啟用 / 停用規則
https-everywhere.menu.noRules = (沒有規則適用於此網頁)
https-everywhere.menu.unknownRules = (適用此網頁的規則不明)
-https-everywhere.toolbar.hint = HTTPS Everywhere 已啟用。您可以根據網站站點基礎上透過切換網址列圖示以啟用。
+https-everywhere.toolbar.hint = HTTPS Everywhere 目前使用中。您可以根據站台對站台基礎上透過按下網址列中的圖示來作切換。
https-everywhere.migration.notification0 = 為了徹底落實關鍵修正,更新重置您的HTTPS Everywhere 規則設定至它們的預設值。
-https-everywhere.menu.ruleset-tests = 執行HTTPS Everywhere 規則設定測試
+https-everywhere.menu.ruleset-tests = 執行 HTTPS Everywhere 規則集測試
1
0
26 Jun '14
commit 0deee127602fd1f8bf3f9cdfd2900d862cc130f0
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Thu Jun 26 08:53:04 2014 -0700
Bump versions for 4.0-alpha-1.
---
gitian/versions.alpha | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/gitian/versions.alpha b/gitian/versions.alpha
index 962a1bd..4674a5f 100755
--- a/gitian/versions.alpha
+++ b/gitian/versions.alpha
@@ -1,16 +1,16 @@
-TORBROWSER_VERSION=4.0-alpha1-pre
+TORBROWSER_VERSION=4.0-alpha-1
BUNDLE_LOCALES="ar de es-ES fa fr it ko nl pl pt-PT ru tr vi zh-CN"
BUILD_PT_BUNDLES=1
-VERIFY_TAGS=0
+VERIFY_TAGS=1
FIREFOX_VERSION=24.6.0esr
-TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-4.x-1
-TOR_TAG=tor-0.2.4.22
+TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-4.x-1-build1
+TOR_TAG=tor-0.2.5.5-alpha
TORLAUNCHER_TAG=0.2.6.0
-TORBUTTON_TAG=1.6.9.0
-HTTPSE_TAG=3.4.5 # XXX: HTTPSE_VER is used instead, pending #11630
+TORBUTTON_TAG=1.6.10.1
+HTTPSE_TAG=3.5.1 # XXX: HTTPSE_VER is used instead, pending #11630
NSIS_TAG=v0.2
ZLIB_TAG=v1.2.8
LIBEVENT_TAG=release-2.0.21-stable
@@ -27,7 +27,7 @@ MEEK_TAG=0.9
GITIAN_TAG=tor-browser-builder-3.x-5
-OPENSSL_VER=1.0.1g
+OPENSSL_VER=1.0.1h
GMP_VER=5.1.3
FIREFOX_LANG_VER=$FIREFOX_VERSION
BINUTILS_VER=2.24
@@ -37,7 +37,7 @@ PYCRYPTO_VER=2.6.1
ARGPARSE_VER=1.2.1
PYYAML_VER=3.11
ZOPEINTERFACE_VER=4.0.5
-TWISTED_VER=13.1.0
+TWISTED_VER=13.2.0
M2CRYPTO_VER=0.21.1
PY2EXE_VER=0.6.9
SETUPTOOLS_VER=1.4
@@ -49,7 +49,7 @@ GO_VER=1.2
## File names for the source packages
OPENSSL_PACKAGE=openssl-${OPENSSL_VER}.tar.gz
GMP_PACKAGE=gmp-${GMP_VER}.tar.bz2
-NOSCRIPT_PACKAGE=noscript_security_suite-2.6.8.22-sm+fx+fn.xpi
+NOSCRIPT_PACKAGE=noscript_security_suite-2.6.8.28-fx+sm+fn.xpi
HTTPSE_PACKAGE=https-everywhere-${HTTPSE_VER}.xpi
TOOLCHAIN4_PACKAGE=x86_64-apple-darwin10.tar.xz
TOOLCHAIN4_OLD_PACKAGE=multiarch-darwin11-cctools127.2-gcc42-5666.3-llvmgcc42-2336.1-Linux-120724.tar.xz
@@ -72,19 +72,19 @@ PARSLEY_PACKAGE=Parsley-${PARSLEY_VER}.tar.gz
GO_PACKAGE=go${GO_VER}.src.tar.gz
# Hashes for packages with weak sigs or no sigs
-OPENSSL_HASH=53cb818c3b90e507a8348f4f5eaedb05d8bfe5358aabb508b7263cc670c3e028
+OPENSSL_HASH=9d1c8a9836aa63e2c6adb684186cbd4371c9e9dcc01d6e3bb447abf2d4d3d093
GMP_HASH=752079520b4690531171d0f4532e40f08600215feefede70b24fabdc6f1ab160
OSXSDK_HASH=6602d8d5ddb371fbc02e2a5967d9bd0cd7358d46f9417753c8234b923f2ea6fc
TOOLCHAIN4_HASH=7b71bfe02820409b994c5c33a7eab81a81c72550f5da85ff7af70da3da244645
TOOLCHAIN4_OLD_HASH=65c1b2d302358a6b95a26c6828a66908a199276193bb0b268f2dcc1a997731e9
-NOSCRIPT_HASH=5ec75d2f6fbf3ff7950a8eea2c7878d887ed3916aa89f99ec76b322b1e140c08
+NOSCRIPT_HASH=aea2ef3a262a70e871df0de937ac8f53cd2c5d1913066200d192bb6e30924275
HTTPSE_HASH=62ac6560bb224a8f5557722153a72fb245b30b345940c537423bfbb7d8144e29
MSVCR100_HASH=1221a09484964a6f38af5e34ee292b9afefccb3dc6e55435fd3aaf7c235d9067
PYCRYPTO_HASH=f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c
ARGPARSE_HASH=ddaf4b0a618335a32b6664d4ae038a1de8fbada3b25033f9021510ed2b3941a4
PYYAML_HASH=c36c938a872e5ff494938b33b14aaa156cb439ec67548fcab3535bb78b0846e8
ZOPEINTERFACE_HASH=1a7c84716bbd9981915b64a81d8a3f076a5934a8c8df4224655469b3564940cc
-TWISTED_HASH=110e957dd8fc4c6eaba8abe4f0477e60b2873e3cf1c260325863fd2ef69341c6
+TWISTED_HASH=095175638c019ac7c0604f4c291724a16ff1acd062e181b01293bf4dcbc62cf3
M2CRYPTO_HASH=25b94498505c2d800ee465db0cc1aff097b1615adc3ac042a1c85ceca264fc0a
PY2EXE_HASH=610a8800de3d973ed5ed4ac505ab42ad058add18a68609ac09e6cf3598ef056c
SETUPTOOLS_HASH=75d288687066ed124311d6ca5f40ffa92a0e81adcd7fff318c6e84082713cf39
1
0
[tor-browser-bundle/master] Revert "Log Tor Browser output to file and disown the process."
by mikeperry@torproject.org 26 Jun '14
by mikeperry@torproject.org 26 Jun '14
26 Jun '14
commit 27f1353baa0e3ce4dafcebe0eae6b48aa2f8704c
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Thu Jun 26 08:38:12 2014 -0700
Revert "Log Tor Browser output to file and disown the process."
This reverts commit c2bd8a5f070e771623aebfb66e95e9e954e5522d.
Reverted due to https://trac.torproject.org/projects/tor/ticket/12472
and https://trac.torproject.org/projects/tor/ticket/12468. We need to stop
HTTPS-Everywhere from logging URLs before we do this.
---
RelativeLink/RelativeLink.sh | 45 +++++++++++-------------------------------
1 file changed, 12 insertions(+), 33 deletions(-)
diff --git a/RelativeLink/RelativeLink.sh b/RelativeLink/RelativeLink.sh
index 86a40d9..4e6b7bb 100755
--- a/RelativeLink/RelativeLink.sh
+++ b/RelativeLink/RelativeLink.sh
@@ -284,41 +284,20 @@ setControlPortPasswd ${TOR_CONTROL_PASSWD:='"secret"'}
# XXX: Debug mode for Firefox??
+# not in debug mode, run proceed normally
printf "Launching Tor Browser for Linux in ${HOME}...\n"
cd "${HOME}"
-logfile=${PWD}/tbb-debug.log
-touch $logfile && printf "Logging Tor Browser output to file: %s\n" "${logfile}"
-
-# !!! We pass command-line arguments we got (except --debug) to Firefox.
+# XXX Someday we should pass whatever command-line arguments we got
+# (probably filenames or URLs) to Firefox.
+# !!! Dash above comment! Now we pass command-line arguments we got (except --debug) to Firefox.
# !!! Use at your own risk!
# Adding --class for fixing bug 11102.
-TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD} ./firefox --class "Tor Browser" \
- -profile TorBrowser/Data/Browser/profile.default "${@}" > $logfile 2>&1 </dev/null &
-
-pid="$!"
-
-for second in `seq 1 15` ; do
- sleep 1
- # Doing `kill -0` doesn't send a signal to the process, but it'll yell
- # "No such process" if that process doesn't exist (i.e. it already died):
- if `kill -0 $pid 2>&1 >/dev/null` ; then
- wait "$pid"
- exitcode="$?"
- complain "Tor Browser exited abnormally. Exit code: $exitcode "
- exit "$exitcode"
- else
- continue
- fi
-done
-
-if test -z "${exitcode}" ; then
- if test -z "$(kill -0 $pid 2>&1 >/dev/null)" ; then
- printf "Running Tor Browser process (PID %s) in background...\n" "$pid"
- disown "$pid"
- exitcode="0"
- else
- exitcode="66" # Something odd happened
- fi
+TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD} ./firefox --class "Tor Browser" \
+ -profile TorBrowser/Data/Browser/profile.default "${@}"
+exitcode="$?"
+if [ "$exitcode" -ne 0 ]; then
+ complain "Tor Browser exited abnormally. Exit code: $exitcode"
+ exit "$exitcode"
+else
+ printf '\nTor Browser exited cleanly.\n'
fi
-
-exit "$exitcode"
1
0
26 Jun '14
commit 80b06cdf422238f5eece38a1974d31e6e7be7a17
Author: Arthur Edelstein <arthuredelstein(a)gmail.com>
Date: Mon Jun 2 12:13:31 2014 -0700
remove obsolete files, re Bug 1506 P0
---
src/chrome.manifest | 12 ---
src/components/tor-protocol.js | 103 ----------------------
src/components/torRefSpoofer.js | 125 ---------------------------
src/components/tors-protocol.js | 103 ----------------------
src/components/window-mapper.js | 180 ---------------------------------------
5 files changed, 523 deletions(-)
diff --git a/src/chrome.manifest b/src/chrome.manifest
index 0318f79..af44862 100644
--- a/src/chrome.manifest
+++ b/src/chrome.manifest
@@ -155,18 +155,6 @@ contract @torproject.org/torbutton-torCheckService;1 {5d57312b-5d8c-4169-b4af-e8
component {f36d72c9-9718-4134-b550-e109638331d7} components/torbutton-logger.js
contract @torproject.org/torbutton-logger;1 {f36d72c9-9718-4134-b550-e109638331d7}
-# component {b985e49c-12cb-4f29-9d14-b62603332ec4} components/window-mapper.js
-# contract @torproject.org/content-window-mapper;1 {b985e49c-12cb-4f29-9d14-b62603332ec4}
-
-# component {65be2be0-ceb4-44c2-91a5-9c75c53430bf} components/torRefSpoofer.js
-# contract @torproject.org/torRefSpoofer;1 {65be2be0-ceb4-44c2-91a5-9c75c53430bf}
-
-# component {52183e20-4d4b-11de-8a39-0800200c9a66} components/tor-protocol.js
-# contract @mozilla.org/network/protocol;1?name=tor {52183e20-4d4b-11de-8a39-0800200c9a66}
-
-# component {a5a4bc50-5e8d-11de-8a39-0800200c9a66} components/tors-protocol.js
-# contract @mozilla.org/network/protocol;1?name=tors {a5a4bc50-5e8d-11de-8a39-0800200c9a66}
-
category profile-after-change CookieJarSelector @torproject.org/cookie-jar-selector;1
# category profile-after-change RefSpoofer @torproject.org/torRefSpoofer;1
category profile-after-change TBSessionBlocker @torproject.org/torbutton-ss-blocker;1
diff --git a/src/components/tor-protocol.js b/src/components/tor-protocol.js
deleted file mode 100644
index 4ba5cf4..0000000
--- a/src/components/tor-protocol.js
+++ /dev/null
@@ -1,103 +0,0 @@
-// Bug 1506 P0: This code is toggle-mode code and is unused. Kill it.
-
-// Test protocol related
-const kSCHEME = "tor";
-const kPROTOCOL_NAME = "tor";
-const kPROTOCOL_CONTRACTID = "@mozilla.org/network/protocol;1?name=" + kSCHEME;
-const kPROTOCOL_CID = Components.ID("52183e20-4d4b-11de-8a39-0800200c9a66");
-
-// Mozilla defined
-const kSIMPLEURI_CONTRACTID = "@mozilla.org/network/simple-uri;1";
-const kIOSERVICE_CONTRACTID = "@mozilla.org/network/io-service;1";
-const nsISupports = Components.interfaces.nsISupports;
-const nsIIOService = Components.interfaces.nsIIOService;
-const nsIProtocolHandler = Components.interfaces.nsIProtocolHandler;
-const nsIURI = Components.interfaces.nsIURI;
-
-function Protocol()
-{
-}
-
-Protocol.prototype =
-{
- QueryInterface: function(iid)
- {
- if (!iid.equals(nsIProtocolHandler) &&
- !iid.equals(nsISupports))
- throw Components.results.NS_ERROR_NO_INTERFACE;
- return this;
- },
-
- scheme: kSCHEME,
- defaultPort: -1,
- protocolFlags: nsIProtocolHandler.URI_NORELATIVE |
- nsIProtocolHandler.URI_NOAUTH,
-
- allowPort: function(port, scheme)
- {
- return false;
- },
-
- newURI: function(spec, charset, baseURI)
- {
- const nsIStandardURL = Components.interfaces.nsIStandardURL;
- var uri = Components.classes["@mozilla.org/network/standard-url;1"].createInstance(nsIStandardURL);
- uri.init(nsIStandardURL.URLTYPE_STANDARD, 80, spec, charset, baseURI);
-
- return uri.QueryInterface(Components.interfaces.nsIURI);
-
- },
-
- newChannel: function(aURI)
- {
- var prefs = Components.classes["@mozilla.org/preferences-service;1"]
- .getService(Components.interfaces.nsIPrefBranch);
- if (!prefs.getBoolPref("extensions.torbutton.tor_urls")) {
- throw Components.results.NS_ERROR_UNKNOWN_PROTOCOL;
- }
-
- /*The protocol has been called, therefore we want to enable tor, wait for it to activate return the new channel with the scheme of http.*/
- var ios = Components.classes[kIOSERVICE_CONTRACTID].getService(nsIIOService);
- var prompt = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
- .getService(Components.interfaces.nsIPromptService);
- var tor_enabled = prefs.getBoolPref("extensions.torbutton.tor_enabled");
- var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]
- .getService(Components.interfaces.nsIWindowMediator);
- var chrome = wm.getMostRecentWindow("navigator:browser");
- if (!ios.allowPort(aURI.port, aURI.scheme))
- throw Components.results.NS_ERROR_FAILURE;
-
- if (!tor_enabled)
- {
- var result = prompt.confirm(null, "Allow Tor toggle?", "Do you want to enable Tor and navigate to " + aURI.spec + "?");
- if (!result)
- throw Components.results.NS_ERROR_UNEXPECTED;
- chrome.torbutton_enable_tor(true);
- }
-
- //if tor is turned on then, else we should throw exception of some sort.
- tor_enabled = prefs.getBoolPref("extensions.torbutton.tor_enabled");
- if (!tor_enabled)
- throw Components.results.NS_ERROR_UNEXPECTED;
- else
- {
- aURI.scheme = "http";
- return ios.newChannelFromURI(aURI);
- }
- },
-
- // method of nsIClassInfo
- classDescription: "Tor protocol handler",
- classID: kPROTOCOL_CID,
- contractID: kPROTOCOL_CONTRACTID,
-}
-
-/**
-* XPCOMUtils.generateNSGetFactory was introduced in Mozilla 2 (Firefox 4).
-* XPCOMUtils.generateNSGetModule is for Mozilla 1.9.2 (Firefox 3.6).
-*/
-Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
-if (XPCOMUtils.generateNSGetFactory)
- var NSGetFactory = XPCOMUtils.generateNSGetFactory([Protocol]);
-else
- var NSGetModule = XPCOMUtils.generateNSGetModule([Protocol]);
diff --git a/src/components/torRefSpoofer.js b/src/components/torRefSpoofer.js
deleted file mode 100644
index 8b50075..0000000
--- a/src/components/torRefSpoofer.js
+++ /dev/null
@@ -1,125 +0,0 @@
-// Bug 1506 P0: I don't really believe referers matter in the grand scheme.
-// Kill this code.
-
-const kMODULE_CID = Components.ID("65be2be0-ceb4-44c2-91a5-9c75c53430bf");
-const kMODULE_CONTRACTID = "@torproject.org/torRefSpoofer;1";
-
-function RefSpoofer() {
- this.logger = Components.classes["@torproject.org/torbutton-logger;1"].getService(Components.interfaces.nsISupports).wrappedJSObject;
- this.logger.log(3, "RefSpoof component created");
- this.specials = /[-[\]{}()*+?.,\\^$|#\s]/g;
-}
-
-
-RefSpoofer.prototype = {
- observe: function(subject, topic, data)
- {
- if (topic == "http-on-modify-request") {
- var prefs = Components.classes["@mozilla.org/preferences-service;1"]
- .getService(Components.interfaces.nsIPrefBranch);
- var tor_enabled = prefs.getBoolPref("extensions.torbutton.tor_enabled");
-
- if (!tor_enabled)
- return;
-
- subject.QueryInterface(Components.interfaces.nsIHttpChannel);
- this.onModifyRequest(subject);
- return;
- }
- if (topic == "profile-after-change") {
- this.logger.log(3, "RefSpoof got profile-after-change");
- var os = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);
- os.addObserver(this, "http-on-modify-request", false);
- return;
- }
- },
- onModifyRequest: function(oHttpChannel)
- {
- var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
-
- var spoofmode = prefs.getIntPref("extensions.torbutton.refererspoof");
-
- var ios = Components.classes["@mozilla.org/network/io-service;1"]
- .getService(Components.interfaces.nsIIOService);
-
- if (spoofmode == 0)
- try {
- oHttpChannel.QueryInterface(Components.interfaces.nsIChannel);
- var referer;
- try{
- referer = oHttpChannel.getRequestHeader("Referer");
- referer = ios.newURI(referer,null,null);//make a nsIURI object for referer
- }catch(referr) {
- return;//no referer available or invalid uri
- }
- var requestURI = oHttpChannel.URI; //request nsIURI object
- var destHost = referer.host; //referer host w/o scheme
- var srcHost = oHttpChannel.URI.host;//request host without scheme
-
- // match is not what we want, unless we escape dots:
- var destHostMatch = destHost.replace(this.specials, "\\$&");
- var srcHostMatch = srcHost.replace(this.specials, "\\$&");
-
- // FIXME: This isn't exactly bulletproof security here, but it still
- // may need to be more lenient not to break sites...
- //
- // If we suspect issues, we can try doing the following first:
- // 1. Strip off all TLD suffixes, up to but not including '.'
- // 2. If more than one domain part is till left, strip off prefix
-
- //if they're in the same domain(if we can tell) or have the same host, keep the referer
- if (srcHost.split(".").length >= destHost.split(".").length
- && srcHost.match(destHostMatch)) // dest is a substring of src
- return;
- else if (destHost.split(".").length >= srcHost.split(".").length
- && destHost.match(srcHostMatch)) // src is a substring of dest
- return;
- //if they do not have the same host
- this.adjustRef(oHttpChannel, requestURI.scheme + "://" + requestURI.host);
- this.logger.safe_log(3, "Adjusting Referer, ",
- "from " + destHost + " to " + requestURI.host);
- }
- catch (ex) {
- this.logger.log(5, "RefSpoof onModifyRequest: " +ex);
- }
- else if (spoofmode == 2)
- this.adjustRef(oHttpChannel, "");
- },
- adjustRef: function(oChannel, sRef)
- {
- try {
- if (oChannel.referrer)
- {
- oChannel.referrer.spec = sRef;
- oChannel.setRequestHeader("Referer", sRef, false);
- }
- return true;
- }
- catch (ex) {
- this.logger.log(5, "RefSpoof adjustRef: " +ex);
- }
- return false;
- },
- QueryInterface: function(iid)
- {
- if (!iid.equals(Components.interfaces.nsISupports) &&
- !iid.equals(Components.interfaces.nsIObserver) &&
- !iid.equals(Components.interfaces.nsISupportsWeakReference))
- throw Components.results.NS_ERROR_NO_INTERFACE;
- return this;
- },
- _xpcom_categories: [{category:"profile-after-change"}],
- classID: kMODULE_CID,
- contractID: kMODULE_CONTRACTID,
- classDescription: "Tor Ref Spoofer"
-};
-
-/**
-* XPCOMUtils.generateNSGetFactory was introduced in Mozilla 2 (Firefox 4).
-* XPCOMUtils.generateNSGetModule is for Mozilla 1.9.2 (Firefox 3.6).
-*/
-Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
-if (XPCOMUtils.generateNSGetFactory)
- var NSGetFactory = XPCOMUtils.generateNSGetFactory([RefSpoofer]);
-else
- var NSGetModule = XPCOMUtils.generateNSGetModule([RefSpoofer]);
diff --git a/src/components/tors-protocol.js b/src/components/tors-protocol.js
deleted file mode 100644
index f075e43..0000000
--- a/src/components/tors-protocol.js
+++ /dev/null
@@ -1,103 +0,0 @@
-// Bug 1506 P0: This code is toggle-mode code and is unused. Kill it.
-
-// Test protocol related
-const kSCHEME = "tors";
-const kPROTOCOL_NAME = "tors";
-const kPROTOCOL_CONTRACTID = "@mozilla.org/network/protocol;1?name=" + kSCHEME;
-const kPROTOCOL_CID = Components.ID("a5a4bc50-5e8d-11de-8a39-0800200c9a66");
-
-// Mozilla defined
-const kSIMPLEURI_CONTRACTID = "@mozilla.org/network/simple-uri;1";
-const kIOSERVICE_CONTRACTID = "@mozilla.org/network/io-service;1";
-const nsISupports = Components.interfaces.nsISupports;
-const nsIIOService = Components.interfaces.nsIIOService;
-const nsIProtocolHandler = Components.interfaces.nsIProtocolHandler;
-const nsIURI = Components.interfaces.nsIURI;
-
-function Protocol()
-{
-}
-
-Protocol.prototype =
-{
- QueryInterface: function(iid)
- {
- if (!iid.equals(nsIProtocolHandler) &&
- !iid.equals(nsISupports))
- throw Components.results.NS_ERROR_NO_INTERFACE;
- return this;
- },
-
- scheme: kSCHEME,
- defaultPort: -1,
- protocolFlags: nsIProtocolHandler.URI_NORELATIVE |
- nsIProtocolHandler.URI_NOAUTH,
-
- allowPort: function(port, scheme)
- {
- return false;
- },
-
- newURI: function(spec, charset, baseURI)
- {
- const nsIStandardURL = Components.interfaces.nsIStandardURL;
- var uri = Components.classes["@mozilla.org/network/standard-url;1"].createInstance(nsIStandardURL);
- uri.init(nsIStandardURL.URLTYPE_STANDARD, 433, spec, charset, baseURI);
-
- return uri.QueryInterface(Components.interfaces.nsIURI);
-
- },
-
- newChannel: function(aURI)
- {
- var prefs = Components.classes["@mozilla.org/preferences-service;1"]
- .getService(Components.interfaces.nsIPrefBranch);
- if (!prefs.getBoolPref("extensions.torbutton.tor_urls")) {
- throw Components.results.NS_ERROR_UNKNOWN_PROTOCOL;
- }
-
- /*The protocol has been called, therefore we want to enable tor, wait for it to activate return the new channel with the scheme of https.*/
- var ios = Components.classes[kIOSERVICE_CONTRACTID].getService(nsIIOService);
- var prompt = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
- .getService(Components.interfaces.nsIPromptService);
- var tor_enabled = prefs.getBoolPref("extensions.torbutton.tor_enabled");
- var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]
- .getService(Components.interfaces.nsIWindowMediator);
- var chrome = wm.getMostRecentWindow("navigator:browser");
- if (!ios.allowPort(aURI.port, aURI.scheme))
- throw Components.results.NS_ERROR_FAILURE;
-
- if (!tor_enabled)
- {
- var result = prompt.confirm(null, "Allow Tor toggle?", "Do you want to enable Tor and navigate to " + aURI.spec + "?");
- if (!result)
- throw Components.results.NS_ERROR_UNEXPECTED;
- chrome.torbutton_enable_tor(true);
- }
-
- //if tor is turned on then, else we should throw exception of some sort.
- tor_enabled = prefs.getBoolPref("extensions.torbutton.tor_enabled");
- if (!tor_enabled)
- throw Components.results.NS_ERROR_UNEXPECTED;
- else
- {
- aURI.scheme = "https";
- return ios.newChannelFromURI(aURI);
- }
- },
-
- // method of nsIClassInfo
- classDescription: "Tor protocol handler",
- classID: kPROTOCOL_CID,
- contractID: kPROTOCOL_CONTRACTID
-}
-
-/**
-* XPCOMUtils.generateNSGetFactory was introduced in Mozilla 2 (Firefox 4).
-* XPCOMUtils.generateNSGetModule is for Mozilla 1.9.2 (Firefox 3.6).
-*/
-Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
-if (XPCOMUtils.generateNSGetFactory)
- var NSGetFactory = XPCOMUtils.generateNSGetFactory([Protocol]);
-else
- var NSGetModule = XPCOMUtils.generateNSGetModule([Protocol]);
diff --git a/src/components/window-mapper.js b/src/components/window-mapper.js
deleted file mode 100644
index a04f12b..0000000
--- a/src/components/window-mapper.js
+++ /dev/null
@@ -1,180 +0,0 @@
-// Bug 1506 P0: This code is toggle-mode code and is unused. Kill it.
-
-/*************************************************************************
- * ContentWindowMapper (JavaScript XPCOM component)
- *
- * Allows you to find a tabbrowser tab for a top level content window.
- *
- *************************************************************************/
-
-// Module specific constants
-const kMODULE_NAME = "Content Window Mapper";
-const kMODULE_CONTRACTID = "@torproject.org/content-window-mapper;1";
-const kMODULE_CID = Components.ID("b985e49c-12cb-4f29-9d14-b62603332ec4");
-
-const Cr = Components.results;
-const Cc = Components.classes;
-const Ci = Components.interfaces;
-const EXPIRATION_TIME = 60000; // 60 seconds
-
-const nsISupports = Components.interfaces.nsISupports;
-const nsIClassInfo = Components.interfaces.nsIClassInfo;
-const nsIComponentRegistrar = Components.interfaces.nsIComponentRegistrar;
-const nsIObserverService = Components.interfaces.nsIObserverService;
-
-function ContentWindowMapper() {
- this.cache = {};
-
- this.logger = Components.classes["@torproject.org/torbutton-logger;1"]
- .getService(Components.interfaces.nsISupports).wrappedJSObject;
- this.logger.log(3, "Component Load 2: Content window mapper online: "+kMODULE_CONTRACTID);
- this.last_expired = Date.now();
- // This JSObject is exported directly to chrome
- this.wrappedJSObject = this;
-}
-
-ContentWindowMapper.prototype =
-{
- QueryInterface: function(iid)
- {
- if (!iid.equals(nsIClassInfo) &&
- !iid.equals(nsISupports)) {
- Components.returnCode = Cr.NS_ERROR_NO_INTERFACE;
- return null;
- }
- return this;
- },
-
- wrappedJSObject: null, // Initialized by constructor
-
- // make this an nsIClassInfo object
- flags: nsIClassInfo.DOM_OBJECT,
-
- // method of nsIClassInfo
- classDescription: kMODULE_NAME,
- classID: kMODULE_CID,
- contractID: kMODULE_CONTRACTID,
-
- // method of nsIClassInfo
- getInterfaces: function(count) {
- var interfaceList = [nsIClassInfo];
- count.value = interfaceList.length;
- return interfaceList;
- },
-
- // method of nsIClassInfo
- getHelperForLanguage: function(count) { return null; },
-
- checkCache: function(topContentWindow) {
- if(typeof(topContentWindow.ghetto_guid) != "undefined"
- && typeof(this.cache[topContentWindow.ghetto_guid]) != "undefined") {
- return this.cache[topContentWindow.ghetto_guid].browser;
- }
-
- return null;
- },
-
- addCache: function(topContentWindow, browser) {
- var insertion = new Object();
- insertion.browser = browser;
- insertion.time = Date.now();
- topContentWindow.ghetto_guid = Math.random().toString()+Math.random().toString();
- this.cache[topContentWindow.ghetto_guid] = insertion;
- },
-
- expireOldCache: function() {
- var now = Date.now();
-
- if((now - this.last_expired) < EXPIRATION_TIME) {
- this.logger.log(3, "Early mapper check.");
- return;
- }
-
- var delkeys = [];
- for(var elem in this.cache) {
- if((now - this.cache[elem].time) > EXPIRATION_TIME) {
- this.logger.log(2, "Deleting cached element: "+elem.location);
- delkeys.push(elem);
- }
- }
-
- for(var k in delkeys) {
- delete this.cache[k];
- }
-
- this.last_expired = now;
- },
-
- getBrowserForContentWindow: function(topContentWindow) {
- if(topContentWindow instanceof Components.interfaces.nsIDOMChromeWindow) {
- if(topContentWindow.browserDOMWindow) {
- var browser = topContentWindow.getBrowser().selectedTab.linkedBrowser;
- this.logger.log(3, "Chrome browser at "
- +browser.contentWindow.location+" found for: "
- +topContentWindow.location);
- return browser;
- }
- // Allow strange chrome to go through..
- this.logger.log(3, "Odd chome window"+topContentWindow.location);
- return topContentWindow;
- }
-
- var cached = this.checkCache(topContentWindow);
- if(cached != null) {
- return cached;
- }
-
- try {
- this.logger.log(3, "Cache failed for: "+topContentWindow.location);
- } catch(e) {
- this.logger.log(3, "Cache failed for unknown location?");
- }
-
- var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]
- .getService(Components.interfaces.nsIWindowMediator);
- var enumerator = wm.getEnumerator("navigator:browser");
- while(enumerator.hasMoreElements()) {
- var win = enumerator.getNext();
- var browser = win.getBrowser();
- for (var i = 0; i < browser.browsers.length; ++i) {
- var b = browser.browsers[i];
- if (b && b.contentWindow == topContentWindow) {
- this.addCache(topContentWindow, b);
- return b;
- }
- }
- }
-
- // SpeedDial, google notebook and other extensions can create their
- // own "<browser>" tag elements. AFAICT, there is no way to enumerate
- // these... Just punt and return the most recently used browser
- try {
- if(topContentWindow.name != "speedDialLoaderBrowser") {
- if(topContentWindow && topContentWindow.location)
- this.logger.safe_log(4, "No browser found: ", topContentWindow.location);
- else
- this.logger.safe_log(4, "No browser found: ", topContentWindow.name);
- } else {
- this.logger.log(3, "SpeedDial browser found: "+topContentWindow.name);
- }
- } catch(e) {
- this.logger.log(4, "No browser found.");
- }
-
- // Punt..
- var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"].
- getService(Components.interfaces.nsIWindowMediator);
- var recentWindow = wm.getMostRecentWindow("navigator:browser");
- return recentWindow ? recentWindow.getBrowser().selectedTab.linkedBrowser : null;
- }
-}
-
-/**
-* XPCOMUtils.generateNSGetFactory was introduced in Mozilla 2 (Firefox 4).
-* XPCOMUtils.generateNSGetModule is for Mozilla 1.9.2 (Firefox 3.6).
-*/
-Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
-if (XPCOMUtils.generateNSGetFactory)
- var NSGetFactory = XPCOMUtils.generateNSGetFactory([ContentWindowMapper]);
-else
- var NSGetModule = XPCOMUtils.generateNSGetModule([ContentWindowMapper]);
1
0
[torbutton/master] Write changelog and bump version for 1.6.10.1.
by mikeperry@torproject.org 26 Jun '14
by mikeperry@torproject.org 26 Jun '14
26 Jun '14
commit 7d3a231de1584b8143ab050652bc178c93ce794e
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Thu Jun 26 08:29:48 2014 -0700
Write changelog and bump version for 1.6.10.1.
---
src/CHANGELOG | 4 ++++
src/install.rdf | 2 +-
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/CHANGELOG b/src/CHANGELOG
index dbcf7b3..9d4336b 100644
--- a/src/CHANGELOG
+++ b/src/CHANGELOG
@@ -1,3 +1,7 @@
+1.6.10.1
+ 5 Jun 2014
+ * Bug #12221: Remove obsolete Javascript components from the toggle era
+
1.6.10.0
5 Jun 2014
* Bug 11510: about:tor should not report success if tor proxy is unreachable
diff --git a/src/install.rdf b/src/install.rdf
index d4483a3..9da99e3 100644
--- a/src/install.rdf
+++ b/src/install.rdf
@@ -6,7 +6,7 @@
<em:name>Torbutton</em:name>
<em:creator>Mike Perry</em:creator>
<em:id>torbutton(a)torproject.org</em:id>
- <em:version>1.6.10.0</em:version>
+ <em:version>1.6.10.1</em:version>
<em:homepageURL>https://www.torproject.org/projects/torbrowser.html.en</em:homepageURL>
<em:optionsURL>chrome://torbutton/content/preferences.xul</em:optionsURL>
<em:iconURL>chrome://torbutton/skin/tor.png</em:iconURL>
1
0
[metrics-web/master] Rename page with bubble graphs to Diversity.
by karsten@torproject.org 26 Jun '14
by karsten@torproject.org 26 Jun '14
26 Jun '14
commit c6e04a4ea63301383f339579d85084ebc29276fc
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Thu Jun 26 14:42:09 2014 +0200
Rename page with bubble graphs to Diversity.
---
website/web/WEB-INF/banner.jsp | 3 ++-
website/web/WEB-INF/bubbles.jsp | 7 ++++++-
website/web/WEB-INF/error.jsp | 2 +-
3 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/website/web/WEB-INF/banner.jsp b/website/web/WEB-INF/banner.jsp
index 0756f7d..33f9f8f 100644
--- a/website/web/WEB-INF/banner.jsp
+++ b/website/web/WEB-INF/banner.jsp
@@ -11,7 +11,8 @@
<a <% if (currentPage.endsWith("network.jsp")) {
%>class="current"<%} else {%>href="/network.html"<%}%>>Network</a>
<a <% if (currentPage.endsWith("bubbles.jsp")) {
- %>class="current"<%} else {%>href="/bubbles.html"<%}%>>Bubbles</a>
+ %>class="current"<%} else {%>href="/bubbles.html"<%}
+ %>>Diversity</a>
<a <% if (currentPage.endsWith("users.jsp")) {
%>class="current"<%} else {%>href="/users.html"<%}%>>Users</a>
<a <% if (currentPage.endsWith("performance.jsp")) {
diff --git a/website/web/WEB-INF/bubbles.jsp b/website/web/WEB-INF/bubbles.jsp
index 5e65d16..6afa1fe 100644
--- a/website/web/WEB-INF/bubbles.jsp
+++ b/website/web/WEB-INF/bubbles.jsp
@@ -2,7 +2,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
- <title>Tor Metrics: Network bubble graphs</title>
+ <title>Tor Metrics: Diversity</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<link href="/css/stylesheet-ltr.css" type="text/css" rel="stylesheet">
<link href="/images/favicon.ico" type="image/x-icon" rel="shortcut icon">
@@ -13,6 +13,11 @@
<div class="center">
<%@ include file="banner.jsp"%>
<div class="main-column">
+<h2>Tor Metrics: Diversity</h2>
+<br>
+<a name="bubbles"></a>
+<h3><a href="#bubbles" class="anchor">Network bubble graphs</a></h3>
+<br>
<p>
All relays:
<a href="#no-group" onclick="make_bubble_graph('no-group');">No group</a> |
diff --git a/website/web/WEB-INF/error.jsp b/website/web/WEB-INF/error.jsp
index 79ac86e..37ef605 100644
--- a/website/web/WEB-INF/error.jsp
+++ b/website/web/WEB-INF/error.jsp
@@ -42,7 +42,7 @@ Maybe you find what you're looking for on our sitemap:
<ul>
<li><a href="index.html">Home</a></li>
<li><a href="network.html">Network</a></li>
-<li><a href="bubbles.html">Bubbles</a></li>
+<li><a href="bubbles.html">Diversity</a></li>
<li><a href="users.html">Users</a></li>
<li><a href="performance.html">Performance</a></li>
<li><a href="stats.html">Statistics</a></li>
1
0
commit c854b4c3e49e4dcc9051b1dc7c8397618d6c586a
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Thu Jun 26 14:22:23 2014 +0200
Simplify navigation.
It's not necessary anymore to group pages into graphs, research, and
formerly status, because it's all about graphs now. The navigation bar
and site map on the error page should reflect that.
Old links still work.
---
website/web/WEB-INF/banner.jsp | 57 +++++++++-------------------------------
website/web/WEB-INF/error.jsp | 9 -------
2 files changed, 12 insertions(+), 54 deletions(-)
diff --git a/website/web/WEB-INF/banner.jsp b/website/web/WEB-INF/banner.jsp
index 3acea7f..0756f7d 100644
--- a/website/web/WEB-INF/banner.jsp
+++ b/website/web/WEB-INF/banner.jsp
@@ -8,51 +8,18 @@
<% String currentPage = request.getRequestURI(); %>
<a <% if (currentPage.endsWith("index.jsp")) {
%>class="current"<%} else {%>href="/index.html"<%}%>>Home</a>
- <a <% if (currentPage.endsWith("graphs.jsp")) {
- %>class="current"<%} else {%>href="/graphs.html"<%}%>>Graphs</a>
- <a <% if (currentPage.endsWith("research.jsp")) {
- %>class="current"<%} else {%>href="/research.html"<%}%>>Research</a>
- <%if (currentPage.endsWith("graphs.jsp") ||
- currentPage.endsWith("network.jsp") ||
- currentPage.endsWith("bubbles.jsp") ||
- currentPage.endsWith("users.jsp") ||
- currentPage.endsWith("performance.jsp")) {
- %><br>
- <font size="2">
- <a <%if (currentPage.endsWith("network.jsp")){
- %>class="current"<%} else {%>href="/network.html"<%}
- %>>Network</a>
- <a <%if (currentPage.endsWith("bubbles.jsp")){
- %>class="current"<%} else {%>href="/bubbles.html"<%}
- %>>Bubbles</a>
- <a <%if (currentPage.endsWith("users.jsp")) {
- %>class="current"<%} else {%>href="/users.html"<%}
- %>>Users</a>
- <a <%if (currentPage.endsWith("performance.jsp")) {
- %>class="current"<%} else {%>href="/performance.html"<%}
- %>>Performance</a>
- </font>
- <%} else if (currentPage.endsWith("research.jsp") ||
- currentPage.endsWith("data.jsp") ||
- currentPage.endsWith("formats.jsp") ||
- currentPage.endsWith("tools.jsp") ||
- currentPage.endsWith("stats.jsp")) {
- %><br>
- <font size="2">
- <a <%if (currentPage.endsWith("data.jsp")) {
- %>class="current"<%} else {%> href="/data.html"<%}
- %>>Data</a>
- <a <%if (currentPage.endsWith("formats.jsp")) {
- %>class="current"<%} else {%> href="/formats.html"<%}
- %>>Formats</a>
- <a <%if (currentPage.endsWith("tools.jsp")) {
- %>class="current"<%} else {%> href="/tools.html"<%}
- %>>Tools</a>
- <a <%if (currentPage.endsWith("stats.jsp")) {
- %>class="current"<%} else {%> href="/stats.html"<%}
- %>>Statistics</a>
- </font>
- <%}%>
+ <a <% if (currentPage.endsWith("network.jsp")) {
+ %>class="current"<%} else {%>href="/network.html"<%}%>>Network</a>
+ <a <% if (currentPage.endsWith("bubbles.jsp")) {
+ %>class="current"<%} else {%>href="/bubbles.html"<%}%>>Bubbles</a>
+ <a <% if (currentPage.endsWith("users.jsp")) {
+ %>class="current"<%} else {%>href="/users.html"<%}%>>Users</a>
+ <a <% if (currentPage.endsWith("performance.jsp")) {
+ %>class="current"<%} else {%>href="/performance.html"<%}
+ %>>Performance</a>
+ <a <% if (currentPage.endsWith("stats.jsp")) {
+ %>class="current"<%} else {%>href="/stats.html"<%}
+ %>>Statistics</a>
</td>
<td class="banner-right"></td>
</tr>
diff --git a/website/web/WEB-INF/error.jsp b/website/web/WEB-INF/error.jsp
index 17ddee3..80ef077 100644
--- a/website/web/WEB-INF/error.jsp
+++ b/website/web/WEB-INF/error.jsp
@@ -41,20 +41,11 @@ when processing your request!</p>
Maybe you find what you're looking for on our sitemap:
<ul>
<li><a href="index.html">Home</a></li>
-<li><a href="graphs.html">Graphs</a>
-<ul>
<li><a href="network.html">Network</a></li>
<li><a href="bubbles.html">Bubbles</a></li>
<li><a href="users.html">Users</a></li>
<li><a href="performance.html">Performance</a></li>
-</ul></li>
-<li><a href="research.html">Research</a>
-<ul>
-<li><a href="data.html">Data</a></li>
-<li><a href="formats.html">Formats</a></li>
-<li><a href="tools.html">Tools</a></li>
<li><a href="stats.html">Statistics</a></li>
-</ul></li>
</ul>
</p>
1
0
[metrics-web/master] Split Network page into Servers and Bandwidth.
by karsten@torproject.org 26 Jun '14
by karsten@torproject.org 26 Jun '14
26 Jun '14
commit 8bda126ab01dbfd4ed7a00b8a1ed50e74596e9a6
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Thu Jun 26 15:45:58 2014 +0200
Split Network page into Servers and Bandwidth.
---
website/etc/web.xml | 4 +
.../metrics/web/graphs/GraphsSubpagesServlet.java | 2 +
website/web/WEB-INF/bandwidth.jsp | 252 ++++++++++++++++++++
website/web/WEB-INF/banner.jsp | 4 +-
website/web/WEB-INF/error.jsp | 3 +-
website/web/WEB-INF/network.jsp | 232 +-----------------
6 files changed, 265 insertions(+), 232 deletions(-)
diff --git a/website/etc/web.xml b/website/etc/web.xml
index a3149ff..c187315 100644
--- a/website/etc/web.xml
+++ b/website/etc/web.xml
@@ -40,6 +40,10 @@
</servlet-mapping>
<servlet-mapping>
<servlet-name>GraphsSubpages</servlet-name>
+ <url-pattern>/bandwidth.html</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>GraphsSubpages</servlet-name>
<url-pattern>/users.html</url-pattern>
</servlet-mapping>
<servlet-mapping>
diff --git a/website/src/org/torproject/metrics/web/graphs/GraphsSubpagesServlet.java b/website/src/org/torproject/metrics/web/graphs/GraphsSubpagesServlet.java
index 5ae17ff..6bbc5ca 100644
--- a/website/src/org/torproject/metrics/web/graphs/GraphsSubpagesServlet.java
+++ b/website/src/org/torproject/metrics/web/graphs/GraphsSubpagesServlet.java
@@ -39,6 +39,8 @@ public class GraphsSubpagesServlet extends HttpServlet {
this.availableGraphsSubpages = new HashMap<String, String>();
this.availableGraphsSubpages.put("network.html",
"WEB-INF/network.jsp");
+ this.availableGraphsSubpages.put("bandwidth.html",
+ "WEB-INF/bandwidth.jsp");
this.availableGraphsSubpages.put("users.html", "WEB-INF/users.jsp");
this.availableGraphsSubpages.put("performance.html",
"WEB-INF/performance.jsp");
diff --git a/website/web/WEB-INF/bandwidth.jsp b/website/web/WEB-INF/bandwidth.jsp
new file mode 100644
index 0000000..95d1201
--- /dev/null
+++ b/website/web/WEB-INF/bandwidth.jsp
@@ -0,0 +1,252 @@
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
+<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+ <title>Tor Metrics: Bandwidth</title>
+ <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+ <link href="/css/stylesheet-ltr.css" type="text/css" rel="stylesheet">
+ <link href="/images/favicon.ico" type="image/x-icon" rel="shortcut icon">
+</head>
+<body>
+ <div class="center">
+ <%@ include file="banner.jsp"%>
+ <div class="main-column">
+<h2>Tor Metrics: Bandwidth</h2>
+<br>
+
+<a name="bandwidth"></a>
+<h3><a href="#bandwidth" class="anchor">Total relay bandwidth in the
+network</a></h3>
+<br>
+<p>Relays report how much bandwidth they are willing to contribute and how
+many bytes they have read and written in the past 24 hours. The following
+graph shows total advertised bandwidth and bandwidth history of all relays
+in the network.</p>
+<img src="bandwidth.png${bandwidth_url}"
+ width="576" height="360" alt="Relay bandwidth graph">
+<form action="network.html#bandwidth">
+ <div class="formrow">
+ <input type="hidden" name="graph" value="bandwidth">
+ <p>
+ <label>Start date (yyyy-mm-dd):</label>
+ <input type="text" name="start" size="10"
+ value="<c:choose><c:when test="${fn:length(bandwidth_start) == 0}">${default_start_date}</c:when><c:otherwise>${bandwidth_start[0]}</c:otherwise></c:choose>">
+ <label>End date (yyyy-mm-dd):</label>
+ <input type="text" name="end" size="10"
+ value="<c:choose><c:when test="${fn:length(bandwidth_end) == 0}">${default_end_date}</c:when><c:otherwise>${bandwidth_end[0]}</c:otherwise></c:choose>">
+ </p><p>
+ <input class="submit" type="submit" value="Update graph">
+ </p>
+ </div>
+</form>
+<p>Download graph as
+<a href="bandwidth.pdf${bandwidth_url}">PDF</a> or
+<a href="bandwidth.svg${bandwidth_url}">SVG</a>.</p>
+<p><a href="stats/bandwidth.csv">CSV</a> file containing all data.</p>
+<br>
+
+<a name="bwhist-flags"></a>
+<h3><a href="#bwhist-flags" class="anchor">Relay bandwidth by Exit and/or
+Guard flags</a></h3>
+<br>
+<p>The following graph shows the relay bandwidth of all relays with the
+Exit and/or Guard flags assigned by the directory authorities.</p>
+<img src="bwhist-flags.png${bwhist_flags_url}"
+ width="576" height="360" alt="Relay bandwidth by flags graph">
+<form action="network.html#bwhist-flags">
+ <div class="formrow">
+ <input type="hidden" name="graph" value="bwhist-flags">
+ <p>
+ <label>Start date (yyyy-mm-dd):</label>
+ <input type="text" name="start" size="10"
+ value="<c:choose><c:when test="${fn:length(bwhist_flags_start) == 0}">${default_start_date}</c:when><c:otherwise>${bwhist_flags_start[0]}</c:otherwise></c:choose>">
+ <label>End date (yyyy-mm-dd):</label>
+ <input type="text" name="end" size="10"
+ value="<c:choose><c:when test="${fn:length(bwhist_flags_end) == 0}">${default_end_date}</c:when><c:otherwise>${bwhist_flags_end[0]}</c:otherwise></c:choose>">
+ </p><p>
+ <input class="submit" type="submit" value="Update graph">
+ </p>
+ </div>
+</form>
+<p>Download graph as
+<a href="bwhist-flags.pdf${bwhist_flags_url}">PDF</a> or
+<a href="bwhist-flags.svg${bwhist_flags_url}">SVG</a>.</p>
+<p><a href="stats/bandwidth.csv">CSV</a> file containing all data.</p>
+<br>
+
+<a name="bandwidth-flags"></a>
+<h3><a href="#bandwidth-flags" class="anchor">Advertised bandwidth and
+bandwidth history by relay flags</a></h3>
+<br>
+<p>The following graph shows the advertised bandwidth and bandwidth
+history of all relays with the Exit and/or Guard flags assigned by the
+directory authorities.
+Note that these sets possibly overlap with relays having both Exit and
+Guard flag.</p>
+<img src="bandwidth-flags.png${bandwidth_flags_url}"
+ width="576" height="360" alt="Advertised bandwidth and bandwidth history by relay flags graph">
+<form action="network.html#bandwidth-flags">
+ <div class="formrow">
+ <input type="hidden" name="graph" value="bandwidth-flags">
+ <p>
+ <label>Start date (yyyy-mm-dd):</label>
+ <input type="text" name="start" size="10"
+ value="<c:choose><c:when test="${fn:length(bandwidth_flags_start) == 0}">${default_start_date}</c:when><c:otherwise>${bandwidth_flags_start[0]}</c:otherwise></c:choose>">
+ <label>End date (yyyy-mm-dd):</label>
+ <input type="text" name="end" size="10"
+ value="<c:choose><c:when test="${fn:length(bandwidth_flags_end) == 0}">${default_end_date}</c:when><c:otherwise>${bandwidth_flags_end[0]}</c:otherwise></c:choose>">
+ </p><p>
+ <input class="submit" type="submit" value="Update graph">
+ </p>
+ </div>
+</form>
+<p>Download graph as
+<a href="bandwidth-flags.pdf${bandwidth_flags_url}">PDF</a> or
+<a href="bandwidth-flags.svg${bandwidth_flags_url}">SVG</a>.</p>
+<p><a href="stats/bandwidth.csv">CSV</a> file containing all data.</p>
+<br>
+
+<a name="dirbytes"></a>
+<h3><a href="#dirbytes" class="anchor">Number of bytes spent on answering
+directory requests</a></h3>
+<br>
+<p>Relays running on 0.2.2.15-alpha or higher report the number of bytes
+they spend on answering directory requests. The following graph shows
+total written and read bytes as well as written and read dir bytes. The
+dir bytes are extrapolated from those relays who report them to reflect
+the number of written and read dir bytes by all relays.</p>
+<img src="dirbytes.png${dirbytes_url}"
+ width="576" height="360" alt="Dir bytes graph">
+<form action="network.html#dirbytes">
+ <div class="formrow">
+ <input type="hidden" name="graph" value="dirbytes">
+ <p>
+ <label>Start date (yyyy-mm-dd):</label>
+ <input type="text" name="start" size="10"
+ value="<c:choose><c:when test="${fn:length(dirbytes_start) == 0}">${default_start_date}</c:when><c:otherwise>${dirbytes_start[0]}</c:otherwise></c:choose>">
+ <label>End date (yyyy-mm-dd):</label>
+ <input type="text" name="end" size="10"
+ value="<c:choose><c:when test="${fn:length(dirbytes_end) == 0}">${default_end_date}</c:when><c:otherwise>${dirbytes_end[0]}</c:otherwise></c:choose>">
+ </p><p>
+ <input class="submit" type="submit" value="Update graph">
+ </p>
+ </div>
+</form>
+<p>Download graph as
+<a href="dirbytes.pdf${dirbytes_url}">PDF</a> or
+<a href="dirbytes.svg${dirbytes_url}">SVG</a>.</p>
+<p><a href="stats/bandwidth.csv">CSV</a> file containing all data.</p>
+<br>
+
+<a name="advbwdist-perc"></a>
+<h3><a href="#advbwdist-perc" class="anchor">Advertised bandwidth
+distribution</a></h3>
+<br>
+<p>The following graph shows the distribution of advertised bandwidth in
+the network. In contrast to the graphs above, the following graph contains
+no sums of advertised bandwidths, but bandwidths of single relays.</p>
+<img src="advbwdist-perc.png${advbwdist_perc_url}"
+ width="576" height="360"
+ alt="Advertised bandwidth distribution graph">
+<form action="network.html#advbwdist-perc">
+ <div class="formrow">
+ <input type="hidden" name="graph" value="advbwdist-perc">
+ <p>
+ <label>Start date (yyyy-mm-dd):</label>
+ <input type="text" name="start" size="10"
+ value="<c:choose><c:when test="${fn:length(advbwdist_perc_start) == 0}">${default_start_date}</c:when><c:otherwise>${advbwdist_perc_start[0]}</c:otherwise></c:choose>">
+ <label>End date (yyyy-mm-dd):</label>
+ <input type="text" name="end" size="10"
+ value="<c:choose><c:when test="${fn:length(advbwdist_perc_end) == 0}">${default_end_date}</c:when><c:otherwise>${advbwdist_perc_end[0]}</c:otherwise></c:choose>">
+ </p><p>
+ <label>Percentiles: </label>
+ <input type="checkbox" name="p" value="100"<c:if test="${fn:length(advbwdist_perc_p) == 0 or fn:contains(fn:join(advbwdist_perc_p, ','), '100')}"> checked</c:if>> 100 (maximum)
+ <input type="checkbox" name="p" value="99"<c:if test="${fn:length(advbwdist_perc_p) > 0 and fn:contains(fn:join(advbwdist_perc_p, ','), '99')}"> checked</c:if>> 99
+ <input type="checkbox" name="p" value="98"<c:if test="${fn:length(advbwdist_perc_p) > 0 and fn:contains(fn:join(advbwdist_perc_p, ','), '98')}"> checked</c:if>> 98
+ <input type="checkbox" name="p" value="97"<c:if test="${fn:length(advbwdist_perc_p) > 0 and fn:contains(fn:join(advbwdist_perc_p, ','), '97')}"> checked</c:if>> 97
+ <input type="checkbox" name="p" value="95"<c:if test="${fn:length(advbwdist_perc_p) > 0 and fn:contains(fn:join(advbwdist_perc_p, ','), '95')}"> checked</c:if>> 95
+ <input type="checkbox" name="p" value="91"<c:if test="${fn:length(advbwdist_perc_p) > 0 and fn:contains(fn:join(advbwdist_perc_p, ','), '91')}"> checked</c:if>> 91
+ <input type="checkbox" name="p" value="90"<c:if test="${fn:length(advbwdist_perc_p) > 0 and fn:contains(fn:join(advbwdist_perc_p, ','), '90')}"> checked</c:if>> 90
+ <input type="checkbox" name="p" value="80"<c:if test="${fn:length(advbwdist_perc_p) > 0 and fn:contains(fn:join(advbwdist_perc_p, ','), '80')}"> checked</c:if>> 80
+ <input type="checkbox" name="p" value="75"<c:if test="${fn:length(advbwdist_perc_p) > 0 and fn:contains(fn:join(advbwdist_perc_p, ','), '75')}"> checked</c:if>> 75 (3rd quartile)
+ <input type="checkbox" name="p" value="70"<c:if test="${fn:length(advbwdist_perc_p) > 0 and fn:contains(fn:join(advbwdist_perc_p, ','), '70')}"> checked</c:if>> 70
+ <input type="checkbox" name="p" value="60"<c:if test="${fn:length(advbwdist_perc_p) > 0 and fn:contains(fn:join(advbwdist_perc_p, ','), '60')}"> checked</c:if>> 60
+ <input type="checkbox" name="p" value="50"<c:if test="${fn:length(advbwdist_perc_p) > 0 and fn:contains(fn:join(advbwdist_perc_p, ','), '50')}"> checked</c:if>> 50 (median)
+ <input type="checkbox" name="p" value="40"<c:if test="${fn:length(advbwdist_perc_p) > 0 and fn:contains(fn:join(advbwdist_perc_p, ','), '40')}"> checked</c:if>> 40
+ <input type="checkbox" name="p" value="30"<c:if test="${fn:length(advbwdist_perc_p) > 0 and fn:contains(fn:join(advbwdist_perc_p, ','), '30')}"> checked</c:if>> 30
+ <input type="checkbox" name="p" value="25"<c:if test="${fn:length(advbwdist_perc_p) > 0 and fn:contains(fn:join(advbwdist_perc_p, ','), '25')}"> checked</c:if>> 25 (first quartile)
+ <input type="checkbox" name="p" value="20"<c:if test="${fn:length(advbwdist_perc_p) > 0 and fn:contains(fn:join(advbwdist_perc_p, ','), '20')}"> checked</c:if>> 20
+ <input type="checkbox" name="p" value="10"<c:if test="${fn:length(advbwdist_perc_p) > 0 and (fn:startsWith(fn:join(advbwdist_perc_p, ','), '10,') or fn:contains(fn:join(advbwdist_perc_p, ','), ',10,') or fn:endsWith(fn:join(advbwdist_perc_p, ','), ',10') or (advbwdist_perc_p[0] == '10' and fn:length(advbwdist_perc_p) == 1))}"> checked</c:if>> 10
+ <input type="checkbox" name="p" value="9"<c:if test="${fn:length(advbwdist_perc_p) > 0 and (fn:startsWith(fn:join(advbwdist_perc_p, ','), '9,') or fn:contains(fn:join(advbwdist_perc_p, ','), ',9,') or fn:endsWith(fn:join(advbwdist_perc_p, ','), ',9') or (advbwdist_perc_p[0] == '9' and fn:length(advbwdist_perc_p) == 1))}"> checked</c:if>> 9
+ <input type="checkbox" name="p" value="5"<c:if test="${fn:length(advbwdist_perc_p) > 0 and (fn:startsWith(fn:join(advbwdist_perc_p, ','), '5,') or fn:contains(fn:join(advbwdist_perc_p, ','), ',5,') or fn:endsWith(fn:join(advbwdist_perc_p, ','), ',5') or (advbwdist_perc_p[0] == '5' and fn:length(advbwdist_perc_p) == 1))}"> checked</c:if>> 5
+ <input type="checkbox" name="p" value="3"<c:if test="${fn:length(advbwdist_perc_p) > 0 and (fn:startsWith(fn:join(advbwdist_perc_p, ','), '3,') or fn:contains(fn:join(advbwdist_perc_p, ','), ',3,') or fn:endsWith(fn:join(advbwdist_perc_p, ','), ',3') or (advbwdist_perc_p[0] == '3' and fn:length(advbwdist_perc_p) == 1))}"> checked</c:if>> 3
+ <input type="checkbox" name="p" value="2"<c:if test="${fn:length(advbwdist_perc_p) > 0 and (fn:startsWith(fn:join(advbwdist_perc_p, ','), '2,') or fn:contains(fn:join(advbwdist_perc_p, ','), ',2,') or fn:endsWith(fn:join(advbwdist_perc_p, ','), ',2') or (advbwdist_perc_p[0] == '2' and fn:length(advbwdist_perc_p) == 1))}"> checked</c:if>> 2
+ <input type="checkbox" name="p" value="1"<c:if test="${fn:length(advbwdist_perc_p) > 0 and (fn:startsWith(fn:join(advbwdist_perc_p, ','), '1,') or fn:contains(fn:join(advbwdist_perc_p, ','), ',1,') or fn:endsWith(fn:join(advbwdist_perc_p, ','), ',1') or (advbwdist_perc_p[0] == '1' and fn:length(advbwdist_perc_p) == 1))}"> checked</c:if>> 1
+ <input type="checkbox" name="p" value="0"<c:if test="${fn:length(advbwdist_perc_p) > 0 and (fn:startsWith(fn:join(advbwdist_perc_p, ','), '0,') or fn:contains(fn:join(advbwdist_perc_p, ','), ',0,') or fn:endsWith(fn:join(advbwdist_perc_p, ','), ',0') or (advbwdist_perc_p[0] == '0' and fn:length(advbwdist_perc_p) == 1))}"> checked</c:if>> 0 (minimum)
+ </p><p>
+ <input class="submit" type="submit" value="Update graph">
+ </p>
+ </div>
+</form>
+<p>Download graph as
+<a href="advbwdist-perc.pdf${advbwdist_perc_url}">PDF</a> or
+<a href="advbwdist-perc.svg${advbwdist_perc_url}">SVG</a>.</p>
+<p><a href="stats/advbwdist.csv">CSV</a> file containing all data.</p>
+<br>
+
+<a name="advbwdist-relay"></a>
+<h3><a href="#advbwdist-relay" class="anchor">Advertised bandwidth of
+n-th fastest relays</a></h3>
+<br>
+<p>The following graph shows the advertised bandwidth of the n-th fastest
+relays in the network.</p>
+<img src="advbwdist-relay.png${advbwdist_relay_url}"
+ width="576" height="360"
+ alt="Advertised bandwidth of n-th fastest relays graph">
+<form action="network.html#advbwdist-relay">
+ <div class="formrow">
+ <input type="hidden" name="graph" value="advbwdist-relay">
+ <p>
+ <label>Start date (yyyy-mm-dd):</label>
+ <input type="text" name="start" size="10"
+ value="<c:choose><c:when test="${fn:length(advbwdist_relay_start) == 0}">${default_start_date}</c:when><c:otherwise>${advbwdist_relay_start[0]}</c:otherwise></c:choose>">
+ <label>End date (yyyy-mm-dd):</label>
+ <input type="text" name="end" size="10"
+ value="<c:choose><c:when test="${fn:length(advbwdist_relay_end) == 0}">${default_end_date}</c:when><c:otherwise>${advbwdist_relay_end[0]}</c:otherwise></c:choose>">
+ </p><p>
+ <label>n-th fastest relays: </label>
+ <input type="checkbox" name="n" value="1"<c:if test="${fn:length(advbwdist_relay_n) == 0 or fn:contains(fn:join(advbwdist_relay_n, ','), '1,') or fn:endsWith(fn:join(advbwdist_relay_n, ','), '1')}"> checked</c:if>> 1
+ <input type="checkbox" name="n" value="2"<c:if test="${fn:length(advbwdist_relay_n) > 0 and (fn:contains(fn:join(advbwdist_relay_n, ','), '2,') or fn:endsWith(fn:join(advbwdist_relay_n, ','), '2'))}"> checked</c:if>> 2
+ <input type="checkbox" name="n" value="3"<c:if test="${fn:length(advbwdist_relay_n) > 0 and (fn:contains(fn:join(advbwdist_relay_n, ','), '3,') or fn:endsWith(fn:join(advbwdist_relay_n, ','), '3'))}"> checked</c:if>> 3
+ <input type="checkbox" name="n" value="5"<c:if test="${fn:length(advbwdist_relay_n) > 0 and (fn:contains(fn:join(advbwdist_relay_n, ','), '5,') or fn:endsWith(fn:join(advbwdist_relay_n, ','), '5'))}"> checked</c:if>> 5
+ <input type="checkbox" name="n" value="10"<c:if test="${fn:length(advbwdist_relay_n) > 0 and (fn:contains(fn:join(advbwdist_relay_n, ','), '10,') or fn:endsWith(fn:join(advbwdist_relay_n, ','), '10'))}"> checked</c:if>> 10
+ <input type="checkbox" name="n" value="20"<c:if test="${fn:length(advbwdist_relay_n) > 0 and (fn:contains(fn:join(advbwdist_relay_n, ','), '20,') or fn:endsWith(fn:join(advbwdist_relay_n, ','), '20'))}"> checked</c:if>> 20
+ <input type="checkbox" name="n" value="30"<c:if test="${fn:length(advbwdist_relay_n) > 0 and (fn:contains(fn:join(advbwdist_relay_n, ','), '30,') or fn:endsWith(fn:join(advbwdist_relay_n, ','), '30'))}"> checked</c:if>> 30
+ <input type="checkbox" name="n" value="50"<c:if test="${fn:length(advbwdist_relay_n) > 0 and (fn:contains(fn:join(advbwdist_relay_n, ','), '50,') or fn:endsWith(fn:join(advbwdist_relay_n, ','), '50'))}"> checked</c:if>> 50
+ <input type="checkbox" name="n" value="100"<c:if test="${fn:length(advbwdist_relay_n) > 0 and (fn:contains(fn:join(advbwdist_relay_n, ','), '100,') or fn:endsWith(fn:join(advbwdist_relay_n, ','), '100'))}"> checked</c:if>> 100
+ <input type="checkbox" name="n" value="200"<c:if test="${fn:length(advbwdist_relay_n) > 0 and (fn:contains(fn:join(advbwdist_relay_n, ','), '200,') or fn:endsWith(fn:join(advbwdist_relay_n, ','), '200'))}"> checked</c:if>> 200
+ <input type="checkbox" name="n" value="300"<c:if test="${fn:length(advbwdist_relay_n) > 0 and (fn:contains(fn:join(advbwdist_relay_n, ','), '300,') or fn:endsWith(fn:join(advbwdist_relay_n, ','), '300'))}"> checked</c:if>> 300
+ <input type="checkbox" name="n" value="500"<c:if test="${fn:length(advbwdist_relay_n) > 0 and (fn:contains(fn:join(advbwdist_relay_n, ','), '500,') or fn:endsWith(fn:join(advbwdist_relay_n, ','), '500'))}"> checked</c:if>> 500
+ <input type="checkbox" name="n" value="1000"<c:if test="${fn:length(advbwdist_relay_n) > 0 and fn:contains(fn:join(advbwdist_relay_n, ','), '1000')}"> checked</c:if>> 1000
+ <input type="checkbox" name="n" value="2000"<c:if test="${fn:length(advbwdist_relay_n) > 0 and fn:contains(fn:join(advbwdist_relay_n, ','), '2000')}"> checked</c:if>> 2000
+ <input type="checkbox" name="n" value="3000"<c:if test="${fn:length(advbwdist_relay_n) > 0 and fn:contains(fn:join(advbwdist_relay_n, ','), '3000')}"> checked</c:if>> 3000
+ <input type="checkbox" name="n" value="5000"<c:if test="${fn:length(advbwdist_relay_n) > 0 and fn:contains(fn:join(advbwdist_relay_n, ','), '5000')}"> checked</c:if>> 5000
+ </p><p>
+ <input class="submit" type="submit" value="Update graph">
+ </p>
+ </div>
+</form>
+<p>Download graph as
+<a href="advbwdist-relay.pdf${advbwdist_relay_url}">PDF</a> or
+<a href="advbwdist-relay.svg${advbwdist_relay_url}">SVG</a>.</p>
+<p><a href="stats/advbwdist.csv">CSV</a> file containing all data.</p>
+<br>
+ </div>
+ </div>
+ <div class="bottom" id="bottom">
+ <%@ include file="footer.jsp"%>
+ </div>
+</body>
+</html>
diff --git a/website/web/WEB-INF/banner.jsp b/website/web/WEB-INF/banner.jsp
index 33f9f8f..2b27632 100644
--- a/website/web/WEB-INF/banner.jsp
+++ b/website/web/WEB-INF/banner.jsp
@@ -9,7 +9,9 @@
<a <% if (currentPage.endsWith("index.jsp")) {
%>class="current"<%} else {%>href="/index.html"<%}%>>Home</a>
<a <% if (currentPage.endsWith("network.jsp")) {
- %>class="current"<%} else {%>href="/network.html"<%}%>>Network</a>
+ %>class="current"<%} else {%>href="/network.html"<%}%>>Servers</a>
+ <a <% if (currentPage.endsWith("bandwidth.jsp")) {
+ %>class="current"<%} else {%>href="/bandwidth.html"<%}%>>Bandwidth</a>
<a <% if (currentPage.endsWith("bubbles.jsp")) {
%>class="current"<%} else {%>href="/bubbles.html"<%}
%>>Diversity</a>
diff --git a/website/web/WEB-INF/error.jsp b/website/web/WEB-INF/error.jsp
index 37ef605..e6f1e71 100644
--- a/website/web/WEB-INF/error.jsp
+++ b/website/web/WEB-INF/error.jsp
@@ -41,7 +41,8 @@ when processing your request!</p>
Maybe you find what you're looking for on our sitemap:
<ul>
<li><a href="index.html">Home</a></li>
-<li><a href="network.html">Network</a></li>
+<li><a href="network.html">Servers</a></li>
+<li><a href="bandwidth.html">Bandwidth</a></li>
<li><a href="bubbles.html">Diversity</a></li>
<li><a href="users.html">Users</a></li>
<li><a href="performance.html">Performance</a></li>
diff --git a/website/web/WEB-INF/network.jsp b/website/web/WEB-INF/network.jsp
index c291bb3..830f3cc 100644
--- a/website/web/WEB-INF/network.jsp
+++ b/website/web/WEB-INF/network.jsp
@@ -4,7 +4,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
- <title>Tor Metrics: Network</title>
+ <title>Tor Metrics: Servers</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<link href="/css/stylesheet-ltr.css" type="text/css" rel="stylesheet">
<link href="/images/favicon.ico" type="image/x-icon" rel="shortcut icon">
@@ -13,7 +13,7 @@
<div class="center">
<%@ include file="banner.jsp"%>
<div class="main-column">
-<h2>Tor Metrics: Network</h2>
+<h2>Tor Metrics: Servers</h2>
<br>
<a name="networksize"></a>
<h3><a href="#networksize" class="anchor">Relays and bridges in the
@@ -172,234 +172,6 @@ network.</p>
<a href="cloudbridges.svg${cloudbridges_url}">SVG</a>.</p>
<p><a href="stats/servers.csv">CSV</a> file containing all data.</p>
<br>
-
-<a name="bandwidth"></a>
-<h3><a href="#bandwidth" class="anchor">Total relay bandwidth in the
-network</a></h3>
-<br>
-<p>Relays report how much bandwidth they are willing to contribute and how
-many bytes they have read and written in the past 24 hours. The following
-graph shows total advertised bandwidth and bandwidth history of all relays
-in the network.</p>
-<img src="bandwidth.png${bandwidth_url}"
- width="576" height="360" alt="Relay bandwidth graph">
-<form action="network.html#bandwidth">
- <div class="formrow">
- <input type="hidden" name="graph" value="bandwidth">
- <p>
- <label>Start date (yyyy-mm-dd):</label>
- <input type="text" name="start" size="10"
- value="<c:choose><c:when test="${fn:length(bandwidth_start) == 0}">${default_start_date}</c:when><c:otherwise>${bandwidth_start[0]}</c:otherwise></c:choose>">
- <label>End date (yyyy-mm-dd):</label>
- <input type="text" name="end" size="10"
- value="<c:choose><c:when test="${fn:length(bandwidth_end) == 0}">${default_end_date}</c:when><c:otherwise>${bandwidth_end[0]}</c:otherwise></c:choose>">
- </p><p>
- <input class="submit" type="submit" value="Update graph">
- </p>
- </div>
-</form>
-<p>Download graph as
-<a href="bandwidth.pdf${bandwidth_url}">PDF</a> or
-<a href="bandwidth.svg${bandwidth_url}">SVG</a>.</p>
-<p><a href="stats/bandwidth.csv">CSV</a> file containing all data.</p>
-<br>
-
-<a name="bwhist-flags"></a>
-<h3><a href="#bwhist-flags" class="anchor">Relay bandwidth by Exit and/or
-Guard flags</a></h3>
-<br>
-<p>The following graph shows the relay bandwidth of all relays with the
-Exit and/or Guard flags assigned by the directory authorities.</p>
-<img src="bwhist-flags.png${bwhist_flags_url}"
- width="576" height="360" alt="Relay bandwidth by flags graph">
-<form action="network.html#bwhist-flags">
- <div class="formrow">
- <input type="hidden" name="graph" value="bwhist-flags">
- <p>
- <label>Start date (yyyy-mm-dd):</label>
- <input type="text" name="start" size="10"
- value="<c:choose><c:when test="${fn:length(bwhist_flags_start) == 0}">${default_start_date}</c:when><c:otherwise>${bwhist_flags_start[0]}</c:otherwise></c:choose>">
- <label>End date (yyyy-mm-dd):</label>
- <input type="text" name="end" size="10"
- value="<c:choose><c:when test="${fn:length(bwhist_flags_end) == 0}">${default_end_date}</c:when><c:otherwise>${bwhist_flags_end[0]}</c:otherwise></c:choose>">
- </p><p>
- <input class="submit" type="submit" value="Update graph">
- </p>
- </div>
-</form>
-<p>Download graph as
-<a href="bwhist-flags.pdf${bwhist_flags_url}">PDF</a> or
-<a href="bwhist-flags.svg${bwhist_flags_url}">SVG</a>.</p>
-<p><a href="stats/bandwidth.csv">CSV</a> file containing all data.</p>
-<br>
-
-<a name="bandwidth-flags"></a>
-<h3><a href="#bandwidth-flags" class="anchor">Advertised bandwidth and
-bandwidth history by relay flags</a></h3>
-<br>
-<p>The following graph shows the advertised bandwidth and bandwidth
-history of all relays with the Exit and/or Guard flags assigned by the
-directory authorities.
-Note that these sets possibly overlap with relays having both Exit and
-Guard flag.</p>
-<img src="bandwidth-flags.png${bandwidth_flags_url}"
- width="576" height="360" alt="Advertised bandwidth and bandwidth history by relay flags graph">
-<form action="network.html#bandwidth-flags">
- <div class="formrow">
- <input type="hidden" name="graph" value="bandwidth-flags">
- <p>
- <label>Start date (yyyy-mm-dd):</label>
- <input type="text" name="start" size="10"
- value="<c:choose><c:when test="${fn:length(bandwidth_flags_start) == 0}">${default_start_date}</c:when><c:otherwise>${bandwidth_flags_start[0]}</c:otherwise></c:choose>">
- <label>End date (yyyy-mm-dd):</label>
- <input type="text" name="end" size="10"
- value="<c:choose><c:when test="${fn:length(bandwidth_flags_end) == 0}">${default_end_date}</c:when><c:otherwise>${bandwidth_flags_end[0]}</c:otherwise></c:choose>">
- </p><p>
- <input class="submit" type="submit" value="Update graph">
- </p>
- </div>
-</form>
-<p>Download graph as
-<a href="bandwidth-flags.pdf${bandwidth_flags_url}">PDF</a> or
-<a href="bandwidth-flags.svg${bandwidth_flags_url}">SVG</a>.</p>
-<p><a href="stats/bandwidth.csv">CSV</a> file containing all data.</p>
-<br>
-
-<a name="dirbytes"></a>
-<h3><a href="#dirbytes" class="anchor">Number of bytes spent on answering
-directory requests</a></h3>
-<br>
-<p>Relays running on 0.2.2.15-alpha or higher report the number of bytes
-they spend on answering directory requests. The following graph shows
-total written and read bytes as well as written and read dir bytes. The
-dir bytes are extrapolated from those relays who report them to reflect
-the number of written and read dir bytes by all relays.</p>
-<img src="dirbytes.png${dirbytes_url}"
- width="576" height="360" alt="Dir bytes graph">
-<form action="network.html#dirbytes">
- <div class="formrow">
- <input type="hidden" name="graph" value="dirbytes">
- <p>
- <label>Start date (yyyy-mm-dd):</label>
- <input type="text" name="start" size="10"
- value="<c:choose><c:when test="${fn:length(dirbytes_start) == 0}">${default_start_date}</c:when><c:otherwise>${dirbytes_start[0]}</c:otherwise></c:choose>">
- <label>End date (yyyy-mm-dd):</label>
- <input type="text" name="end" size="10"
- value="<c:choose><c:when test="${fn:length(dirbytes_end) == 0}">${default_end_date}</c:when><c:otherwise>${dirbytes_end[0]}</c:otherwise></c:choose>">
- </p><p>
- <input class="submit" type="submit" value="Update graph">
- </p>
- </div>
-</form>
-<p>Download graph as
-<a href="dirbytes.pdf${dirbytes_url}">PDF</a> or
-<a href="dirbytes.svg${dirbytes_url}">SVG</a>.</p>
-<p><a href="stats/bandwidth.csv">CSV</a> file containing all data.</p>
-<br>
-
-<a name="advbwdist-perc"></a>
-<h3><a href="#advbwdist-perc" class="anchor">Advertised bandwidth
-distribution</a></h3>
-<br>
-<p>The following graph shows the distribution of advertised bandwidth in
-the network. In contrast to the graphs above, the following graph contains
-no sums of advertised bandwidths, but bandwidths of single relays.</p>
-<img src="advbwdist-perc.png${advbwdist_perc_url}"
- width="576" height="360"
- alt="Advertised bandwidth distribution graph">
-<form action="network.html#advbwdist-perc">
- <div class="formrow">
- <input type="hidden" name="graph" value="advbwdist-perc">
- <p>
- <label>Start date (yyyy-mm-dd):</label>
- <input type="text" name="start" size="10"
- value="<c:choose><c:when test="${fn:length(advbwdist_perc_start) == 0}">${default_start_date}</c:when><c:otherwise>${advbwdist_perc_start[0]}</c:otherwise></c:choose>">
- <label>End date (yyyy-mm-dd):</label>
- <input type="text" name="end" size="10"
- value="<c:choose><c:when test="${fn:length(advbwdist_perc_end) == 0}">${default_end_date}</c:when><c:otherwise>${advbwdist_perc_end[0]}</c:otherwise></c:choose>">
- </p><p>
- <label>Percentiles: </label>
- <input type="checkbox" name="p" value="100"<c:if test="${fn:length(advbwdist_perc_p) == 0 or fn:contains(fn:join(advbwdist_perc_p, ','), '100')}"> checked</c:if>> 100 (maximum)
- <input type="checkbox" name="p" value="99"<c:if test="${fn:length(advbwdist_perc_p) > 0 and fn:contains(fn:join(advbwdist_perc_p, ','), '99')}"> checked</c:if>> 99
- <input type="checkbox" name="p" value="98"<c:if test="${fn:length(advbwdist_perc_p) > 0 and fn:contains(fn:join(advbwdist_perc_p, ','), '98')}"> checked</c:if>> 98
- <input type="checkbox" name="p" value="97"<c:if test="${fn:length(advbwdist_perc_p) > 0 and fn:contains(fn:join(advbwdist_perc_p, ','), '97')}"> checked</c:if>> 97
- <input type="checkbox" name="p" value="95"<c:if test="${fn:length(advbwdist_perc_p) > 0 and fn:contains(fn:join(advbwdist_perc_p, ','), '95')}"> checked</c:if>> 95
- <input type="checkbox" name="p" value="91"<c:if test="${fn:length(advbwdist_perc_p) > 0 and fn:contains(fn:join(advbwdist_perc_p, ','), '91')}"> checked</c:if>> 91
- <input type="checkbox" name="p" value="90"<c:if test="${fn:length(advbwdist_perc_p) > 0 and fn:contains(fn:join(advbwdist_perc_p, ','), '90')}"> checked</c:if>> 90
- <input type="checkbox" name="p" value="80"<c:if test="${fn:length(advbwdist_perc_p) > 0 and fn:contains(fn:join(advbwdist_perc_p, ','), '80')}"> checked</c:if>> 80
- <input type="checkbox" name="p" value="75"<c:if test="${fn:length(advbwdist_perc_p) > 0 and fn:contains(fn:join(advbwdist_perc_p, ','), '75')}"> checked</c:if>> 75 (3rd quartile)
- <input type="checkbox" name="p" value="70"<c:if test="${fn:length(advbwdist_perc_p) > 0 and fn:contains(fn:join(advbwdist_perc_p, ','), '70')}"> checked</c:if>> 70
- <input type="checkbox" name="p" value="60"<c:if test="${fn:length(advbwdist_perc_p) > 0 and fn:contains(fn:join(advbwdist_perc_p, ','), '60')}"> checked</c:if>> 60
- <input type="checkbox" name="p" value="50"<c:if test="${fn:length(advbwdist_perc_p) > 0 and fn:contains(fn:join(advbwdist_perc_p, ','), '50')}"> checked</c:if>> 50 (median)
- <input type="checkbox" name="p" value="40"<c:if test="${fn:length(advbwdist_perc_p) > 0 and fn:contains(fn:join(advbwdist_perc_p, ','), '40')}"> checked</c:if>> 40
- <input type="checkbox" name="p" value="30"<c:if test="${fn:length(advbwdist_perc_p) > 0 and fn:contains(fn:join(advbwdist_perc_p, ','), '30')}"> checked</c:if>> 30
- <input type="checkbox" name="p" value="25"<c:if test="${fn:length(advbwdist_perc_p) > 0 and fn:contains(fn:join(advbwdist_perc_p, ','), '25')}"> checked</c:if>> 25 (first quartile)
- <input type="checkbox" name="p" value="20"<c:if test="${fn:length(advbwdist_perc_p) > 0 and fn:contains(fn:join(advbwdist_perc_p, ','), '20')}"> checked</c:if>> 20
- <input type="checkbox" name="p" value="10"<c:if test="${fn:length(advbwdist_perc_p) > 0 and (fn:startsWith(fn:join(advbwdist_perc_p, ','), '10,') or fn:contains(fn:join(advbwdist_perc_p, ','), ',10,') or fn:endsWith(fn:join(advbwdist_perc_p, ','), ',10') or (advbwdist_perc_p[0] == '10' and fn:length(advbwdist_perc_p) == 1))}"> checked</c:if>> 10
- <input type="checkbox" name="p" value="9"<c:if test="${fn:length(advbwdist_perc_p) > 0 and (fn:startsWith(fn:join(advbwdist_perc_p, ','), '9,') or fn:contains(fn:join(advbwdist_perc_p, ','), ',9,') or fn:endsWith(fn:join(advbwdist_perc_p, ','), ',9') or (advbwdist_perc_p[0] == '9' and fn:length(advbwdist_perc_p) == 1))}"> checked</c:if>> 9
- <input type="checkbox" name="p" value="5"<c:if test="${fn:length(advbwdist_perc_p) > 0 and (fn:startsWith(fn:join(advbwdist_perc_p, ','), '5,') or fn:contains(fn:join(advbwdist_perc_p, ','), ',5,') or fn:endsWith(fn:join(advbwdist_perc_p, ','), ',5') or (advbwdist_perc_p[0] == '5' and fn:length(advbwdist_perc_p) == 1))}"> checked</c:if>> 5
- <input type="checkbox" name="p" value="3"<c:if test="${fn:length(advbwdist_perc_p) > 0 and (fn:startsWith(fn:join(advbwdist_perc_p, ','), '3,') or fn:contains(fn:join(advbwdist_perc_p, ','), ',3,') or fn:endsWith(fn:join(advbwdist_perc_p, ','), ',3') or (advbwdist_perc_p[0] == '3' and fn:length(advbwdist_perc_p) == 1))}"> checked</c:if>> 3
- <input type="checkbox" name="p" value="2"<c:if test="${fn:length(advbwdist_perc_p) > 0 and (fn:startsWith(fn:join(advbwdist_perc_p, ','), '2,') or fn:contains(fn:join(advbwdist_perc_p, ','), ',2,') or fn:endsWith(fn:join(advbwdist_perc_p, ','), ',2') or (advbwdist_perc_p[0] == '2' and fn:length(advbwdist_perc_p) == 1))}"> checked</c:if>> 2
- <input type="checkbox" name="p" value="1"<c:if test="${fn:length(advbwdist_perc_p) > 0 and (fn:startsWith(fn:join(advbwdist_perc_p, ','), '1,') or fn:contains(fn:join(advbwdist_perc_p, ','), ',1,') or fn:endsWith(fn:join(advbwdist_perc_p, ','), ',1') or (advbwdist_perc_p[0] == '1' and fn:length(advbwdist_perc_p) == 1))}"> checked</c:if>> 1
- <input type="checkbox" name="p" value="0"<c:if test="${fn:length(advbwdist_perc_p) > 0 and (fn:startsWith(fn:join(advbwdist_perc_p, ','), '0,') or fn:contains(fn:join(advbwdist_perc_p, ','), ',0,') or fn:endsWith(fn:join(advbwdist_perc_p, ','), ',0') or (advbwdist_perc_p[0] == '0' and fn:length(advbwdist_perc_p) == 1))}"> checked</c:if>> 0 (minimum)
- </p><p>
- <input class="submit" type="submit" value="Update graph">
- </p>
- </div>
-</form>
-<p>Download graph as
-<a href="advbwdist-perc.pdf${advbwdist_perc_url}">PDF</a> or
-<a href="advbwdist-perc.svg${advbwdist_perc_url}">SVG</a>.</p>
-<p><a href="stats/advbwdist.csv">CSV</a> file containing all data.</p>
-<br>
-
-<a name="advbwdist-relay"></a>
-<h3><a href="#advbwdist-relay" class="anchor">Advertised bandwidth of
-n-th fastest relays</a></h3>
-<br>
-<p>The following graph shows the advertised bandwidth of the n-th fastest
-relays in the network.</p>
-<img src="advbwdist-relay.png${advbwdist_relay_url}"
- width="576" height="360"
- alt="Advertised bandwidth of n-th fastest relays graph">
-<form action="network.html#advbwdist-relay">
- <div class="formrow">
- <input type="hidden" name="graph" value="advbwdist-relay">
- <p>
- <label>Start date (yyyy-mm-dd):</label>
- <input type="text" name="start" size="10"
- value="<c:choose><c:when test="${fn:length(advbwdist_relay_start) == 0}">${default_start_date}</c:when><c:otherwise>${advbwdist_relay_start[0]}</c:otherwise></c:choose>">
- <label>End date (yyyy-mm-dd):</label>
- <input type="text" name="end" size="10"
- value="<c:choose><c:when test="${fn:length(advbwdist_relay_end) == 0}">${default_end_date}</c:when><c:otherwise>${advbwdist_relay_end[0]}</c:otherwise></c:choose>">
- </p><p>
- <label>n-th fastest relays: </label>
- <input type="checkbox" name="n" value="1"<c:if test="${fn:length(advbwdist_relay_n) == 0 or fn:contains(fn:join(advbwdist_relay_n, ','), '1,') or fn:endsWith(fn:join(advbwdist_relay_n, ','), '1')}"> checked</c:if>> 1
- <input type="checkbox" name="n" value="2"<c:if test="${fn:length(advbwdist_relay_n) > 0 and (fn:contains(fn:join(advbwdist_relay_n, ','), '2,') or fn:endsWith(fn:join(advbwdist_relay_n, ','), '2'))}"> checked</c:if>> 2
- <input type="checkbox" name="n" value="3"<c:if test="${fn:length(advbwdist_relay_n) > 0 and (fn:contains(fn:join(advbwdist_relay_n, ','), '3,') or fn:endsWith(fn:join(advbwdist_relay_n, ','), '3'))}"> checked</c:if>> 3
- <input type="checkbox" name="n" value="5"<c:if test="${fn:length(advbwdist_relay_n) > 0 and (fn:contains(fn:join(advbwdist_relay_n, ','), '5,') or fn:endsWith(fn:join(advbwdist_relay_n, ','), '5'))}"> checked</c:if>> 5
- <input type="checkbox" name="n" value="10"<c:if test="${fn:length(advbwdist_relay_n) > 0 and (fn:contains(fn:join(advbwdist_relay_n, ','), '10,') or fn:endsWith(fn:join(advbwdist_relay_n, ','), '10'))}"> checked</c:if>> 10
- <input type="checkbox" name="n" value="20"<c:if test="${fn:length(advbwdist_relay_n) > 0 and (fn:contains(fn:join(advbwdist_relay_n, ','), '20,') or fn:endsWith(fn:join(advbwdist_relay_n, ','), '20'))}"> checked</c:if>> 20
- <input type="checkbox" name="n" value="30"<c:if test="${fn:length(advbwdist_relay_n) > 0 and (fn:contains(fn:join(advbwdist_relay_n, ','), '30,') or fn:endsWith(fn:join(advbwdist_relay_n, ','), '30'))}"> checked</c:if>> 30
- <input type="checkbox" name="n" value="50"<c:if test="${fn:length(advbwdist_relay_n) > 0 and (fn:contains(fn:join(advbwdist_relay_n, ','), '50,') or fn:endsWith(fn:join(advbwdist_relay_n, ','), '50'))}"> checked</c:if>> 50
- <input type="checkbox" name="n" value="100"<c:if test="${fn:length(advbwdist_relay_n) > 0 and (fn:contains(fn:join(advbwdist_relay_n, ','), '100,') or fn:endsWith(fn:join(advbwdist_relay_n, ','), '100'))}"> checked</c:if>> 100
- <input type="checkbox" name="n" value="200"<c:if test="${fn:length(advbwdist_relay_n) > 0 and (fn:contains(fn:join(advbwdist_relay_n, ','), '200,') or fn:endsWith(fn:join(advbwdist_relay_n, ','), '200'))}"> checked</c:if>> 200
- <input type="checkbox" name="n" value="300"<c:if test="${fn:length(advbwdist_relay_n) > 0 and (fn:contains(fn:join(advbwdist_relay_n, ','), '300,') or fn:endsWith(fn:join(advbwdist_relay_n, ','), '300'))}"> checked</c:if>> 300
- <input type="checkbox" name="n" value="500"<c:if test="${fn:length(advbwdist_relay_n) > 0 and (fn:contains(fn:join(advbwdist_relay_n, ','), '500,') or fn:endsWith(fn:join(advbwdist_relay_n, ','), '500'))}"> checked</c:if>> 500
- <input type="checkbox" name="n" value="1000"<c:if test="${fn:length(advbwdist_relay_n) > 0 and fn:contains(fn:join(advbwdist_relay_n, ','), '1000')}"> checked</c:if>> 1000
- <input type="checkbox" name="n" value="2000"<c:if test="${fn:length(advbwdist_relay_n) > 0 and fn:contains(fn:join(advbwdist_relay_n, ','), '2000')}"> checked</c:if>> 2000
- <input type="checkbox" name="n" value="3000"<c:if test="${fn:length(advbwdist_relay_n) > 0 and fn:contains(fn:join(advbwdist_relay_n, ','), '3000')}"> checked</c:if>> 3000
- <input type="checkbox" name="n" value="5000"<c:if test="${fn:length(advbwdist_relay_n) > 0 and fn:contains(fn:join(advbwdist_relay_n, ','), '5000')}"> checked</c:if>> 5000
- </p><p>
- <input class="submit" type="submit" value="Update graph">
- </p>
- </div>
-</form>
-<p>Download graph as
-<a href="advbwdist-relay.pdf${advbwdist_relay_url}">PDF</a> or
-<a href="advbwdist-relay.svg${advbwdist_relay_url}">SVG</a>.</p>
-<p><a href="stats/advbwdist.csv">CSV</a> file containing all data.</p>
-<br>
</div>
</div>
<div class="bottom" id="bottom">
1
0
[metrics-web/master] Rewrite homepage text by focusing on graphs.
by karsten@torproject.org 26 Jun '14
by karsten@torproject.org 26 Jun '14
26 Jun '14
commit 9ead86bf0d8c929f4777cb6edacf2a64beab2929
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Thu Jun 26 15:57:40 2014 +0200
Rewrite homepage text by focusing on graphs.
---
website/web/WEB-INF/index.jsp | 45 ++++++++++++++++++++++++-----------------
1 file changed, 26 insertions(+), 19 deletions(-)
diff --git a/website/web/WEB-INF/index.jsp b/website/web/WEB-INF/index.jsp
index a563cf5..95b10ac 100644
--- a/website/web/WEB-INF/index.jsp
+++ b/website/web/WEB-INF/index.jsp
@@ -12,25 +12,32 @@
<div class="main-column">
<h2>Tor Metrics</h2>
<br>
- <p>Tor Metrics aggregates all kinds of interesting
- data about the Tor network and visualizes them in graphs and
- reports. This also provides easy access to the underlying
- data and documentation for performing own analyses based on these
- data. Find out more here:</p>
- <ul>
- <li>View daily updated <a href="graphs.html">graphs</a> on
- estimated client numbers, on network performance, and other
- statistics on the Tor network</li>
- <li>Read <a href="http://freehaven.net/anonbib/">papers</a> and
- <a href="https://research.torproject.org/techreports.html">technical
- reports</a>
- on the measurement techniques and results of statistical
- analysis of metrics data</li>
- <li>Download the <a href="data.html">data</a> that is behind the
- graphs and reports to make your own evaluations</li>
- <li>Try out the <a href="tools.html">tools</a> to parse and
- evaluate the metrics data</li>
- </ul>
+ <p>Welcome to Tor Metrics, the primary place to learn interesting
+ facts about the Tor network, the largest deployed anonymity
+ network to date.
+ If something can be measured safely, you'll find it here.*</p>
+ <p><small>*And if you come across something that is missing here,
+ please let us know.</small></p>
+
+ <a href="network.html"><h3>Servers</h3></a>
+ <p>How many relays and bridges are in the network?
+ How many of them permit exiting?</p>
+
+ <a href="bandwidth.html"><h3>Bandwidth</h3></a>
+ <p>How much bandwidth do relays advertise?
+ And how much of that is actually consumed?</p>
+
+ <a href="bubbles.html"><h3>Diversity</h3></a>
+ <p>How diverse is the network?
+ In which countries are relays located?</p>
+
+ <a href="users.html"><h3>Users</h3></a>
+ <p>Where do users come from?
+ What transports and IP versions are they using?</p>
+
+ <a href="performance.html"><h3>Performance</h3></a>
+ <p>How long does it take to download a megabyte of data over Tor?
+ How about five?</p>
</div>
</div>
<div class="bottom" id="bottom">
1
0
[metrics-web/master] Rename Tor Metrics Portal to just Tor Metrics.
by karsten@torproject.org 26 Jun '14
by karsten@torproject.org 26 Jun '14
26 Jun '14
commit 245bc7da3d0cb4b53f10d9fcf8589d54bd4348c0
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Thu Jun 26 14:28:16 2014 +0200
Rename Tor Metrics Portal to just Tor Metrics.
---
website/web/WEB-INF/bubbles.jsp | 2 +-
website/web/WEB-INF/data.jsp | 4 ++--
website/web/WEB-INF/dir.jsp | 4 ++--
website/web/WEB-INF/error.jsp | 4 ++--
website/web/WEB-INF/formats.jsp | 4 ++--
website/web/WEB-INF/graphs.jsp | 4 ++--
website/web/WEB-INF/index.jsp | 8 ++++----
website/web/WEB-INF/network.jsp | 4 ++--
website/web/WEB-INF/papers.jsp | 4 ++--
website/web/WEB-INF/performance.jsp | 4 ++--
website/web/WEB-INF/relay-search.jsp | 4 ++--
website/web/WEB-INF/research.jsp | 4 ++--
website/web/WEB-INF/stats.jsp | 6 +++---
website/web/WEB-INF/status.jsp | 4 ++--
website/web/WEB-INF/tools.jsp | 4 ++--
website/web/WEB-INF/users.jsp | 4 ++--
16 files changed, 34 insertions(+), 34 deletions(-)
diff --git a/website/web/WEB-INF/bubbles.jsp b/website/web/WEB-INF/bubbles.jsp
index 59b3025..5e65d16 100644
--- a/website/web/WEB-INF/bubbles.jsp
+++ b/website/web/WEB-INF/bubbles.jsp
@@ -2,7 +2,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
- <title>Tor Metrics Portal: Network bubble graphs</title>
+ <title>Tor Metrics: Network bubble graphs</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<link href="/css/stylesheet-ltr.css" type="text/css" rel="stylesheet">
<link href="/images/favicon.ico" type="image/x-icon" rel="shortcut icon">
diff --git a/website/web/WEB-INF/data.jsp b/website/web/WEB-INF/data.jsp
index 0981201..1828c03 100644
--- a/website/web/WEB-INF/data.jsp
+++ b/website/web/WEB-INF/data.jsp
@@ -4,7 +4,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
- <title>Tor Metrics Portal: Data</title>
+ <title>Tor Metrics: Data</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<link href="/css/stylesheet-ltr.css" type="text/css" rel="stylesheet">
<link href="/images/favicon.ico" type="image/x-icon" rel="shortcut icon">
@@ -13,7 +13,7 @@
<div class="center">
<%@ include file="banner.jsp"%>
<div class="main-column">
- <h2>Tor Metrics Portal: Data</h2>
+ <h2>Tor Metrics: Data</h2>
<br>
<p><font color="red"><b>Notice:</b> The files linked on this site
are now available on:
diff --git a/website/web/WEB-INF/dir.jsp b/website/web/WEB-INF/dir.jsp
index 1ac1819..ac4aca3 100644
--- a/website/web/WEB-INF/dir.jsp
+++ b/website/web/WEB-INF/dir.jsp
@@ -2,7 +2,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
- <title>Tor Metrics Portal: Index of ${directory}</title>
+ <title>Tor Metrics: Index of ${directory}</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<link href="/css/stylesheet-ltr.css" type="text/css" rel="stylesheet">
<link href="/images/favicon.ico" type="image/x-icon" rel="shortcut icon">
@@ -11,7 +11,7 @@
<div class="center">
<%@ include file="banner.jsp"%>
<div class="main-column">
- <h2>Tor Metrics Portal: Index of ${directory}</h2>
+ <h2>Tor Metrics: Index of ${directory}</h2>
<br>
<c:forEach var="file" items="${files}" >
<a href="${directory}/${file}${extension}">${file}${extension}</a><br>
diff --git a/website/web/WEB-INF/error.jsp b/website/web/WEB-INF/error.jsp
index 80ef077..79ac86e 100644
--- a/website/web/WEB-INF/error.jsp
+++ b/website/web/WEB-INF/error.jsp
@@ -3,7 +3,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
- <title>Tor Metrics Portal: Error</title>
+ <title>Tor Metrics: Error</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<link href="/css/stylesheet-ltr.css" type="text/css" rel="stylesheet">
<link href="/images/favicon.ico" type="image/x-icon" rel="shortcut icon">
@@ -12,7 +12,7 @@
<div class="center">
<%@ include file="banner.jsp"%>
<div class="main-column">
-<h2>Tor Metrics Portal: Error</h2>
+<h2>Tor Metrics: Error</h2>
<br>
<p>
Oops! Something went wrong here! We encountered a
diff --git a/website/web/WEB-INF/formats.jsp b/website/web/WEB-INF/formats.jsp
index ea0c3a2..92fd699 100644
--- a/website/web/WEB-INF/formats.jsp
+++ b/website/web/WEB-INF/formats.jsp
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
- <title>Tor Metrics Portal: Data Formats</title>
+ <title>Tor Metrics: Data Formats</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<link href="/css/stylesheet-ltr.css" type="text/css" rel="stylesheet">
<link href="/images/favicon.ico" type="image/x-icon" rel="shortcut icon">
@@ -10,7 +10,7 @@
<div class="center">
<%@ include file="banner.jsp"%>
<div class="main-column">
-<h2>Tor Metrics Portal: Data Formats</h2>
+<h2>Tor Metrics: Data Formats</h2>
<br>
<p><font color="red"><b>Notice:</b> The file formats explained on this
diff --git a/website/web/WEB-INF/graphs.jsp b/website/web/WEB-INF/graphs.jsp
index 58c122c..084d085 100644
--- a/website/web/WEB-INF/graphs.jsp
+++ b/website/web/WEB-INF/graphs.jsp
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
- <title>Tor Metrics Portal: Graphs</title>
+ <title>Tor Metrics: Graphs</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<link href="/css/stylesheet-ltr.css" type="text/css" rel="stylesheet">
<link href="/images/favicon.ico" type="image/x-icon" rel="shortcut icon">
@@ -10,7 +10,7 @@
<div class="center">
<%@ include file="banner.jsp"%>
<div class="main-column">
- <h2>Tor Metrics Portal: Graphs</h2>
+ <h2>Tor Metrics: Graphs</h2>
<br>
<p>The graphs on this page visualize a small portion of the data
gathered in the Tor Metrics Project. The following graphs are
diff --git a/website/web/WEB-INF/index.jsp b/website/web/WEB-INF/index.jsp
index 9accc2b..a563cf5 100644
--- a/website/web/WEB-INF/index.jsp
+++ b/website/web/WEB-INF/index.jsp
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
- <title>Tor Metrics Portal</title>
+ <title>Tor Metrics</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<link href="/css/stylesheet-ltr.css" type="text/css" rel="stylesheet">
<link href="/images/favicon.ico" type="image/x-icon" rel="shortcut icon">
@@ -10,11 +10,11 @@
<div class="center">
<%@ include file="banner.jsp"%>
<div class="main-column">
- <h2>Tor Metrics Portal</h2>
+ <h2>Tor Metrics</h2>
<br>
- <p>The Tor Metrics Portal aggregates all kinds of interesting
+ <p>Tor Metrics aggregates all kinds of interesting
data about the Tor network and visualizes them in graphs and
- reports. This portal also provides easy access to the underlying
+ reports. This also provides easy access to the underlying
data and documentation for performing own analyses based on these
data. Find out more here:</p>
<ul>
diff --git a/website/web/WEB-INF/network.jsp b/website/web/WEB-INF/network.jsp
index 66b878f..c291bb3 100644
--- a/website/web/WEB-INF/network.jsp
+++ b/website/web/WEB-INF/network.jsp
@@ -4,7 +4,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
- <title>Tor Metrics Portal: Network</title>
+ <title>Tor Metrics: Network</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<link href="/css/stylesheet-ltr.css" type="text/css" rel="stylesheet">
<link href="/images/favicon.ico" type="image/x-icon" rel="shortcut icon">
@@ -13,7 +13,7 @@
<div class="center">
<%@ include file="banner.jsp"%>
<div class="main-column">
-<h2>Tor Metrics Portal: Network</h2>
+<h2>Tor Metrics: Network</h2>
<br>
<a name="networksize"></a>
<h3><a href="#networksize" class="anchor">Relays and bridges in the
diff --git a/website/web/WEB-INF/papers.jsp b/website/web/WEB-INF/papers.jsp
index 1a48491..a9a8d04 100644
--- a/website/web/WEB-INF/papers.jsp
+++ b/website/web/WEB-INF/papers.jsp
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
- <title>Tor Metrics Portal: Papers</title>
+ <title>Tor Metrics: Papers</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<link href="/css/stylesheet-ltr.css" type="text/css" rel="stylesheet">
<link href="/images/favicon.ico" type="image/x-icon" rel="shortcut icon">
@@ -10,7 +10,7 @@
<div class="center">
<%@ include file="banner.jsp"%>
<div class="main-column">
- <h2>Tor Metrics Portal: Papers</h2>
+ <h2>Tor Metrics: Papers</h2>
<br>
<p>The <a href="#papers">papers</a>,
<a href="#techreports">technical reports</a>, and
diff --git a/website/web/WEB-INF/performance.jsp b/website/web/WEB-INF/performance.jsp
index e220b59..4a87a55 100644
--- a/website/web/WEB-INF/performance.jsp
+++ b/website/web/WEB-INF/performance.jsp
@@ -3,7 +3,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
- <title>Tor Metrics Portal: Performance</title>
+ <title>Tor Metrics: Performance</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<link href="/css/stylesheet-ltr.css" type="text/css" rel="stylesheet">
<link href="/images/favicon.ico" type="image/x-icon" rel="shortcut icon">
@@ -12,7 +12,7 @@
<div class="center">
<%@ include file="banner.jsp"%>
<div class="main-column">
-<h2>Tor Metrics Portal: Performance</h2>
+<h2>Tor Metrics: Performance</h2>
<br>
<a name="torperf"></a>
<h3><a href="#torperf" class="anchor">Time to download files over
diff --git a/website/web/WEB-INF/relay-search.jsp b/website/web/WEB-INF/relay-search.jsp
index 90b7512..7f15a3c 100644
--- a/website/web/WEB-INF/relay-search.jsp
+++ b/website/web/WEB-INF/relay-search.jsp
@@ -3,7 +3,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
- <title>Tor Metrics Portal: Relay Search</title>
+ <title>Tor Metrics: Relay Search</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<link href="/css/stylesheet-ltr.css" type="text/css" rel="stylesheet">
<link href="/images/favicon.ico" type="image/x-icon" rel="shortcut icon">
@@ -12,7 +12,7 @@
<div class="center">
<%@ include file="banner.jsp"%>
<div class="main-column">
- <h2>Tor Metrics Portal: Relay Search</h2>
+ <h2>Tor Metrics: Relay Search</h2>
<p><font color="red">Sorry, this service has been shut down
on June 10, 2014. Possible alternatives are
<a href="https://atlas.torproject.org">Atlas</a> and
diff --git a/website/web/WEB-INF/research.jsp b/website/web/WEB-INF/research.jsp
index b0a7277..c203619 100644
--- a/website/web/WEB-INF/research.jsp
+++ b/website/web/WEB-INF/research.jsp
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
- <title>Tor Metrics Portal: Research</title>
+ <title>Tor Metrics: Research</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<link href="/css/stylesheet-ltr.css" type="text/css" rel="stylesheet">
<link href="/images/favicon.ico" type="image/x-icon" rel="shortcut icon">
@@ -10,7 +10,7 @@
<div class="center">
<%@ include file="banner.jsp"%>
<div class="main-column">
- <h2>Tor Metrics Portal: Research</h2>
+ <h2>Tor Metrics: Research</h2>
<br>
<p>The Tor Metrics Project aims at supporting privacy enhancing
technologies research by making gathered network
diff --git a/website/web/WEB-INF/stats.jsp b/website/web/WEB-INF/stats.jsp
index 4e6c9fb..d708910 100644
--- a/website/web/WEB-INF/stats.jsp
+++ b/website/web/WEB-INF/stats.jsp
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
- <title>Tor Metrics Portal: Statistics</title>
+ <title>Tor Metrics: Statistics</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<link href="/css/stylesheet-ltr.css" type="text/css" rel="stylesheet">
<link href="/images/favicon.ico" type="image/x-icon" rel="shortcut icon">
@@ -10,10 +10,10 @@
<div class="center">
<%@ include file="banner.jsp"%>
<div class="main-column">
-<h2>Tor Metrics Portal: Statistics</h2>
+<h2>Tor Metrics: Statistics</h2>
<br>
-<p>The metrics portal aggregates large amounts of Tor network
+<p>Tor Metrics aggregates large amounts of Tor network
<a href="data.html">data</a> and visualizes results in customizable
<a href="graphs.html">graphs</a> and tables.
All aggregated data are also available for download, so that people can
diff --git a/website/web/WEB-INF/status.jsp b/website/web/WEB-INF/status.jsp
index 0187c82..5142b7f 100644
--- a/website/web/WEB-INF/status.jsp
+++ b/website/web/WEB-INF/status.jsp
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
- <title>Tor Metrics Portal: Status</title>
+ <title>Tor Metrics: Status</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<link href="/css/stylesheet-ltr.css" type="text/css" rel="stylesheet">
<link href="/images/favicon.ico" type="image/x-icon" rel="shortcut icon">
@@ -10,7 +10,7 @@
<div class="center">
<%@ include file="banner.jsp"%>
<div class="main-column">
- <h2>Tor Metrics Portal: Status</h2>
+ <h2>Tor Metrics: Status</h2>
<br>
<p>The network data collected by the Tor Metrics Project can be
used to analyze the Tor network status from a few years ago until
diff --git a/website/web/WEB-INF/tools.jsp b/website/web/WEB-INF/tools.jsp
index b6754d5..0e1a5fc 100644
--- a/website/web/WEB-INF/tools.jsp
+++ b/website/web/WEB-INF/tools.jsp
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
- <title>Tor Metrics Portal: Tools</title>
+ <title>Tor Metrics: Tools</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<link href="/css/stylesheet-ltr.css" type="text/css" rel="stylesheet">
<link href="/images/favicon.ico" type="image/x-icon" rel="shortcut icon">
@@ -10,7 +10,7 @@
<div class="center">
<%@ include file="banner.jsp"%>
<div class="main-column">
- <h2>Tor Metrics Portal: Tools</h2>
+ <h2>Tor Metrics: Tools</h2>
<br>
<p><font color="red"><b>Notice:</b> The tools listed on this site
are now available on:
diff --git a/website/web/WEB-INF/users.jsp b/website/web/WEB-INF/users.jsp
index 91f8ca2..84cab43 100644
--- a/website/web/WEB-INF/users.jsp
+++ b/website/web/WEB-INF/users.jsp
@@ -4,7 +4,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
- <title>Tor Metrics Portal: Users</title>
+ <title>Tor Metrics: Users</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<link href="/css/stylesheet-ltr.css" type="text/css" rel="stylesheet">
<link href="/images/favicon.ico" type="image/x-icon" rel="shortcut icon">
@@ -13,7 +13,7 @@
<div class="center">
<%@ include file="banner.jsp"%>
<div class="main-column">
-<h2>Tor Metrics Portal: Users</h2>
+<h2>Tor Metrics: Users</h2>
<br>
<a name="userstats-relay-country"></a>
1
0