• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2023-2024 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 #ifndef FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_PATTERN_WEB_WEB_MODEL_NG_H
16 #define FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_PATTERN_WEB_WEB_MODEL_NG_H
17 
18 #include "core/components_ng/base/view_abstract.h"
19 #include "core/components_ng/base/view_stack_processor.h"
20 #include "core/components_ng/pattern/web/web_model.h"
21 
22 namespace OHOS::Ace::NG {
23 using OnWebSyncFunc = std::function<bool(const std::shared_ptr<BaseEventInfo>& info)>;
24 using OnWebAsyncFunc = std::function<void(const std::shared_ptr<BaseEventInfo>& info)>;
25 using SetWebIdCallback = std::function<void(int32_t)>;
26 using SetHapPathCallback = std::function<void(const std::string&)>;
27 using JsProxyCallback = std::function<void()>;
28 using setPermissionClipboardCallback = std::function<void(const std::shared_ptr<BaseEventInfo>&)>;
29 
30 // enum type used for decoupe NWeb dependency, same as NWeb::ImageColorType
31 enum class TransImageColorType {
32     // Unknown color type
33     COLOR_TYPE_UNKNOWN = -1,
34 
35     // RGBA with 8 bits per pixel (32 bits total).
36     COLOR_TYPE_RGBA_8888 = 0,
37 
38     // RGRA with 8 bits per pixel (32 bits total).
39     COLOR_TYPE_BGRA_8888 = 1,
40 };
41 
42 // enum type used for decoupe NWeb dependency, same as NWeb::ImageAlphaType
43 enum class TransImageAlphaType {
44     // Unknown alpha type
45     ALPHA_TYPE_UNKNOWN = -1,
46 
47     // No transparency. The alpha component is ignored.
48     ALPHA_TYPE_OPAQUE = 0,
49 
50     // Transparency with pre-multiplied alpha component.
51     ALPHA_TYPE_PREMULTIPLIED = 1,
52 
53     // Transparency with post-multiplied alpha component.
54     ALPHA_TYPE_POSTMULTIPLIED = 2,
55 };
56 
57 class ACE_EXPORT WebModelNG : public OHOS::Ace::WebModel {
58 public:
59     void Create(const std::string& src, const RefPtr<WebController>& webController,
60         RenderMode renderMode = RenderMode::ASYNC_RENDER, bool incognitoMode = false,
61         const std::string& sharedRenderProcessToken = "") override;
62     void Create(const std::string& src, std::function<void(int32_t)>&& setWebIdCallback,
63         std::function<void(const std::string&)>&& setHapPathCallback, int32_t parentWebId, bool popup,
64         RenderMode renderMode = RenderMode::ASYNC_RENDER, bool incognitoMode = false,
65         const std::string& sharedRenderProcessToken = "") override;
66     Color GetDefaultBackgroundColor() override;
67     void SetCustomScheme(const std::string& cmdLine) override;
68     void SetOnCommonDialog(std::function<bool(const BaseEventInfo* info)>&& jsCallback, int dialogEventType) override;
69     void SetOnConsoleLog(std::function<bool(const BaseEventInfo* info)>&& jsCallback) override;
70     void SetOnPageStart(std::function<void(const BaseEventInfo* info)>&& jsCallback) override;
71     void SetOnPageFinish(std::function<void(const BaseEventInfo* info)>&& jsCallback) override;
72     void SetOnProgressChange(std::function<void(const BaseEventInfo* info)>&& jsCallback) override;
73     void SetOnTitleReceive(std::function<void(const BaseEventInfo* info)>&& jsCallback) override;
74     void SetOnFullScreenExit(std::function<void(const BaseEventInfo* info)>&& jsCallback) override;
75     void SetOnFullScreenEnter(std::function<void(const BaseEventInfo* info)>&& jsCallback) override;
76     void SetOnGeolocationHide(std::function<void(const BaseEventInfo* info)>&& jsCallback) override;
77     void SetOnGeolocationShow(std::function<void(const BaseEventInfo* info)>&& jsCallback) override;
78     void SetOnRequestFocus(std::function<void(const BaseEventInfo* info)>&& jsCallback) override;
79     void SetOnDownloadStart(std::function<void(const BaseEventInfo* info)>&& jsCallback) override;
80     void SetOnHttpAuthRequest(std::function<bool(const BaseEventInfo* info)>&& jsCallback) override;
81     void SetOnSslErrorRequest(std::function<bool(const BaseEventInfo* info)>&& jsCallback) override;
82     void SetOnAllSslErrorRequest(std::function<bool(const BaseEventInfo* info)>&& jsCallback) override;
83     void SetOnSslSelectCertRequest(std::function<bool(const BaseEventInfo* info)>&& jsCallback) override;
84     void SetMediaPlayGestureAccess(bool isNeedGestureAccess) override;
85     void SetOnKeyEvent(std::function<void(KeyEventInfo& keyEventInfo)>&& jsCallback) override;
86     void SetOnErrorReceive(std::function<void(const BaseEventInfo* info)>&& jsCallback) override;
87     void SetOnHttpErrorReceive(std::function<void(const BaseEventInfo* info)>&& jsCallback) override;
88     void SetOnInterceptRequest(std::function<RefPtr<WebResponse>(const BaseEventInfo* info)>&& jsCallback) override;
89     void SetOnOverrideErrorPage(std::function<std::string(const BaseEventInfo* info)>&& jsCallback) override;
90     void SetOnUrlLoadIntercept(std::function<bool(const BaseEventInfo* info)>&& jsCallback) override;
91     void SetOnLoadIntercept(std::function<bool(const BaseEventInfo* info)>&& jsCallback) override;
92     void SetOnOverrideUrlLoading(std::function<bool(const BaseEventInfo* info)>&& jsCallback) override;
93     void SetOnFileSelectorShow(std::function<bool(const BaseEventInfo* info)>&& jsCallback) override;
94     void SetOnContextMenuShow(std::function<bool(const BaseEventInfo* info)>&& jsCallback) override;
95     void SetOnContextMenuHide(std::function<void(const BaseEventInfo* info)>&& jsCallback) override;
96     void SetNewDragStyle(bool isNewDragStyle) override;
97     void SetPreviewSelectionMenu(const std::shared_ptr<WebPreviewSelectionMenuParam>& param) override;
98     void SetJsEnabled(bool isJsEnabled) override;
99     void SetFileAccessEnabled(bool isFileAccessEnabled) override;
100     void SetOnLineImageAccessEnabled(bool isOnLineImageAccessEnabled) override;
101     void SetDomStorageAccessEnabled(bool isDomStorageAccessEnabled) override;
102     void SetImageAccessEnabled(bool isImageAccessEnabled) override;
103     void SetMixedMode(MixedModeContent mixedMode) override;
104     void SetZoomAccessEnabled(bool isZoomAccessEnabled) override;
105     void SetGeolocationAccessEnabled(bool isGeolocationAccessEnabled) override;
106     void SetJsProxyCallback(std::function<void()>&& jsProxyCallback) override;
107     void SetUserAgent(const std::string& userAgent) override;
108     void SetRenderExitedId(std::function<void(const BaseEventInfo* info)>&& jsCallback) override;
109     void SetRefreshAccessedHistoryId(std::function<void(const BaseEventInfo* info)>&& jsCallback) override;
110     void SetCacheMode(WebCacheMode cacheMode) override;
111     void SetOverScrollMode(OverScrollMode mode) override;
112     void SetBlurOnKeyboardHideMode(BlurOnKeyboardHideMode mode) override;
113     void SetCopyOptionMode(CopyOptions mode) override;
114     void SetOverviewModeAccessEnabled(bool isOverviewModeAccessEnabled) override;
115     void SetFileFromUrlAccessEnabled(bool isFileFromUrlAccessEnabled) override;
116     void SetDatabaseAccessEnabled(bool isDatabaseAccessEnabled) override;
117     void SetTextZoomRatio(int32_t textZoomRatioNum) override;
118     void SetOnMouseEvent(std::function<void(MouseInfo& info)>&& jsCallback) override;
119     void SetResourceLoadId(std::function<void(const BaseEventInfo* info)>&& jsCallback) override;
120     void SetScaleChangeId(std::function<void(const BaseEventInfo* info)>&& jsCallback) override;
121     void SetScrollId(std::function<void(const BaseEventInfo* info)>&& jsCallback) override;
122     void SetPermissionRequestEventId(std::function<void(const BaseEventInfo* info)>&& jsCallback) override;
123     void SetScreenCaptureRequestEventId(std::function<void(const BaseEventInfo* info)>&& jsCallback) override;
124     void SetBackgroundColor(Color backgroundColor) override;
125     void SetDefaultBackgroundColor() override;
126     void InitialScale(float scale) override;
127     void SetSearchResultReceiveEventId(std::function<void(const BaseEventInfo* info)>&& jsCallback) override;
128     void SetWebDebuggingAccessEnabled(bool isWebDebuggingAccessEnabled) override;
129     void SetWebDebuggingAccessEnabledAndPort(
130         bool isWebDebuggingAccessEnabled, int32_t webDebuggingPort) override;
131 
132     void SetOnDragStart(
133         std::function<NG::DragDropBaseInfo(const RefPtr<OHOS::Ace::DragEvent>& info, const std::string& extraParams)>&&
134             onDragStart) override;
135     void SetOnDragEnter(
136         std::function<void(const RefPtr<OHOS::Ace::DragEvent>&, const std::string&)>&& onDragEnter) override;
137     void SetOnDragMove(
138         std::function<void(const RefPtr<OHOS::Ace::DragEvent>& info, const std::string& extraParams)>&& onDragMoveId)
139         override;
140     void SetOnDragLeave(
141         std::function<void(const RefPtr<OHOS::Ace::DragEvent>&, const std::string&)>&& onDragLeave) override;
142     void SetOnDrop(std::function<void(const RefPtr<OHOS::Ace::DragEvent>&, const std::string&)>&& onDropId) override;
143     void SetPinchSmoothModeEnabled(bool isPinchSmoothModeEnabled) override;
144     void SetWindowNewEvent(std::function<void(const std::shared_ptr<BaseEventInfo>& info)>&& jsCallback) override;
145     void SetActivateContentEventId(std::function<void(const BaseEventInfo* info)>&& jsCallback) override;
146     void SetWindowExitEventId(std::function<void(const BaseEventInfo* info)>&& jsCallback) override;
147 
148     void SetMultiWindowAccessEnabled(bool isMultiWindowAccessEnable) override;
149     void SetAllowWindowOpenMethod(bool isAllowWindowOpenMethod) override;
150     void SetWebCursiveFont(const std::string& cursiveFontFamily) override;
151     void SetWebFantasyFont(const std::string& fixedFontFamily) override;
152     void SetWebFixedFont(const std::string& fixedFontFamily) override;
153     void SetWebSansSerifFont(const std::string& sansSerifFontFamily) override;
154     void SetWebSerifFont(const std::string& serifFontFamily) override;
155     void SetWebStandardFont(const std::string& standardFontFamily) override;
156     void SetDefaultFixedFontSize(int32_t defaultFixedFontSize) override;
157     void SetDefaultFontSize(int32_t defaultFontSize) override;
158     void SetDefaultTextEncodingFormat(const std::string& textEncodingFormat) override;
159     void SetMinFontSize(int32_t minFontSize) override;
160     void SetMinLogicalFontSize(int32_t minLogicalFontSize) override;
161     void SetBlockNetwork(bool isNetworkBlocked) override;
162 
163     void SetPageVisibleId(std::function<void(const std::shared_ptr<BaseEventInfo>& info)>&& pageVisibleId) override;
164     void SetOnInterceptKeyEventCallback(std::function<bool(KeyEventInfo& keyEventInfo)>&& keyEventInfo) override;
165     void SetDataResubmittedId(
166         std::function<void(const std::shared_ptr<BaseEventInfo>& info)>&& dataResubmittedId) override;
167     void SetOnDataResubmitted(
168         std::function<void(const std::shared_ptr<BaseEventInfo>& info)>&& dataResubmittedId) override;
169     void SetFaviconReceivedId(
170         std::function<void(const std::shared_ptr<BaseEventInfo>& info)>&& faviconReceivedId) override;
171     void SetAudioStateChangedId(
172         std::function<void(const std::shared_ptr<BaseEventInfo>& info)>&& audioStateChanged) override;
173     void SetFirstContentfulPaintId(
174         std::function<void(const std::shared_ptr<BaseEventInfo>& info)>&& firstContentfulPaintId) override;
175     void SetFirstMeaningfulPaintId(
176         std::function<void(const std::shared_ptr<BaseEventInfo>& info)>&& firstMeaningfulPaintId) override;
177     void SetLargestContentfulPaintId(
178         std::function<void(const std::shared_ptr<BaseEventInfo>& info)>&& largestContentfulPaintId) override;
179     void SetSafeBrowsingCheckResultId(
180         std::function<void(const std::shared_ptr<BaseEventInfo>& info)>&& safeBrowsingCheckResultId) override;
181     void SetNavigationEntryCommittedId(
182         std::function<void(const std::shared_ptr<BaseEventInfo>& info)>&& navigationEntryCommittedId) override;
183     void SetTouchIconUrlId(std::function<void(const std::shared_ptr<BaseEventInfo>& info)>&& touchIconUrlId) override;
184 
185     void SetDarkMode(WebDarkMode mode) override;
186     void SetForceDarkAccess(bool access) override;
187     void SetHorizontalScrollBarAccessEnabled(bool isHorizontalScrollBarAccessEnabled) override;
188     void SetVerticalScrollBarAccessEnabled(bool isVerticalScrollBarAccessEnabled) override;
189 
190     void SetOnControllerAttached(std::function<void()>&& callback) override;
191     void NotifyPopupWindowResult(int32_t webId, bool result) override;
192     void SetAudioResumeInterval(int32_t resumeInterval) override;
193     void SetAudioExclusive(bool audioExclusive) override;
194     void SetAudioSessionType(WebAudioSessionType audioSessionType) override;
195     void SetOverScrollId(std::function<void(const BaseEventInfo* info)>&& jsCallback) override;
196     void SetNativeEmbedModeEnabled(bool isEmbedModeEnabled) override;
197     void SetIntrinsicSizeEnabled(bool isIntrinsicSizeEnabled) override;
198     void SetCssDisplayChangeEnabled(bool isCssDisplayChangeEnabled) override;
199     void RegisterNativeEmbedRule(const std::string& tag, const std::string& type) override;
200     void SetNativeEmbedLifecycleChangeId(std::function<void(const BaseEventInfo* info)>&& jsCallback) override;
201     void SetNativeEmbedVisibilityChangeId(std::function<void(const BaseEventInfo* info)>&& jsCallback) override;
202     void SetNativeEmbedGestureEventId(std::function<void(const BaseEventInfo* info)>&& jsCallback) override;
203     void SetNativeEmbedMouseEventId(std::function<void(const BaseEventInfo* info)>&& jsCallback) override;
204     void SetLayoutMode(WebLayoutMode mode) override;
205     void SetNestedScroll(const NestedScrollOptions& nestedOpt) override;
206     void SetNestedScrollExt(const NestedScrollOptionsExt& nestedOpt) override;
207     void SetMetaViewport(bool enabled) override;
208     void JavaScriptOnDocumentStart(const ScriptItems& scriptItems) override;
209     void JavaScriptOnDocumentStartByOrder(const ScriptItems& scriptItems,
210         const ScriptItemsByOrder& scriptItemsByOrder) override;
211     void JavaScriptOnDocumentEndByOrder(const ScriptItems& scriptItems,
212         const ScriptItemsByOrder& scriptItemsByOrder) override;
213     void JavaScriptOnHeadReadyByOrder(const ScriptItems& scriptItems,
214         const ScriptItemsByOrder& scriptItemsByOrder) override;
215     void JavaScriptOnDocumentEnd(const ScriptItems& scriptItems) override;
216     void SetDefaultFileSelectorShow(std::function<void(const std::shared_ptr<BaseEventInfo>&)>&& jsCallback) override;
217     void SetPermissionClipboard(std::function<void(const std::shared_ptr<BaseEventInfo>&)>&& jsCallback) override;
218     void SetOpenAppLinkFunction(std::function<void(const std::shared_ptr<BaseEventInfo>&)>&& jsCallback) override;
219     void SetWebDetachFunction(std::function<void(int32_t)>&& jsCallback) override;
220     void SetFaviconFunction(std::function<void(const std::shared_ptr<BaseEventInfo>&)>&& jsCallback) override;
221     void SetIntelligentTrackingPreventionResultId(
222         std::function<void(const std::shared_ptr<BaseEventInfo>& info)>&&
223             intelligentTrackingPreventionResultId) override;
224     void SetTextAutosizing(bool isTextAutosizing) override;
225     void SetNativeVideoPlayerConfig(bool enable, bool shouldOverlay) override;
226     void SetRenderProcessNotRespondingId(std::function<void(const BaseEventInfo* info)>&& jsCallback) override;
227     void SetRenderProcessRespondingId(std::function<void(const BaseEventInfo* info)>&& jsCallback) override;
228     void SetViewportFitChangedId(std::function<void(const BaseEventInfo* info)>&& jsCallback) override;
229     void SetSelectionMenuOptions(const WebMenuOptionsParam& webMenuOption) override;
230     void SetAdsBlockedEventId(std::function<void(const BaseEventInfo* info)>&& jsCallback) override;
231     void SetOnInterceptKeyboardAttach(
232         std::function<WebKeyboardOption(const BaseEventInfo* info)>&& jsCallback) override;
233     void SetUpdateInstanceIdCallback(std::function<void(int32_t)>&& callback) override;
234     void SetOverlayScrollbarEnabled(bool isEnabled) override;
235     void SetKeyboardAvoidMode(const WebKeyboardAvoidMode& mode) override;
236     void SetEditMenuOptions(const NG::OnCreateMenuCallback&& onCreateMenuCallback,
237         const NG::OnMenuItemClickCallback&& onMenuItemClick,
238         const NG::OnPrepareMenuCallback&& onPrepareMenuCallback = nullptr) override;
239     void SetEnabledHapticFeedback(bool isEnabled) override;
240     void SetOptimizeParserBudgetEnabled(bool enable) override;
241     void SetEnableFollowSystemFontWeight(bool enableFollowSystemFontWeight) override;
242     void SetWebMediaAVSessionEnabled(bool isEnabled) override;
243     void SetEnableDataDetector(bool isEnabled) override;
244     void SetDataDetectorConfig(const TextDetectConfig& config) override;
245     void SetBypassVsyncCondition(WebBypassVsyncCondition condition) override;
246     void SetOnLoadStarted(std::function<void(const BaseEventInfo* info)>&& jsCallback) override;
247     void SetOnLoadFinished(std::function<void(const BaseEventInfo* info)>&& jsCallback) override;
248     void SetGestureFocusMode(GestureFocusMode mode) override;
249     void SetOnPdfScrollAtBottom(std::function<void(const BaseEventInfo* info)>&& jsCallback) override;
250     void SetOnPdfLoadEvent(std::function<void(const BaseEventInfo* info)>&& jsCallback) override;
251 
252     static void SetJsEnabled(FrameNode* frameNode, bool isJsEnabled);
253     static void SetFileAccessEnabled(FrameNode* frameNode, bool isFileAccessEnabled);
254     static void SetDomStorageAccessEnabled(FrameNode* frameNode, bool isDomStorageAccessEnabled);
255     static void SetMixedMode(FrameNode* frameNode, MixedModeContent mixedMode);
256     static void SetZoomAccessEnabled(FrameNode* frameNode, bool isZoomAccessEnabled);
257     static void SetCacheMode(FrameNode* frameNode, WebCacheMode cacheMode);
258     static void SetDarkMode(FrameNode* frameNode, WebDarkMode mode);
259     static void SetMultiWindowAccessEnabled(FrameNode* frameNode, bool isMultiWindowAccessEnable);
260     static void SetAllowWindowOpenMethod(FrameNode* frameNode, bool isAllowWindowOpenMethod);
261     static void SetKeyboardAvoidMode(FrameNode* frameNode, const WebKeyboardAvoidMode& mode);
262     static void SetOnControllerAttached(FrameNode* frameNode, std::function<void()>&& callback);
263     static void SetVerticalScrollBarAccessEnabled(FrameNode* frameNode, bool isVerticalScrollBarAccessEnabled);
264     static void SetHorizontalScrollBarAccessEnabled(FrameNode* frameNode, bool isHorizontalScrollBarAccessEnabled);
265     static void SetTextZoomRatio(FrameNode* frameNode, int32_t textZoomRatioNum);
266     static void InitialScale(FrameNode* frameNode, float scale);
267     static void SetOnScroll(FrameNode* frameNode, std::function<void(const BaseEventInfo* info)>&& jsCallback);
268     static void SetOnOverScroll(FrameNode* frameNode, std::function<void(const BaseEventInfo* info)>&& jsCallback);
269     static void SetOnScaleChange(FrameNode* frameNode, std::function<void(const BaseEventInfo* info)>&& jsCallback);
270     static void SetOnRequestFocus(FrameNode* frameNode, std::function<void(const BaseEventInfo* info)>&& jsCallback);
271     static void SetOnContextMenuHide(FrameNode* frameNode, std::function<void(const BaseEventInfo* info)>&& jsCallback);
272     static void SetGeolocationAccessEnabled(FrameNode* frameNode, bool isGeolocationAccessEnabled);
273     static void SetDatabaseAccessEnabled(FrameNode* frameNode, bool isDatabaseAccessEnabled);
274     static void SetOnGeolocationShow(FrameNode* frameNode, std::function<void(const BaseEventInfo* info)>&& jsCallback);
275     static void SetOverviewModeAccessEnabled(FrameNode* frameNode, bool isOverviewModeAccessEnabled);
276     static void SetForceDarkAccess(FrameNode* frameNode, bool isForceDarkAccess);
277     static void SetPinchSmoothModeEnabled(FrameNode* frameNode, bool isPinchSmoothModeEnabled);
278     static void SetMetaViewport(FrameNode* frameNode, bool isMetaViewport);
279     static void SetEnableFollowSystemFontWeight(FrameNode* frameNode, bool isEnableFollowSystemFontWeight);
280     static void SetNativeEmbedModeEnabled(FrameNode* frameNode, bool isNativeEmbedModeEnabled);
281     static void SetMinFontSize(FrameNode* frameNode, int32_t minFontSize);
282     static void SetDefaultFontSize(FrameNode* frameNode, int32_t defaultFontSize);
283     static void SetDefaultFixedFontSize(FrameNode* frameNode, int32_t defaultFixedFontSize);
284     static void SetMinLogicalFontSize(FrameNode* frameNode, int32_t minLogicalFontSize);
285     static void SetWebStandardFont(FrameNode* frameNode, const std::string& standardFontFamily);
286     static void SetWebSerifFont(FrameNode* frameNode, const std::string& serifFontFamily);
287     static void SetWebSansSerifFont(FrameNode* frameNode, const std::string& sansSerifFontFamily);
288 
289     static void SetWebFixedFont(FrameNode* frameNode, const std::string& fixedFontFamily);
290     static void SetWebFantasyFont(FrameNode* frameNode, const std::string& fixedFontFamily);
291     static void SetWebCursiveFont(FrameNode* frameNode, const std::string& cursiveFontFamily);
292     static void SetLayoutMode(FrameNode* frameNode, WebLayoutMode mode);
293     static void SetNativeEmbedLifecycleChangeId(
294         FrameNode* frameNode, std::function<void(const BaseEventInfo* info)>&& jsCallback);
295     static void SetNativeEmbedGestureEventId(
296         FrameNode* frameNode, std::function<void(const BaseEventInfo* info)>&& jsCallback);
297     static void RegisterNativeEmbedRule(FrameNode* frameNode, const std::string& tag, const std::string& type);
298     static void SetIntrinsicSizeEnabled(FrameNode* frameNode, bool isIntrinsicSizeEnabled);
299     static void SetFirstContentfulPaintId(
300         FrameNode* frameNode, std::function<void(const std::shared_ptr<BaseEventInfo>& info)>&& firstContentfulPaintId);
301     static void SetAudioStateChangedId(
302         FrameNode* frameNode, std::function<void(const std::shared_ptr<BaseEventInfo>& info)>&& audioStateChanged);
303     static void SetOnFullScreenExit(FrameNode* frameNode, std::function<void(const BaseEventInfo* info)>&& jsCallback);
304     static void SetImageAccessEnabled(FrameNode* frameNode, bool isImageAccessEnabled);
305     static void SetOnLineImageAccessEnabled(FrameNode* frameNode, bool isOnLineImageAccessEnabled);
306     static void SetMediaPlayGestureAccess(FrameNode* frameNode, bool isNeedGestureAccess);
307     static void SetAudioResumeInterval(FrameNode* frameNode, int32_t resumeInterval);
308     static void SetAudioExclusive(FrameNode* frameNode, bool audioExclusive);
309     static void SetOnPageFinish(FrameNode* frameNode, std::function<void(const BaseEventInfo* info)>&& jsCallback);
310     static void SetOnPageStart(FrameNode* frameNode, std::function<void(const BaseEventInfo* info)>&& jsCallback);
311     static void SetOnProgressChange(FrameNode* frameNode, std::function<void(const BaseEventInfo* info)>&& jsCallback);
312     static void SetOnTitleReceive(FrameNode* frameNode, std::function<void(const BaseEventInfo* info)>&& jsCallback);
313     static void SetOnDownloadStart(FrameNode* frameNode, std::function<void(const BaseEventInfo* info)>&& jsCallback);
314     static void JavaScriptOnDocumentStart(FrameNode* frameNode, const ScriptItems& scriptItems);
315     static void JavaScriptOnDocumentEnd(FrameNode* frameNode, const ScriptItems& scriptItems);
316     static void SetCopyOptionMode(FrameNode* frameNode, CopyOptions mode);
317     static void SetRenderProcessNotRespondingId(
318         FrameNode* frameNode, std::function<void(const BaseEventInfo* info)>&& jsCallback);
319     static void SetOnPageVisible(
320         FrameNode* frameNode, std::function<void(const std::shared_ptr<BaseEventInfo>& info)>&& pageVisible);
321     static void SetOnRenderExited(FrameNode* frameNode, std::function<void(const BaseEventInfo* info)>&& jsCallback);
322     static void SetBlockNetwork(FrameNode* frameNode, bool isNetworkBlocked);
323     static void SetOnResourceLoad(FrameNode* frameNode, std::function<void(const BaseEventInfo* info)>&& jsCallback);
324     static void SetOnRefreshAccessedHistory(
325         FrameNode* frameNode, std::function<void(const BaseEventInfo* info)>&& jsCallback);
326     static void SetOnNavigationEntryCommitted(FrameNode* frameNode,
327         std::function<void(const std::shared_ptr<BaseEventInfo>& info)>&& navigationEntryCommitted);
328     static void SetOnSearchResultReceive(
329         FrameNode* frameNode, std::function<void(const BaseEventInfo* info)>&& jsCallback);
330     static void SetOverScrollMode(FrameNode* frameNode, OverScrollMode mode);
331     static void SetOnTouchIconUrlReceived(
332         FrameNode* frameNode, std::function<void(const std::shared_ptr<BaseEventInfo>& info)>&& touchIconUrlId);
333     static void SetOnRenderProcessResponding(
334         FrameNode* frameNode, std::function<void(const BaseEventInfo* info)>&& jsCallback);
335 	static void SetPermissionRequestEventId(
336         FrameNode* frameNode, std::function<void(const BaseEventInfo* info)>&& jsCallback);
337     static void SetScreenCaptureRequestEventId(
338         FrameNode* frameNode, std::function<void(const BaseEventInfo* info)>&& jsCallback);
339     static void SetWindowNewEvent(
340         FrameNode* frameNode, std::function<void(const std::shared_ptr<BaseEventInfo>& info)>&& jsCallback);
341     static void SetOnFullScreenEnter(FrameNode* frameNode, std::function<void(const BaseEventInfo* info)>&& jsCallback);
342     static void SetWindowExitEventId(FrameNode* frameNode, std::function<void(const BaseEventInfo* info)>&& jsCallback);
343     static void SetOnAlert(
344         FrameNode* frameNode, std::function<bool(const BaseEventInfo* info)>&& jsCallback, int dialogEventType);
345     static void SetOnConfirm(
346         FrameNode* frameNode, std::function<bool(const BaseEventInfo* info)>&& jsCallback, int dialogEventType);
347     static void SetOnPrompt(
348         FrameNode* frameNode, std::function<bool(const BaseEventInfo* info)>&& jsCallback, int dialogEventType);
349     static void SetOnShowFileSelector(
350         FrameNode* frameNode, std::function<bool(const BaseEventInfo* info)>&& jsCallback);
351     static void SetOnContextMenuShow(FrameNode* frameNode, std::function<bool(const BaseEventInfo* info)>&& jsCallback);
352     static void SetOnSafeBrowsingCheckResult(FrameNode* frameNode,
353         std::function<void(const std::shared_ptr<BaseEventInfo>& info)>&& safeBrowsingCheckResult);
354     static void SetNestedScrollExt(FrameNode* frameNode, const NestedScrollOptionsExt& nestedOpt);
355     static void SetOnInterceptKeyEvent(
356         FrameNode* frameNode, std::function<bool(KeyEventInfo& keyEventInfo)>&& keyEventInfo);
357     static void SetOnErrorReceive(FrameNode* frameNode, std::function<void(const BaseEventInfo* info)>&& jsCallback);
358     static void SetOnLoadIntercept(FrameNode* frameNode, std::function<bool(const BaseEventInfo* info)>&& jsCallback);
359     static void SetOnHttpErrorReceive(
360         FrameNode* frameNode, std::function<void(const BaseEventInfo* info)>&& jsCallback);
361     static void SetOnOverrideUrlLoading(
362         FrameNode* frameNode, std::function<bool(const BaseEventInfo* info)>&& jsCallback);
363     static void SetOnHttpAuthRequest(FrameNode* frameNode, std::function<bool(const BaseEventInfo* info)>&& jsCallback);
364     static void SetOnConsole(FrameNode* frameNode, std::function<bool(const BaseEventInfo* info)>&& jsCallback);
365     static void SetOnSslErrorEvent(FrameNode* frameNode, std::function<bool(const BaseEventInfo* info)>&& jsCallback);
366     static void SetOnDataResubmitted(
367         FrameNode* frameNode, std::function<void(const std::shared_ptr<BaseEventInfo>& info)>&& dataResubmittedId);
368     static void SetGestureFocusMode(FrameNode* frameNode, GestureFocusMode mode);
369     static void SetOnSslErrorRequest(FrameNode* frameNode, std::function<bool(const BaseEventInfo* info)>&& jsCallback);
370     static void SetOnClientAuthenticationRequest(
371         FrameNode* frameNode, std::function<bool(const BaseEventInfo* info)>&& jsCallback);
372     static void SetOnInterceptRequest(
373         FrameNode* frameNode, std::function<RefPtr<WebResponse>(const BaseEventInfo* info)>&& jsCallback);
374     static void SetFaviconReceivedId(
375         FrameNode* frameNode, std::function<void(const std::shared_ptr<BaseEventInfo>& info)>&& faviconReceivedId);
376     static void SetOnBeforeUnload(
377         FrameNode* frameNode, std::function<bool(const BaseEventInfo* info)>&& jsCallback, int dialogEventType);
378     static void SetJavaScriptProxy(FrameNode* frameNode, std::function<void()>&& jsProxyCallback);
379 };
380 } // namespace OHOS::Ace::NG
381 #endif // FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_PATTERN_WEB_WEB_MODEL_NG_H
382