diff options
author | morrita@chromium.org <morrita@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-08-08 21:45:13 +0000 |
---|---|---|
committer | morrita@chromium.org <morrita@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-08-08 21:46:48 +0000 |
commit | e5c2775c8bdcc27bcc1651a258a1c60ef55d9f69 (patch) | |
tree | 777d57f784309e907d342211d7f68c746d6cb1dd /ipc/mojo/ipc_channel_mojo_unittest.cc | |
parent | fa5f474c5b3389be8dd6929d3284ce15ea330504 (diff) | |
download | chromium_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.cc | 12 |
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 { |