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 
5 #include "fuchsia/runners/cast/application_controller_impl.h"
6 
7 #include <fuchsia/diagnostics/cpp/fidl.h>
8 
9 #include <utility>
10 
11 #include "base/check.h"
12 #include "base/fuchsia/fuchsia_logging.h"
13 
ApplicationControllerImpl(fuchsia::web::Frame * frame,chromium::cast::ApplicationContext * context)14 ApplicationControllerImpl::ApplicationControllerImpl(
15     fuchsia::web::Frame* frame,
16     chromium::cast::ApplicationContext* context)
17     : binding_(this), frame_(frame) {
18   DCHECK(context);
19   DCHECK(frame_);
20 
21   context->SetApplicationController(binding_.NewBinding());
22 
23   binding_.set_error_handler([](zx_status_t status) {
24     if (status != ZX_ERR_PEER_CLOSED && status != ZX_ERR_CANCELED) {
25       ZX_LOG(WARNING, status) << "Application bindings connection dropped.";
26     }
27   });
28 }
29 
30 ApplicationControllerImpl::~ApplicationControllerImpl() = default;
31 
SetTouchInputEnabled(bool enable)32 void ApplicationControllerImpl::SetTouchInputEnabled(bool enable) {
33   frame_->ConfigureInputTypes(fuchsia::web::InputTypes::GESTURE_TAP |
34                                   fuchsia::web::InputTypes::GESTURE_DRAG,
35                               (enable ? fuchsia::web::AllowInputState::ALLOW
36                                       : fuchsia::web::AllowInputState::DENY));
37 }
38 
GetMediaPlayer(fidl::InterfaceRequest<fuchsia::media::sessions2::Player> request)39 void ApplicationControllerImpl::GetMediaPlayer(
40     fidl::InterfaceRequest<fuchsia::media::sessions2::Player> request) {
41   frame_->GetMediaPlayer(std::move(request));
42 }
43 
SetBlockMediaLoading(bool blocked)44 void ApplicationControllerImpl::SetBlockMediaLoading(bool blocked) {
45   frame_->SetBlockMediaLoading(blocked);
46 }
47 
GetPrivateMemorySize(GetPrivateMemorySizeCallback callback)48 void ApplicationControllerImpl::GetPrivateMemorySize(
49     GetPrivateMemorySizeCallback callback) {
50   frame_->GetPrivateMemorySize(std::move(callback));
51 }
52