summaryrefslogtreecommitdiffstats
path: root/tools/ipc_fuzzer
diff options
context:
space:
mode:
authormkwst <mkwst@chromium.org>2015-07-24 22:18:48 -0700
committerCommit bot <commit-bot@chromium.org>2015-07-25 05:19:39 +0000
commitd8335d98a4c056ab97c5cdff1e95a7fa2c7dfc10 (patch)
treecb4965114068af0ec9095fa015b34d0caaca9289 /tools/ipc_fuzzer
parentc8b870d08efb3ffc6c2bedcec36462ece2326017 (diff)
downloadchromium_src-d8335d98a4c056ab97c5cdff1e95a7fa2c7dfc10.zip
chromium_src-d8335d98a4c056ab97c5cdff1e95a7fa2c7dfc10.tar.gz
chromium_src-d8335d98a4c056ab97c5cdff1e95a7fa2c7dfc10.tar.bz2
Teach IPC about 'url::Origin'.
We'll need to pass Origin objects back and forth between the renderer and browser processes. This patch teaches IPC about the object in order to make that possible. BUG=512731 Review URL: https://codereview.chromium.org/1251063002 Cr-Commit-Position: refs/heads/master@{#340399}
Diffstat (limited to 'tools/ipc_fuzzer')
-rw-r--r--tools/ipc_fuzzer/fuzzer/fuzzer.cc22
1 files changed, 22 insertions, 0 deletions
diff --git a/tools/ipc_fuzzer/fuzzer/fuzzer.cc b/tools/ipc_fuzzer/fuzzer/fuzzer.cc
index 2af05d9..f0676ae 100644
--- a/tools/ipc_fuzzer/fuzzer/fuzzer.cc
+++ b/tools/ipc_fuzzer/fuzzer/fuzzer.cc
@@ -1790,6 +1790,28 @@ struct FuzzTraits<ui::LatencyInfo::InputCoordinate> {
};
template <>
+struct FuzzTraits<url::Origin> {
+ static bool Fuzz(url::Origin* p, Fuzzer* fuzzer) {
+ std::string scheme = p->scheme();
+ std::string host = p->host();
+ uint16 port = p->port();
+ if (!FuzzParam(&scheme, fuzzer))
+ return false;
+ if (!FuzzParam(&host, fuzzer))
+ return false;
+ if (!FuzzParam(&port, fuzzer))
+ return false;
+ *p = url::Origin::UnsafelyCreateOriginWithoutNormalization(scheme, host,
+ port);
+
+ // Force a unique origin 1% of the time:
+ if (RandInRange(100) == 1)
+ *p = url::Origin();
+ return true;
+ }
+};
+
+template <>
struct FuzzTraits<url::DeprecatedSerializedOrigin> {
static bool Fuzz(url::DeprecatedSerializedOrigin* p, Fuzzer* fuzzer) {
std::string origin = p->string();