diff --git a/frameworks/core/components_ng/pattern/web/web_pattern.cpp b/frameworks/core/components_ng/pattern/web/web_pattern.cpp index ee1f7ab7998af5aaf26ba5c0a4367ad7309a830e..7cae7db4c64893038d1f4ce1eb4d51026e5bef2e 100644 --- a/frameworks/core/components_ng/pattern/web/web_pattern.cpp +++ b/frameworks/core/components_ng/pattern/web/web_pattern.cpp @@ -805,6 +805,16 @@ void WebPattern::OnDetachFromMainTree() isAttachedToMainTree_ = false; // report component is in background. delegate_->OnRenderToBackground(); + + auto host = GetHost(); + CHECK_NULL_VOID(host); + auto pipelineContext = host->GetContext(); + CHECK_NULL_VOID(pipelineContext); + auto frontend = pipelineContext->GetFrontend(); + CHECK_NULL_VOID(frontend); + auto accessibilityManager = frontend->GetAccessibilityManager(); + CHECK_NULL_VOID(accessibilityManager); + accessibilityManager->ReleasePageEvent(host, true, true); } void WebPattern::OnAttachToFrameNode() diff --git a/test/unittest/core/pattern/web/web_pattern_part_one_test.cpp b/test/unittest/core/pattern/web/web_pattern_part_one_test.cpp index 7f2f0fc79e911509763bfb5c250eed385c69bd0c..27adecafac178314d4a15d4d3df18bb437f805ac 100644 --- a/test/unittest/core/pattern/web/web_pattern_part_one_test.cpp +++ b/test/unittest/core/pattern/web/web_pattern_part_one_test.cpp @@ -471,7 +471,8 @@ HWTEST_F(WebPatternPartOneTest, OnDetachFromMainTree_001, TestSize.Level1) ASSERT_NE(webPattern, nullptr); webPattern->OnModifyDone(); ASSERT_NE(webPattern->delegate_, nullptr); - + auto host = webPattern->GetHost(); + EXPECT_NE(host, nullptr); webPattern->OnDetachFromMainTree(); ASSERT_NE(webPattern->delegate_, nullptr); #endif