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

Side by Side Diff: ipc/attachment_broker_privileged_win_unittest.cc

Issue 1258323004: Reland #1: Clean up interface of attachment broker. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 4 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
« no previous file with comments | « ipc/attachment_broker_privileged.cc ('k') | ipc/attachment_broker_unprivileged.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "build/build_config.h" 5 #include "build/build_config.h"
6 6
7 #include <windows.h> 7 #include <windows.h>
8 8
9 #include "base/files/file_path.h" 9 #include "base/files/file_path.h"
10 #include "base/files/file_util.h" 10 #include "base/files/file_util.h"
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
154 void set_broker(IPC::AttachmentBrokerUnprivilegedWin* broker) { 154 void set_broker(IPC::AttachmentBrokerUnprivilegedWin* broker) {
155 broker_.reset(broker); 155 broker_.reset(broker);
156 } 156 }
157 157
158 void CommonSetUp() { 158 void CommonSetUp() {
159 if (!broker_.get()) 159 if (!broker_.get())
160 set_broker(new IPC::AttachmentBrokerUnprivilegedWin); 160 set_broker(new IPC::AttachmentBrokerUnprivilegedWin);
161 broker_->AddObserver(&observer_); 161 broker_->AddObserver(&observer_);
162 set_attachment_broker(broker_.get()); 162 set_attachment_broker(broker_.get());
163 CreateChannel(&proxy_listener_); 163 CreateChannel(&proxy_listener_);
164 broker_->set_sender(channel()); 164 broker_->DesignateBrokerCommunicationChannel(channel());
165 ASSERT_TRUE(ConnectChannel()); 165 ASSERT_TRUE(ConnectChannel());
166 ASSERT_TRUE(StartClient()); 166 ASSERT_TRUE(StartClient());
167 } 167 }
168 168
169 void CommonTearDown() { 169 void CommonTearDown() {
170 // Close the channel so the client's OnChannelError() gets fired. 170 // Close the channel so the client's OnChannelError() gets fired.
171 channel()->Close(); 171 channel()->Close();
172 172
173 EXPECT_TRUE(WaitForClientShutdown()); 173 EXPECT_TRUE(WaitForClientShutdown());
174 DestroyChannel(); 174 DestroyChannel();
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 } 271 }
272 272
273 // Similar to SendHandle, except the attachment's destination process is this 273 // Similar to SendHandle, except the attachment's destination process is this
274 // process. This is an unrealistic scenario, but simulates an unprivileged 274 // process. This is an unrealistic scenario, but simulates an unprivileged
275 // process sending an attachment to another unprivileged process. 275 // process sending an attachment to another unprivileged process.
276 TEST_F(IPCAttachmentBrokerPrivilegedWinTest, SendHandleToSelf) { 276 TEST_F(IPCAttachmentBrokerPrivilegedWinTest, SendHandleToSelf) {
277 Init("SendHandleToSelf"); 277 Init("SendHandleToSelf");
278 278
279 set_broker(new MockBroker); 279 set_broker(new MockBroker);
280 CommonSetUp(); 280 CommonSetUp();
281 // Technically, the channel is an endpoint, but we need the proxy listener to
282 // receive the messages so that it can quit the message loop.
283 channel()->set_attachment_broker_endpoint(false);
281 get_proxy_listener()->set_listener(get_broker()); 284 get_proxy_listener()->set_listener(get_broker());
282 285
283 HANDLE h = CreateTempFile(); 286 HANDLE h = CreateTempFile();
284 SendMessageWithAttachment(h); 287 SendMessageWithAttachment(h);
285 base::MessageLoop::current()->Run(); 288 base::MessageLoop::current()->Run();
286 289
287 // Get the received attachment. 290 // Get the received attachment.
288 IPC::BrokerableAttachment::AttachmentId* id = get_observer()->get_id(); 291 IPC::BrokerableAttachment::AttachmentId* id = get_observer()->get_id();
289 scoped_refptr<IPC::BrokerableAttachment> received_attachment; 292 scoped_refptr<IPC::BrokerableAttachment> received_attachment;
290 get_broker()->GetAttachmentWithId(*id, &received_attachment); 293 get_broker()->GetAttachmentWithId(*id, &received_attachment);
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
390 // Do nothing special. The default behavior already runs the 393 // Do nothing special. The default behavior already runs the
391 // AttachmentBrokerPrivilegedWin. 394 // AttachmentBrokerPrivilegedWin.
392 } 395 }
393 396
394 MULTIPROCESS_IPC_TEST_CLIENT_MAIN(SendHandleToSelf) { 397 MULTIPROCESS_IPC_TEST_CLIENT_MAIN(SendHandleToSelf) {
395 return CommonPrivilegedProcessMain(&SendHandleToSelfCallback, 398 return CommonPrivilegedProcessMain(&SendHandleToSelfCallback,
396 "SendHandleToSelf"); 399 "SendHandleToSelf");
397 } 400 }
398 401
399 } // namespace 402 } // namespace
OLDNEW
« no previous file with comments | « ipc/attachment_broker_privileged.cc ('k') | ipc/attachment_broker_unprivileged.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698