This also consumes the existing channel created when launching a process to create the the conneciton required by NodeController for communicating between processes. In part 12b, consumers of the broken APIs will be adjusted to use the new interface. The new routing approach is not used for the fork server process, as an IO thread and the NodeController object cannot be initialized before the fork has been performed, and the IPC requirements of that process are fairly minimal. Differential Revision: https://phabricator.services.mozilla.com/D112776
49 lines
1.4 KiB
C++
49 lines
1.4 KiB
C++
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#ifndef dom_plugins_IOThreadChild_h
|
|
#define dom_plugins_IOThreadChild_h 1
|
|
|
|
#include "chrome/common/child_thread.h"
|
|
#include "mozilla/ipc/NodeController.h"
|
|
|
|
namespace mozilla {
|
|
namespace ipc {
|
|
//-----------------------------------------------------------------------------
|
|
|
|
// The IOThreadChild class represents a background thread where the
|
|
// IPC IO MessageLoop lives.
|
|
class IOThreadChild : public ChildThread {
|
|
public:
|
|
IOThreadChild()
|
|
: ChildThread(base::Thread::Options(MessageLoop::TYPE_IO,
|
|
0)) // stack size
|
|
{}
|
|
|
|
~IOThreadChild() = default;
|
|
|
|
static MessageLoop* message_loop() {
|
|
return IOThreadChild::current()->Thread::message_loop();
|
|
}
|
|
|
|
static ScopedPort TakeInitialPort() {
|
|
return IOThreadChild::current()->ChildThread::TakeInitialPort();
|
|
}
|
|
|
|
protected:
|
|
static IOThreadChild* current() {
|
|
return static_cast<IOThreadChild*>(ChildThread::current());
|
|
}
|
|
|
|
private:
|
|
DISALLOW_EVIL_CONSTRUCTORS(IOThreadChild);
|
|
};
|
|
|
|
} // namespace ipc
|
|
} // namespace mozilla
|
|
|
|
#endif // ifndef dom_plugins_IOThreadChild_h
|