From ef3ac05fb82ecf5c6041f6518162ea17f7fe6490 Mon Sep 17 00:00:00 2001 From: minjiaqi1 Date: Fri, 27 Jun 2025 17:06:24 +0800 Subject: [PATCH] whz 0627 onRenderExit Signed-off-by: minjiaqi1 --- .../arkts/ArkUIGeneratedNativeModule.ts | 4 +- .../arkui-ohos/src/component/web.ts | 37 +++++-------------- .../src/generated/arkoala_api_generated.h | 4 +- .../native/src/generated/bridge_generated.cc | 20 ++-------- .../native/src/generated/dummy_impl.cc | 15 +------- .../native/src/generated/real_impl.cc | 9 +---- .../pattern/web/ani/web_model_static.cpp | 2 + .../interface/arkoala_api_generated.h | 4 +- .../native/implementation/web_modifier.cpp | 14 +++---- .../implementation/web_modifier_callbacks.cpp | 3 ++ 10 files changed, 30 insertions(+), 82 deletions(-) diff --git a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/component/arkts/ArkUIGeneratedNativeModule.ts b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/component/arkts/ArkUIGeneratedNativeModule.ts index fc317f8abaf..e19d4ce3e75 100644 --- a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/component/arkts/ArkUIGeneratedNativeModule.ts +++ b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/component/arkts/ArkUIGeneratedNativeModule.ts @@ -3402,9 +3402,7 @@ export class ArkUIGeneratedNativeModule { @ani.unsafe.Direct native static _WebAttribute_onSslErrorReceive(ptr: KPointer, thisArray: KSerializerBuffer, thisLength: int32): void @ani.unsafe.Direct - native static _WebAttribute_onRenderExited0(ptr: KPointer, thisArray: KSerializerBuffer, thisLength: int32): void - @ani.unsafe.Direct - native static _WebAttribute_onRenderExited1(ptr: KPointer, thisArray: KSerializerBuffer, thisLength: int32): void + native static _WebAttribute_onRenderExited(ptr: KPointer, thisArray: KSerializerBuffer, thisLength: int32): void @ani.unsafe.Direct native static _WebAttribute_onShowFileSelector(ptr: KPointer, thisArray: KSerializerBuffer, thisLength: int32): void @ani.unsafe.Direct diff --git a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/component/web.ts b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/component/web.ts index a5e881db42c..7fb5d0ec7dd 100644 --- a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/component/web.ts +++ b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/component/web.ts @@ -37,7 +37,7 @@ import { Position, ResourceStr } from "./units" import { PixelMap } from "#external" import { PreviewMenuOptions } from "./richEditor" import { ArkUIAniModule } from "arkui.ani" - +import { InteropNativeModule } from "@koalaui/interop" export class WebKeyboardControllerInternal { public static fromPtr(ptr: KPointer): WebKeyboardController { const obj : WebKeyboardController = new WebKeyboardController() @@ -2033,19 +2033,8 @@ export class ArkWebPeer extends ArkCommonMethodPeer { ArkUIGeneratedNativeModule._WebAttribute_onSslErrorReceive(this.peer.ptr, thisSerializer.asBuffer(), thisSerializer.length()) thisSerializer.release() } - onRenderExited0Attribute(value: ((parameter: OnRenderExitedEvent) => void) | undefined): void { - const thisSerializer : Serializer = Serializer.hold() - let value_type : int32 = RuntimeType.UNDEFINED - value_type = runtimeType(value) - thisSerializer.writeInt8(value_type as int32) - if ((RuntimeType.UNDEFINED) != (value_type)) { - const value_value = value! - thisSerializer.holdAndWriteCallback(value_value) - } - ArkUIGeneratedNativeModule._WebAttribute_onRenderExited0(this.peer.ptr, thisSerializer.asBuffer(), thisSerializer.length()) - thisSerializer.release() - } - onRenderExited1Attribute(value: ((event?: Literal_Object_detail) => boolean) | undefined): void { + onRenderExitedAttribute(value: ((parameter: OnRenderExitedEvent) => void) | undefined): void { + InteropNativeModule._NativeLog("Whz onRenderExited") const thisSerializer : Serializer = Serializer.hold() let value_type : int32 = RuntimeType.UNDEFINED value_type = runtimeType(value) @@ -2054,7 +2043,7 @@ export class ArkWebPeer extends ArkCommonMethodPeer { const value_value = value! thisSerializer.holdAndWriteCallback(value_value) } - ArkUIGeneratedNativeModule._WebAttribute_onRenderExited1(this.peer.ptr, thisSerializer.asBuffer(), thisSerializer.length()) + ArkUIGeneratedNativeModule._WebAttribute_onRenderExited(this.peer.ptr, thisSerializer.asBuffer(), thisSerializer.length()) thisSerializer.release() } onShowFileSelectorAttribute(value: ((parameter: OnShowFileSelectorEvent) => boolean) | undefined): void { @@ -3706,7 +3695,7 @@ export interface WebAttribute extends CommonMethod { onRefreshAccessedHistory(value: ((parameter: OnRefreshAccessedHistoryEvent) => void) | undefined): this onUrlLoadIntercept(value: ((event?: Literal_Union_String_WebResourceRequest_data) => boolean) | undefined): this onSslErrorReceive(value: ((event?: Literal_Function_handler_Object_error) => void) | undefined): this - onRenderExited(value: ((parameter: OnRenderExitedEvent) => void) | undefined | ((event?: Literal_Object_detail) => boolean) | undefined): this + onRenderExited(value: ((parameter: OnRenderExitedEvent) => void) | undefined): this onShowFileSelector(value: ((parameter: OnShowFileSelectorEvent) => boolean) | undefined): this onFileSelectorShow(value: ((event?: Literal_Function_callback__Object_fileSelector) => void) | undefined): this onResourceLoad(value: ((parameter: OnResourceLoadEvent) => void) | undefined): this @@ -4046,7 +4035,7 @@ export class ArkWebStyle extends ArkCommonMethodStyle implements WebAttribute { public onSslErrorReceive(value: ((event?: Literal_Function_handler_Object_error) => void) | undefined): this { return this } - public onRenderExited(value: ((parameter: OnRenderExitedEvent) => void) | undefined | ((event?: Literal_Object_detail) => boolean) | undefined): this { + public onRenderExited(value: ((parameter: OnRenderExitedEvent) => void) | undefined): this { return this } public onShowFileSelector(value: ((parameter: OnShowFileSelectorEvent) => boolean) | undefined): this { @@ -4682,20 +4671,12 @@ export class ArkWebComponent extends ArkCommonMethodComponent implements WebAttr } return this } - public onRenderExited(value: ((parameter: OnRenderExitedEvent) => void) | undefined | ((event?: Literal_Object_detail) => boolean) | undefined): this { + public onRenderExited(value: ((parameter: OnRenderExitedEvent) => void) | undefined): this { + InteropNativeModule._NativeLog("Whz onRenderExited") if (this.checkPriority("onRenderExited")) { - const value_type = runtimeType(value) - if ((RuntimeType.FUNCTION == value_type) || (RuntimeType.UNDEFINED == value_type)) { const value_casted = value as (((parameter: OnRenderExitedEvent) => void) | undefined) - this.getPeer()?.onRenderExited0Attribute(value_casted) + this.getPeer()?.onRenderExitedAttribute(value_casted) return this - } - if ((RuntimeType.FUNCTION == value_type) || (RuntimeType.UNDEFINED == value_type)) { - const value_casted = value as (((event?: Literal_Object_detail) => boolean) | undefined) - this.getPeer()?.onRenderExited1Attribute(value_casted) - return this - } - throw new Error("Can not select appropriate overload") } return this } diff --git a/frameworks/bridge/arkts_frontend/koala_projects/arkoala/framework/native/src/generated/arkoala_api_generated.h b/frameworks/bridge/arkts_frontend/koala_projects/arkoala/framework/native/src/generated/arkoala_api_generated.h index 7777cdf9aa4..82e98e910b7 100644 --- a/frameworks/bridge/arkts_frontend/koala_projects/arkoala/framework/native/src/generated/arkoala_api_generated.h +++ b/frameworks/bridge/arkts_frontend/koala_projects/arkoala/framework/native/src/generated/arkoala_api_generated.h @@ -23290,10 +23290,8 @@ typedef struct GENERATED_ArkUIWebModifier { const Opt_Type_WebAttribute_onUrlLoadIntercept_callback* value); void (*setOnSslErrorReceive)(Ark_NativePointer node, const Opt_Callback_Literal_Function_handler_Object_error_Void* value); - void (*setOnRenderExited0)(Ark_NativePointer node, + void (*setOnRenderExited)(Ark_NativePointer node, const Opt_Callback_OnRenderExitedEvent_Void* value); - void (*setOnRenderExited1)(Ark_NativePointer node, - const Opt_Callback_Literal_Object_detail_Boolean* value); void (*setOnShowFileSelector)(Ark_NativePointer node, const Opt_Callback_OnShowFileSelectorEvent_Boolean* value); void (*setOnFileSelectorShow)(Ark_NativePointer node, diff --git a/frameworks/bridge/arkts_frontend/koala_projects/arkoala/framework/native/src/generated/bridge_generated.cc b/frameworks/bridge/arkts_frontend/koala_projects/arkoala/framework/native/src/generated/bridge_generated.cc index 780c184b9d6..0f50c9dcf81 100644 --- a/frameworks/bridge/arkts_frontend/koala_projects/arkoala/framework/native/src/generated/bridge_generated.cc +++ b/frameworks/bridge/arkts_frontend/koala_projects/arkoala/framework/native/src/generated/bridge_generated.cc @@ -29582,7 +29582,7 @@ void impl_WebAttribute_onSslErrorReceive(Ark_NativePointer thisPtr, KSerializerB GetNodeModifiers()->getWebModifier()->setOnSslErrorReceive(self, (const Opt_Callback_Literal_Function_handler_Object_error_Void*)&value_value); } KOALA_INTEROP_DIRECT_V3(WebAttribute_onSslErrorReceive, Ark_NativePointer, KSerializerBuffer, int32_t) -void impl_WebAttribute_onRenderExited0(Ark_NativePointer thisPtr, KSerializerBuffer thisArray, int32_t thisLength) { +void impl_WebAttribute_onRenderExited(Ark_NativePointer thisPtr, KSerializerBuffer thisArray, int32_t thisLength) { Ark_NodeHandle self = reinterpret_cast(thisPtr); Deserializer thisDeserializer(thisArray, thisLength); const auto value_value_buf_runtimeType = static_cast(thisDeserializer.readInt8()); @@ -29593,23 +29593,9 @@ void impl_WebAttribute_onRenderExited0(Ark_NativePointer thisPtr, KSerializerBuf value_value_buf.value = {thisDeserializer.readCallbackResource(), reinterpret_cast(thisDeserializer.readPointerOrDefault(reinterpret_cast(getManagedCallbackCaller(Kind_Callback_OnRenderExitedEvent_Void)))), reinterpret_cast(thisDeserializer.readPointerOrDefault(reinterpret_cast(getManagedCallbackCallerSync(Kind_Callback_OnRenderExitedEvent_Void))))}; } Opt_Callback_OnRenderExitedEvent_Void value_value = value_value_buf;; - GetNodeModifiers()->getWebModifier()->setOnRenderExited0(self, (const Opt_Callback_OnRenderExitedEvent_Void*)&value_value); + GetNodeModifiers()->getWebModifier()->setOnRenderExited(self, (const Opt_Callback_OnRenderExitedEvent_Void*)&value_value); } -KOALA_INTEROP_DIRECT_V3(WebAttribute_onRenderExited0, Ark_NativePointer, KSerializerBuffer, int32_t) -void impl_WebAttribute_onRenderExited1(Ark_NativePointer thisPtr, KSerializerBuffer thisArray, int32_t thisLength) { - Ark_NodeHandle self = reinterpret_cast(thisPtr); - Deserializer thisDeserializer(thisArray, thisLength); - const auto value_value_buf_runtimeType = static_cast(thisDeserializer.readInt8()); - Opt_Callback_Literal_Object_detail_Boolean value_value_buf = {}; - value_value_buf.tag = value_value_buf_runtimeType == INTEROP_RUNTIME_UNDEFINED ? INTEROP_TAG_UNDEFINED : INTEROP_TAG_OBJECT; - if ((INTEROP_RUNTIME_UNDEFINED) != (value_value_buf_runtimeType)) - { - value_value_buf.value = {thisDeserializer.readCallbackResource(), reinterpret_cast(thisDeserializer.readPointerOrDefault(reinterpret_cast(getManagedCallbackCaller(Kind_Callback_Literal_Object_detail_Boolean)))), reinterpret_cast(thisDeserializer.readPointerOrDefault(reinterpret_cast(getManagedCallbackCallerSync(Kind_Callback_Literal_Object_detail_Boolean))))}; - } - Opt_Callback_Literal_Object_detail_Boolean value_value = value_value_buf;; - GetNodeModifiers()->getWebModifier()->setOnRenderExited1(self, (const Opt_Callback_Literal_Object_detail_Boolean*)&value_value); -} -KOALA_INTEROP_DIRECT_V3(WebAttribute_onRenderExited1, Ark_NativePointer, KSerializerBuffer, int32_t) +KOALA_INTEROP_DIRECT_V3(WebAttribute_onRenderExited, Ark_NativePointer, KSerializerBuffer, int32_t) void impl_WebAttribute_onShowFileSelector(Ark_NativePointer thisPtr, KSerializerBuffer thisArray, int32_t thisLength) { Ark_NodeHandle self = reinterpret_cast(thisPtr); Deserializer thisDeserializer(thisArray, thisLength); diff --git a/frameworks/bridge/arkts_frontend/koala_projects/arkoala/framework/native/src/generated/dummy_impl.cc b/frameworks/bridge/arkts_frontend/koala_projects/arkoala/framework/native/src/generated/dummy_impl.cc index 3bb928633af..c7134302565 100644 --- a/frameworks/bridge/arkts_frontend/koala_projects/arkoala/framework/native/src/generated/dummy_impl.cc +++ b/frameworks/bridge/arkts_frontend/koala_projects/arkoala/framework/native/src/generated/dummy_impl.cc @@ -19139,7 +19139,7 @@ namespace OHOS::Ace::NG::GeneratedModifier { out.append(") \n"); appendGroupedLog(1, out); } - void OnRenderExited0Impl(Ark_NativePointer node, + void OnRenderExitedImpl(Ark_NativePointer node, const Opt_Callback_OnRenderExitedEvent_Void* value) { if (!needGroupedLog(1)) @@ -19149,16 +19149,6 @@ namespace OHOS::Ace::NG::GeneratedModifier { out.append(") \n"); appendGroupedLog(1, out); } - void OnRenderExited1Impl(Ark_NativePointer node, - const Opt_Callback_Literal_Object_detail_Boolean* value) - { - if (!needGroupedLog(1)) - return; - string out("onRenderExited("); - WriteToString(&out, value); - out.append(") \n"); - appendGroupedLog(1, out); - } void OnShowFileSelectorImpl(Ark_NativePointer node, const Opt_Callback_OnShowFileSelectorEvent_Boolean* value) { @@ -23197,8 +23187,7 @@ namespace OHOS::Ace::NG::GeneratedModifier { WebAttributeModifier::OnRefreshAccessedHistoryImpl, WebAttributeModifier::OnUrlLoadInterceptImpl, WebAttributeModifier::OnSslErrorReceiveImpl, - WebAttributeModifier::OnRenderExited0Impl, - WebAttributeModifier::OnRenderExited1Impl, + WebAttributeModifier::OnRenderExitedImpl, WebAttributeModifier::OnShowFileSelectorImpl, WebAttributeModifier::OnFileSelectorShowImpl, WebAttributeModifier::OnResourceLoadImpl, diff --git a/frameworks/bridge/arkts_frontend/koala_projects/arkoala/framework/native/src/generated/real_impl.cc b/frameworks/bridge/arkts_frontend/koala_projects/arkoala/framework/native/src/generated/real_impl.cc index 20088d12ceb..fafaa9d5b13 100644 --- a/frameworks/bridge/arkts_frontend/koala_projects/arkoala/framework/native/src/generated/real_impl.cc +++ b/frameworks/bridge/arkts_frontend/koala_projects/arkoala/framework/native/src/generated/real_impl.cc @@ -8487,14 +8487,10 @@ namespace OHOS::Ace::NG::GeneratedModifier { const Opt_Callback_Literal_Function_handler_Object_error_Void* value) { } - void OnRenderExited0Impl(Ark_NativePointer node, + void OnRenderExitedImpl(Ark_NativePointer node, const Opt_Callback_OnRenderExitedEvent_Void* value) { } - void OnRenderExited1Impl(Ark_NativePointer node, - const Opt_Callback_Literal_Object_detail_Boolean* value) - { - } void OnShowFileSelectorImpl(Ark_NativePointer node, const Opt_Callback_OnShowFileSelectorEvent_Boolean* value) { @@ -11608,8 +11604,7 @@ namespace OHOS::Ace::NG::GeneratedModifier { WebAttributeModifier::OnRefreshAccessedHistoryImpl, WebAttributeModifier::OnUrlLoadInterceptImpl, WebAttributeModifier::OnSslErrorReceiveImpl, - WebAttributeModifier::OnRenderExited0Impl, - WebAttributeModifier::OnRenderExited1Impl, + WebAttributeModifier::OnRenderExitedImpl, WebAttributeModifier::OnShowFileSelectorImpl, WebAttributeModifier::OnFileSelectorShowImpl, WebAttributeModifier::OnResourceLoadImpl, diff --git a/frameworks/core/components_ng/pattern/web/ani/web_model_static.cpp b/frameworks/core/components_ng/pattern/web/ani/web_model_static.cpp index 0bc31c71642..9662d5d0bcc 100644 --- a/frameworks/core/components_ng/pattern/web/ani/web_model_static.cpp +++ b/frameworks/core/components_ng/pattern/web/ani/web_model_static.cpp @@ -781,11 +781,13 @@ void WebModelStatic::SetOnUrlLoadIntercept( void WebModelStatic::SetRenderExitedId(FrameNode* frameNode, std::function&& callback) { + LOGI("Whz WebModelStatic::SetRenderExitedId Enter"); CHECK_NULL_VOID(frameNode); auto uiCallback = [func = callback](const std::shared_ptr& info) { func(info.get()); }; auto webEventHub = frameNode->GetEventHub(); CHECK_NULL_VOID(webEventHub); webEventHub->SetOnRenderExitedEvent(std::move(uiCallback)); + LOGI("Whz WebModelStatic::SetRenderExitedId Exit"); } void WebModelStatic::SetOnFileSelectorShow( diff --git a/frameworks/core/interfaces/native/generated/interface/arkoala_api_generated.h b/frameworks/core/interfaces/native/generated/interface/arkoala_api_generated.h index e87285a14a0..17824a9a342 100644 --- a/frameworks/core/interfaces/native/generated/interface/arkoala_api_generated.h +++ b/frameworks/core/interfaces/native/generated/interface/arkoala_api_generated.h @@ -23289,10 +23289,8 @@ typedef struct GENERATED_ArkUIWebModifier { const Opt_Type_WebAttribute_onUrlLoadIntercept_callback* value); void (*setOnSslErrorReceive)(Ark_NativePointer node, const Opt_Callback_Literal_Function_handler_Object_error_Void* value); - void (*setOnRenderExited0)(Ark_NativePointer node, + void (*setOnRenderExited)(Ark_NativePointer node, const Opt_Callback_OnRenderExitedEvent_Void* value); - void (*setOnRenderExited1)(Ark_NativePointer node, - const Opt_Callback_Literal_Object_detail_Boolean* value); void (*setOnShowFileSelector)(Ark_NativePointer node, const Opt_Callback_OnShowFileSelectorEvent_Boolean* value); void (*setOnFileSelectorShow)(Ark_NativePointer node, diff --git a/frameworks/core/interfaces/native/implementation/web_modifier.cpp b/frameworks/core/interfaces/native/implementation/web_modifier.cpp index d31ae7a0374..2b17f6bffef 100644 --- a/frameworks/core/interfaces/native/implementation/web_modifier.cpp +++ b/frameworks/core/interfaces/native/implementation/web_modifier.cpp @@ -850,14 +850,17 @@ void OnSslErrorReceiveImpl(Ark_NativePointer node, { // deprecated } -void OnRenderExited0Impl(Ark_NativePointer node, +void OnRenderExitedImpl(Ark_NativePointer node, const Opt_Callback_OnRenderExitedEvent_Void* value) { + LOGI("Whz OnRenderExitedImpl Enter"); #ifdef WEB_SUPPORTED + LOGI("Whz OnRenderExitedImpl #ifdef WEB_SUPPORTED"); auto frameNode = reinterpret_cast(node); CHECK_NULL_VOID(frameNode); auto optValue = Converter::GetOptPtr(value); if (!optValue) { + LOGI("Whz OnRenderExitedImpl if (!optValue)"); // TODO: Reset value return; } @@ -869,11 +872,7 @@ void OnRenderExited0Impl(Ark_NativePointer node, }; WebModelStatic::SetRenderExitedId(frameNode, onRenderExited); #endif // WEB_SUPPORTED -} -void OnRenderExited1Impl(Ark_NativePointer node, - const Opt_Callback_Literal_Object_detail_Boolean* value) -{ - // deprecated + LOGI("Whz OnRenderExitedImpl Exit"); } void OnShowFileSelectorImpl(Ark_NativePointer node, const Opt_Callback_OnShowFileSelectorEvent_Boolean* value) @@ -2427,8 +2426,7 @@ const GENERATED_ArkUIWebModifier* GetWebModifier() WebAttributeModifier::OnRefreshAccessedHistoryImpl, WebAttributeModifier::OnUrlLoadInterceptImpl, WebAttributeModifier::OnSslErrorReceiveImpl, - WebAttributeModifier::OnRenderExited0Impl, - WebAttributeModifier::OnRenderExited1Impl, + WebAttributeModifier::OnRenderExitedImpl, WebAttributeModifier::OnShowFileSelectorImpl, WebAttributeModifier::OnFileSelectorShowImpl, WebAttributeModifier::OnResourceLoadImpl, diff --git a/frameworks/core/interfaces/native/implementation/web_modifier_callbacks.cpp b/frameworks/core/interfaces/native/implementation/web_modifier_callbacks.cpp index f7fcfaaf54d..b27d621cb35 100644 --- a/frameworks/core/interfaces/native/implementation/web_modifier_callbacks.cpp +++ b/frameworks/core/interfaces/native/implementation/web_modifier_callbacks.cpp @@ -51,6 +51,7 @@ #include "core/interfaces/native/implementation/web_resource_response_peer_impl.h" #include "core/pipeline_ng/pipeline_context.h" #include "core/interfaces/native/utility/reverse_converter.h" +#include "base/log/log.h" namespace OHOS::Ace::NG::GeneratedModifier::WebAttributeModifier { @@ -342,6 +343,7 @@ bool OnUrlLoadIntercept(const CallbackHelper& arkCallback, WeakPtr weakNode, int32_t instanceId, const BaseEventInfo* info) { + LOGI("Whz modifier_callback::OnRenderExited Enter"); ContainerScope scope(instanceId); auto pipelineContext = PipelineContext::GetCurrentContextSafelyWithCheck(); CHECK_NULL_VOID(pipelineContext); @@ -352,6 +354,7 @@ void OnRenderExited(const CallbackHelper& ark parameter.renderExitReason = Converter::ArkValue( static_cast(eventInfo->GetExitedReason())); arkCallback.Invoke(parameter); + LOGI("Whz modifier_callback::OnRenderExited Exit"); } bool OnShowFileSelector(const CallbackHelper& arkCallback, -- Gitee