Commit caf0d18b authored by John Abd-El-Malek's avatar John Abd-El-Malek

Fix DCHECK in NetworkServiceTestHelper on network process shutdown because...

Fix DCHECK in NetworkServiceTestHelper on network process shutdown because bindings are destructed on the wrong thread.

Bug: 846445
Change-Id: I765b613ea68201382da3f437e9f6a57904839bba
Reviewed-on: https://chromium-review.googlesource.com/1091806Reviewed-by: default avatarJay Civelli <jcivelli@chromium.org>
Cr-Commit-Position: refs/heads/master@{#565465}
parent b90335db
......@@ -11,6 +11,7 @@
#include "base/command_line.h"
#include "base/feature_list.h"
#include "base/logging.h"
#include "base/message_loop/message_loop_current.h"
#include "base/process/process.h"
#include "build/build_config.h"
#include "content/public/common/content_features.h"
......@@ -37,7 +38,8 @@
namespace content {
class NetworkServiceTestHelper::NetworkServiceTestImpl
: public network::mojom::NetworkServiceTest {
: public network::mojom::NetworkServiceTest,
public base::MessageLoopCurrent::DestructionObserver {
public:
NetworkServiceTestImpl() {
if (base::CommandLine::ForCurrentProcess()->HasSwitch(
......@@ -114,9 +116,20 @@ class NetworkServiceTestHelper::NetworkServiceTestImpl
void BindRequest(network::mojom::NetworkServiceTestRequest request) {
bindings_.AddBinding(this, std::move(request));
if (!registered_as_destruction_observer_) {
base::MessageLoopCurrentForIO::Get()->AddDestructionObserver(this);
registered_as_destruction_observer_ = true;
}
}
// base::MessageLoopCurrent::DestructionObserver:
void WillDestroyCurrentMessageLoop() override {
// Needs to be called on the IO thread.
bindings_.CloseAllBindings();
}
private:
bool registered_as_destruction_observer_ = false;
mojo::BindingSet<network::mojom::NetworkServiceTest> bindings_;
TestHostResolver test_host_resolver_;
std::unique_ptr<net::MockCertVerifier> mock_cert_verifier_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment