diff options
author | mkwst <mkwst@chromium.org> | 2015-07-24 22:18:48 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-07-25 05:19:39 +0000 |
commit | d8335d98a4c056ab97c5cdff1e95a7fa2c7dfc10 (patch) | |
tree | cb4965114068af0ec9095fa015b34d0caaca9289 /tools/ipc_fuzzer | |
parent | c8b870d08efb3ffc6c2bedcec36462ece2326017 (diff) | |
download | chromium_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.cc | 22 |
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(); |