// Copyright 2019 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 "media/fuchsia/cdm/client/mojo_fuchsia_cdm_provider.h"

#include "third_party/blink/public/common/browser_interface_broker_proxy.h"

namespace media {

MojoFuchsiaCdmProvider::MojoFuchsiaCdmProvider(
    blink::BrowserInterfaceBrokerProxy* interface_broker)
    : interface_broker_(interface_broker) {
  DCHECK(interface_broker_);
}

MojoFuchsiaCdmProvider::~MojoFuchsiaCdmProvider() = default;

void MojoFuchsiaCdmProvider::CreateCdmInterface(
    const std::string& key_system,
    fidl::InterfaceRequest<fuchsia::media::drm::ContentDecryptionModule>
        cdm_request) {
  if (!cdm_provider_) {
    interface_broker_->GetInterface(cdm_provider_.BindNewPipeAndPassReceiver());
  }

  cdm_provider_->CreateCdm(key_system, std::move(cdm_request));
}

}  // namespace media
