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 "interfaces/inner_api/ui_session/ui_content_stub.h"
17 
18 #include "interfaces/inner_api/ui_session/ui_session_manager.h"
19 #include "ui_content_errors.h"
20 
21 #include "adapter/ohos/entrance/ui_session/include/ui_service_hilog.h"
22 
23 namespace OHOS::Ace {
OnRemoteRequest(uint32_t code,MessageParcel & data,MessageParcel & reply,MessageOption & option)24 int32_t UiContentStub::OnRemoteRequest(uint32_t code, MessageParcel& data, MessageParcel& reply, MessageOption& option)
25 {
26     if (data.ReadInterfaceToken() != GetDescriptor()) {
27         LOGW("ui_session InterfaceToken check failed");
28         return -1;
29     }
30     switch (code) {
31         case UI_CONTENT_SERVICE_GET_TREE: {
32             GetInspectorTreeInner(data, reply, option);
33             break;
34         }
35         case UI_CONTENT_CONNECT: {
36             ConnectInner(data, reply, option);
37             break;
38         }
39         case REGISTER_CLICK_EVENT: {
40             RegisterClickEventCallbackInner(data, reply, option);
41             break;
42         }
43         case REGISTER_SEARCH_EVENT: {
44             RegisterSearchEventCallbackInner(data, reply, option);
45             break;
46         }
47         case REGISTER_ROUTER_CHANGE_EVENT: {
48             RegisterRouterChangeEventCallbackInner(data, reply, option);
49             break;
50         }
51         case REGISTER_COMPONENT_EVENT: {
52             RegisterComponentChangeEventCallbackInner(data, reply, option);
53             break;
54         }
55         case REGISTER_WEB_UNFOCUS_EVENT: {
56             RegisterWebUnfocusEventCallbackInner(data, reply, option);
57             break;
58         }
59         case UNREGISTER_CLICK_EVENT: {
60             UnregisterClickEventCallbackInner(data, reply, option);
61             break;
62         }
63         case UNREGISTER_SEARCH_EVENT: {
64             UnregisterSearchEventCallbackInner(data, reply, option);
65             break;
66         }
67         case UNREGISTER_ROUTER_CHANGE_EVENT: {
68             UnregisterRouterChangeEventCallbackInner(data, reply, option);
69             break;
70         }
71         case UNREGISTER_COMPONENT_EVENT: {
72             UnregisterComponentChangeEventCallbackInner(data, reply, option);
73             break;
74         }
75         case UNREGISTER_WEB_UNFOCUS_EVENT: {
76             UnregisterWebUnfocusEventCallbackInner(data, reply, option);
77             break;
78         }
79         default: {
80             LOGI("ui_session unknown transaction code %{public}d", code);
81             return IPCObjectStub::OnRemoteRequest(code, data, reply, option);
82         }
83     }
84     return 0;
85 }
86 
GetInspectorTreeInner(MessageParcel & data,MessageParcel & reply,MessageOption & option)87 int32_t UiContentStub::GetInspectorTreeInner(MessageParcel& data, MessageParcel& reply, MessageOption& option)
88 {
89     GetInspectorTree(nullptr);
90     return NO_ERROR;
91 }
92 
ConnectInner(MessageParcel & data,MessageParcel & reply,MessageOption & option)93 int32_t UiContentStub::ConnectInner(MessageParcel& data, MessageParcel& reply, MessageOption& option)
94 {
95     sptr<IRemoteObject> report = data.ReadRemoteObject();
96     if (report == nullptr) {
97         LOGW("read reportStub object is nullptr,connect failed");
98         return FAILED;
99     }
100     int32_t processId = data.ReadInt32();
101     UiSessionManager::GetInstance().SaveReportStub(report, processId);
102     UiSessionManager::GetInstance().SendBaseInfo(processId);
103     return NO_ERROR;
104 }
105 
RegisterClickEventCallbackInner(MessageParcel & data,MessageParcel & reply,MessageOption & option)106 int32_t UiContentStub::RegisterClickEventCallbackInner(MessageParcel& data, MessageParcel& reply, MessageOption& option)
107 {
108     reply.WriteInt32(RegisterClickEventCallback(nullptr));
109     return NO_ERROR;
110 }
111 
RegisterRouterChangeEventCallbackInner(MessageParcel & data,MessageParcel & reply,MessageOption & option)112 int32_t UiContentStub::RegisterRouterChangeEventCallbackInner(
113     MessageParcel& data, MessageParcel& reply, MessageOption& option)
114 {
115     reply.WriteInt32(RegisterRouterChangeEventCallback(nullptr));
116     return NO_ERROR;
117 }
118 
RegisterSearchEventCallbackInner(MessageParcel & data,MessageParcel & reply,MessageOption & option)119 int32_t UiContentStub::RegisterSearchEventCallbackInner(
120     MessageParcel& data, MessageParcel& reply, MessageOption& option)
121 {
122     reply.WriteInt32(RegisterSearchEventCallback(nullptr));
123     return NO_ERROR;
124 }
125 
RegisterComponentChangeEventCallbackInner(MessageParcel & data,MessageParcel & reply,MessageOption & option)126 int32_t UiContentStub::RegisterComponentChangeEventCallbackInner(
127     MessageParcel& data, MessageParcel& reply, MessageOption& option)
128 {
129     reply.WriteInt32(RegisterComponentChangeEventCallback(nullptr));
130     return NO_ERROR;
131 }
132 
RegisterWebUnfocusEventCallbackInner(MessageParcel & data,MessageParcel & reply,MessageOption & option)133 int32_t UiContentStub::RegisterWebUnfocusEventCallbackInner(
134     MessageParcel& data, MessageParcel& reply, MessageOption& option)
135 {
136     reply.WriteInt32(RegisterWebUnfocusEventCallback(nullptr));
137     return NO_ERROR;
138 }
139 
UnregisterClickEventCallbackInner(MessageParcel & data,MessageParcel & reply,MessageOption & option)140 int32_t UiContentStub::UnregisterClickEventCallbackInner(
141     MessageParcel& data, MessageParcel& reply, MessageOption& option)
142 {
143     reply.WriteInt32(UnregisterClickEventCallback());
144     return NO_ERROR;
145 }
146 
UnregisterSearchEventCallbackInner(MessageParcel & data,MessageParcel & reply,MessageOption & option)147 int32_t UiContentStub::UnregisterSearchEventCallbackInner(
148     MessageParcel& data, MessageParcel& reply, MessageOption& option)
149 {
150     reply.WriteInt32(UnregisterSearchEventCallback());
151     return NO_ERROR;
152 }
153 
UnregisterRouterChangeEventCallbackInner(MessageParcel & data,MessageParcel & reply,MessageOption & option)154 int32_t UiContentStub::UnregisterRouterChangeEventCallbackInner(
155     MessageParcel& data, MessageParcel& reply, MessageOption& option)
156 {
157     reply.WriteInt32(UnregisterRouterChangeEventCallback());
158     return NO_ERROR;
159 }
160 
UnregisterComponentChangeEventCallbackInner(MessageParcel & data,MessageParcel & reply,MessageOption & option)161 int32_t UiContentStub::UnregisterComponentChangeEventCallbackInner(
162     MessageParcel& data, MessageParcel& reply, MessageOption& option)
163 {
164     reply.WriteInt32(UnregisterComponentChangeEventCallback());
165     return NO_ERROR;
166 }
167 
UnregisterWebUnfocusEventCallbackInner(MessageParcel & data,MessageParcel & reply,MessageOption & option)168 int32_t UiContentStub::UnregisterWebUnfocusEventCallbackInner(
169     MessageParcel& data, MessageParcel& reply, MessageOption& option)
170 {
171     reply.WriteInt32(UnregisterWebUnfocusEventCallback());
172     return NO_ERROR;
173 }
174 } // namespace OHOS::Ace