1 /*
2 * Copyright (c) 2022 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include "ohos_adapter/bridge/ark_aafwk_app_mgr_client_adapter_impl.h"
17
18 #include "ohos_adapter/bridge/ark_aafwk_browser_host_adapter_wrapper.h"
19 #include "ohos_adapter/bridge/ark_aafwk_render_scheduler_host_adapter_wrapper.h"
20
21 #include "base/bridge/ark_web_bridge_macros.h"
22
23 namespace OHOS::ArkWeb {
24
ArkAafwkAppMgrClientAdapterImpl(std::shared_ptr<OHOS::NWeb::AafwkAppMgrClientAdapter> ref)25 ArkAafwkAppMgrClientAdapterImpl::ArkAafwkAppMgrClientAdapterImpl(
26 std::shared_ptr<OHOS::NWeb::AafwkAppMgrClientAdapter> ref)
27 : real_(ref)
28 {}
29
StartRenderProcess(const ArkWebString & renderParam,int32_t ipcFd,int32_t sharedFd,int32_t crashFd,pid_t & renderPid)30 int ArkAafwkAppMgrClientAdapterImpl::StartRenderProcess(
31 const ArkWebString& renderParam, int32_t ipcFd, int32_t sharedFd, int32_t crashFd, pid_t& renderPid)
32 {
33 return real_->StartRenderProcess(ArkWebStringStructToClass(renderParam), ipcFd, sharedFd, crashFd, renderPid);
34 }
35
AttachRenderProcess(ArkWebRefPtr<ArkAafwkRenderSchedulerHostAdapter> adapter)36 void ArkAafwkAppMgrClientAdapterImpl::AttachRenderProcess(ArkWebRefPtr<ArkAafwkRenderSchedulerHostAdapter> adapter)
37 {
38 if (CHECK_REF_PTR_IS_NULL(adapter)) {
39 return real_->AttachRenderProcess(nullptr);
40 }
41
42 return real_->AttachRenderProcess(std::make_shared<ArkAafwkRenderSchedulerHostAdapterWrapper>(adapter));
43 }
44
GetRenderProcessTerminationStatus(pid_t renderPid,int & status)45 int ArkAafwkAppMgrClientAdapterImpl::GetRenderProcessTerminationStatus(pid_t renderPid, int& status)
46 {
47 return real_->GetRenderProcessTerminationStatus(renderPid, status);
48 }
49
StartChildProcess(const ArkWebString & renderParam,int32_t ipcFd,int32_t sharedFd,int32_t crashFd,pid_t & renderPid,const ArkWebString & processType)50 int ArkAafwkAppMgrClientAdapterImpl::StartChildProcess(const ArkWebString& renderParam, int32_t ipcFd, int32_t sharedFd,
51 int32_t crashFd, pid_t& renderPid, const ArkWebString& processType)
52 {
53 return real_->StartChildProcess(ArkWebStringStructToClass(renderParam), ipcFd, sharedFd, crashFd, renderPid,
54 ArkWebStringStructToClass(processType));
55 }
56
SaveBrowserConnect(ArkWebRefPtr<ArkAafwkBrowserHostAdapter> adapter)57 void ArkAafwkAppMgrClientAdapterImpl::SaveBrowserConnect(ArkWebRefPtr<ArkAafwkBrowserHostAdapter> adapter)
58 {
59 if (CHECK_REF_PTR_IS_NULL(adapter)) {
60 return real_->SaveBrowserConnect(nullptr);
61 }
62
63 return real_->SaveBrowserConnect(std::make_shared<ArkAafwkBrowserHostAdapterWrapper>(adapter));
64 }
65
66 } // namespace OHOS::ArkWeb
67