blob: a22d9375df7351b93932f085defc036ca1d9d75d [file] [log] [blame]
// Copyright 2018 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 "services/content/navigable_contents_factory_impl.h"
#include <memory>
#include <utility>
#include "base/bind.h"
#include "services/content/navigable_contents_impl.h"
#include "services/content/service.h"
namespace content {
NavigableContentsFactoryImpl::NavigableContentsFactoryImpl(
Service* service,
mojo::PendingReceiver<mojom::NavigableContentsFactory> receiver)
: service_(service), receiver_(this, std::move(receiver)) {
receiver_.set_disconnect_handler(
base::BindOnce(&Service::RemoveNavigableContentsFactory,
base::Unretained(service_), this));
}
NavigableContentsFactoryImpl::~NavigableContentsFactoryImpl() = default;
void NavigableContentsFactoryImpl::CreateContents(
mojom::NavigableContentsParamsPtr params,
mojo::PendingReceiver<mojom::NavigableContents> receiver,
mojo::PendingRemote<mojom::NavigableContentsClient> client) {
service_->AddNavigableContents(std::make_unique<NavigableContentsImpl>(
service_, std::move(params), std::move(receiver), std::move(client)));
}
} // namespace content