summaryrefslogtreecommitdiffstats
path: root/ipc/mojo/ipc_channel_mojo_unittest.cc
diff options
context:
space:
mode:
authormorrita@chromium.org <morrita@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-08-08 21:45:13 +0000
committermorrita@chromium.org <morrita@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-08-08 21:46:48 +0000
commite5c2775c8bdcc27bcc1651a258a1c60ef55d9f69 (patch)
tree777d57f784309e907d342211d7f68c746d6cb1dd /ipc/mojo/ipc_channel_mojo_unittest.cc
parentfa5f474c5b3389be8dd6929d3284ce15ea330504 (diff)
downloadchromium_src-e5c2775c8bdcc27bcc1651a258a1c60ef55d9f69.zip
chromium_src-e5c2775c8bdcc27bcc1651a258a1c60ef55d9f69.tar.gz
chromium_src-e5c2775c8bdcc27bcc1651a258a1c60ef55d9f69.tar.bz2
IPC::ChannelMojo: Don't supress MOJO_RESULT_FAILED_PRECONDITION
The error should be reported to IPC::Listener as it is a signal of the dead peer. Without this, the browser cannot detect renderer crashes. TEST=browser_tests (with ChannelMojo enabled) R=viettrungluu@chromium.org,darin@chromium.org BUG=none Review URL: https://codereview.chromium.org/453643003 Cr-Commit-Position: refs/heads/master@{#288442} git-svn-id: svn://svn.chromium.org/chrome/trunk/src@288442 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ipc/mojo/ipc_channel_mojo_unittest.cc')
-rw-r--r--ipc/mojo/ipc_channel_mojo_unittest.cc12
1 files changed, 10 insertions, 2 deletions
diff --git a/ipc/mojo/ipc_channel_mojo_unittest.cc b/ipc/mojo/ipc_channel_mojo_unittest.cc
index 915029d..3157837 100644
--- a/ipc/mojo/ipc_channel_mojo_unittest.cc
+++ b/ipc/mojo/ipc_channel_mojo_unittest.cc
@@ -22,7 +22,8 @@ namespace {
class ListenerThatExpectsOK : public IPC::Listener {
public:
- ListenerThatExpectsOK() {}
+ ListenerThatExpectsOK()
+ : received_ok_(false) {}
virtual ~ListenerThatExpectsOK() {}
@@ -31,12 +32,16 @@ class ListenerThatExpectsOK : public IPC::Listener {
std::string should_be_ok;
EXPECT_TRUE(iter.ReadString(&should_be_ok));
EXPECT_EQ(should_be_ok, "OK");
+ received_ok_ = true;
base::MessageLoop::current()->Quit();
return true;
}
virtual void OnChannelError() OVERRIDE {
- NOTREACHED();
+ // The connection should be healthy while the listener is waiting
+ // message. An error can occur after that because the peer
+ // process dies.
+ DCHECK(received_ok_);
}
static void SendOK(IPC::Sender* sender) {
@@ -45,6 +50,9 @@ class ListenerThatExpectsOK : public IPC::Listener {
message->WriteString(std::string("OK"));
ASSERT_TRUE(sender->Send(message));
}
+
+ private:
+ bool received_ok_;
};
class ListenerThatShouldBeNeverCalled : public IPC::Listener {