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

Unified Diff: content/test/data/web_ui_mojo.js

Issue 250713003: Test sending corrupt mojo messages back from javascript. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix Uint32 => Uint8 for consistency. Created 6 years, 8 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
Index: content/test/data/web_ui_mojo.js
diff --git a/content/test/data/web_ui_mojo.js b/content/test/data/web_ui_mojo.js
index 3dc32293cf1aa17aaca0a48f931f1ca44ab9244b..10a87b37ff2af41b53e46bc08787ce7b61ddf9c2 100644
--- a/content/test/data/web_ui_mojo.js
+++ b/content/test/data/web_ui_mojo.js
@@ -3,10 +3,12 @@
// found in the LICENSE file.
define('main', [
- 'mojo/public/js/bindings/connection',
- 'content/test/data/web_ui_test_mojo_bindings.mojom',
+ 'mojo/public/js/bindings/connection',
+ 'content/test/data/web_ui_test_mojo_bindings.mojom',
], function (connection, bindings) {
- var retainedConnection, kIterations = 100, kBadValue = 13;
+ var kBadValue = 13;
+ var fuzzerInstalled = false;
+ var retainedConnection;
function RendererTargetTest(bindings) {
this.bindings_ = bindings;
@@ -23,7 +25,7 @@ define('main', [
this.bindings_.pingResponse();
};
- RendererTargetTest.prototype.echo = function (arg) {
+ RendererTargetTest.prototype.echo = function (iterations, arg) {
var i;
// Ensure negative values are negative.
@@ -39,7 +41,7 @@ define('main', [
if (arg.si8 > 0)
arg.si8 = kBadValue;
- for (i = 0; i < kIterations; ++i) {
+ for (i = 0; i < iterations; ++i) {
arg2 = new bindings.EchoArgs();
arg2.si64 = -1;
arg2.si32 = -1;
@@ -50,6 +52,26 @@ define('main', [
}
};
+ RendererTargetTest.prototype.flipBits = function (iterations, arg) {
+ var i;
+ if (!fuzzerInstalled) {
+ retainedConnection.setFuzzer((function () {
+ var iteration = 0;
+ return function (message) {
+ var offset = iteration / 8;
+ var mask = 1 << (iteration % 8);
+ var value = message.buffer.dataView.getUint8(offset) ^ mask;
+ message.buffer.dataView.setUint8(offset, value);
+ iteration += 1;
+ }
+ })());
abarth-chromium 2014/04/25 00:36:48 Rather than hooking in like this, you should be ab
+ fuzzerInstalled = true;
+ console.log('Tests running with fuzzers enabled.');
+ }
+ for (i = 0; i < iterations; ++i)
+ this.bindings_.flipBitsResponse(arg);
+ };
+
return function(handle) {
retainedConnection = new connection.Connection(
handle, RendererTargetTest, bindings.BrowserTargetProxy);

Powered by Google App Engine
This is Rietveld 408576698