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

Side by Side Diff: ipc/ipc_channel_proxy.cc

Issue 553283002: IPC::ChannelMojo: Introduce IPC::MojoBootstrap for Windows (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixing windows build error Created 6 years, 3 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "ipc/ipc_channel_proxy.h" 5 #include "ipc/ipc_channel_proxy.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/compiler_specific.h" 8 #include "base/compiler_specific.h"
9 #include "base/location.h" 9 #include "base/location.h"
10 #include "base/memory/ref_counted.h" 10 #include "base/memory/ref_counted.h"
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after
227 if (filters_[i].get() == filter) { 227 if (filters_[i].get() == filter) {
228 filter->OnFilterRemoved(); 228 filter->OnFilterRemoved();
229 filters_.erase(filters_.begin() + i); 229 filters_.erase(filters_.begin() + i);
230 return; 230 return;
231 } 231 }
232 } 232 }
233 233
234 NOTREACHED() << "filter to be removed not found"; 234 NOTREACHED() << "filter to be removed not found";
235 } 235 }
236 236
237 void ChannelProxy::Context::OnClientLaunched(base::ProcessHandle handle) {
238 channel_->OnClientLaunched(handle);
239 }
240
237 // Called on the listener's thread 241 // Called on the listener's thread
238 void ChannelProxy::Context::AddFilter(MessageFilter* filter) { 242 void ChannelProxy::Context::AddFilter(MessageFilter* filter) {
239 base::AutoLock auto_lock(pending_filters_lock_); 243 base::AutoLock auto_lock(pending_filters_lock_);
240 pending_filters_.push_back(make_scoped_refptr(filter)); 244 pending_filters_.push_back(make_scoped_refptr(filter));
241 ipc_task_runner_->PostTask( 245 ipc_task_runner_->PostTask(
242 FROM_HERE, base::Bind(&Context::OnAddFilter, this)); 246 FROM_HERE, base::Bind(&Context::OnAddFilter, this));
243 } 247 }
244 248
245 // Called on the listener's thread 249 // Called on the listener's thread
246 void ChannelProxy::Context::OnDispatchMessage(const Message& message) { 250 void ChannelProxy::Context::OnDispatchMessage(const Message& message) {
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
427 FROM_HERE, base::Bind(&Context::OnRemoveFilter, context_.get(), 431 FROM_HERE, base::Bind(&Context::OnRemoveFilter, context_.get(),
428 make_scoped_refptr(filter))); 432 make_scoped_refptr(filter)));
429 } 433 }
430 434
431 void ChannelProxy::ClearIPCTaskRunner() { 435 void ChannelProxy::ClearIPCTaskRunner() {
432 DCHECK(CalledOnValidThread()); 436 DCHECK(CalledOnValidThread());
433 437
434 context()->ClearIPCTaskRunner(); 438 context()->ClearIPCTaskRunner();
435 } 439 }
436 440
441 void ChannelProxy::OnClientLaunched(base::ProcessHandle handle) {
442 context_->ipc_task_runner()->PostTask(
443 FROM_HERE,
444 base::Bind(&Context::OnClientLaunched, context_.get(), handle));
445 }
446
437 #if defined(OS_POSIX) && !defined(OS_NACL) 447 #if defined(OS_POSIX) && !defined(OS_NACL)
438 // See the TODO regarding lazy initialization of the channel in 448 // See the TODO regarding lazy initialization of the channel in
439 // ChannelProxy::Init(). 449 // ChannelProxy::Init().
440 int ChannelProxy::GetClientFileDescriptor() { 450 int ChannelProxy::GetClientFileDescriptor() {
441 DCHECK(CalledOnValidThread()); 451 DCHECK(CalledOnValidThread());
442 452
443 Channel* channel = context_.get()->channel_.get(); 453 Channel* channel = context_.get()->channel_.get();
444 // Channel must have been created first. 454 // Channel must have been created first.
445 DCHECK(channel) << context_.get()->channel_id_; 455 DCHECK(channel) << context_.get()->channel_id_;
446 return channel->GetClientFileDescriptor(); 456 return channel->GetClientFileDescriptor();
447 } 457 }
448 458
449 int ChannelProxy::TakeClientFileDescriptor() { 459 int ChannelProxy::TakeClientFileDescriptor() {
450 DCHECK(CalledOnValidThread()); 460 DCHECK(CalledOnValidThread());
451 461
452 Channel* channel = context_.get()->channel_.get(); 462 Channel* channel = context_.get()->channel_.get();
453 // Channel must have been created first. 463 // Channel must have been created first.
454 DCHECK(channel) << context_.get()->channel_id_; 464 DCHECK(channel) << context_.get()->channel_id_;
455 return channel->TakeClientFileDescriptor(); 465 return channel->TakeClientFileDescriptor();
456 } 466 }
457 #endif 467 #endif
458 468
459 //----------------------------------------------------------------------------- 469 //-----------------------------------------------------------------------------
460 470
461 } // namespace IPC 471 } // namespace IPC
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698