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

Side by Side Diff: mojo/public/js/bindings/connector.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, 7 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 define("mojo/public/js/bindings/connector", [ 5 define("mojo/public/js/bindings/connector", [
6 "mojo/public/js/bindings/codec", 6 "mojo/public/js/bindings/codec",
7 "mojo/public/js/bindings/core", 7 "mojo/public/js/bindings/core",
8 "mojo/public/js/bindings/support", 8 "mojo/public/js/bindings/support",
9 ], function(codec, core, support) { 9 ], function(codec, core, support) {
10 10
(...skipping 12 matching lines...) Expand all
23 if (this.readWaitCookie_) { 23 if (this.readWaitCookie_) {
24 support.cancelWait(this.readWaitCookie_); 24 support.cancelWait(this.readWaitCookie_);
25 this.readWaitCookie_ = null; 25 this.readWaitCookie_ = null;
26 } 26 }
27 if (this.handle_ != core.kInvalidHandle) { 27 if (this.handle_ != core.kInvalidHandle) {
28 core.close(this.handle_); 28 core.close(this.handle_);
29 this.handle_ = core.kInvalidHandle; 29 this.handle_ = core.kInvalidHandle;
30 } 30 }
31 }; 31 };
32 32
33 // For IPC fuzzing/testing.
34 Connector.prototype.setFuzzer = function(fuzzer) {
35 this.fuzzer_ = fuzzer;
36 }
37
33 Connector.prototype.accept = function(message) { 38 Connector.prototype.accept = function(message) {
34 if (this.error_) 39 if (this.error_)
35 return false; 40 return false;
36 41
37 if (this.dropWrites_) 42 if (this.dropWrites_)
38 return true; 43 return true;
39 44
45 if (this.fuzzer_) {
46 this.fuzzer_(message);
47 }
48
40 var result = core.writeMessage(this.handle_, 49 var result = core.writeMessage(this.handle_,
41 new Uint8Array(message.buffer.arrayBuffer), 50 new Uint8Array(message.buffer.arrayBuffer),
42 message.handles, 51 message.handles,
43 core.WRITE_MESSAGE_FLAG_NONE); 52 core.WRITE_MESSAGE_FLAG_NONE);
44 switch (result) { 53 switch (result) {
45 case core.RESULT_OK: 54 case core.RESULT_OK:
46 // The handles were successfully transferred, so we don't own them 55 // The handles were successfully transferred, so we don't own them
47 // anymore. 56 // anymore.
48 message.handles = []; 57 message.handles = [];
49 break; 58 break;
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 if (this.incomingReceiver_) { 109 if (this.incomingReceiver_) {
101 this.incomingReceiver_.accept(message); 110 this.incomingReceiver_.accept(message);
102 } 111 }
103 } 112 }
104 }; 113 };
105 114
106 var exports = {}; 115 var exports = {};
107 exports.Connector = Connector; 116 exports.Connector = Connector;
108 return exports; 117 return exports;
109 }); 118 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698