| Index: content/renderer/mojo/blink_interface_registry_impl.cc
|
| diff --git a/content/renderer/mojo/blink_interface_registry_impl.cc b/content/renderer/mojo/blink_interface_registry_impl.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..a366a702588947227743babff2f7145966a3b0ba
|
| --- /dev/null
|
| +++ b/content/renderer/mojo/blink_interface_registry_impl.cc
|
| @@ -0,0 +1,40 @@
|
| +// Copyright 2016 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "content/renderer/mojo/blink_interface_registry_impl.h"
|
| +
|
| +#include <utility>
|
| +
|
| +#include "base/bind.h"
|
| +#include "mojo/public/cpp/system/message_pipe.h"
|
| +#include "services/shell/public/cpp/interface_registry.h"
|
| +
|
| +namespace content {
|
| +namespace {
|
| +
|
| +void ForwardToInterfaceFactory(
|
| + const std::unique_ptr<blink::InterfaceFactory>& factory,
|
| + mojo::ScopedMessagePipeHandle handle) {
|
| + factory->onSuccess(std::move(handle));
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| +BlinkInterfaceRegistryImpl::BlinkInterfaceRegistryImpl(
|
| + base::WeakPtr<shell::InterfaceRegistry> interface_registry)
|
| + : interface_registry_(interface_registry) {}
|
| +
|
| +BlinkInterfaceRegistryImpl::~BlinkInterfaceRegistryImpl() = default;
|
| +
|
| +void BlinkInterfaceRegistryImpl::addInterface(
|
| + const char* name,
|
| + std::unique_ptr<blink::InterfaceFactory> factory) {
|
| + if (!interface_registry_)
|
| + return;
|
| +
|
| + interface_registry_->AddInterface(
|
| + name, base::Bind(&ForwardToInterfaceFactory, std::move(factory)));
|
| +}
|
| +
|
| +} // namespace content
|
|
|