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

Side by Side Diff: chrome/common/ipc_fuzzing_tests.cc

Issue 112042: Prevent an extra copy of data types that get passed into IPC messages when... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 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 (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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 #include <stdio.h> 5 #include <stdio.h>
6 #include <iostream> 6 #include <iostream>
7 #include <string> 7 #include <string>
8 #include <sstream> 8 #include <sstream>
9 9
10 #include "base/message_loop.h" 10 #include "base/message_loop.h"
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 CLIENT_MALFORMED_IPC, // Sent to client if server detects bad message. 109 CLIENT_MALFORMED_IPC, // Sent to client if server detects bad message.
110 CLIENT_UNHANDLED_IPC // Sent to client if server detects unhanded IPC. 110 CLIENT_UNHANDLED_IPC // Sent to client if server detects unhanded IPC.
111 }; 111 };
112 112
113 // Generic message class that is an int followed by a wstring. 113 // Generic message class that is an int followed by a wstring.
114 class MsgClassIS : public IPC::MessageWithTuple< Tuple2<int, std::wstring> > { 114 class MsgClassIS : public IPC::MessageWithTuple< Tuple2<int, std::wstring> > {
115 public: 115 public:
116 enum { ID = SERVER_FIRST_IPC_TYPE }; 116 enum { ID = SERVER_FIRST_IPC_TYPE };
117 MsgClassIS(const int& arg1, const std::wstring& arg2) 117 MsgClassIS(const int& arg1, const std::wstring& arg2)
118 : IPC::MessageWithTuple< Tuple2<int, std::wstring> >( 118 : IPC::MessageWithTuple< Tuple2<int, std::wstring> >(
119 MSG_ROUTING_CONTROL, ID, MakeTuple(arg1, arg2)) {} 119 MSG_ROUTING_CONTROL, ID, MakeRefTuple(arg1, arg2)) {}
120 }; 120 };
121 121
122 // Generic message class that is a wstring followed by an int. 122 // Generic message class that is a wstring followed by an int.
123 class MsgClassSI : public IPC::MessageWithTuple< Tuple2<std::wstring, int> > { 123 class MsgClassSI : public IPC::MessageWithTuple< Tuple2<std::wstring, int> > {
124 public: 124 public:
125 enum { ID = SERVER_SECOND_IPC_TYPE }; 125 enum { ID = SERVER_SECOND_IPC_TYPE };
126 MsgClassSI(const std::wstring& arg1, const int& arg2) 126 MsgClassSI(const std::wstring& arg1, const int& arg2)
127 : IPC::MessageWithTuple< Tuple2<std::wstring, int> >( 127 : IPC::MessageWithTuple< Tuple2<std::wstring, int> >(
128 MSG_ROUTING_CONTROL, ID, MakeTuple(arg1, arg2)) {} 128 MSG_ROUTING_CONTROL, ID, MakeRefTuple(arg1, arg2)) {}
129 }; 129 };
130 130
131 // Message to create a mutex in the IPC server, using the received name. 131 // Message to create a mutex in the IPC server, using the received name.
132 class MsgDoMutex : public IPC::MessageWithTuple< Tuple2<std::wstring, int> > { 132 class MsgDoMutex : public IPC::MessageWithTuple< Tuple2<std::wstring, int> > {
133 public: 133 public:
134 enum { ID = SERVER_THIRD_IPC_TYPE }; 134 enum { ID = SERVER_THIRD_IPC_TYPE };
135 MsgDoMutex(const std::wstring& mutex_name, const int& unused) 135 MsgDoMutex(const std::wstring& mutex_name, const int& unused)
136 : IPC::MessageWithTuple< Tuple2<std::wstring, int> >( 136 : IPC::MessageWithTuple< Tuple2<std::wstring, int> >(
137 MSG_ROUTING_CONTROL, ID, MakeTuple(mutex_name, unused)) {} 137 MSG_ROUTING_CONTROL, ID, MakeRefTuple(mutex_name, unused)) {}
138 }; 138 };
139 139
140 class SimpleListener : public IPC::Channel::Listener { 140 class SimpleListener : public IPC::Channel::Listener {
141 public: 141 public:
142 SimpleListener() : other_(NULL) { 142 SimpleListener() : other_(NULL) {
143 } 143 }
144 void Init(IPC::Message::Sender* s) { 144 void Init(IPC::Message::Sender* s) {
145 other_ = s; 145 other_ = s;
146 } 146 }
147 protected: 147 protected:
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after
421 msg = new IPC::Message(MSG_ROUTING_CONTROL, MsgClassIS::ID, 421 msg = new IPC::Message(MSG_ROUTING_CONTROL, MsgClassIS::ID,
422 IPC::Message::PRIORITY_NORMAL); 422 IPC::Message::PRIORITY_NORMAL);
423 msg->WriteInt(0x64); 423 msg->WriteInt(0x64);
424 msg->WriteInt(0x32); 424 msg->WriteInt(0x32);
425 EXPECT_FALSE(server.OnMessageReceived(*msg)); 425 EXPECT_FALSE(server.OnMessageReceived(*msg));
426 delete msg; 426 delete msg;
427 427
428 EXPECT_EQ(0, server.unhandled_msgs()); 428 EXPECT_EQ(0, server.unhandled_msgs());
429 #endif 429 #endif
430 } 430 }
OLDNEW
« no previous file with comments | « chrome/browser/renderer_host/render_widget_host_unittest.cc ('k') | chrome/common/ipc_message_macros.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698