• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022-2023 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/components/common/layout/constants.h"
24 #include "core/components_ng/base/frame_node.h"
25 #include "core/components_ng/pattern/root/root_pattern.h"
26 #include "core/components_ng/pattern/stage/stage_pattern.h"
27 #include "core/pipeline/pipeline_base.h"
28 #include "core/pipeline_ng/pipeline_context.h"
29 #include "core/pipeline_ng/ui_task_scheduler.h"
30 
31 namespace OHOS::Ace::NG {
32 namespace {
33 constexpr double DISPLAY_WIDTH = 720;
34 constexpr double DISPLAY_HEIGHT = 1280;
35 static std::list<PipelineContext::PredictTask> predictTasks_;
36 static Rect windowRect_;
37 } // namespace
38 
39 RefPtr<MockPipelineContext> MockPipelineContext::pipeline_;
40 uint64_t UITaskScheduler::frameId_ = 0;
41 
42 // mock_pipeline_context =======================================================
SetUp()43 void MockPipelineContext::SetUp()
44 {
45     pipeline_ = AceType::MakeRefPtr<MockPipelineContext>();
46     pipeline_->eventManager_ = AceType::MakeRefPtr<EventManager>();
47     pipeline_->windowManager_ = AceType::MakeRefPtr<WindowManager>();
48     pipeline_->rootWidth_ = DISPLAY_WIDTH;
49     pipeline_->rootHeight_ = DISPLAY_HEIGHT;
50     pipeline_->SetupRootElement();
51     windowRect_ = { 0., 0., NG::DISPLAY_WIDTH, NG::DISPLAY_HEIGHT };
52 }
53 
TearDown()54 void MockPipelineContext::TearDown()
55 {
56     if (pipeline_) {
57         pipeline_->Destroy();
58         pipeline_ = nullptr;
59     }
60     predictTasks_.clear();
61 }
62 
GetCurrent()63 RefPtr<MockPipelineContext> MockPipelineContext::GetCurrent()
64 {
65     return pipeline_;
66 }
67 
SetRootSize(double rootWidth,double rootHeight)68 void MockPipelineContext::SetRootSize(double rootWidth, double rootHeight)
69 {
70     rootWidth_ = rootWidth;
71     rootHeight_ = rootHeight;
72 }
73 
SetCurrentWindowRect(Rect rect)74 void MockPipelineContext::SetCurrentWindowRect(Rect rect)
75 {
76     windowRect_ = rect;
77 }
78 // mock_pipeline_context =======================================================
79 
80 // pipeline_context ============================================================
GetCurrentRootWidth()81 float PipelineContext::GetCurrentRootWidth()
82 {
83     return static_cast<float>(MockPipelineContext::GetCurrent()->rootWidth_);
84 }
85 
GetCurrentRootHeight()86 float PipelineContext::GetCurrentRootHeight()
87 {
88     return static_cast<float>(MockPipelineContext::GetCurrent()->rootHeight_);
89 }
90 
GetNavigationController(const std::string & id)91 std::shared_ptr<NavigationController> PipelineContext::GetNavigationController(
92     const std::string& id)
93 {
94     return nullptr;
95 }
96 
AddOrReplaceNavigationNode(const std::string & id,const WeakPtr<FrameNode> & node)97 void PipelineContext::AddOrReplaceNavigationNode(
98     const std::string& id, const WeakPtr<FrameNode>& node) {}
99 
DeleteNavigationNode(const std::string & id)100 void PipelineContext::DeleteNavigationNode(const std::string &id) {}
101 
GetCurrentContext()102 RefPtr<PipelineContext> PipelineContext::GetCurrentContext()
103 {
104     return MockPipelineContext::GetCurrent();
105 }
106 
GetCurrentContextSafely()107 RefPtr<PipelineContext> PipelineContext::GetCurrentContextSafely()
108 {
109     return MockPipelineContext::GetCurrent();
110 }
111 
GetCurrentContextSafelyWithCheck()112 RefPtr<PipelineContext> PipelineContext::GetCurrentContextSafelyWithCheck()
113 {
114     return MockPipelineContext::GetCurrent();
115 }
116 
GetCurrentContextPtrSafely()117 PipelineContext* PipelineContext::GetCurrentContextPtrSafely()
118 {
119     auto context = MockPipelineContext::GetCurrent();
120     return AceType::RawPtr(context);
121 }
122 
GetCurrentContextPtrSafelyWithCheck()123 PipelineContext* PipelineContext::GetCurrentContextPtrSafelyWithCheck()
124 {
125     auto context = MockPipelineContext::GetCurrent();
126     return AceType::RawPtr(context);
127 }
128 
GetMainPipelineContext()129 RefPtr<PipelineContext> PipelineContext::GetMainPipelineContext()
130 {
131     return MockPipelineContext::GetCurrent();
132 }
133 
GetContextByContainerId(int32_t)134 RefPtr<PipelineContext> PipelineContext::GetContextByContainerId(int32_t /* containerId */)
135 {
136     return MockPipelineContext::GetCurrent();
137 }
138 
AddWindowFocusChangedCallback(int32_t nodeId)139 void PipelineContext::AddWindowFocusChangedCallback(int32_t nodeId) {}
140 
RemoveWindowFocusChangedCallback(int32_t nodeId)141 void PipelineContext::RemoveWindowFocusChangedCallback(int32_t nodeId) {}
142 
SetupRootElement()143 void PipelineContext::SetupRootElement()
144 {
145     rootNode_ = FrameNode::CreateFrameNodeWithTree(
146         V2::ROOT_ETS_TAG, ElementRegister::GetInstance()->MakeUniqueId(), MakeRefPtr<RootPattern>());
147     rootNode_->SetHostRootId(GetInstanceId());
148     rootNode_->SetHostPageId(-1);
149     rootNode_->SetActive(true);
150     CalcSize idealSize { CalcLength(rootWidth_), CalcLength(rootHeight_) };
151     MeasureProperty layoutConstraint;
152     layoutConstraint.selfIdealSize = idealSize;
153     layoutConstraint.maxSize = idealSize;
154     rootNode_->UpdateLayoutConstraint(layoutConstraint);
155     auto rootFocusHub = rootNode_->GetOrCreateFocusHub();
156     rootFocusHub->SetFocusType(FocusType::SCOPE);
157     rootFocusHub->SetFocusable(true);
158     rootNode_->AttachToMainTree(false, this);
159     auto stageNode = FrameNode::CreateFrameNode(
160         V2::STAGE_ETS_TAG, ElementRegister::GetInstance()->MakeUniqueId(), MakeRefPtr<StagePattern>());
161     rootNode_->AddChild(stageNode);
162     stageManager_ = MakeRefPtr<StageManager>(stageNode);
163     overlayManager_ = MakeRefPtr<OverlayManager>(rootNode_);
164     fullScreenManager_ = MakeRefPtr<FullScreenManager>(rootNode_);
165     selectOverlayManager_ = MakeRefPtr<SelectOverlayManager>(rootNode_);
166     dragDropManager_ = MakeRefPtr<DragDropManager>();
167     focusManager_ = MakeRefPtr<FocusManager>(AceType::Claim(this));
168     sharedTransitionManager_ = MakeRefPtr<SharedOverlayManager>(rootNode_);
169 }
170 
SendEventToAccessibilityWithNode(const AccessibilityEvent & accessibilityEvent,const RefPtr<FrameNode> & node)171 void PipelineContext::SendEventToAccessibilityWithNode(
172     const AccessibilityEvent& accessibilityEvent, const RefPtr<FrameNode>& node)
173 {}
174 
OnTouchEvent(const TouchEvent & point,const RefPtr<FrameNode> & node,bool isSubPipe,bool isEventsPassThrough)175 void PipelineContext::OnTouchEvent(
176     const TouchEvent& point, const RefPtr<FrameNode>& node, bool isSubPipe, bool isEventsPassThrough)
177 {}
178 
OnMouseEvent(const MouseEvent & event,const RefPtr<FrameNode> & node)179 void PipelineContext::OnMouseEvent(const MouseEvent& event, const RefPtr<FrameNode>& node) {}
180 
OnAxisEvent(const AxisEvent & event,const RefPtr<FrameNode> & node)181 void PipelineContext::OnAxisEvent(const AxisEvent& event, const RefPtr<FrameNode>& node) {}
182 
OnTouchEvent(const TouchEvent & point,bool isSubPipe,bool isEventsPassThrough)183 void PipelineContext::OnTouchEvent(const TouchEvent& point, bool isSubPipe, bool isEventsPassThrough) {}
184 
OnAccessibilityHoverEvent(const TouchEvent & point,const RefPtr<NG::FrameNode> & node)185 void PipelineContext::OnAccessibilityHoverEvent(const TouchEvent& point, const RefPtr<NG::FrameNode>& node) {}
186 
OnPenHoverEvent(const TouchEvent & point,const RefPtr<NG::FrameNode> & node)187 void PipelineContext::OnPenHoverEvent(const TouchEvent& point, const RefPtr<NG::FrameNode>& node) {}
188 
HandlePenHoverOut(const TouchEvent & point)189 void PipelineContext::HandlePenHoverOut(const TouchEvent& point) {}
190 
OnMouseEvent(const MouseEvent & event)191 void PipelineContext::OnMouseEvent(const MouseEvent& event) {}
192 
FlushTouchEvents()193 void PipelineContext::FlushTouchEvents() {}
194 
OnAxisEvent(const AxisEvent & event)195 void PipelineContext::OnAxisEvent(const AxisEvent& event) {}
196 
OnDragEvent(const DragPointerEvent & pointerEvent,DragEventAction action,const RefPtr<NG::FrameNode> & node)197 void PipelineContext::OnDragEvent(
198     const DragPointerEvent& pointerEvent, DragEventAction action, const RefPtr<NG::FrameNode>& node)
199 {}
200 
OnIdle(int64_t deadline)201 void PipelineContext::OnIdle(int64_t deadline)
202 {
203     const auto tasks(std::move(predictTasks_));
204     for (const auto& task : tasks) {
205         task(deadline, false);
206     }
207 }
208 
Destroy()209 void PipelineContext::Destroy()
210 {
211     dragDropManager_.Reset();
212     rootNode_.Reset();
213 }
214 
OnShow()215 void PipelineContext::OnShow() {}
216 
OnHide()217 void PipelineContext::OnHide() {}
218 
RemoveOnAreaChangeNode(int32_t nodeId)219 void PipelineContext::RemoveOnAreaChangeNode(int32_t nodeId) {}
220 
AddWindowStateChangedCallback(int32_t nodeId)221 void PipelineContext::AddWindowStateChangedCallback(int32_t nodeId) {}
222 
RemoveWindowStateChangedCallback(int32_t nodeId)223 void PipelineContext::RemoveWindowStateChangedCallback(int32_t nodeId) {}
224 
AddNodesToNotifyMemoryLevel(int32_t nodeId)225 void PipelineContext::AddNodesToNotifyMemoryLevel(int32_t nodeId) {}
226 
RemoveNodesToNotifyMemoryLevel(int32_t nodeId)227 void PipelineContext::RemoveNodesToNotifyMemoryLevel(int32_t nodeId) {}
228 
WindowFocus(bool isFocus)229 void PipelineContext::WindowFocus(bool isFocus) {}
230 
ContainerModalUnFocus()231 void PipelineContext::ContainerModalUnFocus() {}
232 
ShowContainerTitle(bool isShow,bool hasDeco,bool needUpdate)233 void PipelineContext::ShowContainerTitle(bool isShow, bool hasDeco, bool needUpdate) {}
234 
UpdateTitleInTargetPos(bool isShow,int32_t height)235 void PipelineContext::UpdateTitleInTargetPos(bool isShow, int32_t height) {}
236 
SetContainerWindow(bool isShow)237 void PipelineContext::SetContainerWindow(bool isShow) {}
238 
SetAppBgColor(const Color & color)239 void PipelineContext::SetAppBgColor(const Color& color) {}
240 
ChangeDarkModeBrightness()241 void PipelineContext::ChangeDarkModeBrightness() {}
242 
SetAppTitle(const std::string & title)243 void PipelineContext::SetAppTitle(const std::string& title) {}
244 
SetAppIcon(const RefPtr<PixelMap> & icon)245 void PipelineContext::SetAppIcon(const RefPtr<PixelMap>& icon) {}
246 
OnSurfaceDensityChanged(double density)247 void PipelineContext::OnSurfaceDensityChanged(double density) {}
248 
OnTransformHintChanged(uint32_t transform)249 void PipelineContext::OnTransformHintChanged(uint32_t transform) {}
250 
SetRootRect(double width,double height,double offset)251 void PipelineContext::SetRootRect(double width, double height, double offset) {}
252 
FlushBuild()253 void PipelineContext::FlushBuild() {}
254 
FlushBuildFinishCallbacks()255 void PipelineContext::FlushBuildFinishCallbacks()
256 {
257     decltype(buildFinishCallbacks_) buildFinishCallbacks(std::move(buildFinishCallbacks_));
258     for (const auto& func : buildFinishCallbacks) {
259         if (func) {
260             func();
261         }
262     }
263 }
264 
NotifyMemoryLevel(int32_t level)265 void PipelineContext::NotifyMemoryLevel(int32_t level) {}
266 
FlushMessages()267 void PipelineContext::FlushMessages() {}
268 
FlushModifier()269 void PipelineContext::FlushModifier() {}
270 
FlushUITasks(bool triggeredByImplicitAnimation)271 void PipelineContext::FlushUITasks(bool triggeredByImplicitAnimation) {}
272 
FlushAfterLayoutCallbackInImplicitAnimationTask()273 void PipelineContext::FlushAfterLayoutCallbackInImplicitAnimationTask() {}
274 
DetachNode(RefPtr<UINode>)275 void PipelineContext::DetachNode(RefPtr<UINode>) {}
276 
Finish(bool autoFinish) const277 void PipelineContext::Finish(bool autoFinish) const {}
278 
FlushVsync(uint64_t nanoTimestamp,uint32_t frameCount)279 void PipelineContext::FlushVsync(uint64_t nanoTimestamp, uint32_t frameCount) {}
280 
FlushPipelineWithoutAnimation()281 void PipelineContext::FlushPipelineWithoutAnimation() {}
282 
FlushFocus()283 void PipelineContext::FlushFocus() {}
284 
FlushOnceVsyncTask()285 void PipelineContext::FlushOnceVsyncTask() {}
286 
SetOnWindowFocused(const std::function<void ()> & callback)287 void PipelineContext::SetOnWindowFocused(const std::function<void()>& callback) {}
288 
DispatchDisplaySync(uint64_t nanoTimestamp)289 void PipelineContext::DispatchDisplaySync(uint64_t nanoTimestamp) {}
290 
FlushAnimation(uint64_t nanoTimestamp)291 void PipelineContext::FlushAnimation(uint64_t nanoTimestamp) {}
292 
FlushRequestFocus()293 void PipelineContext::FlushRequestFocus() {}
294 
CheckNeedUpdateBackgroundColor(Color & color)295 void PipelineContext::CheckNeedUpdateBackgroundColor(Color& color) {}
296 
CheckNeedDisableUpdateBackgroundImage()297 bool PipelineContext::CheckNeedDisableUpdateBackgroundImage()
298 {
299     return false;
300 }
301 
OnVirtualKeyboardHeightChange(float keyboardHeight,const std::shared_ptr<Rosen::RSTransaction> & rsTransaction,const float safeHeight,const bool supportAvoidance,bool forceChange)302 void PipelineContext::OnVirtualKeyboardHeightChange(float keyboardHeight,
303     const std::shared_ptr<Rosen::RSTransaction>& rsTransaction, const float safeHeight,
304     const bool supportAvoidance, bool forceChange)
305 {}
306 
OnVirtualKeyboardHeightChange(float keyboardHeight,double positionY,double height,const std::shared_ptr<Rosen::RSTransaction> & rsTransaction,bool forceChange)307 void PipelineContext::OnVirtualKeyboardHeightChange(float keyboardHeight, double positionY, double height,
308     const std::shared_ptr<Rosen::RSTransaction>& rsTransaction, bool forceChange)
309 {}
310 
AvoidanceLogic(float keyboardHeight,const std::shared_ptr<Rosen::RSTransaction> & rsTransaction,const float safeHeight,const bool supportAvoidance)311 void PipelineContext::AvoidanceLogic(float keyboardHeight, const std::shared_ptr<Rosen::RSTransaction>& rsTransaction,
312     const float safeHeight, const bool supportAvoidance)
313 {}
314 
OriginalAvoidanceLogic(float keyboardHeight,const std::shared_ptr<Rosen::RSTransaction> & rsTransaction)315 void PipelineContext::OriginalAvoidanceLogic(
316     float keyboardHeight, const std::shared_ptr<Rosen::RSTransaction>& rsTransaction)
317 {}
318 
OnFoldStatusChange(FoldStatus foldStatus)319 void PipelineContext::OnFoldStatusChange(FoldStatus foldStatus) {}
320 
OnFoldDisplayModeChange(FoldDisplayMode foldDisplayMode)321 void PipelineContext::OnFoldDisplayModeChange(FoldDisplayMode foldDisplayMode) {}
322 
OnSurfaceChanged(int32_t width,int32_t height,WindowSizeChangeReason type,const std::shared_ptr<Rosen::RSTransaction> & rsTransaction)323 void PipelineContext::OnSurfaceChanged(int32_t width, int32_t height, WindowSizeChangeReason type,
324     const std::shared_ptr<Rosen::RSTransaction>& rsTransaction)
325 {}
326 
OnLayoutCompleted(const std::string & componentId)327 void PipelineContext::OnLayoutCompleted(const std::string& componentId) {}
328 
CheckOverlayFocus()329 bool PipelineContext::CheckOverlayFocus()
330 {
331     return false;
332 }
333 
OnDrawCompleted(const std::string & componentId)334 void PipelineContext::OnDrawCompleted(const std::string& componentId) {}
335 
SetNeedRenderNode(const WeakPtr<FrameNode> & node)336 void PipelineContext::SetNeedRenderNode(const WeakPtr<FrameNode>& node) {}
337 
OnSurfacePositionChanged(int32_t posX,int32_t posY)338 void PipelineContext::OnSurfacePositionChanged(int32_t posX, int32_t posY) {}
339 
FlushReload(const ConfigurationChange & configurationChange,bool fullUpdate)340 void PipelineContext::FlushReload(const ConfigurationChange& configurationChange, bool fullUpdate) {}
341 
SetContainerButtonHide(bool hideSplit,bool hideMaximize,bool hideMinimize,bool hideClose)342 void PipelineContext::SetContainerButtonHide(bool hideSplit, bool hideMaximize, bool hideMinimize, bool hideClose) {}
343 
AddAnimationClosure(std::function<void ()> && animation)344 void PipelineContext::AddAnimationClosure(std::function<void()>&& animation) {}
345 
SetCloseButtonStatus(bool isEnabled)346 void PipelineContext::SetCloseButtonStatus(bool isEnabled) {}
347 
GetSelectOverlayManager()348 const RefPtr<SelectOverlayManager>& PipelineContext::GetSelectOverlayManager()
349 {
350     return selectOverlayManager_;
351 }
352 
GetDragDropManager()353 const RefPtr<DragDropManager>& PipelineContext::GetDragDropManager()
354 {
355     return dragDropManager_;
356 }
357 
GetFocusManager() const358 const RefPtr<FocusManager>& PipelineContext::GetFocusManager() const
359 {
360     return focusManager_;
361 }
362 
GetOrCreateFocusManager()363 const RefPtr<FocusManager>& PipelineContext::GetOrCreateFocusManager()
364 {
365     if (!focusManager_) {
366         focusManager_ = MakeRefPtr<FocusManager>(AceType::Claim(this));
367     }
368     return focusManager_;
369 }
370 
GetStageManager()371 const RefPtr<StageManager>& PipelineContext::GetStageManager()
372 {
373     return stageManager_;
374 }
375 
GetFullScreenManager()376 const RefPtr<FullScreenManager>& PipelineContext::GetFullScreenManager()
377 {
378     return fullScreenManager_;
379 }
380 
GetOverlayManager()381 const RefPtr<OverlayManager>& PipelineContext::GetOverlayManager()
382 {
383     return overlayManager_;
384 }
385 
AddScheduleTask(const RefPtr<ScheduleTask> & task)386 uint32_t PipelineContext::AddScheduleTask(const RefPtr<ScheduleTask>& task)
387 {
388     return 0;
389 }
390 
RemoveScheduleTask(uint32_t id)391 void PipelineContext::RemoveScheduleTask(uint32_t id) {}
392 
AddOnAreaChangeNode(int32_t nodeId)393 void PipelineContext::AddOnAreaChangeNode(int32_t nodeId) {}
394 
OnNonPointerEvent(const NonPointerEvent & event)395 bool PipelineContext::OnNonPointerEvent(const NonPointerEvent& event)
396 {
397     return false;
398 }
399 
RequestFocus(const std::string & targetNodeId,bool isSyncRequest)400 bool PipelineContext::RequestFocus(const std::string& targetNodeId, bool isSyncRequest)
401 {
402     return false;
403 }
404 
OnDumpInfo(const std::vector<std::string> & params) const405 bool PipelineContext::OnDumpInfo(const std::vector<std::string>& params) const
406 {
407     return false;
408 }
409 
OnBackPressed()410 bool PipelineContext::OnBackPressed()
411 {
412     return false;
413 }
414 
AddDirtyFocus(const RefPtr<FrameNode> & node)415 void PipelineContext::AddDirtyFocus(const RefPtr<FrameNode>& node) {}
416 
AddDirtyPropertyNode(const RefPtr<FrameNode> & dirty)417 void PipelineContext::AddDirtyPropertyNode(const RefPtr<FrameNode>& dirty) {}
418 
AddDirtyRequestFocus(const RefPtr<FrameNode> & node)419 void PipelineContext::AddDirtyRequestFocus(const RefPtr<FrameNode>& node) {}
420 
AddDirtyFreezeNode(FrameNode * node)421 void PipelineContext::AddDirtyFreezeNode(FrameNode* node) {}
422 
423 // core/pipeline_ng/pipeline_context.h depends on the specific impl
FlushTaskWithCheck(bool triggeredByImplicitAnimation)424 void UITaskScheduler::FlushTaskWithCheck(bool triggeredByImplicitAnimation) {}
425 
UITaskScheduler()426 UITaskScheduler::UITaskScheduler() {}
427 
428 UITaskScheduler::~UITaskScheduler() = default;
429 
AddDirtyLayoutNode(const RefPtr<FrameNode> & dirty)430 void PipelineContext::AddDirtyLayoutNode(const RefPtr<FrameNode>& dirty) {}
431 
AddLayoutNode(const RefPtr<FrameNode> & layoutNode)432 void PipelineContext::AddLayoutNode(const RefPtr<FrameNode>& layoutNode) {}
433 
AddDirtyRenderNode(const RefPtr<FrameNode> & dirty)434 void PipelineContext::AddDirtyRenderNode(const RefPtr<FrameNode>& dirty) {}
435 
AddBuildFinishCallBack(std::function<void ()> && callback)436 void PipelineContext::AddBuildFinishCallBack(std::function<void()>&& callback)
437 {
438     buildFinishCallbacks_.emplace_back(std::move(callback));
439 }
440 
AddPredictTask(PredictTask && task)441 void PipelineContext::AddPredictTask(PredictTask&& task)
442 {
443     predictTasks_.emplace_back(task);
444 }
445 
AddAfterLayoutTask(std::function<void ()> && task,bool isFlushInImplicitAnimationTask)446 void PipelineContext::AddAfterLayoutTask(std::function<void()>&& task, bool isFlushInImplicitAnimationTask)
447 {
448     if (task) {
449         task();
450     }
451 }
452 
AddSyncGeometryNodeTask(std::function<void ()> && task)453 void PipelineContext::AddSyncGeometryNodeTask(std::function<void()>&& task)
454 {
455     if (task) {
456         task();
457     }
458 }
459 
StopWindowAnimation()460 void PipelineContext::StopWindowAnimation() {}
461 
FlushSyncGeometryNodeTasks()462 void PipelineContext::FlushSyncGeometryNodeTasks() {}
463 
AddAfterRenderTask(std::function<void ()> && task)464 void PipelineContext::AddAfterRenderTask(std::function<void()>&& task)
465 {
466     if (task) {
467         task();
468     }
469 }
470 
FlushPipelineImmediately()471 void PipelineContext::FlushPipelineImmediately() {}
472 
RebuildFontNode()473 void PipelineContext::RebuildFontNode() {}
474 
GetCurrentFrameInfo(uint64_t,uint64_t)475 FrameInfo* PipelineContext::GetCurrentFrameInfo(uint64_t /* recvTime */, uint64_t /* timeStamp */)
476 {
477     return nullptr;
478 }
479 
DumpPipelineInfo() const480 void PipelineContext::DumpPipelineInfo() const {}
481 
AddVisibleAreaChangeNode(int32_t nodeId)482 void PipelineContext::AddVisibleAreaChangeNode(int32_t nodeId) {}
483 
AddVisibleAreaChangeNode(const RefPtr<FrameNode> & node,const std::vector<double> & ratio,const VisibleRatioCallback & callback,bool isUserCallback,bool isCalculateInnerClip)484 void PipelineContext::AddVisibleAreaChangeNode(const RefPtr<FrameNode>& node, const std::vector<double>& ratio,
485     const VisibleRatioCallback& callback, bool isUserCallback, bool isCalculateInnerClip)
486 {
487     CHECK_NULL_VOID(callback);
488     callback(false, 0.0);
489     callback(true, ratio[0]);
490 }
491 
RemoveVisibleAreaChangeNode(int32_t nodeId)492 void PipelineContext::RemoveVisibleAreaChangeNode(int32_t nodeId) {}
493 
HandleVisibleAreaChangeEvent(uint64_t nanoTimestamp)494 void PipelineContext::HandleVisibleAreaChangeEvent(uint64_t nanoTimestamp) {}
495 
ChangeMouseStyle(int32_t nodeId,MouseFormat format,int32_t windowId,bool isBypass,MouseStyleChangeReason reason)496 bool PipelineContext::ChangeMouseStyle(int32_t nodeId, MouseFormat format, int32_t windowId,
497     bool isBypass, MouseStyleChangeReason reason)
498 {
499     return true;
500 }
501 
RestoreNodeInfo(std::unique_ptr<JsonValue> nodeInfo)502 void PipelineContext::RestoreNodeInfo(std::unique_ptr<JsonValue> nodeInfo) {}
503 
GetStoredNodeInfo()504 std::unique_ptr<JsonValue> PipelineContext::GetStoredNodeInfo()
505 {
506     return nullptr;
507 }
508 
StoreNode(int32_t restoreId,const WeakPtr<FrameNode> & node)509 void PipelineContext::StoreNode(int32_t restoreId, const WeakPtr<FrameNode>& node) {}
510 
GetRestoreInfo(int32_t restoreId,std::string & restoreInfo)511 bool PipelineContext::GetRestoreInfo(int32_t restoreId, std::string& restoreInfo)
512 {
513     return false;
514 }
515 
AddDirtyCustomNode(const RefPtr<UINode> & dirtyNode)516 void PipelineContext::AddDirtyCustomNode(const RefPtr<UINode>& dirtyNode) {}
517 
AddWindowSizeChangeCallback(int32_t nodeId)518 void PipelineContext::AddWindowSizeChangeCallback(int32_t nodeId) {}
519 
RemoveWindowSizeChangeCallback(int32_t nodeId)520 void PipelineContext::RemoveWindowSizeChangeCallback(int32_t nodeId) {}
521 
AddNavigationNode(int32_t pageId,WeakPtr<UINode> navigationNode)522 void PipelineContext::AddNavigationNode(int32_t pageId, WeakPtr<UINode> navigationNode) {}
523 
RemoveNavigationNode(int32_t pageId,int32_t nodeId)524 void PipelineContext::RemoveNavigationNode(int32_t pageId, int32_t nodeId) {}
FirePageChanged(int32_t pageId,bool isOnShow)525 void PipelineContext::FirePageChanged(int32_t pageId, bool isOnShow) {}
UpdateSystemSafeArea(const SafeAreaInsets & systemSafeArea)526 void PipelineContext::UpdateSystemSafeArea(const SafeAreaInsets& systemSafeArea)
527 {
528     safeAreaManager_->UpdateSystemSafeArea(systemSafeArea);
529 }
UpdateCutoutSafeArea(const SafeAreaInsets & cutoutSafeArea)530 void PipelineContext::UpdateCutoutSafeArea(const SafeAreaInsets& cutoutSafeArea)
531 {
532     safeAreaManager_->UpdateCutoutSafeArea(cutoutSafeArea);
533 }
UpdateNavSafeArea(const SafeAreaInsets & navSafeArea)534 void PipelineContext::UpdateNavSafeArea(const SafeAreaInsets& navSafeArea) {};
GetEnableKeyBoardAvoidMode()535 KeyBoardAvoidMode PipelineContext::GetEnableKeyBoardAvoidMode()
536 {
537     return KeyBoardAvoidMode::OFFSET;
538 }
SetEnableKeyBoardAvoidMode(KeyBoardAvoidMode value)539 void PipelineContext::SetEnableKeyBoardAvoidMode(KeyBoardAvoidMode value) {};
IsEnableKeyBoardAvoidMode()540 bool PipelineContext::IsEnableKeyBoardAvoidMode()
541 {
542     return false;
543 }
UsingCaretAvoidMode()544 bool PipelineContext::UsingCaretAvoidMode()
545 {
546     return false;
547 }
RequireSummary()548 void PipelineContext::RequireSummary() {};
SetIgnoreViewSafeArea(bool value)549 void PipelineContext::SetIgnoreViewSafeArea(bool value) {};
SetIsLayoutFullScreen(bool value)550 void PipelineContext::SetIsLayoutFullScreen(bool value) {};
SetIsNeedAvoidWindow(bool value)551 void PipelineContext::SetIsNeedAvoidWindow(bool value) {};
552 
GetSafeArea() const553 SafeAreaInsets PipelineContext::GetSafeArea() const
554 {
555     // top inset = 1
556     return SafeAreaInsets({}, { 0, 1 }, {}, {});
557 }
558 
GetSafeAreaWithoutProcess() const559 SafeAreaInsets PipelineContext::GetSafeAreaWithoutProcess() const
560 {
561     return SafeAreaInsets({}, { 0, 1 }, {}, {});
562 }
563 
GetPageAvoidOffset()564 float PipelineContext::GetPageAvoidOffset()
565 {
566     return 0.0f;
567 }
568 
CheckNeedAvoidInSubWindow()569 bool PipelineContext::CheckNeedAvoidInSubWindow()
570 {
571     return false;
572 }
573 
GetResponseRegion(const RefPtr<NG::FrameNode> & rootNode)574 std::string PipelineContext::GetResponseRegion(const RefPtr<NG::FrameNode>& rootNode)
575 {
576     return "";
577 }
578 
NotifyResponseRegionChanged(const RefPtr<NG::FrameNode> & rootNode)579 void PipelineContext::NotifyResponseRegionChanged(const RefPtr<NG::FrameNode>& rootNode) {};
580 
AddFontNodeNG(const WeakPtr<UINode> & node)581 void PipelineContext::AddFontNodeNG(const WeakPtr<UINode>& node) {}
582 
RemoveFontNodeNG(const WeakPtr<UINode> & node)583 void PipelineContext::RemoveFontNodeNG(const WeakPtr<UINode>& node) {}
584 
SetWindowSceneConsumed(bool isConsumed)585 void PipelineContext::SetWindowSceneConsumed(bool isConsumed) {}
586 
AddIsFocusActiveUpdateEvent(const RefPtr<FrameNode> & node,const std::function<void (bool)> & eventCallback)587 void PipelineContext::AddIsFocusActiveUpdateEvent(
588     const RefPtr<FrameNode>& node, const std::function<void(bool)>& eventCallback)
589 {}
590 
RemoveIsFocusActiveUpdateEvent(const RefPtr<FrameNode> & node)591 void PipelineContext::RemoveIsFocusActiveUpdateEvent(const RefPtr<FrameNode>& node) {}
592 
HasDifferentDirectionGesture() const593 bool PipelineContext::HasDifferentDirectionGesture() const
594 {
595     return false;
596 }
597 
SetJSViewActive(bool active,WeakPtr<CustomNode> custom)598 void PipelineContext::SetJSViewActive(bool active, WeakPtr<CustomNode> custom) {}
599 
FindNavigationNodeToHandleBack(const RefPtr<UINode> & node,bool & isEntry)600 RefPtr<FrameNode> PipelineContext::FindNavigationNodeToHandleBack(const RefPtr<UINode>& node, bool& isEntry)
601 {
602     return nullptr;
603 }
604 
SetIsFocusActive(bool isFocusActive,FocusActiveReason reason,bool autoFocusInactive)605 bool PipelineContext::SetIsFocusActive(bool isFocusActive, FocusActiveReason reason, bool autoFocusInactive)
606 {
607     return false;
608 }
609 
NeedSoftKeyboard()610 bool PipelineContext::NeedSoftKeyboard()
611 {
612     return false;
613 }
614 
SetCursor(int32_t cursorValue)615 void PipelineContext::SetCursor(int32_t cursorValue) {}
616 
RestoreDefault(int32_t windowId)617 void PipelineContext::RestoreDefault(int32_t windowId) {}
618 
HandleSubwindow(bool isShow)619 void PipelineContext::HandleSubwindow(bool isShow) {}
620 
GetCurrentExtraInfo()621 std::string PipelineContext::GetCurrentExtraInfo()
622 {
623     return std::string();
624 }
625 
CloseFrontendAnimation()626 void PipelineContext::CloseFrontendAnimation() {}
627 
OpenFrontendAnimation(const AnimationOption & option,const RefPtr<Curve> & curve,const std::function<void ()> & finishCallback)628 void PipelineContext::OpenFrontendAnimation(
629     const AnimationOption& option, const RefPtr<Curve>& curve, const std::function<void()>& finishCallback)
630 {}
631 
IsDragging() const632 bool PipelineContext::IsDragging() const
633 {
634     return false;
635 }
636 
SetIsDragging(bool isDragging)637 void PipelineContext::SetIsDragging(bool isDragging) {}
638 
ResetDragging()639 void PipelineContext::ResetDragging() {}
640 
UpdateOriginAvoidArea(const Rosen::AvoidArea & avoidArea,uint32_t type)641 void PipelineContext::UpdateOriginAvoidArea(const Rosen::AvoidArea& avoidArea, uint32_t type) {}
642 
CheckAndUpdateKeyboardInset(float keyboardHeight)643 void PipelineContext::CheckAndUpdateKeyboardInset(float keyboardHeight) {}
644 
PrintVsyncInfoIfNeed() const645 bool PipelineContext::PrintVsyncInfoIfNeed() const
646 {
647     return false;
648 }
649 
GetSerializedGesture() const650 const SerializedGesture& PipelineContext::GetSerializedGesture() const
651 {
652     return serializedGesture_;
653 }
654 
FlushFocusView()655 void PipelineContext::FlushFocusView()
656 {
657     CHECK_NULL_VOID(focusManager_);
658     auto lastFocusView = (focusManager_->GetLastFocusView()).Upgrade();
659     CHECK_NULL_VOID(lastFocusView);
660     auto lastFocusViewHub = lastFocusView->GetFocusHub();
661     CHECK_NULL_VOID(lastFocusViewHub);
662     if (lastFocusView && (!lastFocusViewHub->IsCurrentFocus() || !lastFocusView->GetIsViewHasFocused()) &&
663         lastFocusViewHub->IsFocusableNode()) {
664         lastFocusView->RequestDefaultFocus();
665     }
666 }
667 
SetOverlayNodePositions(std::vector<Ace::RectF> rects)668 void PipelineContext::SetOverlayNodePositions(std::vector<Ace::RectF> rects) {}
669 
GetOverlayNodePositions()670 std::vector<Ace::RectF> PipelineContext::GetOverlayNodePositions()
671 {
672     return {};
673 }
674 
RegisterOverlayNodePositionsUpdateCallback(const std::function<void (std::vector<Ace::RectF>)> && callback)675 void PipelineContext::RegisterOverlayNodePositionsUpdateCallback(
676     const std::function<void(std::vector<Ace::RectF>)>&& callback)
677 {}
678 
TriggerOverlayNodePositionsUpdateCallback(std::vector<Ace::RectF> rects)679 void PipelineContext::TriggerOverlayNodePositionsUpdateCallback(std::vector<Ace::RectF> rects) {}
680 
IsContainerModalVisible()681 bool PipelineContext::IsContainerModalVisible()
682 {
683     return false;
684 }
685 
CheckAndLogLastReceivedTouchEventInfo(int32_t eventId,TouchType type)686 void PipelineContext::CheckAndLogLastReceivedTouchEventInfo(int32_t eventId, TouchType type) {}
687 
CheckAndLogLastConsumedTouchEventInfo(int32_t eventId,TouchType type)688 void PipelineContext::CheckAndLogLastConsumedTouchEventInfo(int32_t eventId, TouchType type) {}
689 
CheckAndLogLastReceivedMouseEventInfo(int32_t eventId,MouseAction action)690 void PipelineContext::CheckAndLogLastReceivedMouseEventInfo(int32_t eventId, MouseAction action) {}
691 
CheckAndLogLastConsumedMouseEventInfo(int32_t eventId,MouseAction action)692 void PipelineContext::CheckAndLogLastConsumedMouseEventInfo(int32_t eventId, MouseAction action) {}
693 
CheckAndLogLastReceivedAxisEventInfo(int32_t eventId,AxisAction action)694 void PipelineContext::CheckAndLogLastReceivedAxisEventInfo(int32_t eventId, AxisAction action) {}
695 
CheckAndLogLastConsumedAxisEventInfo(int32_t eventId,AxisAction action)696 void PipelineContext::CheckAndLogLastConsumedAxisEventInfo(int32_t eventId, AxisAction action) {}
697 
PreLayout(uint64_t nanoTimestamp,uint32_t frameCount)698 void PipelineContext::PreLayout(uint64_t nanoTimestamp, uint32_t frameCount) {}
699 
AddFrameNodeChangeListener(const WeakPtr<FrameNode> & node)700 void PipelineContext::AddFrameNodeChangeListener(const WeakPtr<FrameNode>& node) {}
701 
RemoveFrameNodeChangeListener(int32_t nodeId)702 void PipelineContext::RemoveFrameNodeChangeListener(int32_t nodeId) {}
703 
AddChangedFrameNode(const WeakPtr<FrameNode> & node)704 bool PipelineContext::AddChangedFrameNode(const WeakPtr<FrameNode>& node)
705 {
706     return true;
707 }
708 
RemoveChangedFrameNode(int32_t nodeId)709 void PipelineContext::RemoveChangedFrameNode(int32_t nodeId) {}
710 
FlushNodeChangeFlag()711 void PipelineContext::FlushNodeChangeFlag() {}
712 
CleanNodeChangeFlag()713 void PipelineContext::CleanNodeChangeFlag() {}
714 
HasOnAreaChangeNode(int32_t nodeId)715 bool PipelineContext::HasOnAreaChangeNode(int32_t nodeId)
716 {
717     return false;
718 }
719 
720 } // namespace OHOS::Ace::NG
721 // pipeline_context ============================================================
722 
723 // pipeline_base ===============================================================
724 namespace OHOS::Ace {
725 class ManagerInterface : public AceType {
726     DECLARE_ACE_TYPE(ManagerInterface, AceType);
727 };
728 
OpenImplicitAnimation(const AnimationOption & option,const RefPtr<Curve> & curve,const std::function<void ()> & finishCallBack)729 void PipelineBase::OpenImplicitAnimation(
730     const AnimationOption& option, const RefPtr<Curve>& curve, const std::function<void()>& finishCallBack)
731 {}
732 
CloseImplicitAnimation()733 bool PipelineBase::CloseImplicitAnimation()
734 {
735     return true;
736 }
737 
IsDestroyed()738 bool PipelineBase::IsDestroyed()
739 {
740     return false;
741 }
742 
SetDestroyed()743 void PipelineBase::SetDestroyed() {}
744 
GetFrontend() const745 RefPtr<Frontend> PipelineBase::GetFrontend() const
746 {
747     return nullptr;
748 }
749 
SetTouchPipeline(const WeakPtr<PipelineBase> & context)750 void PipelineBase::SetTouchPipeline(const WeakPtr<PipelineBase>& context) {}
751 
GetImageCache() const752 RefPtr<ImageCache> PipelineBase::GetImageCache() const
753 {
754     return nullptr;
755 }
756 
OnVirtualKeyboardAreaChange(Rect keyboardArea,const std::shared_ptr<Rosen::RSTransaction> & rsTransaction,const float safeHeight,const bool supportAvoidance,bool forceChange)757 void PipelineBase::OnVirtualKeyboardAreaChange(Rect keyboardArea,
758     const std::shared_ptr<Rosen::RSTransaction>& rsTransaction, const float safeHeight,
759     const bool supportAvoidance, bool forceChange) {}
OnVirtualKeyboardAreaChange(Rect keyboardArea,double positionY,double height,const std::shared_ptr<Rosen::RSTransaction> & rsTransaction,bool forceChange)760 void PipelineBase::OnVirtualKeyboardAreaChange(Rect keyboardArea, double positionY, double height,
761     const std::shared_ptr<Rosen::RSTransaction>& rsTransaction, bool forceChange) {}
762 
OnVsyncEvent(uint64_t nanoTimestamp,uint32_t frameCount)763 void PipelineBase::OnVsyncEvent(uint64_t nanoTimestamp, uint32_t frameCount) {}
764 
SendEventToAccessibility(const AccessibilityEvent & accessibilityEvent)765 void PipelineBase::SendEventToAccessibility(const AccessibilityEvent& accessibilityEvent) {}
766 
OnActionEvent(const std::string & action)767 void PipelineBase::OnActionEvent(const std::string& action) {}
768 
SetRootSize(double density,float width,float height)769 void PipelineBase::SetRootSize(double density, float width, float height) {}
770 
GetCurrentContext()771 RefPtr<PipelineBase> PipelineBase::GetCurrentContext()
772 {
773     return NG::MockPipelineContext::GetCurrent();
774 }
775 
GetCurrentContextSafely()776 RefPtr<PipelineBase> PipelineBase::GetCurrentContextSafely()
777 {
778     return NG::MockPipelineContext::GetCurrent();
779 }
780 
GetCurrentDensity()781 double PipelineBase::GetCurrentDensity()
782 {
783     auto pipelineContext = NG::MockPipelineContext::GetCurrentContext();
784     return pipelineContext ? pipelineContext->GetDensity() : 1.0;
785 }
786 
Px2VpWithCurrentDensity(double px)787 double PipelineBase::Px2VpWithCurrentDensity(double px)
788 {
789     double density = GetCurrentDensity();
790     return px / density;
791 }
792 
Vp2PxWithCurrentDensity(double vp)793 double PipelineBase::Vp2PxWithCurrentDensity(double vp)
794 {
795     double density = GetCurrentDensity();
796     return vp * density;
797 }
798 
NormalizeToPx(const Dimension & dimension) const799 double PipelineBase::NormalizeToPx(const Dimension& dimension) const
800 {
801     if ((dimension.Unit() == DimensionUnit::VP) || (dimension.Unit() == DimensionUnit::FP)) {
802         return (dimension.Value() * dipScale_);
803     }
804     if (dimension.Unit() == DimensionUnit::LPX) {
805         return (dimension.Value() * designWidthScale_);
806     }
807     return dimension.Value();
808 }
809 
810 PipelineBase::~PipelineBase() = default;
811 
GetTimeFromExternalTimer()812 uint64_t PipelineBase::GetTimeFromExternalTimer()
813 {
814     return 1;
815 }
816 
PostAsyncEvent(TaskExecutor::Task && task,const std::string & name,TaskExecutor::TaskType type)817 void PipelineBase::PostAsyncEvent(TaskExecutor::Task&& task, const std::string& name, TaskExecutor::TaskType type) {}
818 
PostAsyncEvent(const TaskExecutor::Task & task,const std::string & name,TaskExecutor::TaskType type)819 void PipelineBase::PostAsyncEvent(const TaskExecutor::Task& task, const std::string& name, TaskExecutor::TaskType type)
820 {}
821 
PostSyncEvent(const TaskExecutor::Task & task,const std::string & name,TaskExecutor::TaskType type)822 void PipelineBase::PostSyncEvent(const TaskExecutor::Task& task, const std::string& name, TaskExecutor::TaskType type)
823 {}
824 
GetAccessibilityManager() const825 RefPtr<AccessibilityManager> PipelineBase::GetAccessibilityManager() const
826 {
827     return nullptr;
828 }
829 
830 #ifdef WINDOW_SCENE_SUPPORTED
GetUIExtensionManager()831 const RefPtr<UIExtensionManager>& GetUIExtensionManager()
832 {
833     return AceType::MakeRefPtr<UIExtensionManager>();
834 }
835 #endif
836 
Animate(const AnimationOption & option,const RefPtr<Curve> & curve,const std::function<void ()> & propertyCallback,const std::function<void ()> & finishCallback)837 bool PipelineBase::Animate(const AnimationOption& option, const RefPtr<Curve>& curve,
838     const std::function<void()>& propertyCallback, const std::function<void()>& finishCallback)
839 {
840     return true;
841 }
842 
Destroy()843 void PipelineBase::Destroy() {}
MaybeRelease()844 bool PipelineBase::MaybeRelease()
845 {
846     return AceType::MaybeRelease();
847 }
848 
AddEtsCardTouchEventCallback(int32_t ponitId,EtsCardTouchEventCallback && callback)849 void PipelineBase::AddEtsCardTouchEventCallback(int32_t ponitId, EtsCardTouchEventCallback&& callback) {}
850 
ConvertPxToVp(const Dimension & dimension) const851 double PipelineBase::ConvertPxToVp(const Dimension& dimension) const
852 {
853     if (dimension.Unit() == DimensionUnit::PX) {
854         return dimension.Value() / dipScale_;
855     }
856     return dimension.Value();
857 }
858 
HyperlinkStartAbility(const std::string & address) const859 void PipelineBase::HyperlinkStartAbility(const std::string& address) const {}
860 
RequestFrame()861 void PipelineBase::RequestFrame() {}
862 
GetCurrentWindowRect() const863 Rect PipelineBase::GetCurrentWindowRect() const
864 {
865     return NG::windowRect_;
866 }
867 
SetTextFieldManager(const RefPtr<ManagerInterface> & manager)868 void PipelineBase::SetTextFieldManager(const RefPtr<ManagerInterface>& manager)
869 {
870     textFieldManager_ = manager;
871 }
872 
HasFloatTitle() const873 bool PipelineBase::HasFloatTitle() const
874 {
875     return true;
876 }
877 
AddAccessibilityCallbackEvent(AccessibilityCallbackEventId event,int64_t parameter)878 void PipelineBase::AddAccessibilityCallbackEvent(AccessibilityCallbackEventId event, int64_t parameter)
879 {
880 }
881 
AddUIExtensionCallbackEvent(NG::UIExtCallbackEventId eventId)882 void PipelineBase::AddUIExtensionCallbackEvent(NG::UIExtCallbackEventId eventId)
883 {
884     uiExtensionEvents_.insert(NG::UIExtCallbackEvent(eventId));
885 }
886 
GetCustomTitleHeight()887 Dimension NG::PipelineContext::GetCustomTitleHeight()
888 {
889     return Dimension();
890 }
891 
SetUiDvsyncSwitch(bool on)892 void PipelineBase::SetUiDvsyncSwitch(bool on)
893 {
894 }
895 
SetFontScale(float fontScale)896 void PipelineBase::SetFontScale(float fontScale)
897 {
898     fontScale_ = fontScale;
899 }
900 
CatchInteractiveAnimations(const std::function<void ()> & animationCallback)901 bool NG::PipelineContext::CatchInteractiveAnimations(const std::function<void()>& animationCallback)
902 {
903     return false;
904 }
905 
CheckThreadSafe() const906 bool NG::PipelineContext::CheckThreadSafe() const
907 {
908     return false;
909 }
910 
EnableContainerModalGesture(bool isEnable)911 void NG::PipelineContext::EnableContainerModalGesture(bool isEnable) {}
912 
GetContainerFloatingTitleVisible()913 bool NG::PipelineContext::GetContainerFloatingTitleVisible()
914 {
915     return false;
916 }
917 
GetContainerCustomTitleVisible()918 bool NG::PipelineContext::GetContainerCustomTitleVisible()
919 {
920     return false;
921 }
922 
GetContainerControlButtonVisible()923 bool NG::PipelineContext::GetContainerControlButtonVisible()
924 {
925     return false;
926 }
927 
FlushUITaskWithSingleDirtyNode(const RefPtr<NG::FrameNode> & node)928 void NG::PipelineContext::FlushUITaskWithSingleDirtyNode(const RefPtr<NG::FrameNode>& node)
929 {
930     CHECK_NULL_VOID(node);
931     auto layoutProperty = node->GetLayoutProperty();
932     CHECK_NULL_VOID(layoutProperty);
933     auto layoutConstraint = node->GetLayoutConstraint();
934     if (layoutProperty->GetLayoutRect()) {
935         node->SetActive(true, true);
936         node->Measure(std::nullopt);
937         node->Layout();
938     } else {
939         auto ancestorNodeOfFrame = node->GetAncestorNodeOfFrame(true);
940         node->Measure(layoutConstraint);
941         node->Layout();
942     }
943 }
944 
RegisterAttachedNode(UINode * uiNode)945 void NG::PipelineContext::RegisterAttachedNode(UINode* uiNode) {}
946 
RemoveAttachedNode(UINode * uiNode)947 void NG::PipelineContext::RemoveAttachedNode(UINode* uiNode) {}
ScopedLayout(PipelineContext * pipeline)948 NG::ScopedLayout::ScopedLayout(PipelineContext* pipeline) {}
~ScopedLayout()949 NG::ScopedLayout::~ScopedLayout() {}
950 
DumpUIExt() const951 void NG::PipelineContext::DumpUIExt() const
952 {
953 }
954 } // namespace OHOS::Ace
955 // pipeline_base ===============================================================
956