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

Unified Diff: ppapi/tools/pepper_hash_for_uma.cc

Issue 938283004: Pepper: add PPB interfaces that are missing in histograms.xml. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address review comments. Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ppapi/tools/pepper_hash_for_uma.cc
diff --git a/ppapi/tools/pepper_hash_for_uma.cc b/ppapi/tools/pepper_hash_for_uma.cc
index 6e38cfdd4b6483c7fe879cc50e17f4dd401a3037..7c006a89b79a094cb07eb1d99ef1d5ce4178c2cd 100644
--- a/ppapi/tools/pepper_hash_for_uma.cc
+++ b/ppapi/tools/pepper_hash_for_uma.cc
@@ -8,11 +8,21 @@
//
// The hashing logic here must match the hashing logic at
// ppapi/proxy/interface_list.cc.
+//
+// This utility can be used to generate a sorted list of hashes for all current
+// PPB* interfaces by running a script to generate the interface names, e.g.
+// $ grep -r "PPB_" ppapi/c | grep -o "\".*;[0-9]*\.[0-9]*\"" | tr '\n' ' '
+// and then invoking pepper_hash_for_uma on the list. The sorted output hashes
+// can be compared to tools/metrics/histograms/histograms.xml to determine if
+// any interfaces have been left out.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <algorithm>
+#include <vector>
+
#include "base/hash.h"
#include "base/macros.h"
@@ -25,13 +35,19 @@ int main(int argc, char **argv) {
argv[0]);
return 1;
}
+ std::vector<std::pair<uint32, char*>> hashes;
for (int i = 1; i < argc; i++) {
uint32 data = base::Hash(argv[i], strlen(argv[i]));
// Strip off the signed bit because UMA doesn't support negative values,
// but takes a signed int as input.
int hash = static_cast<int>(data & 0x7fffffff);
- printf("<int value=\"%d\" label=\"%s\"/>\n", hash, argv[i]);
+ hashes.push_back(std::make_pair(hash, argv[i]));
}
+ std::sort(hashes.begin(), hashes.end());
+ for (const auto& hash : hashes) {
+ printf("<int value=\"%d\" label=\"%s\"/>\n", hash.first, hash.second);
+ }
+
return 0;
}
« no previous file with comments | « no previous file | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698