summaryrefslogtreecommitdiffstats
path: root/mojo/edk/embedder/embedder.cc
diff options
context:
space:
mode:
authorblundell <blundell@chromium.org>2016-02-09 02:26:54 -0800
committerCommit bot <commit-bot@chromium.org>2016-02-09 10:27:56 +0000
commitc8588be061339ced9a34d3d7e3319daf7eee241d (patch)
treec51d3e41c3d4029ba97d47588867e1e9a2f085ae /mojo/edk/embedder/embedder.cc
parent1f071893d22e2260b5ebc6c97a02626a9ca945fe (diff)
downloadchromium_src-c8588be061339ced9a34d3d7e3319daf7eee241d.zip
chromium_src-c8588be061339ced9a34d3d7e3319daf7eee241d.tar.gz
chromium_src-c8588be061339ced9a34d3d7e3319daf7eee241d.tar.bz2
Revert of [mojo-edk] Simplify multiprocess pipe bootstrap (patchset #7 id:140001 of https://codereview.chromium.org/1675603002/ )
Reason for revert: This patch broke several browsertests on Linux: PlatformAppBrowserTest.LoadAndLaunchAppChromeRunning, PlatformAppBrowserTest.LoadAndLaunchAppWithFile, PolicyMakeDefaultBrowserTest.MakeDefaultDisabled (e.g., https://build.chromium.org/p/chromium.linux/buildstatus?builder=Linux%20Tests%20%28dbg%29%281%29%2832%29&number=25685). I could repro the failures locally, and reverting this patch fixed them. Example failure: PlatformAppBrowserTest.LoadAndLaunchAppChromeRunning (run #1): [ RUN ] PlatformAppBrowserTest.LoadAndLaunchAppChromeRunning <snip> [26865:26901:0209/004101:FATAL:thread.cc(270)] Check failed: GetThreadWasQuitProperly(). #0 0x0000f7142d94 base::debug::StackTrace::StackTrace() #1 0x0000f71a998f logging::LogMessage::~LogMessage() #2 0x0000f72cc94f base::Thread::ThreadMain() #3 0x0000f72b487a base::(anonymous namespace)::ThreadFunc() #4 0x0000e749dd4c start_thread #5 0x0000e6a7cb8e clone Original issue's description: > [mojo-edk] Simplify multiprocess pipe bootstrap > > This introduces a new MergePort message at the Ports layer > for joining two independent port cycles which each have > an unused (i.e. unwritten, unread, unsent) receiving port. > > MergePort allows us to create a MessagePipeDispatcher which > is immediately usable but which will eventually be linked to > a MessagePipeDispatcher on another port cycle, potentially in > another process. > > The basic idea is to create a fully functional port pair but > only bind one port to an MPD. Do this on each end and > merge the dangling ports asynchronously. > > The simplification here allows a lot of code to be deleted > from NodeController, some of which is deleted in this CL. > > Future work will convert existing bootstrap sites back to > using synchronous bootstrap, including the token-based APIs. > > BUG=584764 > TBR=ben@chromium.org for null check in mash shell > > Committed: https://crrev.com/b3ea203171e07f5c7e476e94d210ec4ad53ce5b0 > Cr-Commit-Position: refs/heads/master@{#374322} TBR=amistry@chromium.org,darin@chormium.org,rockot@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=584764 Review URL: https://codereview.chromium.org/1678333003 Cr-Commit-Position: refs/heads/master@{#374346}
Diffstat (limited to 'mojo/edk/embedder/embedder.cc')
-rw-r--r--mojo/edk/embedder/embedder.cc20
1 files changed, 6 insertions, 14 deletions
diff --git a/mojo/edk/embedder/embedder.cc b/mojo/edk/embedder/embedder.cc
index 926ee18..d1ab6c6 100644
--- a/mojo/edk/embedder/embedder.cc
+++ b/mojo/edk/embedder/embedder.cc
@@ -107,37 +107,29 @@ void ShutdownIPCSupport() {
ScopedMessagePipeHandle CreateMessagePipe(
ScopedPlatformHandle platform_handle) {
- DCHECK(internal::g_core);
- return internal::g_core->CreateMessagePipe(std::move(platform_handle));
+ NOTREACHED();
+ return ScopedMessagePipeHandle();
}
void CreateMessagePipe(
ScopedPlatformHandle platform_handle,
const base::Callback<void(ScopedMessagePipeHandle)>& callback) {
DCHECK(internal::g_core);
- callback.Run(CreateMessagePipe(std::move(platform_handle)));
-}
-
-ScopedMessagePipeHandle CreateParentMessagePipe(const std::string& token) {
- DCHECK(internal::g_core);
- return internal::g_core->CreateParentMessagePipe(token);
+ internal::g_core->CreateMessagePipe(std::move(platform_handle), callback);
}
void CreateParentMessagePipe(
const std::string& token,
const base::Callback<void(ScopedMessagePipeHandle)>& callback) {
- callback.Run(CreateParentMessagePipe(token));
-}
-
-ScopedMessagePipeHandle CreateChildMessagePipe(const std::string& token) {
DCHECK(internal::g_core);
- return internal::g_core->CreateChildMessagePipe(token);
+ internal::g_core->CreateParentMessagePipe(token, callback);
}
void CreateChildMessagePipe(
const std::string& token,
const base::Callback<void(ScopedMessagePipeHandle)>& callback) {
- callback.Run(CreateChildMessagePipe(token));
+ DCHECK(internal::g_core);
+ internal::g_core->CreateChildMessagePipe(token, callback);
}
std::string GenerateRandomToken() {