• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021-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 
16 #ifndef FOUNDATION_ACE_ADAPTER_OHOS_ENTRANCE_ACE_UI_CONTENT_IMPL_H
17 #define FOUNDATION_ACE_ADAPTER_OHOS_ENTRANCE_ACE_UI_CONTENT_IMPL_H
18 
19 #include <list>
20 
21 #include "ability_info.h"
22 #include "display_manager.h"
23 #include "dm/display_manager.h"
24 #include "interfaces/inner_api/ace/arkui_rect.h"
25 #include "interfaces/inner_api/ace/ui_content.h"
26 #include "interfaces/inner_api/ace/viewport_config.h"
27 #include "interfaces/inner_api/ui_session/ui_content_stub_impl.h"
28 #include "key_event.h"
29 #include "native_engine/native_engine.h"
30 #include "native_engine/native_value.h"
31 #include "wm/window.h"
32 
33 #include "adapter/ohos/entrance/distributed_ui_manager.h"
34 #include "adapter/ohos/entrance/ace_viewport_config.h"
35 #include "base/thread/task_executor.h"
36 #include "base/view_data/view_data_wrap.h"
37 #include "core/common/asset_manager_impl.h"
38 #include "core/common/render_boundary_manager.h"
39 #include "core/common/update_config_manager.h"
40 #include "core/components/common/properties/animation_option.h"
41 #include "core/components/common/properties/popup_param.h"
42 #include "iremote_object.h"
43 
44 namespace OHOS::Accessibility {
45 class AccessibilityElementInfo;
46 }
47 
48 namespace OHOS::Ace {
49 class ACE_FORCE_EXPORT UIContentImpl : public UIContent {
50 public:
51     UIContentImpl(OHOS::AbilityRuntime::Context* context, void* runtime);
52     UIContentImpl(OHOS::AppExecFwk::Ability* ability);
53     UIContentImpl(OHOS::AbilityRuntime::Context* context, void* runtime, bool isCard);
~UIContentImpl()54     ~UIContentImpl()
55     {
56         UnSubscribeEventsPassThroughMode();
57         ProcessDestructCallbacks();
58         DestroyUIDirector();
59         DestroyCallback();
60     }
61 
62     // UI content lifeCycles
63     UIContentErrorCode Initialize(OHOS::Rosen::Window* window, const std::string& url, napi_value storage) override;
64     UIContentErrorCode Initialize(
65         OHOS::Rosen::Window* window, const std::shared_ptr<std::vector<uint8_t>>& content, napi_value storage) override;
66     UIContentErrorCode Initialize(OHOS::Rosen::Window* window, const std::shared_ptr<std::vector<uint8_t>>& content,
67         napi_value storage, const std::string& contentName) override;
68     UIContentErrorCode InitializeByName(
69         OHOS::Rosen::Window* window, const std::string& name, napi_value storage) override;
70     void InitializeDynamic(const std::string& hapPath, const std::string& abcPath, const std::string& entryPoint,
71         const std::vector<std::string>& registerComponents) override;
72     void Initialize(
73         OHOS::Rosen::Window* window, const std::string& url, napi_value storage, uint32_t focusWindowId) override;
74     void Foreground() override;
75     void Background() override;
76     void Focus() override;
77     void UnFocus() override;
78     void Destroy() override;
79     void OnNewWant(const OHOS::AAFwk::Want& want) override;
80 
81     // restore
82     UIContentErrorCode Restore(OHOS::Rosen::Window* window, const std::string& contentInfo,
83         napi_value storage, ContentInfoType type) override;
84     std::string GetContentInfo(ContentInfoType type) const override;
85     void DestroyUIDirector() override;
86     void SetUIContentType(UIContentType uIContentType) override;
87     void UpdateFontScale(const std::shared_ptr<OHOS::AppExecFwk::Configuration>& config);
88 
89     // UI content event process
90     bool ProcessBackPressed() override;
91     void UpdateDialogResourceConfiguration(RefPtr<Container>& container,
92         const std::shared_ptr<OHOS::AbilityRuntime::Context>& context);
93     bool ProcessPointerEvent(const std::shared_ptr<OHOS::MMI::PointerEvent>& pointerEvent) override;
94     bool ProcessPointerEventWithCallback(
95         const std::shared_ptr<OHOS::MMI::PointerEvent>& pointerEvent, const std::function<void()>& callback) override;
96     bool ProcessKeyEvent(const std::shared_ptr<OHOS::MMI::KeyEvent>& keyEvent, bool isPreIme) override;
97     bool ProcessAxisEvent(const std::shared_ptr<OHOS::MMI::AxisEvent>& axisEvent) override;
98     bool ProcessVsyncEvent(uint64_t timeStampNanos) override;
99     void UpdateConfiguration(const std::shared_ptr<OHOS::AppExecFwk::Configuration>& config) override;
100     void UpdateViewportConfig(const ViewportConfig& config, OHOS::Rosen::WindowSizeChangeReason reason,
101         const std::shared_ptr<OHOS::Rosen::RSTransaction>& rsTransaction = nullptr,
102         const std::map<OHOS::Rosen::AvoidAreaType, OHOS::Rosen::AvoidArea>& avoidAreas = {}) override;
103     void UpdateViewportConfigWithAnimation(const ViewportConfig& config, OHOS::Rosen::WindowSizeChangeReason reason,
104         AnimationOption animationOpt, const std::shared_ptr<OHOS::Rosen::RSTransaction>& rsTransaction = nullptr,
105         const std::map<OHOS::Rosen::AvoidAreaType, OHOS::Rosen::AvoidArea>& avoidAreas = {});
106     void UpdateWindowMode(OHOS::Rosen::WindowMode mode, bool hasDeco = true) override;
107     void UpdateDecorVisible(bool visible, bool hasDeco) override;
108     void UpdateWindowBlur();
109     void HideWindowTitleButton(bool hideSplit, bool hideMaximize, bool hideMinimize, bool hideClose) override;
110     void SetIgnoreViewSafeArea(bool ignoreViewSafeArea) override;
111     void UpdateMaximizeMode(OHOS::Rosen::MaximizeMode mode) override;
112     void ProcessFormVisibleChange(bool isVisible) override;
113     void UpdateTitleInTargetPos(bool isShow, int32_t height) override;
114     void NotifyRotationAnimationEnd() override;
115 
116     void ChangeSensitiveNodes(bool isSensitive) override;
117 
118     // Window color
119     uint32_t GetBackgroundColor() override;
120     void SetBackgroundColor(uint32_t color) override;
121 
122     bool NeedSoftKeyboard() override;
123 
124     void SetOnWindowFocused(const std::function<void()>& callback) override;
125 
126     // Current paintSize of window
127     void GetAppPaintSize(OHOS::Rosen::Rect& paintrect) override;
128 
129     // Get paintSize of window by calculating
130     void GetWindowPaintSize(OHOS::Rosen::Rect& paintrect) override;
131 
132     void DumpInfo(const std::vector<std::string>& params, std::vector<std::string>& info) override;
133 
134     // Set UIContent callback for custom window animation
135     void SetNextFrameLayoutCallback(std::function<void()>&& callback) override;
136 
137     // Set UIContent callback after layout finish
138     void SetFrameLayoutFinishCallback(std::function<void()>&& callback) override;
139 
140     // Receive memory level notification
141     void NotifyMemoryLevel(int32_t level) override;
142 
143     void SetAppWindowTitle(const std::string& title) override;
144     void SetAppWindowIcon(const std::shared_ptr<Media::PixelMap>& pixelMap) override;
145 
146     // ArkTS Form
147     void PreInitializeForm(OHOS::Rosen::Window* window, const std::string& url, napi_value storage) override;
148     void RunFormPage() override;
149     std::shared_ptr<Rosen::RSSurfaceNode> GetFormRootNode() override;
150     void UpdateFormData(const std::string& data) override;
151     void UpdateFormSharedImage(const std::map<std::string, sptr<OHOS::AppExecFwk::FormAshmem>>& imageDataMap) override;
152     void ReloadForm(const std::string& url) override;
153 
SetFormWidth(float width)154     void SetFormWidth(float width) override
155     {
156         formWidth_ = width;
157     }
SetFormHeight(float height)158     void SetFormHeight(float height) override
159     {
160         formHeight_ = height;
161     }
GetFormWidth()162     float GetFormWidth() override
163     {
164         return formWidth_;
165     }
GetFormHeight()166     float GetFormHeight() override
167     {
168         return formHeight_;
169     }
170 
171     void SetActionEventHandler(std::function<void(const std::string& action)>&& actionCallback) override;
172     void SetErrorEventHandler(std::function<void(const std::string&, const std::string&)>&& errorCallback) override;
173     void SetFormLinkInfoUpdateHandler(std::function<void(const std::vector<std::string>&)>&& callback) override;
174 
175     void OnFormSurfaceChange(float width, float height,
176         OHOS::Rosen::WindowSizeChangeReason type = static_cast<OHOS::Rosen::WindowSizeChangeReason>(0),
177         const std::shared_ptr<Rosen::RSTransaction>& rsTransaction = nullptr) override;
178 
179     void SetFormBackgroundColor(const std::string& color) override;
180 
181     void RegisterAccessibilityChildTree(
182         uint32_t parentWindowId, int32_t parentTreeId, int64_t parentElementId) override;
183     void SetAccessibilityGetParentRectHandler(std::function<void(int32_t&, int32_t&)>&& callback) override;
184     void SetAccessibilityGetParentRectHandler(
185         std::function<void(AccessibilityParentRectInfo&)>&& callback) override;
186     void DeregisterAccessibilityChildTree() override;
187     void AccessibilityDumpChildInfo(const std::vector<std::string>& params, std::vector<std::string>& info) override;
188 
189     void SetFontScaleFollowSystem(const bool fontScaleFollowSystem) override;
190 
DumpUITree()191     SerializeableObjectArray DumpUITree() override
192     {
193         return uiManager_->DumpUITree();
194     }
SubscribeUpdate(const std::function<void (int32_t,SerializeableObjectArray &)> & onUpdate)195     void SubscribeUpdate(const std::function<void(int32_t, SerializeableObjectArray&)>& onUpdate) override
196     {
197         return uiManager_->SubscribeUpdate(onUpdate);
198     }
UnSubscribeUpdate()199     void UnSubscribeUpdate() override
200     {
201         uiManager_->UnSubscribeUpdate();
202     }
ProcessSerializeableInputEvent(const SerializeableObjectArray & array)203     void ProcessSerializeableInputEvent(const SerializeableObjectArray& array) override
204     {
205         uiManager_->ProcessSerializeableInputEvent(array);
206     }
RestoreUITree(const SerializeableObjectArray & array)207     void RestoreUITree(const SerializeableObjectArray& array) override
208     {
209         uiManager_->RestoreUITree(array);
210     }
UpdateUITree(const SerializeableObjectArray & array)211     void UpdateUITree(const SerializeableObjectArray& array) override
212     {
213         uiManager_->UpdateUITree(array);
214     }
SubscribeInputEventProcess(const std::function<void (SerializeableObjectArray &)> & onEvent)215     void SubscribeInputEventProcess(const std::function<void(SerializeableObjectArray&)>& onEvent) override
216     {
217         uiManager_->SubscribeInputEventProcess(onEvent);
218     }
UnSubscribeInputEventProcess()219     void UnSubscribeInputEventProcess() override
220     {
221         uiManager_->UnSubscribeInputEventProcess();
222     }
223     void GetResourcePaths(std::vector<std::string>& resourcesPaths, std::string& assetRootPath,
224         std::vector<std::string>& assetBasePaths, std::string& resFolderName) override;
225     void SetResourcePaths(const std::vector<std::string>& resourcesPaths, const std::string& assetRootPath,
226         const std::vector<std::string>& assetBasePaths) override;
227 
228     napi_value GetUINapiContext() override;
229     void SetIsFocusActive(bool isFocusActive) override;
230 
231     void UpdateResource() override;
232 
233     int32_t CreateModalUIExtension(const AAFwk::Want& want,
234         const ModalUIExtensionCallbacks& callbacks, const ModalUIExtensionConfig& config) override;
235     void CloseModalUIExtension(int32_t sessionId) override;
236     void UpdateModalUIExtensionConfig(
237         int32_t sessionId, const ModalUIExtensionAllowedUpdateConfig& config) override;
238 
239     void SetParentToken(sptr<IRemoteObject> token) override;
240     sptr<IRemoteObject> GetParentToken() override;
241     AbilityBase::AutoFillType ViewDataToType(const AbilityBase::ViewData& viewData);
242     bool DumpViewData(AbilityBase::ViewData& viewData, AbilityBase::AutoFillType& type) override;
243     bool CheckNeedAutoSave() override;
244     bool DumpViewData(const RefPtr<NG::FrameNode>& node, RefPtr<ViewDataWrap> viewDataWrap,
245         bool skipSubAutoFillContainer = false, bool needsRecordData = false);
246 
247     void SearchElementInfoByAccessibilityId(
248         int64_t elementId, int32_t mode,
249         int64_t baseParent, std::list<Accessibility::AccessibilityElementInfo>& output) override;
250 
251     void SearchElementInfosByText(
252         int64_t elementId, const std::string& text, int64_t baseParent,
253         std::list<Accessibility::AccessibilityElementInfo>& output) override;
254 
255     void FindFocusedElementInfo(
256         int64_t elementId, int32_t focusType,
257         int64_t baseParent, Accessibility::AccessibilityElementInfo& output) override;
258 
259     void FocusMoveSearch(
260         int64_t elementId, int32_t direction,
261         int64_t baseParent, Accessibility::AccessibilityElementInfo& output) override;
262 
263     bool NotifyExecuteAction(int64_t elementId, const std::map<std::string, std::string>& actionArguments,
264         int32_t action, int64_t offset) override;
265 
266     void HandleAccessibilityHoverEvent(float pointX, float pointY, int32_t sourceType,
267         int32_t eventType, int64_t timeMs) override;
268 
GetInstanceId()269     int32_t GetInstanceId() override
270     {
271         return instanceId_;
272     }
273 
274     std::string RecycleForm() override;
275 
276     void RecoverForm(const std::string& statusData) override;
277     Shadow GetPopupShadow();
278 
279     int32_t CreateCustomPopupUIExtension(const AAFwk::Want& want,
280         const ModalUIExtensionCallbacks& callbacks, const CustomPopupUIExtensionConfig& config) override;
281     bool GetTargetNode(
282         int32_t& nodeIdLabel, RefPtr<NG::FrameNode>& targetNode, const CustomPopupUIExtensionConfig& config);
283     void DestroyCustomPopupUIExtension(int32_t nodeId) override;
284     void UpdateCustomPopupUIExtension(const CustomPopupUIExtensionConfig& config) override;
285 
286     void SetContainerModalTitleVisible(bool customTitleSettedShow, bool floatingTitleSettedShow) override;
287     void SetContainerModalTitleHeight(int32_t height) override;
288     int32_t GetContainerModalTitleHeight() override;
289     bool GetContainerModalButtonsRect(Rosen::Rect& containerModal, Rosen::Rect& buttons) override;
290     void SubscribeContainerModalButtonsRectChange(
291         std::function<void(Rosen::Rect& containerModal, Rosen::Rect& buttons)>&& callback) override;
292     void UpdateTransform(const OHOS::Rosen::Transform& transform) override;
293 
294     SerializedGesture GetFormSerializedGesture() override;
295 
SetUIExtensionSubWindow(bool isUIExtensionSubWindow)296     void SetUIExtensionSubWindow(bool isUIExtensionSubWindow) override
297     {
298         isUIExtensionSubWindow_ = isUIExtensionSubWindow;
299     }
300 
IsUIExtensionSubWindow()301     bool IsUIExtensionSubWindow() override
302     {
303         return isUIExtensionSubWindow_;
304     }
305 
SetUIExtensionAbilityProcess(bool isUIExtensionAbilityProcess)306     void SetUIExtensionAbilityProcess(bool isUIExtensionAbilityProcess) override
307     {
308         isUIExtensionAbilityProcess_ = isUIExtensionAbilityProcess;
309     }
310 
IsUIExtensionAbilityProcess()311     bool IsUIExtensionAbilityProcess() override
312     {
313         return isUIExtensionAbilityProcess_;
314     }
315 
SetUIExtensionAbilityHost(bool isUIExtensionAbilityHost)316     void SetUIExtensionAbilityHost(bool isUIExtensionAbilityHost) override
317     {
318         isUIExtensionAbilityHost_ = isUIExtensionAbilityHost;
319     }
320 
IsUIExtensionAbilityHost()321     bool IsUIExtensionAbilityHost() override
322     {
323         return isUIExtensionAbilityHost_;
324     }
325 
326     std::vector<Ace::RectF> GetOverlayNodePositions() const override;
327 
328     void RegisterOverlayNodePositionsUpdateCallback(
329         const std::function<void(std::vector<Ace::RectF>)>& callback) const override;
330 
331     void SetContentNodeGrayScale(float grayscale) override;
332 
333     void SetFormRenderingMode(int8_t renderMode) override;
334 
335     void PreLayout() override;
336 
337     void SetFontScaleAndWeightScale(const RefPtr<Platform::AceContainer>& container, int32_t instanceId);
338 
339     void SetStatusBarItemColor(uint32_t color) override;
340 
341     void SetForceSplitEnable(bool isForceSplit, const std::string& homePage) override;
342 
343     void UpdateDialogContainerConfig(const std::shared_ptr<OHOS::AppExecFwk::Configuration>& config);
344 
GetRemoteObj()345     sptr<IRemoteObject> GetRemoteObj() override
346     {
347         return instance_;
348     }
349 
AddDestructCallback(void * key,const std::function<void ()> & callback)350     void AddDestructCallback(void* key, const std::function<void()>& callback)
351     {
352         destructCallbacks_.emplace(key, callback);
353     }
354 
RemoveDestructCallback(void * key)355     void RemoveDestructCallback(void* key)
356     {
357         destructCallbacks_.erase(key);
358     }
359 
360     void EnableContainerModalGesture(bool isEnable) override;
361 
362     bool GetContainerFloatingTitleVisible() override;
363 
364     bool GetContainerCustomTitleVisible() override;
365 
366     bool GetContainerControlButtonVisible() override;
367 
368     void UpdateSingleHandTransform(const OHOS::Rosen::SingleHandTransform& transform) override;
369 
370     void UpdateConfigurationSyncForAll(const std::shared_ptr<OHOS::AppExecFwk::Configuration>& config) override;
371 
372     std::shared_ptr<Rosen::RSNode> GetRSNodeByStringID(const std::string& stringId) override;
373     void SetTopWindowBoundaryByID(const std::string& stringId) override;
374 private:
375     UIContentErrorCode InitializeInner(
376         OHOS::Rosen::Window* window, const std::string& contentInfo, napi_value storage, bool isNamedRouter);
377     UIContentErrorCode CommonInitialize(
378         OHOS::Rosen::Window* window, const std::string& contentInfo, napi_value storage, uint32_t focusWindowId = 0);
379     UIContentErrorCode CommonInitializeForm(
380         OHOS::Rosen::Window* window, const std::string& contentInfo, napi_value storage);
381     void InitializeSubWindow(OHOS::Rosen::Window* window, bool isDialog = false);
382     void DestroyCallback() const;
383     void ProcessDestructCallbacks();
384     void SetConfiguration(const std::shared_ptr<OHOS::AppExecFwk::Configuration>& config);
385 
386     void InitializeSafeArea(const RefPtr<Platform::AceContainer>& container);
387     void InitializeDisplayAvailableRect(const RefPtr<Platform::AceContainer>& container);
388 
389     void InitDragSummaryMap(const RefPtr<Platform::AceContainer>& container);
390 
391     RefPtr<PopupParam> CreateCustomPopupParam(bool isShow, const CustomPopupUIExtensionConfig& config);
392     void OnPopupStateChange(const std::string& event, const CustomPopupUIExtensionConfig& config, int32_t nodeId);
393     void SetCustomPopupConfig(int32_t nodeId, const CustomPopupUIExtensionConfig& config, int32_t popupId);
394 
395     void RenderLayoutBoundary(bool isDebugBoundary);
396     static void EnableSystemParameterTraceLayoutCallback(const char* key, const char* value, void* context);
397     static void EnableSystemParameterSecurityDevelopermodeCallback(const char* key, const char* value, void* context);
398     static void EnableSystemParameterDebugStatemgrCallback(const char* key, const char* value, void* context);
399     static void EnableSystemParameterDebugBoundaryCallback(const char* key, const char* value, void* context);
400     static void EnableSystemParameterTraceInputEventCallback(const char* key, const char* value, void* context);
401     void AddWatchSystemParameter();
402     void StoreConfiguration(const std::shared_ptr<OHOS::AppExecFwk::Configuration>& config);
403     void UnregisterDisplayManagerCallback();
404     void SubscribeEventsPassThroughMode();
405     void UnSubscribeEventsPassThroughMode();
406     bool GetWindowSizeChangeReason(OHOS::Rosen::WindowSizeChangeReason lastReason,
407         OHOS::Rosen::WindowSizeChangeReason reason);
408 
409     std::weak_ptr<OHOS::AbilityRuntime::Context> context_;
410     void* runtime_ = nullptr;
411     OHOS::Rosen::Window* window_ = nullptr;
412     std::string startUrl_;
413     int32_t instanceId_ = -1;
414     OHOS::sptr<OHOS::Rosen::IWindowDragListener> dragWindowListener_ = nullptr;
415     OHOS::sptr<OHOS::Rosen::IOccupiedAreaChangeListener> occupiedAreaChangeListener_ = nullptr;
416     OHOS::sptr<OHOS::Rosen::IAvoidAreaChangedListener> avoidAreaChangedListener_ = nullptr;
417     OHOS::sptr<OHOS::Rosen::DisplayManager::IFoldStatusListener> foldStatusListener_ = nullptr;
418     OHOS::sptr<OHOS::Rosen::DisplayManager::IDisplayModeListener> foldDisplayModeListener_ = nullptr;
419     OHOS::sptr<OHOS::Rosen::DisplayManager::IAvailableAreaListener> availableAreaChangedListener_ = nullptr;
420 
421     // ITouchOutsideListener is used for touching out of hot areas of window.
422     OHOS::sptr<OHOS::Rosen::ITouchOutsideListener> touchOutsideListener_ = nullptr;
423 
424     // ArkTS Form
425     bool isFormRender_ = false;
426     bool isFormRenderInit_ = false;
427     std::string bundleName_;
428     std::string moduleName_;
429     std::string hapPath_;
430     bool isBundle_ = false;
431     float formWidth_ = 0.0;
432     float formHeight_ = 0.0;
433     std::string formData_;
434     bool fontScaleFollowSystem_ = true;
435     std::map<std::string, sptr<OHOS::AppExecFwk::FormAshmem>> formImageDataMap_;
436     std::unordered_map<int32_t, CustomPopupUIExtensionConfig> customPopupConfigMap_;
437     std::unordered_map<int32_t, int32_t> popupUIExtensionRecords_;
438     std::unique_ptr<DistributedUIManager> uiManager_;
439 
440     bool isDynamicRender_ = false;
441     UIContentType uIContentType_ = UIContentType::UNDEFINED;
442     std::shared_ptr<TaskWrapper> taskWrapper_;
443     std::vector<std::string> registerComponents_;
444 
445     sptr<IRemoteObject> parentToken_ = nullptr;
446     sptr<IRemoteObject> instance_ = new (std::nothrow) UIContentServiceStubImpl();
447     RefPtr<RenderBoundaryManager> renderBoundaryManager_ = Referenced::MakeRefPtr<RenderBoundaryManager>();
448     bool isUIExtensionSubWindow_ = false;
449     bool isUIExtensionAbilityProcess_ = false;
450     bool isUIExtensionAbilityHost_ = false;
451     RefPtr<UpdateConfigManager<AceViewportConfig>> viewportConfigMgr_ =
452         Referenced::MakeRefPtr<UpdateConfigManager<AceViewportConfig>>();
453     std::unordered_map<void*, std::function<void()>> destructCallbacks_;
454 
455     SingleTaskExecutor::CancelableTask updateDecorVisibleTask_;
456     std::mutex updateDecorVisibleMutex_;
457     OHOS::Rosen::WindowSizeChangeReason lastReason_ = OHOS::Rosen::WindowSizeChangeReason::UNDEFINED;
458 };
459 
460 } // namespace OHOS::Ace
461 
462 #endif // FOUNDATION_ACE_ADAPTER_OHOS_ENTRANCE_ACE_UI_CONTENT_IMPL_H
463