• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022-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 #include "mock_pipeline_context.h"
17 
18 #include "base/memory/ace_type.h"
19 #include "base/memory/referenced.h"
20 #include "base/mousestyle/mouse_style.h"
21 #include "base/utils/utils.h"
22 #include "core/accessibility/accessibility_manager.h"
23 #include "core/common/page_viewport_config.h"
24 #include "core/components/common/layout/constants.h"
25 #include "core/components_ng/base/frame_node.h"
26 #include "core/components_ng/pattern/root/root_pattern.h"
27 #include "core/components_ng/pattern/stage/stage_pattern.h"
28 #include "core/pipeline/pipeline_base.h"
29 #include "core/pipeline_ng/pipeline_context.h"
30 #include "test/mock/base/mock_task_executor.h"
31 #include "test/mock/core/common/mock_container.h"
32 
33 #include "interfaces/inner_api/ace_kit/src/view/ui_context_impl.h"
34 
35 namespace OHOS::Ace {
36 
37 static bool g_setBoolStatus = false;
38 class MockAccessibilityManager : public AccessibilityManager {
39 public:
40     MOCK_METHOD(void, SendAccessibilityAsyncEvent, (const AccessibilityEvent& accessibilityEvent), (override));
41     MOCK_METHOD(void, SendWebAccessibilityAsyncEvent,
42         (const AccessibilityEvent& accessibilityEvent, const RefPtr<NG::WebPattern>& webPattern), (override));
43     MOCK_METHOD(void, UpdateVirtualNodeFocus, (), (override));
44     MOCK_METHOD(int64_t, GenerateNextAccessibilityId, (), (override));
45     MOCK_METHOD(RefPtr<AccessibilityNode>, CreateSpecializedNode,
46         (const std::string& tag, int32_t nodeId, int32_t parentNodeId), (override));
47     MOCK_METHOD(RefPtr<AccessibilityNode>, CreateAccessibilityNode,
48         (const std::string& tag, int32_t nodeId, int32_t parentNodeId, int32_t itemIndex), (override));
49     MOCK_METHOD(RefPtr<AccessibilityNode>, GetAccessibilityNodeById, (NodeId nodeId), (const, override));
50     MOCK_METHOD(std::string, GetInspectorNodeById, (NodeId nodeId), (const, override));
51     MOCK_METHOD(void, RemoveAccessibilityNodes, (RefPtr<AccessibilityNode> & node), (override));
52     MOCK_METHOD(void, RemoveAccessibilityNodeById, (NodeId nodeId), (override));
53     MOCK_METHOD(void, ClearPageAccessibilityNodes, (int32_t pageId), (override));
54     MOCK_METHOD(void, SetRootNodeId, (int32_t nodeId), (override));
55     MOCK_METHOD(void, TrySaveTargetAndIdNode,
56         (const std::string& id, const std::string& target, const RefPtr<AccessibilityNode>& node), (override));
57     MOCK_METHOD(void, HandleComponentPostBinding, (), (override));
58     MOCK_METHOD(void, OnDumpInfo, (const std::vector<std::string>& params), (override));
59     MOCK_METHOD(
60         void, OnDumpInfoNG, (const std::vector<std::string>& params, uint32_t windowId, bool hasJson), (override));
61     MOCK_METHOD(void, SetCardViewPosition, (int id, float offsetX, float offsetY), (override));
62     MOCK_METHOD(void, SetCardViewParams, (const std::string& key, bool focus), (override));
63     MOCK_METHOD(void, SetSupportAction, (uint32_t action, bool isEnable), (override));
64     MOCK_METHOD(void, ClearNodeRectInfo, (RefPtr<AccessibilityNode> & node, bool isPopDialog), (override));
65     MOCK_METHOD(void, AddComposedElement, (const std::string& key, const RefPtr<ComposedElement>& node), (override));
66     MOCK_METHOD(void, RemoveComposedElementById, (const std::string& key), (override));
67     MOCK_METHOD(WeakPtr<ComposedElement>, GetComposedElementFromPage, (NodeId nodeId), (override));
68     MOCK_METHOD(void, TriggerVisibleChangeEvent, (), (override));
69     MOCK_METHOD(void, AddVisibleChangeNode, (NodeId nodeId, double ratio, VisibleRatioCallback callback), (override));
70     MOCK_METHOD(void, RemoveVisibleChangeNode, (NodeId nodeId), (override));
71     MOCK_METHOD(bool, IsVisibleChangeNodeExists, (NodeId nodeId), (override));
72     MOCK_METHOD(void, UpdateEventTarget, (NodeId id, BaseEventInfo& info), (override));
73     MOCK_METHOD(void, SetWindowPos, (int32_t left, int32_t top, int32_t windowId), (override));
74 #ifdef WINDOW_SCENE_SUPPORTED
75     MOCK_METHOD(void, SearchElementInfoByAccessibilityIdNG,
76         (int64_t elementId, int32_t mode, std::list<Accessibility::AccessibilityElementInfo>& infos,
77             const RefPtr<PipelineBase>& context, int64_t uiExtensionOffset),
78         (override));
79     MOCK_METHOD(void, SearchElementInfosByTextNG,
80         (int64_t elementId, const std::string& text, std::list<Accessibility::AccessibilityElementInfo>& infos,
81             const RefPtr<PipelineBase>& context, const int64_t uiExtensionOffset),
82         (override));
83     MOCK_METHOD(void, FindFocusedElementInfoNG,
84         (int64_t elementId, int32_t focusType, Accessibility::AccessibilityElementInfo& info,
85             const RefPtr<PipelineBase>& context, const int64_t uiExtensionOffset),
86         (override));
87     MOCK_METHOD(void, FocusMoveSearchNG,
88         (int64_t elementId, int32_t direction, Accessibility::AccessibilityElementInfo& info,
89             const RefPtr<PipelineBase>& context, const int64_t uiExtensionOffset),
90         (override));
91     MOCK_METHOD(bool, ExecuteExtensionActionNG,
92         (int64_t elementId, const std::map<std::string, std::string>& actionArguments, int32_t action,
93             const RefPtr<PipelineBase>& context, int64_t uiExtensionOffset),
94         (override));
95     MOCK_METHOD(bool, TransferAccessibilityAsyncEvent,
96         (const Accessibility::AccessibilityEventInfo& eventInfo, int64_t uiExtensionOffset), (override));
97     MOCK_METHOD(void, SendExtensionAccessibilityEvent,
98         (const Accessibility::AccessibilityEventInfo& eventInfo, int64_t uiExtensionOffset), (override));
99 #endif
100 #ifdef WEB_SUPPORTED
101     MOCK_METHOD(bool, RegisterWebInteractionOperationAsChildTree,
102         (int64_t accessibilityId, const WeakPtr<NG::WebPattern>& webPattern), (override));
103     MOCK_METHOD(bool, DeregisterWebInteractionOperationAsChildTree,
104         (int32_t treeId, const WeakPtr<NG::WebPattern>& webPattern), (override));
105 #endif
RegisterAccessibilityChildTreeCallback(int64_t elementId,const std::shared_ptr<AccessibilityChildTreeCallback> & callback)106     void RegisterAccessibilityChildTreeCallback(
107         int64_t elementId, const std::shared_ptr<AccessibilityChildTreeCallback>& callback) override
108     {}
DeregisterAccessibilityChildTreeCallback(int64_t elementId)109     void DeregisterAccessibilityChildTreeCallback(int64_t elementId) override {}
RegisterInteractionOperationAsChildTree(uint32_t parentWindowId,int32_t parentTreeId,int64_t parentElementId)110     void RegisterInteractionOperationAsChildTree(
111         uint32_t parentWindowId, int32_t parentTreeId, int64_t parentElementId) override
112     {
113         Register(g_setBoolStatus);
114     }
SetAccessibilityGetParentRectHandler(std::function<void (int32_t &,int32_t &)> && callback)115     void SetAccessibilityGetParentRectHandler(std::function<void(int32_t&, int32_t&)>&& callback) override {}
SetAccessibilityGetParentRectHandler(std::function<void (AccessibilityParentRectInfo &)> && callback)116     void SetAccessibilityGetParentRectHandler(std::function<void(AccessibilityParentRectInfo&)>&& callback) override {}
117     MOCK_METHOD(void, DeregisterInteractionOperationAsChildTree, (), (override));
118     MOCK_METHOD(void, SendEventToAccessibilityWithNode,
119         (const AccessibilityEvent& accessibilityEvent, const RefPtr<AceType>& node,
120             const RefPtr<PipelineBase>& context),
121         (override));
122     MOCK_METHOD(void, RegisterAccessibilitySAObserverCallback,
123         (int64_t elementId, const std::shared_ptr<AccessibilitySAObserverCallback>& callback), (override));
124     MOCK_METHOD(void, DeregisterAccessibilitySAObserverCallback, (int64_t elementId), (override));
125     MOCK_METHOD(bool, RegisterInteractionOperationAsChildTree, (const Registration& registration), (override));
126     MOCK_METHOD(bool, DeregisterInteractionOperationAsChildTree, (uint32_t windowId, int32_t treeId), (override));
127     MOCK_METHOD(void, TransferThirdProviderHoverEvent,
128         (const WeakPtr<NG::FrameNode>& hostNode, const NG::PointF& point, SourceType source,
129             NG::AccessibilityHoverEventType eventType, TimeStamp time),
130         (override));
131     MOCK_METHOD(bool, OnDumpChildInfoForThird,
132         (int64_t hostElementId, const std::vector<std::string>& params, std::vector<std::string>& info), (override));
133 };
134 } // namespace OHOS::Ace
135 
136 namespace OHOS::Ace::NG {
137 namespace {
138 constexpr double DISPLAY_WIDTH = 720;
139 constexpr double DISPLAY_HEIGHT = 1280;
140 static std::list<PipelineContext::PredictTask> predictTasks_;
141 static Rect windowRect_;
142 static bool g_isDragging = false;
143 static bool hasModalButtonsRect_;
144 static bool g_isContainerCustomTitleVisible = false;
145 static bool g_isContainerControlButtonVisible = false;
146 static RectF g_buttonRect = RectF(0.0f, 0.0f, 0.0f, 0.0f);
147 static int32_t g_containerModalTitleHeight = 0;
148 } // namespace
149 
150 RefPtr<MockPipelineContext> MockPipelineContext::pipeline_;
151 
152 // mock_pipeline_context =======================================================
SetUp()153 void MockPipelineContext::SetUp()
154 {
155     pipeline_ = AceType::MakeRefPtr<MockPipelineContext>();
156     pipeline_->eventManager_ = AceType::MakeRefPtr<EventManager>();
157     pipeline_->windowManager_ = AceType::MakeRefPtr<WindowManager>();
158     pipeline_->rootWidth_ = DISPLAY_WIDTH;
159     pipeline_->rootHeight_ = DISPLAY_HEIGHT;
160     pipeline_->taskExecutor_ = AceType::MakeRefPtr<MockTaskExecutor>();
161     pipeline_->SetupRootElement();
162     windowRect_ = { 0., 0., NG::DISPLAY_WIDTH, NG::DISPLAY_HEIGHT };
163     hasModalButtonsRect_ = true;
164 }
165 
TearDown()166 void MockPipelineContext::TearDown()
167 {
168     if (pipeline_) {
169         pipeline_->Destroy();
170         pipeline_ = nullptr;
171     }
172     predictTasks_.clear();
173 }
174 
GetBundleName()175 std::string PipelineContext::GetBundleName()
176 {
177     return "";
178 }
179 
GetModuleName()180 std::string PipelineContext::GetModuleName()
181 {
182     return "";
183 }
184 
GetCurrent()185 RefPtr<MockPipelineContext> MockPipelineContext::GetCurrent()
186 {
187     return pipeline_;
188 }
189 
SetRootSize(double rootWidth,double rootHeight)190 void MockPipelineContext::SetRootSize(double rootWidth, double rootHeight)
191 {
192     rootWidth_ = rootWidth;
193     rootHeight_ = rootHeight;
194 }
195 
SetInstanceId(int32_t instanceId)196 void MockPipelineContext::SetInstanceId(int32_t instanceId)
197 {
198     pipeline_->instanceId_ = instanceId;
199 }
200 
SetContainerModalButtonsRect(bool hasModalButtonsRect)201 void MockPipelineContext::SetContainerModalButtonsRect(bool hasModalButtonsRect)
202 {
203     hasModalButtonsRect_ = hasModalButtonsRect;
204 }
205 
SetCurrentWindowRect(Rect rect)206 void MockPipelineContext::SetCurrentWindowRect(Rect rect)
207 {
208     windowRect_ = rect;
209 }
210 
SetContainerCustomTitleVisible(bool visible)211 void MockPipelineContext::SetContainerCustomTitleVisible(bool visible)
212 {
213     g_isContainerCustomTitleVisible = visible;
214 }
215 
SetContainerControlButtonVisible(bool visible)216 void MockPipelineContext::SetContainerControlButtonVisible(bool visible)
217 {
218     g_isContainerControlButtonVisible = visible;
219 }
220 
SetContainerModalButtonsRect(RectF buttons)221 void MockPipelineContext::SetContainerModalButtonsRect(RectF buttons)
222 {
223     g_buttonRect = buttons;
224 }
225 
SetContainerModalTitleHeight(int32_t height)226 void MockPipelineContext::SetContainerModalTitleHeight(int32_t height)
227 {
228     g_containerModalTitleHeight = height;
229 }
230 // mock_pipeline_context =======================================================
231 
232 // pipeline_context ============================================================
PipelineContext()233 PipelineContext::PipelineContext()
234 {
235     if (navigationMgr_) {
236         navigationMgr_->SetPipelineContext(WeakClaim(this));
237     }
238     if (forceSplitMgr_) {
239         forceSplitMgr_->SetPipelineContext(WeakClaim(this));
240     }
241 }
242 
GetCurrentRootWidth()243 float PipelineContext::GetCurrentRootWidth()
244 {
245     return static_cast<float>(MockPipelineContext::GetCurrent()->rootWidth_);
246 }
247 
RegisterTouchEventListener(const std::shared_ptr<ITouchEventCallback> & listener)248 void PipelineContext::RegisterTouchEventListener(const std::shared_ptr<ITouchEventCallback>& listener) {}
249 
GetCurrentRootHeight()250 float PipelineContext::GetCurrentRootHeight()
251 {
252     return static_cast<float>(MockPipelineContext::GetCurrent()->rootHeight_);
253 }
254 
GetNavigationController(const std::string & id)255 std::shared_ptr<NavigationController> PipelineContext::GetNavigationController(const std::string& id)
256 {
257     return nullptr;
258 }
259 
AddOrReplaceNavigationNode(const std::string & id,const WeakPtr<FrameNode> & node)260 void PipelineContext::AddOrReplaceNavigationNode(const std::string& id, const WeakPtr<FrameNode>& node) {}
261 
DeleteNavigationNode(const std::string & id)262 void PipelineContext::DeleteNavigationNode(const std::string& id) {}
263 
SetHostParentOffsetToWindow(const Offset & offset)264 void PipelineContext::SetHostParentOffsetToWindow(const Offset& offset)
265 {
266     lastHostParentOffsetToWindow_ = offset;
267 }
268 
GetCurrentContext()269 RefPtr<PipelineContext> PipelineContext::GetCurrentContext()
270 {
271     return MockPipelineContext::GetCurrent();
272 }
273 
GetCurrentContextSafely()274 RefPtr<PipelineContext> PipelineContext::GetCurrentContextSafely()
275 {
276     return MockPipelineContext::GetCurrent();
277 }
278 
GetCurrentContextSafelyWithCheck()279 RefPtr<PipelineContext> PipelineContext::GetCurrentContextSafelyWithCheck()
280 {
281     return MockPipelineContext::GetCurrent();
282 }
283 
GetCurrentContextPtrSafely()284 PipelineContext* PipelineContext::GetCurrentContextPtrSafely()
285 {
286     auto context = MockPipelineContext::GetCurrent();
287     return AceType::RawPtr(context);
288 }
289 
GetCurrentContextPtrSafelyWithCheck()290 PipelineContext* PipelineContext::GetCurrentContextPtrSafelyWithCheck()
291 {
292     auto context = MockPipelineContext::GetCurrent();
293     return AceType::RawPtr(context);
294 }
295 
GetMainPipelineContext()296 RefPtr<PipelineContext> PipelineContext::GetMainPipelineContext()
297 {
298     return MockPipelineContext::GetCurrent();
299 }
300 
GetContextByContainerId(int32_t)301 RefPtr<PipelineContext> PipelineContext::GetContextByContainerId(int32_t /* containerId */)
302 {
303     return MockPipelineContext::GetCurrent();
304 }
305 
AddWindowFocusChangedCallback(int32_t nodeId)306 void PipelineContext::AddWindowFocusChangedCallback(int32_t nodeId) {}
307 
RemoveWindowFocusChangedCallback(int32_t nodeId)308 void PipelineContext::RemoveWindowFocusChangedCallback(int32_t nodeId) {}
309 
SetupRootElement()310 void PipelineContext::SetupRootElement()
311 {
312     rootNode_ = FrameNode::CreateFrameNodeWithTree(
313         V2::ROOT_ETS_TAG, ElementRegister::GetInstance()->MakeUniqueId(), MakeRefPtr<RootPattern>());
314     rootNode_->SetHostRootId(GetInstanceId());
315     rootNode_->SetHostPageId(-1);
316     rootNode_->SetActive(true);
317     CalcSize idealSize { CalcLength(rootWidth_), CalcLength(rootHeight_) };
318     MeasureProperty layoutConstraint;
319     layoutConstraint.selfIdealSize = idealSize;
320     layoutConstraint.maxSize = idealSize;
321     rootNode_->UpdateLayoutConstraint(layoutConstraint);
322     auto rootFocusHub = rootNode_->GetOrCreateFocusHub();
323     rootFocusHub->SetFocusType(FocusType::SCOPE);
324     rootFocusHub->SetFocusable(true);
325     rootNode_->AttachToMainTree(false, this);
326     auto stageNode = FrameNode::CreateFrameNode(
327         V2::STAGE_ETS_TAG, ElementRegister::GetInstance()->MakeUniqueId(), MakeRefPtr<StagePattern>());
328     rootNode_->AddChild(stageNode);
329     stageManager_ = MakeRefPtr<StageManager>(stageNode);
330     auto getPagePathCallback = [weakFrontend = weakFrontend_](const std::string& url) -> std::string {
331         auto frontend = weakFrontend.Upgrade();
332         CHECK_NULL_RETURN(frontend, "");
333         return frontend->GetPagePathByUrl(url);
334     };
335     stageManager_->SetGetPagePathCallback(std::move(getPagePathCallback));
336     overlayManager_ = MakeRefPtr<OverlayManager>(rootNode_);
337     fullScreenManager_ = MakeRefPtr<FullScreenManager>(rootNode_);
338     selectOverlayManager_ = MakeRefPtr<SelectOverlayManager>(rootNode_);
339     dragDropManager_ = MakeRefPtr<DragDropManager>();
340     focusManager_ = MakeRefPtr<FocusManager>(AceType::Claim(this));
341     sharedTransitionManager_ = MakeRefPtr<SharedOverlayManager>(rootNode_);
342 }
343 
SendEventToAccessibilityWithNode(const AccessibilityEvent & accessibilityEvent,const RefPtr<FrameNode> & node)344 void PipelineContext::SendEventToAccessibilityWithNode(
345     const AccessibilityEvent& accessibilityEvent, const RefPtr<FrameNode>& node)
346 {}
347 
OnTouchEvent(const TouchEvent & point,const RefPtr<FrameNode> & node,bool isSubPipe)348 void PipelineContext::OnTouchEvent(
349     const TouchEvent& point, const RefPtr<FrameNode>& node, bool isSubPipe)
350 {}
351 
ReDispatch(KeyEvent & keyEvent)352 void PipelineContext::ReDispatch(KeyEvent& keyEvent) {}
353 
OnMouseEvent(const MouseEvent & event,const RefPtr<FrameNode> & node)354 void PipelineContext::OnMouseEvent(const MouseEvent& event, const RefPtr<FrameNode>& node) {}
355 
OnMouseMoveEventForAxisEvent(const MouseEvent & event,const RefPtr<NG::FrameNode> & node)356 void PipelineContext::OnMouseMoveEventForAxisEvent(const MouseEvent& event, const RefPtr<NG::FrameNode>& node) {};
357 
OnAxisEvent(const AxisEvent & event,const RefPtr<FrameNode> & node)358 void PipelineContext::OnAxisEvent(const AxisEvent& event, const RefPtr<FrameNode>& node) {}
359 
OnTouchEvent(const TouchEvent & point,bool isSubPipe)360 void PipelineContext::OnTouchEvent(const TouchEvent& point, bool isSubPipe) {}
361 
OnAccessibilityHoverEvent(const TouchEvent & point,const RefPtr<NG::FrameNode> & node)362 void PipelineContext::OnAccessibilityHoverEvent(const TouchEvent& point, const RefPtr<NG::FrameNode>& node) {}
363 
OnPenHoverEvent(const TouchEvent & point,const RefPtr<NG::FrameNode> & node)364 void PipelineContext::OnPenHoverEvent(const TouchEvent& point, const RefPtr<NG::FrameNode>& node) {}
365 
HandlePenHoverOut(const TouchEvent & point)366 void PipelineContext::HandlePenHoverOut(const TouchEvent& point) {}
367 
OnMouseEvent(const MouseEvent & event)368 void PipelineContext::OnMouseEvent(const MouseEvent& event) {}
369 
FlushTouchEvents()370 void PipelineContext::FlushTouchEvents() {}
371 
OnAxisEvent(const AxisEvent & event)372 void PipelineContext::OnAxisEvent(const AxisEvent& event) {}
373 
OnDragEvent(const DragPointerEvent & pointerEvent,DragEventAction action,const RefPtr<NG::FrameNode> & node)374 void PipelineContext::OnDragEvent(
375     const DragPointerEvent& pointerEvent, DragEventAction action, const RefPtr<NG::FrameNode>& node)
376 {}
377 
OnIdle(int64_t deadline)378 void PipelineContext::OnIdle(int64_t deadline)
379 {
380     const auto tasks(std::move(predictTasks_));
381     for (const auto& task : tasks) {
382         task(deadline, true);
383     }
384 }
385 
Destroy()386 void PipelineContext::Destroy()
387 {
388     dragDropManager_.Reset();
389     rootNode_.Reset();
390 }
391 
OnShow()392 void PipelineContext::OnShow() {}
393 
OnHide()394 void PipelineContext::OnHide() {}
395 
RemoveOnAreaChangeNode(int32_t nodeId)396 void PipelineContext::RemoveOnAreaChangeNode(int32_t nodeId) {}
397 
AddWindowStateChangedCallback(int32_t nodeId)398 void PipelineContext::AddWindowStateChangedCallback(int32_t nodeId)
399 {
400     onWindowStateChangedCallbacks_.emplace(nodeId);
401 }
402 
RemoveWindowStateChangedCallback(int32_t nodeId)403 void PipelineContext::RemoveWindowStateChangedCallback(int32_t nodeId)
404 {
405     onWindowStateChangedCallbacks_.erase(nodeId);
406 }
407 
AddNodesToNotifyMemoryLevel(int32_t nodeId)408 void PipelineContext::AddNodesToNotifyMemoryLevel(int32_t nodeId) {}
409 
RemoveNodesToNotifyMemoryLevel(int32_t nodeId)410 void PipelineContext::RemoveNodesToNotifyMemoryLevel(int32_t nodeId) {}
411 
WindowFocus(bool isFocus)412 void PipelineContext::WindowFocus(bool isFocus)
413 {
414     onFocus_ = isFocus;
415     if (!isFocus) {
416         RootLostFocus(BlurReason::WINDOW_BLUR);
417     } else {
418         isWindowHasFocused_ = true;
419     }
420     GetOrCreateFocusManager()->WindowFocus(isFocus);
421 }
422 
WindowActivate(bool isActive)423 void PipelineContext::WindowActivate(bool isActive) {}
424 
AddWindowActivateChangedCallback(int32_t nodeId)425 void PipelineContext::AddWindowActivateChangedCallback(int32_t nodeId) {}
426 
RemoveWindowActivateChangedCallback(int32_t nodeId)427 void PipelineContext::RemoveWindowActivateChangedCallback(int32_t nodeId) {}
428 
FlushWindowActivateChangedCallback(bool isActivate)429 void PipelineContext::FlushWindowActivateChangedCallback(bool isActivate) {}
430 
RootLostFocus(BlurReason reason) const431 void PipelineContext::RootLostFocus(BlurReason reason) const {}
432 
ContainerModalUnFocus()433 void PipelineContext::ContainerModalUnFocus() {}
434 
ShowContainerTitle(bool isShow,bool hasDeco,bool needUpdate)435 void PipelineContext::ShowContainerTitle(bool isShow, bool hasDeco, bool needUpdate) {}
436 
UpdateTitleInTargetPos(bool isShow,int32_t height)437 void PipelineContext::UpdateTitleInTargetPos(bool isShow, int32_t height) {}
438 
SetContainerWindow(bool isShow,RRect & rRect)439 void PipelineContext::SetContainerWindow(bool isShow, RRect& rRect) {}
440 
SetAppBgColor(const Color & color)441 void PipelineContext::SetAppBgColor(const Color& color) {}
442 
SetWindowContainerColor(const Color & activeColor,const Color & inactiveColor)443 void PipelineContext::SetWindowContainerColor(const Color& activeColor, const Color& inactiveColor) {};
444 
ChangeDarkModeBrightness()445 void PipelineContext::ChangeDarkModeBrightness() {}
446 
SetAppTitle(const std::string & title)447 void PipelineContext::SetAppTitle(const std::string& title) {}
448 
SetAppIcon(const RefPtr<PixelMap> & icon)449 void PipelineContext::SetAppIcon(const RefPtr<PixelMap>& icon) {}
450 
OnSurfaceDensityChanged(double density)451 void PipelineContext::OnSurfaceDensityChanged(double density) {}
452 
OnTransformHintChanged(uint32_t transform)453 void PipelineContext::OnTransformHintChanged(uint32_t transform) {}
454 
SetRootRect(double width,double height,double offset)455 void PipelineContext::SetRootRect(double width, double height, double offset) {}
456 
FlushBuild()457 void PipelineContext::FlushBuild() {}
458 
FlushBuildFinishCallbacks()459 void PipelineContext::FlushBuildFinishCallbacks()
460 {
461     decltype(buildFinishCallbacks_) buildFinishCallbacks(std::move(buildFinishCallbacks_));
462     for (const auto& func : buildFinishCallbacks) {
463         if (func) {
464             func();
465         }
466     }
467 }
468 
NotifyMemoryLevel(int32_t level)469 void PipelineContext::NotifyMemoryLevel(int32_t level) {}
470 
FlushMessages(std::function<void ()> callback)471 void PipelineContext::FlushMessages(std::function<void()> callback) {}
472 
FlushModifier()473 void PipelineContext::FlushModifier() {}
474 
FlushDirtyNodeUpdate()475 void PipelineContext::FlushDirtyNodeUpdate() {}
476 
FlushUITasks(bool triggeredByImplicitAnimation)477 void PipelineContext::FlushUITasks(bool triggeredByImplicitAnimation)
478 {
479     if (!MockPipelineContext::GetCurrent()->UseFlushUITasks()) {
480         return;
481     }
482     decltype(dirtyPropertyNodes_) dirtyPropertyNodes(std::move(dirtyPropertyNodes_));
483     dirtyPropertyNodes_.clear();
484     for (const auto& dirtyNode : dirtyPropertyNodes) {
485         dirtyNode->ProcessPropertyDiff();
486     }
487     taskScheduler_->FlushTask();
488     taskScheduler_->FlushAfterRenderTask();
489 }
490 
FlushAfterLayoutCallbackInImplicitAnimationTask()491 void PipelineContext::FlushAfterLayoutCallbackInImplicitAnimationTask() {}
492 
DetachNode(RefPtr<UINode>)493 void PipelineContext::DetachNode(RefPtr<UINode>) {}
494 
Finish(bool autoFinish) const495 void PipelineContext::Finish(bool autoFinish) const {}
496 
FlushVsync(uint64_t nanoTimestamp,uint64_t frameCount)497 void PipelineContext::FlushVsync(uint64_t nanoTimestamp, uint64_t frameCount) {}
498 
FlushPipelineWithoutAnimation()499 void PipelineContext::FlushPipelineWithoutAnimation() {}
500 
FlushFocus()501 void PipelineContext::FlushFocus()
502 {
503     FlushRequestFocus();
504 
505     auto focusNode = dirtyFocusNode_.Upgrade();
506     if (!focusNode || focusNode->GetFocusType() != FocusType::NODE) {
507         dirtyFocusNode_.Reset();
508     } else {
509         FlushFocusWithNode(focusNode, false);
510         return;
511     }
512     auto focusScope = dirtyFocusScope_.Upgrade();
513     if (!focusScope || focusScope->GetFocusType() != FocusType::SCOPE) {
514         dirtyFocusScope_.Reset();
515     } else {
516         FlushFocusWithNode(focusScope, true);
517         return;
518     }
519     GetOrCreateFocusManager()->WindowFocusMoveEnd();
520 }
521 
FlushFocusWithNode(RefPtr<FrameNode> focusNode,bool isScope)522 void PipelineContext::FlushFocusWithNode(RefPtr<FrameNode> focusNode, bool isScope)
523 {
524     auto focusNodeHub = focusNode->GetFocusHub();
525     if (focusNodeHub) {
526         focusNodeHub->RequestFocusImmediately();
527     }
528     dirtyFocusNode_.Reset();
529     dirtyFocusScope_.Reset();
530     dirtyRequestFocusNode_.Reset();
531     GetOrCreateFocusManager()->WindowFocusMoveEnd();
532 }
533 
FlushOnceVsyncTask()534 void PipelineContext::FlushOnceVsyncTask() {}
535 
SetOnWindowFocused(const std::function<void ()> & callback)536 void PipelineContext::SetOnWindowFocused(const std::function<void()>& callback) {}
537 
DispatchDisplaySync(uint64_t nanoTimestamp)538 void PipelineContext::DispatchDisplaySync(uint64_t nanoTimestamp) {}
539 
FlushAnimation(uint64_t nanoTimestamp)540 void PipelineContext::FlushAnimation(uint64_t nanoTimestamp) {}
541 
FlushRequestFocus()542 void PipelineContext::FlushRequestFocus()
543 {
544     auto requestFocusNode = dirtyRequestFocusNode_.Upgrade();
545     if (!requestFocusNode) {
546         dirtyFocusNode_.Reset();
547         dirtyFocusScope_.Reset();
548         dirtyRequestFocusNode_.Reset();
549     } else {
550         auto focusNodeHub = requestFocusNode->GetFocusHub();
551         if (focusNodeHub) {
552             focusNodeHub->RequestFocusImmediately();
553         }
554         dirtyFocusNode_.Reset();
555         dirtyFocusScope_.Reset();
556         dirtyRequestFocusNode_.Reset();
557         return;
558     }
559 }
560 
CheckNeedUpdateBackgroundColor(Color & color)561 void PipelineContext::CheckNeedUpdateBackgroundColor(Color& color) {}
562 
CheckNeedDisableUpdateBackgroundImage()563 bool PipelineContext::CheckNeedDisableUpdateBackgroundImage()
564 {
565     if (!isFormRender_) {
566         return false;
567     }
568     return true;
569 }
570 
OnVirtualKeyboardHeightChange(float keyboardHeight,const std::shared_ptr<Rosen::RSTransaction> & rsTransaction,const float safeHeight,const bool supportAvoidance,bool forceChange)571 void PipelineContext::OnVirtualKeyboardHeightChange(float keyboardHeight,
572     const std::shared_ptr<Rosen::RSTransaction>& rsTransaction, const float safeHeight, const bool supportAvoidance,
573     bool forceChange)
574 {}
575 
OnVirtualKeyboardHeightChange(float keyboardHeight,double positionY,double height,const std::shared_ptr<Rosen::RSTransaction> & rsTransaction,bool forceChange)576 void PipelineContext::OnVirtualKeyboardHeightChange(float keyboardHeight, double positionY, double height,
577     const std::shared_ptr<Rosen::RSTransaction>& rsTransaction, bool forceChange)
578 {}
579 
AvoidanceLogic(float keyboardHeight,const std::shared_ptr<Rosen::RSTransaction> & rsTransaction,const float safeHeight,const bool supportAvoidance)580 void PipelineContext::AvoidanceLogic(float keyboardHeight, const std::shared_ptr<Rosen::RSTransaction>& rsTransaction,
581     const float safeHeight, const bool supportAvoidance)
582 {}
583 
OriginalAvoidanceLogic(float keyboardHeight,const std::shared_ptr<Rosen::RSTransaction> & rsTransaction)584 void PipelineContext::OriginalAvoidanceLogic(
585     float keyboardHeight, const std::shared_ptr<Rosen::RSTransaction>& rsTransaction)
586 {}
587 
OnFoldStatusChange(FoldStatus foldStatus)588 void PipelineContext::OnFoldStatusChange(FoldStatus foldStatus) {}
589 
OnRawKeyboardChangedCallback()590 void PipelineContext::OnRawKeyboardChangedCallback() {}
591 
OnFoldDisplayModeChange(FoldDisplayMode foldDisplayMode)592 void PipelineContext::OnFoldDisplayModeChange(FoldDisplayMode foldDisplayMode) {}
593 
OnSurfaceChanged(int32_t width,int32_t height,WindowSizeChangeReason type,const std::shared_ptr<Rosen::RSTransaction> & rsTransaction)594 void PipelineContext::OnSurfaceChanged(int32_t width, int32_t height, WindowSizeChangeReason type,
595     const std::shared_ptr<Rosen::RSTransaction>& rsTransaction)
596 {}
597 
OnLayoutCompleted(const std::string & componentId)598 void PipelineContext::OnLayoutCompleted(const std::string& componentId) {}
599 
CheckOverlayFocus()600 bool PipelineContext::CheckOverlayFocus()
601 {
602     return false;
603 }
604 
OnDrawCompleted(const std::string & componentId)605 void PipelineContext::OnDrawCompleted(const std::string& componentId) {}
606 
SetNeedRenderNode(const WeakPtr<FrameNode> & node)607 void PipelineContext::SetNeedRenderNode(const WeakPtr<FrameNode>& node) {}
608 
SetNeedRenderForDrawChildrenNode(const WeakPtr<NG::UINode> & node)609 void PipelineContext::SetNeedRenderForDrawChildrenNode(const WeakPtr<NG::UINode>& node) {}
610 
OnSurfacePositionChanged(int32_t posX,int32_t posY)611 void PipelineContext::OnSurfacePositionChanged(int32_t posX, int32_t posY) {}
612 
FlushReload(const ConfigurationChange & configurationChange,bool fullUpdate)613 void PipelineContext::FlushReload(const ConfigurationChange& configurationChange, bool fullUpdate) {}
614 
SetContainerButtonHide(bool hideSplit,bool hideMaximize,bool hideMinimize,bool hideClose)615 void PipelineContext::SetContainerButtonHide(bool hideSplit, bool hideMaximize, bool hideMinimize, bool hideClose) {}
616 
AddAnimationClosure(std::function<void ()> && animation)617 void PipelineContext::AddAnimationClosure(std::function<void()>&& animation) {}
618 
SetCloseButtonStatus(bool isEnabled)619 void PipelineContext::SetCloseButtonStatus(bool isEnabled) {}
620 
GetSelectOverlayManager()621 const RefPtr<SelectOverlayManager>& PipelineContext::GetSelectOverlayManager()
622 {
623     return selectOverlayManager_;
624 }
625 
GetDragDropManager()626 const RefPtr<DragDropManager>& PipelineContext::GetDragDropManager()
627 {
628     return dragDropManager_;
629 }
630 
GetFocusManager() const631 const RefPtr<FocusManager>& PipelineContext::GetFocusManager() const
632 {
633     return focusManager_;
634 }
635 
GetOrCreateFocusManager()636 const RefPtr<FocusManager>& PipelineContext::GetOrCreateFocusManager()
637 {
638     if (!focusManager_) {
639         focusManager_ = MakeRefPtr<FocusManager>(AceType::Claim(this));
640     }
641     return focusManager_;
642 }
643 
GetStageManager()644 const RefPtr<StageManager>& PipelineContext::GetStageManager()
645 {
646     return stageManager_;
647 }
648 
GetFullScreenManager()649 const RefPtr<FullScreenManager>& PipelineContext::GetFullScreenManager()
650 {
651     return fullScreenManager_;
652 }
653 
GetOverlayManager()654 const RefPtr<OverlayManager>& PipelineContext::GetOverlayManager()
655 {
656     return overlayManager_;
657 }
658 
AddScheduleTask(const RefPtr<ScheduleTask> & task)659 uint32_t PipelineContext::AddScheduleTask(const RefPtr<ScheduleTask>& task)
660 {
661     return 0;
662 }
663 
RemoveScheduleTask(uint32_t id)664 void PipelineContext::RemoveScheduleTask(uint32_t id) {}
665 
AddOnAreaChangeNode(int32_t nodeId)666 void PipelineContext::AddOnAreaChangeNode(int32_t nodeId) {}
667 
OnNonPointerEvent(const NonPointerEvent & event)668 bool PipelineContext::OnNonPointerEvent(const NonPointerEvent& event)
669 {
670     return false;
671 }
672 
RequestFocus(const std::string & targetNodeId,bool isSyncRequest)673 bool PipelineContext::RequestFocus(const std::string& targetNodeId, bool isSyncRequest)
674 {
675     return false;
676 }
677 
OnDumpInfo(const std::vector<std::string> & params) const678 bool PipelineContext::OnDumpInfo(const std::vector<std::string>& params) const
679 {
680     return false;
681 }
682 
OnBackPressed()683 bool PipelineContext::OnBackPressed()
684 {
685     auto deviceType = SystemProperties::GetDeviceType();
686     if ((deviceType == DeviceType::WEARABLE || deviceType == DeviceType::WATCH) && !enableSwipeBack_) {
687         return true;
688     }
689     return false;
690 }
691 
AddDirtyFocus(const RefPtr<FrameNode> & node)692 void PipelineContext::AddDirtyFocus(const RefPtr<FrameNode>& node) {}
693 
AddDirtyPropertyNode(const RefPtr<FrameNode> & dirty)694 void PipelineContext::AddDirtyPropertyNode(const RefPtr<FrameNode>& dirty)
695 {
696     dirtyPropertyNodes_.emplace(dirty);
697 }
698 
AddDirtyRequestFocus(const RefPtr<FrameNode> & node)699 void PipelineContext::AddDirtyRequestFocus(const RefPtr<FrameNode>& node)
700 {
701     CHECK_NULL_VOID(node);
702     dirtyRequestFocusNode_ = WeakPtr<FrameNode>(node);
703     RequestFrame();
704 }
705 
AddDirtyFreezeNode(FrameNode * node)706 void PipelineContext::AddDirtyFreezeNode(FrameNode* node) {}
707 
AddDirtyLayoutNode(const RefPtr<FrameNode> & dirty)708 void PipelineContext::AddDirtyLayoutNode(const RefPtr<FrameNode>& dirty)
709 {
710     if (MockPipelineContext::GetCurrent()->UseFlushUITasks()) {
711         taskScheduler_->AddDirtyLayoutNode(dirty);
712     }
713 }
714 
AddIgnoreLayoutSafeAreaBundle(IgnoreLayoutSafeAreaBundle && bundle)715 void PipelineContext::AddIgnoreLayoutSafeAreaBundle(IgnoreLayoutSafeAreaBundle&& bundle)
716 {
717     if (MockPipelineContext::GetCurrent()->UseFlushUITasks())
718     {
719         taskScheduler_->AddIgnoreLayoutSafeAreaBundle(std::move(bundle));
720     }
721 }
722 
AddPendingDeleteCustomNode(const RefPtr<CustomNode> & node)723 void PipelineContext::AddPendingDeleteCustomNode(const RefPtr<CustomNode>& node) {}
724 
AddLayoutNode(const RefPtr<FrameNode> & layoutNode)725 void PipelineContext::AddLayoutNode(const RefPtr<FrameNode>& layoutNode) {}
726 
AddDirtyRenderNode(const RefPtr<FrameNode> & dirty)727 void PipelineContext::AddDirtyRenderNode(const RefPtr<FrameNode>& dirty)
728 {
729     if (MockPipelineContext::GetCurrent()->UseFlushUITasks()) {
730         taskScheduler_->AddDirtyRenderNode(dirty);
731     }
732 }
733 
AddBuildFinishCallBack(std::function<void ()> && callback)734 void PipelineContext::AddBuildFinishCallBack(std::function<void()>&& callback)
735 {
736     buildFinishCallbacks_.emplace_back(std::move(callback));
737 }
738 
AddPredictTask(PredictTask && task)739 void PipelineContext::AddPredictTask(PredictTask&& task)
740 {
741     predictTasks_.emplace_back(task);
742 }
743 
AddAfterLayoutTask(std::function<void ()> && task,bool isFlushInImplicitAnimationTask)744 void PipelineContext::AddAfterLayoutTask(std::function<void()>&& task, bool isFlushInImplicitAnimationTask)
745 {
746     if (MockPipelineContext::GetCurrent()->UseFlushUITasks()) {
747         taskScheduler_->AddAfterLayoutTask(std::move(task), isFlushInImplicitAnimationTask);
748     } else if (task) {
749         task();
750     }
751 }
752 
AddAfterModifierTask(std::function<void ()> && task)753 void PipelineContext::AddAfterModifierTask(std::function<void()>&& task)
754 {
755     if (MockPipelineContext::GetCurrent()->UseFlushUITasks()) {
756         taskScheduler_->AddAfterModifierTask(std::move(task));
757     } else if (task) {
758         task();
759     }
760 }
761 
AddSyncGeometryNodeTask(std::function<void ()> && task)762 void PipelineContext::AddSyncGeometryNodeTask(std::function<void()>&& task)
763 {
764     if (task) {
765         task();
766     }
767 }
768 
StopWindowAnimation()769 void PipelineContext::StopWindowAnimation() {}
770 
FlushSyncGeometryNodeTasks()771 void PipelineContext::FlushSyncGeometryNodeTasks() {}
772 
AddAfterRenderTask(std::function<void ()> && task)773 void PipelineContext::AddAfterRenderTask(std::function<void()>&& task)
774 {
775     if (MockPipelineContext::GetCurrent()->UseFlushUITasks()) {
776         taskScheduler_->AddAfterRenderTask(std::move(task));
777     } else if (task) {
778         task();
779     }
780 }
781 
FlushPipelineImmediately()782 void PipelineContext::FlushPipelineImmediately() {}
783 
RebuildFontNode()784 void PipelineContext::RebuildFontNode() {}
785 
GetCurrentFrameInfo(uint64_t,uint64_t)786 FrameInfo* PipelineContext::GetCurrentFrameInfo(uint64_t /* recvTime */, uint64_t /* timeStamp */)
787 {
788     return nullptr;
789 }
790 
DumpPipelineInfo() const791 void PipelineContext::DumpPipelineInfo() const {}
792 
AddVisibleAreaChangeNode(int32_t nodeId)793 void PipelineContext::AddVisibleAreaChangeNode(int32_t nodeId) {}
794 
AddVisibleAreaChangeNode(const RefPtr<FrameNode> & node,const std::vector<double> & ratio,const VisibleRatioCallback & callback,bool isUserCallback,bool isCalculateInnerClip)795 void PipelineContext::AddVisibleAreaChangeNode(const RefPtr<FrameNode>& node, const std::vector<double>& ratio,
796     const VisibleRatioCallback& callback, bool isUserCallback, bool isCalculateInnerClip)
797 {
798     CHECK_NULL_VOID(callback);
799     callback(false, 0.0);
800     callback(true, ratio[0]);
801 }
802 
RemoveVisibleAreaChangeNode(int32_t nodeId)803 void PipelineContext::RemoveVisibleAreaChangeNode(int32_t nodeId) {}
804 
HandleVisibleAreaChangeEvent(uint64_t nanoTimestamp)805 void PipelineContext::HandleVisibleAreaChangeEvent(uint64_t nanoTimestamp) {}
806 
ChangeMouseStyle(int32_t nodeId,MouseFormat format,int32_t windowId,bool isBypass,MouseStyleChangeReason reason)807 bool PipelineContext::ChangeMouseStyle(int32_t nodeId, MouseFormat format, int32_t windowId,
808     bool isBypass, MouseStyleChangeReason reason)
809 {
810     return true;
811 }
812 
RestoreNodeInfo(std::unique_ptr<JsonValue> nodeInfo)813 void PipelineContext::RestoreNodeInfo(std::unique_ptr<JsonValue> nodeInfo) {}
814 
GetStoredNodeInfo()815 std::unique_ptr<JsonValue> PipelineContext::GetStoredNodeInfo()
816 {
817     return nullptr;
818 }
819 
StoreNode(int32_t restoreId,const WeakPtr<FrameNode> & node)820 void PipelineContext::StoreNode(int32_t restoreId, const WeakPtr<FrameNode>& node) {}
821 
GetRestoreInfo(int32_t restoreId,std::string & restoreInfo)822 bool PipelineContext::GetRestoreInfo(int32_t restoreId, std::string& restoreInfo)
823 {
824     return false;
825 }
826 
AddDirtyCustomNode(const RefPtr<UINode> & dirtyNode)827 void PipelineContext::AddDirtyCustomNode(const RefPtr<UINode>& dirtyNode) {}
828 
SetFlushTSUpdates(std::function<bool (int32_t)> && flushTSUpdates)829 void PipelineContext::SetFlushTSUpdates(std::function<bool(int32_t)>&& flushTSUpdates) {}
830 
AddWindowSizeChangeCallback(int32_t nodeId)831 void PipelineContext::AddWindowSizeChangeCallback(int32_t nodeId) {}
832 
RemoveWindowSizeChangeCallback(int32_t nodeId)833 void PipelineContext::RemoveWindowSizeChangeCallback(int32_t nodeId) {}
834 
AddWindowSizeDragEndCallback(std::function<void ()> && callback)835 void PipelineContext::AddWindowSizeDragEndCallback(std::function<void()>&& callback)
836 {
837     onWindowSizeDragEndCallbacks_.emplace_back(std::move(callback));
838 }
839 
SetIsWindowSizeDragging(bool isDragging)840 void PipelineContext::SetIsWindowSizeDragging(bool isDragging)
841 {
842     isWindowSizeDragging_ = isDragging;
843     if (!isDragging) {
844         decltype(onWindowSizeDragEndCallbacks_) dragEndCallbacks(std::move(onWindowSizeDragEndCallbacks_));
845         for (const auto& func : dragEndCallbacks) {
846             if (func) {
847                 func();
848             }
849         }
850     }
851 }
852 
AddNavigationNode(int32_t pageId,WeakPtr<UINode> navigationNode)853 void PipelineContext::AddNavigationNode(int32_t pageId, WeakPtr<UINode> navigationNode) {}
854 
RemoveNavigationNode(int32_t pageId,int32_t nodeId)855 void PipelineContext::RemoveNavigationNode(int32_t pageId, int32_t nodeId) {}
856 
FirePageChanged(int32_t pageId,bool isOnShow)857 void PipelineContext::FirePageChanged(int32_t pageId, bool isOnShow) {}
858 
UpdateSystemSafeArea(const SafeAreaInsets & systemSafeArea,bool checkSceneBoardWindow)859 void PipelineContext::UpdateSystemSafeArea(const SafeAreaInsets& systemSafeArea, bool checkSceneBoardWindow)
860 {
861     if (checkSceneBoardWindow) {
862         safeAreaManager_->UpdateScbSystemSafeArea(systemSafeArea);
863         return;
864     }
865     safeAreaManager_->UpdateSystemSafeArea(systemSafeArea);
866 }
867 
UpdateCutoutSafeArea(const SafeAreaInsets & cutoutSafeArea,bool checkSceneBoardWindow)868 void PipelineContext::UpdateCutoutSafeArea(const SafeAreaInsets& cutoutSafeArea, bool checkSceneBoardWindow)
869 {
870     if (checkSceneBoardWindow) {
871         safeAreaManager_->UpdateScbCutoutSafeArea(cutoutSafeArea);
872         return;
873     }
874     safeAreaManager_->UpdateCutoutSafeArea(cutoutSafeArea);
875 }
876 
UpdateNavSafeArea(const SafeAreaInsets & navSafeArea,bool checkSceneBoardWindow)877 void PipelineContext::UpdateNavSafeArea(const SafeAreaInsets& navSafeArea, bool checkSceneBoardWindow)
878 {
879     if (checkSceneBoardWindow) {
880         safeAreaManager_->UpdateScbNavSafeArea(navSafeArea);
881         return;
882     }
883     safeAreaManager_->UpdateNavSafeArea(navSafeArea);
884 }
885 
UpdateSystemSafeAreaWithoutAnimation(const SafeAreaInsets & systemSafeArea,bool checkSceneBoardWindow)886 void PipelineContext::UpdateSystemSafeAreaWithoutAnimation(
887     const SafeAreaInsets& systemSafeArea, bool checkSceneBoardWindow)
888 {
889     if (checkSceneBoardWindow) {
890         safeAreaManager_->UpdateScbSystemSafeArea(systemSafeArea);
891         return;
892     }
893     safeAreaManager_->UpdateSystemSafeArea(systemSafeArea);
894 }
895 
UpdateCutoutSafeAreaWithoutAnimation(const SafeAreaInsets & cutoutSafeArea,bool checkSceneBoardWindow)896 void PipelineContext::UpdateCutoutSafeAreaWithoutAnimation(
897     const SafeAreaInsets& cutoutSafeArea, bool checkSceneBoardWindow)
898 {
899     if (checkSceneBoardWindow) {
900         safeAreaManager_->UpdateScbCutoutSafeArea(cutoutSafeArea);
901         return;
902     }
903     safeAreaManager_->UpdateCutoutSafeArea(cutoutSafeArea);
904 }
905 
UpdateNavSafeAreaWithoutAnimation(const SafeAreaInsets & navSafeArea,bool checkSceneBoardWindow)906 void PipelineContext::UpdateNavSafeAreaWithoutAnimation(
907     const SafeAreaInsets& navSafeArea, bool checkSceneBoardWindow)
908 {
909     if (checkSceneBoardWindow) {
910         safeAreaManager_->UpdateScbNavSafeArea(navSafeArea);
911         return;
912     }
913     safeAreaManager_->UpdateNavSafeArea(navSafeArea);
914 }
915 
GetEnableKeyBoardAvoidMode()916 KeyBoardAvoidMode PipelineContext::GetEnableKeyBoardAvoidMode()
917 {
918     return KeyBoardAvoidMode::OFFSET;
919 }
920 
SetEnableKeyBoardAvoidMode(KeyBoardAvoidMode value)921 void PipelineContext::SetEnableKeyBoardAvoidMode(KeyBoardAvoidMode value) {};
922 
UsingCaretAvoidMode()923 bool PipelineContext::UsingCaretAvoidMode()
924 {
925     CHECK_NULL_RETURN(safeAreaManager_, false);
926     return safeAreaManager_->GetKeyBoardAvoidMode() == KeyBoardAvoidMode::OFFSET_WITH_CARET ||
927         safeAreaManager_->GetKeyBoardAvoidMode() == KeyBoardAvoidMode::RESIZE_WITH_CARET;
928 }
929 
IsEnableKeyBoardAvoidMode()930 bool PipelineContext::IsEnableKeyBoardAvoidMode()
931 {
932     return false;
933 }
934 
SetIgnoreViewSafeArea(bool value)935 void PipelineContext::SetIgnoreViewSafeArea(bool value) {};
SetIsLayoutFullScreen(bool value)936 void PipelineContext::SetIsLayoutFullScreen(bool value) {};
SetIsNeedAvoidWindow(bool value)937 void PipelineContext::SetIsNeedAvoidWindow(bool value) {};
938 
GetSafeArea() const939 SafeAreaInsets PipelineContext::GetSafeArea() const
940 {
941     // top inset = 1
942     return SafeAreaInsets({}, { 0, 1 }, {}, {});
943 }
944 
GetSafeAreaWithoutProcess() const945 SafeAreaInsets PipelineContext::GetSafeAreaWithoutProcess() const
946 {
947     return SafeAreaInsets({}, { 0, 1 }, {}, {});
948 }
949 
GetPageAvoidOffset()950 float PipelineContext::GetPageAvoidOffset()
951 {
952     return 0.0f;
953 }
954 
CheckNeedAvoidInSubWindow()955 bool PipelineContext::CheckNeedAvoidInSubWindow()
956 {
957     return false;
958 }
959 
GetResponseRegion(const RefPtr<NG::FrameNode> & rootNode)960 std::string PipelineContext::GetResponseRegion(const RefPtr<NG::FrameNode>& rootNode)
961 {
962     return "";
963 }
964 
NotifyResponseRegionChanged(const RefPtr<NG::FrameNode> & rootNode)965 void PipelineContext::NotifyResponseRegionChanged(const RefPtr<NG::FrameNode>& rootNode) {};
966 
DisableNotifyResponseRegionChanged()967 void PipelineContext::DisableNotifyResponseRegionChanged() {};
968 
AddFontNodeNG(const WeakPtr<UINode> & node)969 void PipelineContext::AddFontNodeNG(const WeakPtr<UINode>& node) {}
970 
RemoveFontNodeNG(const WeakPtr<UINode> & node)971 void PipelineContext::RemoveFontNodeNG(const WeakPtr<UINode>& node) {}
972 
SetWindowSceneConsumed(bool isConsumed)973 void PipelineContext::SetWindowSceneConsumed(bool isConsumed) {}
974 
AddIsFocusActiveUpdateEvent(const RefPtr<FrameNode> & node,const std::function<void (bool)> & eventCallback)975 void PipelineContext::AddIsFocusActiveUpdateEvent(
976     const RefPtr<FrameNode>& node, const std::function<void(bool)>& eventCallback)
977 {}
978 
RemoveIsFocusActiveUpdateEvent(const RefPtr<FrameNode> & node)979 void PipelineContext::RemoveIsFocusActiveUpdateEvent(const RefPtr<FrameNode>& node) {}
980 
HasDifferentDirectionGesture() const981 bool PipelineContext::HasDifferentDirectionGesture() const
982 {
983     return false;
984 }
985 
SetJSViewActive(bool active,WeakPtr<CustomNode> custom)986 void PipelineContext::SetJSViewActive(bool active, WeakPtr<CustomNode> custom) {}
987 
FindNavigationNodeToHandleBack(const RefPtr<UINode> & node,bool & isEntry)988 RefPtr<FrameNode> PipelineContext::FindNavigationNodeToHandleBack(const RefPtr<UINode>& node, bool& isEntry)
989 {
990     return nullptr;
991 }
992 
SetIsFocusActive(bool isFocusActive,FocusActiveReason reason,bool autoFocusInactive)993 bool PipelineContext::SetIsFocusActive(bool isFocusActive, FocusActiveReason reason, bool autoFocusInactive)
994 {
995     return false;
996 }
997 
NeedSoftKeyboard()998 bool PipelineContext::NeedSoftKeyboard()
999 {
1000     return false;
1001 }
1002 
SetCursor(int32_t cursorValue)1003 void PipelineContext::SetCursor(int32_t cursorValue) {}
1004 
RestoreDefault(int32_t windowId,MouseStyleChangeReason reason)1005 void PipelineContext::RestoreDefault(int32_t windowId, MouseStyleChangeReason reason) {}
1006 
HandleSubwindow(bool isShow)1007 void PipelineContext::HandleSubwindow(bool isShow) {}
1008 
GetCurrentExtraInfo()1009 std::string PipelineContext::GetCurrentExtraInfo()
1010 {
1011     return std::string();
1012 }
1013 
CloseFrontendAnimation()1014 void PipelineContext::CloseFrontendAnimation() {}
1015 
OpenFrontendAnimation(const AnimationOption & option,const RefPtr<Curve> & curve,const std::function<void ()> & finishCallback)1016 void PipelineContext::OpenFrontendAnimation(
1017     const AnimationOption& option, const RefPtr<Curve>& curve, const std::function<void()>& finishCallback)
1018 {}
1019 
IsDragging() const1020 bool PipelineContext::IsDragging() const
1021 {
1022     return g_isDragging;
1023 }
1024 
SetIsDragging(bool isDragging)1025 void PipelineContext::SetIsDragging(bool isDragging)
1026 {
1027     g_isDragging = isDragging;
1028 }
1029 
ResetDragging()1030 void PipelineContext::ResetDragging() {}
1031 
UpdateOriginAvoidArea(const Rosen::AvoidArea & avoidArea,uint32_t type)1032 void PipelineContext::UpdateOriginAvoidArea(const Rosen::AvoidArea& avoidArea, uint32_t type) {}
1033 
CheckAndUpdateKeyboardInset(float keyboardHeight)1034 void PipelineContext::CheckAndUpdateKeyboardInset(float keyboardHeight) {}
1035 
PrintVsyncInfoIfNeed() const1036 bool PipelineContext::PrintVsyncInfoIfNeed() const
1037 {
1038     return false;
1039 }
1040 
GetSerializedGesture() const1041 const SerializedGesture& PipelineContext::GetSerializedGesture() const
1042 {
1043     return serializedGesture_;
1044 }
1045 
FlushFocusView()1046 void PipelineContext::FlushFocusView()
1047 {
1048     CHECK_NULL_VOID(focusManager_);
1049     auto lastFocusView = (focusManager_->GetLastFocusView()).Upgrade();
1050     CHECK_NULL_VOID(lastFocusView);
1051     auto lastFocusViewHub = lastFocusView->GetFocusHub();
1052     CHECK_NULL_VOID(lastFocusViewHub);
1053     if (lastFocusView && (!lastFocusViewHub->IsCurrentFocus() || !lastFocusView->GetIsViewHasFocused()) &&
1054         lastFocusViewHub->IsFocusableNode()) {
1055         lastFocusView->RequestDefaultFocus();
1056     }
1057 }
1058 
SetOverlayNodePositions(std::vector<Ace::RectF> rects)1059 void PipelineContext::SetOverlayNodePositions(std::vector<Ace::RectF> rects) {}
1060 
GetOverlayNodePositions()1061 std::vector<Ace::RectF> PipelineContext::GetOverlayNodePositions()
1062 {
1063     return {};
1064 }
1065 
RegisterOverlayNodePositionsUpdateCallback(const std::function<void (std::vector<Ace::RectF>)> && callback)1066 void PipelineContext::RegisterOverlayNodePositionsUpdateCallback(
1067     const std::function<void(std::vector<Ace::RectF>)>&& callback)
1068 {}
1069 
TriggerOverlayNodePositionsUpdateCallback(std::vector<Ace::RectF> rects)1070 void PipelineContext::TriggerOverlayNodePositionsUpdateCallback(std::vector<Ace::RectF> rects) {}
1071 
IsContainerModalVisible() const1072 bool PipelineContext::IsContainerModalVisible() const
1073 {
1074     return false;
1075 }
1076 
CheckAndLogLastReceivedTouchEventInfo(int32_t eventId,TouchType type)1077 void PipelineContext::CheckAndLogLastReceivedTouchEventInfo(int32_t eventId, TouchType type) {}
1078 
CheckAndLogLastConsumedTouchEventInfo(int32_t eventId,TouchType type)1079 void PipelineContext::CheckAndLogLastConsumedTouchEventInfo(int32_t eventId, TouchType type) {}
1080 
CheckAndLogLastReceivedMouseEventInfo(int32_t eventId,MouseAction action)1081 void PipelineContext::CheckAndLogLastReceivedMouseEventInfo(int32_t eventId, MouseAction action) {}
1082 
CheckAndLogLastConsumedMouseEventInfo(int32_t eventId,MouseAction action)1083 void PipelineContext::CheckAndLogLastConsumedMouseEventInfo(int32_t eventId, MouseAction action) {}
1084 
CheckAndLogLastReceivedAxisEventInfo(int32_t eventId,AxisAction action)1085 void PipelineContext::CheckAndLogLastReceivedAxisEventInfo(int32_t eventId, AxisAction action) {}
1086 
CheckAndLogLastConsumedAxisEventInfo(int32_t eventId,AxisAction action)1087 void PipelineContext::CheckAndLogLastConsumedAxisEventInfo(int32_t eventId, AxisAction action) {}
1088 
PreLayout(uint64_t nanoTimestamp,uint32_t frameCount)1089 void PipelineContext::PreLayout(uint64_t nanoTimestamp, uint32_t frameCount) {}
1090 
AddFrameNodeChangeListener(const WeakPtr<FrameNode> & node)1091 void PipelineContext::AddFrameNodeChangeListener(const WeakPtr<FrameNode>& node) {}
1092 
RemoveFrameNodeChangeListener(int32_t nodeId)1093 void PipelineContext::RemoveFrameNodeChangeListener(int32_t nodeId) {}
1094 
AddChangedFrameNode(const WeakPtr<FrameNode> & node)1095 bool PipelineContext::AddChangedFrameNode(const WeakPtr<FrameNode>& node)
1096 {
1097     return true;
1098 }
1099 
RemoveChangedFrameNode(int32_t nodeId)1100 void PipelineContext::RemoveChangedFrameNode(int32_t nodeId) {}
1101 
FlushNodeChangeFlag()1102 void PipelineContext::FlushNodeChangeFlag() {}
1103 
CleanNodeChangeFlag()1104 void PipelineContext::CleanNodeChangeFlag() {}
1105 
HasOnAreaChangeNode(int32_t nodeId)1106 bool PipelineContext::HasOnAreaChangeNode(int32_t nodeId)
1107 {
1108     return false;
1109 }
1110 
UnregisterTouchEventListener(const WeakPtr<NG::Pattern> & pattern)1111 void PipelineContext::UnregisterTouchEventListener(const WeakPtr<NG::Pattern>& pattern) {}
1112 
GetContainerModalTitleHeight()1113 int32_t PipelineContext::GetContainerModalTitleHeight()
1114 {
1115     return g_containerModalTitleHeight;
1116 }
1117 
GetContainerModalButtonsRect(RectF & containerModal,RectF & buttons)1118 bool PipelineContext::GetContainerModalButtonsRect(RectF& containerModal, RectF& buttons)
1119 {
1120     buttons = g_buttonRect;
1121     return hasModalButtonsRect_;
1122 }
1123 
GetColorMode() const1124 ColorMode PipelineContext::GetColorMode() const
1125 {
1126     return MockContainer::mockColorMode_;
1127 }
1128 
GetNodeRenderStatusMonitor()1129 const RefPtr<NodeRenderStatusMonitor>& PipelineContext::GetNodeRenderStatusMonitor()
1130 {
1131     if (!nodeRenderStatusMonitor_) {
1132         nodeRenderStatusMonitor_ = AceType::MakeRefPtr<NodeRenderStatusMonitor>();
1133     }
1134     return nodeRenderStatusMonitor_;
1135 }
1136 
FlushDirtyPropertyNodes()1137 void PipelineContext::FlushDirtyPropertyNodes()
1138 {
1139 }
1140 
DumpForceColor(const std::vector<std::string> & params) const1141 void PipelineContext::DumpForceColor(const std::vector<std::string>& params) const {}
AddFrameCallback(FrameCallbackFunc && frameCallbackFunc,IdleCallbackFunc && idleCallbackFunc,int64_t delayMillis)1142 void PipelineContext::AddFrameCallback(FrameCallbackFunc&& frameCallbackFunc, IdleCallbackFunc&& idleCallbackFunc,
1143     int64_t delayMillis) {}
1144 } // namespace OHOS::Ace::NG
1145 // pipeline_context ============================================================
1146 
1147 // pipeline_base ===============================================================
1148 namespace OHOS::Ace {
1149 namespace {
1150 const int32_t IGNORE_POSITION_TRANSITION_SWITCH = -990;
1151 } // namespace
1152 
1153 class ManagerInterface : public AceType {
1154     DECLARE_ACE_TYPE(ManagerInterface, AceType);
1155 };
1156 
OpenImplicitAnimation(const AnimationOption & option,const RefPtr<Curve> & curve,const std::function<void ()> & finishCallBack)1157 void PipelineBase::OpenImplicitAnimation(
1158     const AnimationOption& option, const RefPtr<Curve>& curve, const std::function<void()>& finishCallBack)
1159 {}
1160 
CloseImplicitAnimation()1161 bool PipelineBase::CloseImplicitAnimation()
1162 {
1163     return true;
1164 }
1165 
IsDestroyed()1166 bool PipelineBase::IsDestroyed()
1167 {
1168     return false;
1169 }
1170 
CheckIfGetTheme()1171 bool PipelineBase::CheckIfGetTheme()
1172 {
1173     return false;
1174 }
1175 
SetDestroyed()1176 void PipelineBase::SetDestroyed() {}
1177 
GetFrontend() const1178 RefPtr<Frontend> PipelineBase::GetFrontend() const
1179 {
1180     return weakFrontend_.Upgrade();
1181 }
1182 
SetTouchPipeline(const WeakPtr<PipelineBase> & context)1183 void PipelineBase::SetTouchPipeline(const WeakPtr<PipelineBase>& context) {}
1184 
GetImageCache() const1185 RefPtr<ImageCache> PipelineBase::GetImageCache() const
1186 {
1187     return nullptr;
1188 }
1189 
OnVirtualKeyboardAreaChange(Rect keyboardArea,const std::shared_ptr<Rosen::RSTransaction> & rsTransaction,const float safeHeight,const bool supportAvoidance,bool forceChange)1190 void PipelineBase::OnVirtualKeyboardAreaChange(Rect keyboardArea,
1191     const std::shared_ptr<Rosen::RSTransaction>& rsTransaction, const float safeHeight, const bool supportAvoidance,
1192     bool forceChange)
1193 {}
1194 
OnVirtualKeyboardAreaChange(Rect keyboardArea,double positionY,double height,const std::shared_ptr<Rosen::RSTransaction> & rsTransaction,bool forceChange)1195 void PipelineBase::OnVirtualKeyboardAreaChange(Rect keyboardArea, double positionY, double height,
1196     const std::shared_ptr<Rosen::RSTransaction>& rsTransaction, bool forceChange)
1197 {}
1198 
OnVsyncEvent(uint64_t nanoTimestamp,uint64_t frameCount)1199 void PipelineBase::OnVsyncEvent(uint64_t nanoTimestamp, uint64_t frameCount) {}
1200 
ReachResponseDeadline() const1201 bool PipelineBase::ReachResponseDeadline() const
1202 {
1203     return false;
1204 }
1205 
SendEventToAccessibility(const AccessibilityEvent & accessibilityEvent)1206 void PipelineBase::SendEventToAccessibility(const AccessibilityEvent& accessibilityEvent) {}
1207 
OnActionEvent(const std::string & action)1208 void PipelineBase::OnActionEvent(const std::string& action) {}
1209 
SetRootSize(double density,float width,float height)1210 void PipelineBase::SetRootSize(double density, float width, float height) {}
1211 
GetCurrentContext()1212 RefPtr<PipelineBase> PipelineBase::GetCurrentContext()
1213 {
1214     return NG::MockPipelineContext::GetCurrent();
1215 }
1216 
GetCurrentContextSafely()1217 RefPtr<PipelineBase> PipelineBase::GetCurrentContextSafely()
1218 {
1219     return NG::MockPipelineContext::GetCurrent();
1220 }
1221 
GetCurrentContextSafelyWithCheck()1222 RefPtr<PipelineBase> PipelineBase::GetCurrentContextSafelyWithCheck()
1223 {
1224     return NG::MockPipelineContext::GetCurrent();
1225 }
1226 
GetCurrentDensity()1227 double PipelineBase::GetCurrentDensity()
1228 {
1229     auto pipelineContext = NG::MockPipelineContext::GetCurrentContext();
1230     return pipelineContext ? pipelineContext->GetDensity() : 1.0;
1231 }
1232 
Px2VpWithCurrentDensity(double px)1233 double PipelineBase::Px2VpWithCurrentDensity(double px)
1234 {
1235     double density = GetCurrentDensity();
1236     return px / density;
1237 }
1238 
Vp2PxWithCurrentDensity(double vp)1239 double PipelineBase::Vp2PxWithCurrentDensity(double vp)
1240 {
1241     double density = GetCurrentDensity();
1242     return vp * density;
1243 }
1244 
NormalizeToPx(const Dimension & dimension) const1245 double PipelineBase::NormalizeToPx(const Dimension& dimension) const
1246 {
1247     if ((dimension.Unit() == DimensionUnit::VP) || (dimension.Unit() == DimensionUnit::FP)) {
1248         return (dimension.Value() * dipScale_);
1249     }
1250     if (dimension.Unit() == DimensionUnit::LPX) {
1251         return (dimension.Value() * designWidthScale_);
1252     }
1253     return dimension.Value();
1254 }
1255 
1256 PipelineBase::~PipelineBase() = default;
1257 
GetTimeFromExternalTimer()1258 uint64_t PipelineBase::GetTimeFromExternalTimer()
1259 {
1260     return 1;
1261 }
1262 
PostAsyncEvent(TaskExecutor::Task && task,const std::string & name,TaskExecutor::TaskType type)1263 void PipelineBase::PostAsyncEvent(TaskExecutor::Task&& task, const std::string& name, TaskExecutor::TaskType type)
1264 {
1265     if (taskExecutor_) {
1266         taskExecutor_->PostTask(std::move(task), type, name);
1267     }
1268 }
1269 
PostAsyncEvent(const TaskExecutor::Task & task,const std::string & name,TaskExecutor::TaskType type)1270 void PipelineBase::PostAsyncEvent(const TaskExecutor::Task& task, const std::string& name, TaskExecutor::TaskType type)
1271 {}
1272 
PostSyncEvent(const TaskExecutor::Task & task,const std::string & name,TaskExecutor::TaskType type)1273 void PipelineBase::PostSyncEvent(const TaskExecutor::Task& task, const std::string& name, TaskExecutor::TaskType type)
1274 {}
1275 
GetAccessibilityManager() const1276 RefPtr<AccessibilityManager> PipelineBase::GetAccessibilityManager() const
1277 {
1278     if (instanceId_ == IGNORE_POSITION_TRANSITION_SWITCH) {
1279         return nullptr;
1280     }
1281     return AceType::MakeRefPtr<MockAccessibilityManager>();
1282 }
1283 
1284 #ifdef WINDOW_SCENE_SUPPORTED
GetUIExtensionManager()1285 const RefPtr<UIExtensionManager>& GetUIExtensionManager()
1286 {
1287     return AceType::MakeRefPtr<UIExtensionManager>();
1288 }
1289 #endif
1290 
Animate(const AnimationOption & option,const RefPtr<Curve> & curve,const std::function<void ()> & propertyCallback,const std::function<void ()> & finishCallback)1291 bool PipelineBase::Animate(const AnimationOption& option, const RefPtr<Curve>& curve,
1292     const std::function<void()>& propertyCallback, const std::function<void()>& finishCallback)
1293 {
1294     return true;
1295 }
1296 
Destroy()1297 void PipelineBase::Destroy() {}
MaybeRelease()1298 bool PipelineBase::MaybeRelease()
1299 {
1300     return AceType::MaybeRelease();
1301 }
1302 
ConvertPxToVp(const Dimension & dimension) const1303 double PipelineBase::ConvertPxToVp(const Dimension& dimension) const
1304 {
1305     if (dimension.Unit() == DimensionUnit::PX) {
1306         return dimension.Value() / dipScale_;
1307     }
1308     return dimension.Value();
1309 }
1310 
HyperlinkStartAbility(const std::string & address) const1311 void PipelineBase::HyperlinkStartAbility(const std::string& address) const {}
1312 
StartAbilityOnQuery(const std::string & queryWord) const1313 void PipelineBase::StartAbilityOnQuery(const std::string& queryWord) const {}
1314 
CalcPageWidth(double rootWidth) const1315 double PipelineBase::CalcPageWidth(double rootWidth) const
1316 {
1317     return rootWidth;
1318 }
1319 
GetPageWidth() const1320 double PipelineBase::GetPageWidth() const
1321 {
1322     return 0;
1323 }
1324 
IsArkUIHookEnabled() const1325 bool PipelineBase::IsArkUIHookEnabled() const
1326 {
1327     auto hookEnabled = SystemProperties::GetArkUIHookEnabled();
1328     if (hookEnabled.has_value()) {
1329         return hookEnabled.value();
1330     }
1331     return isArkUIHookEnabled_;
1332 }
1333 
RequestFrame()1334 void PipelineBase::RequestFrame() {}
1335 
GetCurrentWindowRect() const1336 Rect PipelineBase::GetCurrentWindowRect() const
1337 {
1338     return NG::windowRect_;
1339 }
1340 
GetGlobalDisplayWindowRect() const1341 Rect PipelineBase::GetGlobalDisplayWindowRect() const
1342 {
1343     return NG::windowRect_;
1344 }
1345 
SetTextFieldManager(const RefPtr<ManagerInterface> & manager)1346 void PipelineBase::SetTextFieldManager(const RefPtr<ManagerInterface>& manager)
1347 {
1348     textFieldManager_ = manager;
1349 }
1350 
HasFloatTitle() const1351 bool PipelineBase::HasFloatTitle() const
1352 {
1353     return true;
1354 }
1355 
AddUIExtensionCallbackEvent(NG::UIExtCallbackEventId eventId)1356 void PipelineBase::AddUIExtensionCallbackEvent(NG::UIExtCallbackEventId eventId)
1357 {
1358     uiExtensionEvents_.insert(NG::UIExtCallbackEvent(eventId));
1359 }
1360 
AddAccessibilityCallbackEvent(AccessibilityCallbackEventId event,int64_t parameter)1361 void PipelineBase::AddAccessibilityCallbackEvent(AccessibilityCallbackEventId event, int64_t parameter)
1362 {
1363 }
1364 
GetCustomTitleHeight()1365 Dimension NG::PipelineContext::GetCustomTitleHeight()
1366 {
1367     return Dimension();
1368 }
1369 
SetUiDVSyncCommandTime(uint64_t vsyncTime)1370 void PipelineBase::SetUiDVSyncCommandTime(uint64_t vsyncTime)
1371 {
1372 }
1373 
ForceUpdateDesignWidthScale(int32_t width)1374 void PipelineBase::ForceUpdateDesignWidthScale(int32_t width)
1375 {
1376 }
1377 
SetFontScale(float fontScale)1378 void PipelineBase::SetFontScale(float fontScale)
1379 {
1380     fontScale_ = fontScale;
1381 }
1382 
CatchInteractiveAnimations(const std::function<void ()> & animationCallback)1383 bool NG::PipelineContext::CatchInteractiveAnimations(const std::function<void()>& animationCallback)
1384 {
1385     return false;
1386 }
1387 
SetUiDvsyncSwitch(bool on)1388 void PipelineBase::SetUiDvsyncSwitch(bool on) {}
1389 
CheckThreadSafe()1390 bool NG::PipelineContext::CheckThreadSafe()
1391 {
1392     return false;
1393 }
1394 
1395 #ifdef NEED_PIPELINE_CONTEXT_BE_NULLPTR
GetContext()1396 PipelineContext* TextPattern::GetContext()
1397 {
1398     return nullptr;
1399 }
1400 #endif
1401 
FlushUITaskWithSingleDirtyNode(const RefPtr<NG::FrameNode> & node)1402 void NG::PipelineContext::FlushUITaskWithSingleDirtyNode(const RefPtr<NG::FrameNode>& node)
1403 {
1404     CHECK_NULL_VOID(node);
1405     auto layoutProperty = node->GetLayoutProperty();
1406     CHECK_NULL_VOID(layoutProperty);
1407     auto layoutConstraint = node->GetLayoutConstraint();
1408     if (layoutProperty->GetLayoutRect()) {
1409         node->SetActive(true, true);
1410         node->Measure(std::nullopt);
1411         node->Layout();
1412     } else {
1413         auto ancestorNodeOfFrame = node->GetAncestorNodeOfFrame(true);
1414         node->Measure(layoutConstraint);
1415         node->Layout();
1416     }
1417 }
1418 
SetBoolStatus(bool value)1419 void SetBoolStatus(bool value)
1420 {
1421     g_setBoolStatus = value;
1422 }
1423 
DumpUIExt() const1424 void NG::PipelineContext::DumpUIExt() const {}
1425 
RegisterAttachedNode(UINode * uiNode)1426 void NG::PipelineContext::RegisterAttachedNode(UINode* uiNode) {}
1427 
RemoveAttachedNode(UINode * uiNode)1428 void NG::PipelineContext::RemoveAttachedNode(UINode* uiNode) {}
1429 
EnableContainerModalGesture(bool isEnable)1430 void NG::PipelineContext::EnableContainerModalGesture(bool isEnable) {}
1431 
GetContainerFloatingTitleVisible()1432 bool NG::PipelineContext::GetContainerFloatingTitleVisible()
1433 {
1434     return false;
1435 }
1436 
GetContainerCustomTitleVisible()1437 bool NG::PipelineContext::GetContainerCustomTitleVisible()
1438 {
1439     return g_isContainerCustomTitleVisible;
1440 }
1441 
GetContainerControlButtonVisible()1442 bool NG::PipelineContext::GetContainerControlButtonVisible()
1443 {
1444     return g_isContainerControlButtonVisible;
1445 }
1446 
SetBackgroundColorModeUpdated(bool backgroundColorModeUpdated)1447 void NG::PipelineContext::SetBackgroundColorModeUpdated(bool backgroundColorModeUpdated) {}
1448 
GetUIContext()1449 RefPtr<Kit::UIContext> NG::PipelineContext::GetUIContext()
1450 {
1451     return nullptr;
1452 }
1453 
ScopedLayout(PipelineContext * pipeline)1454 NG::ScopedLayout::ScopedLayout(PipelineContext* pipeline) {}
~ScopedLayout()1455 NG::ScopedLayout::~ScopedLayout() {}
1456 
SetDisplayWindowRectInfo(const Rect & displayWindowRectInfo)1457 void NG::PipelineContext::SetDisplayWindowRectInfo(const Rect& displayWindowRectInfo)
1458 {
1459     auto offSetPosX_ = displayWindowRectInfo_.Left() - displayWindowRectInfo.Left();
1460     auto offSetPosY_ = displayWindowRectInfo_.Top() - displayWindowRectInfo.Top();
1461     if (!NearZero(offSetPosX_) || !NearZero(offSetPosY_)) {
1462         if (lastMouseEvent_) {
1463             lastMouseEvent_->x += offSetPosX_;
1464             lastMouseEvent_->y += offSetPosY_;
1465         }
1466     }
1467     displayWindowRectInfo_ = displayWindowRectInfo;
1468 }
1469 
SetIsTransFlag(bool result)1470 void NG::PipelineContext::SetIsTransFlag(bool result)
1471 {
1472     isTransFlag_ = result;
1473 }
1474 
SetWindowSizeChangeReason(WindowSizeChangeReason reason)1475 void NG::PipelineContext::SetWindowSizeChangeReason(WindowSizeChangeReason reason)
1476 {
1477     windowSizeChangeReason_ = reason;
1478 }
1479 
NotifyColorModeChange(uint32_t colorMode)1480 void NG::PipelineContext::NotifyColorModeChange(uint32_t colorMode) {}
1481 
GetRSUIDirector()1482 std::shared_ptr<Rosen::RSUIDirector> NG::PipelineContext::GetRSUIDirector()
1483 {
1484     return nullptr;
1485 }
1486 
GetCurrentPageNameCallback()1487 std::string NG::PipelineContext::GetCurrentPageNameCallback()
1488 {
1489     return "";
1490 }
1491 
SetVsyncListener(VsyncCallbackFun vsync)1492 void NG::PipelineContext::SetVsyncListener(VsyncCallbackFun vsync)
1493 {
1494     vsyncListener_ = std::move(vsync);
1495 }
1496 
RegisterArkUIObjectLifecycleCallback(Kit::ArkUIObjectLifecycleCallback && callback)1497 void NG::PipelineContext::RegisterArkUIObjectLifecycleCallback(Kit::ArkUIObjectLifecycleCallback&& callback)
1498 {
1499     objectLifecycleCallback_ = std::move(callback);
1500 }
1501 
UnregisterArkUIObjectLifecycleCallback()1502 void NG::PipelineContext::UnregisterArkUIObjectLifecycleCallback()
1503 {
1504     objectLifecycleCallback_ = nullptr;
1505 }
1506 
FireArkUIObjectLifecycleCallback(void * data)1507 void NG::PipelineContext::FireArkUIObjectLifecycleCallback(void* data)
1508 {
1509     CHECK_NULL_VOID(objectLifecycleCallback_);
1510     objectLifecycleCallback_(data);
1511 }
1512 
CheckSourceTypeChange(SourceType currentSourceType)1513 bool NG::PipelineContext::CheckSourceTypeChange(SourceType currentSourceType)
1514 {
1515     bool ret = false;
1516     if (currentSourceType != lastSourceType_) {
1517         ret = true;
1518         lastSourceType_ = currentSourceType;
1519     }
1520     return ret;
1521 }
1522 
GetPostEventManager()1523 const RefPtr<NG::PostEventManager>& NG::PipelineContext::GetPostEventManager()
1524 {
1525     return postEventManager_;
1526 }
1527 
StartImplicitAnimation(const AnimationOption & option,const RefPtr<Curve> & curve,const std::function<void ()> & finishCallback,const std::optional<int32_t> & count)1528 void PipelineBase::StartImplicitAnimation(const AnimationOption& option, const RefPtr<Curve>& curve,
1529     const std::function<void()>& finishCallback, const std::optional<int32_t>& count) {}
1530 } // namespace OHOS::Ace
1531 // pipeline_base ===============================================================
1532 
1533 // WindowManager ===============================================================
1534 namespace OHOS::Ace {
GetCurrentViewportConfig()1535 RefPtr<PageViewportConfig> WindowManager::GetCurrentViewportConfig()
1536 {
1537     if (getCurrentViewportConfigCallback_) {
1538         return getCurrentViewportConfigCallback_();
1539     }
1540     return nullptr;
1541 }
1542 
GetTargetViewportConfig(std::optional<Orientation> orientation,std::optional<bool> enableStatusBar,std::optional<bool> statusBarAnimation,std::optional<bool> enableNavIndicator)1543 RefPtr<PageViewportConfig> WindowManager::GetTargetViewportConfig(
1544     std::optional<Orientation> orientation, std::optional<bool> enableStatusBar,
1545     std::optional<bool> statusBarAnimation, std::optional<bool> enableNavIndicator)
1546 {
1547     if (getTargetViewportConfigCallback_) {
1548         return getTargetViewportConfigCallback_(
1549             orientation, enableStatusBar, statusBarAnimation, enableNavIndicator);
1550     }
1551     return nullptr;
1552 }
1553 } // namespace OHOS::Ace
1554 // WindowManager ===============================================================
1555