application_controller_impl.cc 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. // Copyright 2019 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "fuchsia_web/runners/cast/application_controller_impl.h"
  5. #include <fuchsia/diagnostics/cpp/fidl.h>
  6. #include <utility>
  7. #include "base/check.h"
  8. #include "base/fuchsia/fuchsia_logging.h"
  9. ApplicationControllerImpl::ApplicationControllerImpl(
  10. fuchsia::web::Frame* frame,
  11. chromium::cast::ApplicationContext* context)
  12. : binding_(this), frame_(frame) {
  13. DCHECK(context);
  14. DCHECK(frame_);
  15. context->SetApplicationController(binding_.NewBinding());
  16. binding_.set_error_handler([](zx_status_t status) {
  17. if (status != ZX_ERR_PEER_CLOSED && status != ZX_ERR_CANCELED) {
  18. ZX_LOG(WARNING, status) << "Application bindings connection dropped.";
  19. }
  20. });
  21. }
  22. ApplicationControllerImpl::~ApplicationControllerImpl() = default;
  23. void ApplicationControllerImpl::SetTouchInputEnabled(bool enable) {
  24. frame_->ConfigureInputTypes(fuchsia::web::InputTypes::GESTURE_TAP |
  25. fuchsia::web::InputTypes::GESTURE_DRAG,
  26. (enable ? fuchsia::web::AllowInputState::ALLOW
  27. : fuchsia::web::AllowInputState::DENY));
  28. }
  29. void ApplicationControllerImpl::GetMediaPlayer(
  30. fidl::InterfaceRequest<fuchsia::media::sessions2::Player> request) {
  31. frame_->GetMediaPlayer(std::move(request));
  32. }
  33. void ApplicationControllerImpl::SetBlockMediaLoading(bool blocked) {
  34. frame_->SetBlockMediaLoading(blocked);
  35. }
  36. void ApplicationControllerImpl::GetPrivateMemorySize(
  37. GetPrivateMemorySizeCallback callback) {
  38. frame_->GetPrivateMemorySize(std::move(callback));
  39. }