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)14ApplicationControllerImpl::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)32void 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)39void ApplicationControllerImpl::GetMediaPlayer( 40 fidl::InterfaceRequest<fuchsia::media::sessions2::Player> request) { 41 frame_->GetMediaPlayer(std::move(request)); 42 } 43 SetBlockMediaLoading(bool blocked)44void ApplicationControllerImpl::SetBlockMediaLoading(bool blocked) { 45 frame_->SetBlockMediaLoading(blocked); 46 } 47 GetPrivateMemorySize(GetPrivateMemorySizeCallback callback)48void ApplicationControllerImpl::GetPrivateMemorySize( 49 GetPrivateMemorySizeCallback callback) { 50 frame_->GetPrivateMemorySize(std::move(callback)); 51 } 52