From 862e8ffaea98f2ca60dcdf5080c59fff219d547b Mon Sep 17 00:00:00 2001 From: yuzhicheng Date: Thu, 24 Jul 2025 14:38:13 +0800 Subject: [PATCH] router transition report Signed-off-by: yuzhicheng Change-Id: I718f57a1640511b22b4ae0e9d3d80d0f14d7d1d6 --- adapter/ohos/osal/event_report.cpp | 12 ++++++++++++ adapter/preview/osal/event_report.cpp | 3 +++ frameworks/base/log/event_report.h | 1 + .../declarative_frontend/ng/page_router_manager.cpp | 3 +++ .../pattern/navigation/navigation_pattern.cpp | 1 + 5 files changed, 20 insertions(+) diff --git a/adapter/ohos/osal/event_report.cpp b/adapter/ohos/osal/event_report.cpp index e53873a9afe..6772a43b4d4 100644 --- a/adapter/ohos/osal/event_report.cpp +++ b/adapter/ohos/osal/event_report.cpp @@ -133,6 +133,10 @@ constexpr char EVENT_KEY_ERROR_CODE[] = "ERROR_CODE"; constexpr char FORM_NODE_ERROR[] = "FORM_NODE_ERROR"; constexpr int32_t WAIT_MODIFY_TIMEOUT = 10; constexpr int32_t WAIT_MODIFY_FAILED = 1; +constexpr char EVENT_KEY_PAGE_TRANSITION_ERROR[] = "PAGE_TRANSITION_ERROR"; +constexpr char EVENT_KEY_PAGE_TRANSITION_ERROR_TYPE[] = "PAGE_TRANSITION_ERROR_TYPE"; +constexpr char EVENT_KEY_PAGE_TRANSITION_ERROR_MESSAGE[] = "PAGE_TRANSITION_ERROR_MESSAGE"; + void StrTrim(std::string& str) { @@ -653,6 +657,14 @@ void EventReport::ReportReusedNodeSkipMeasureApp() OHOS::HiviewDFX::HiSysEvent::EventType::STATISTIC, EVENT_KEY_PACKAGE_NAME, progressName); } +void EventReport::ReportPageTransitionError(const std::string& errorType, const std::string& errorMsg) +{ + auto progressName = AceApplicationInfo::GetInstance().GetProcessName(); + HISysEventWrite(OHOS::HiviewDFX::HiSysEvent::Domain::ACE, EVENT_KEY_PAGE_TRANSITION_ERROR, + OHOS::HiviewDFX::HiSysEvent::EventType::FAULT, EVENT_KEY_PAGE_TRANSITION_ERROR_TYPE, errorType, + EVENT_KEY_PAGE_TRANSITION_ERROR_MESSAGE, errorMsg); +} + void EventReport::ReportPageSlidInfo(NG::SlidInfo &slidInfo) { HiSysEventWrite(OHOS::HiviewDFX::HiSysEvent::Domain::ACE, EVENT_KEY_PAGE_SLID_INFO, diff --git a/adapter/preview/osal/event_report.cpp b/adapter/preview/osal/event_report.cpp index 49f1358a2d5..23f52488709 100644 --- a/adapter/preview/osal/event_report.cpp +++ b/adapter/preview/osal/event_report.cpp @@ -97,6 +97,9 @@ void EventReport::ReportTextFieldErrorEvent(int32_t frameNodeId, int32_t depth, void EventReport::ReportClipboardFailEvent(const std::string& errorType) {} +void void ReportPageTransitionError(const std::string& errorType, const std::string& errorMsg) +{} + void EventReport::ReportPageSlidInfo(NG::SlidInfo &slidInfo) {} diff --git a/frameworks/base/log/event_report.h b/frameworks/base/log/event_report.h index 828fc6ab747..3ffd79c46ce 100644 --- a/frameworks/base/log/event_report.h +++ b/frameworks/base/log/event_report.h @@ -246,6 +246,7 @@ public: static void ReportTextFieldErrorEvent(int32_t frameNodeId, int32_t depth, const std::string& errorType); static void ReportClipboardFailEvent(const std::string& errorType); static void ReportReusedNodeSkipMeasureApp(); + static void ReportPageTransitionError(const std::string& errorType, const std::string& errorMsg); static void ReportPageSlidInfo(NG::SlidInfo &slidInfo); static void SendDiffFrameRatesDuring(const std::string& scene, const FRCSceneFpsInfo& curFRCSceneFpsInfo_); static void FrameRateDurationsStatistics(int32_t expectedRate, const std::string& scene, NG::SceneStatus status); diff --git a/frameworks/bridge/declarative_frontend/ng/page_router_manager.cpp b/frameworks/bridge/declarative_frontend/ng/page_router_manager.cpp index 2384ccd247e..aa5453ddc4b 100644 --- a/frameworks/bridge/declarative_frontend/ng/page_router_manager.cpp +++ b/frameworks/bridge/declarative_frontend/ng/page_router_manager.cpp @@ -1468,6 +1468,7 @@ void PageRouterManager::LoadPage(int32_t pageId, const RouterPageInfo& target, b auto pageNode = CreatePage(pageId, target); if (!pageNode) { TAG_LOGE(AceLogTag::ACE_ROUTER, "failed to create page in LoadPage"); + EventReport::ReportPageTransitionError("ROUTER_ERROR", "failed to create page in LoadPage"); return; } @@ -1477,11 +1478,13 @@ void PageRouterManager::LoadPage(int32_t pageId, const RouterPageInfo& target, b intentInfo_.reset(); pageRouterStack_.pop_back(); TAG_LOGW(AceLogTag::ACE_ROUTER, "OnPageReadyAndHandleIntent Failed"); + EventReport::ReportPageTransitionError("ROUTER_ERROR", "OnPageReadyAndHandleIntent Failed"); return; } } else if (!OnPageReady(pageNode, needHideLast, needTransition)) { pageRouterStack_.pop_back(); TAG_LOGW(AceLogTag::ACE_ROUTER, "LoadPage OnPageReady Failed"); + EventReport::ReportPageTransitionError("ROUTER_ERROR", "LoadPage OnPageReady Failed"); return; } AccessibilityEventType type = AccessibilityEventType::CHANGE; diff --git a/frameworks/core/components_ng/pattern/navigation/navigation_pattern.cpp b/frameworks/core/components_ng/pattern/navigation/navigation_pattern.cpp index a68ee5335a2..94c1880630b 100644 --- a/frameworks/core/components_ng/pattern/navigation/navigation_pattern.cpp +++ b/frameworks/core/components_ng/pattern/navigation/navigation_pattern.cpp @@ -1195,6 +1195,7 @@ void NavigationPattern::UpdateNavPathList() continue; } removeSize++; + EventReport::ReportPageTransitionError("NAV_ERROR", "navigation generate failed!"); continue; } navPathList.emplace_back(std::make_pair(pathName, uiNode)); -- Gitee