From b404e52e8970a16de969a45ddd128dfc9c96a8e0 Mon Sep 17 00:00:00 2001 From: zhangying <42703582@qq.com> Date: Sat, 18 Jan 2025 11:45:21 +0800 Subject: [PATCH 01/15] =?UTF-8?q?=E5=8D=A1=E7=89=87=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E6=96=B0=E5=A2=9EFormEditExtensionAbility=E8=83=BD=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhangying <42703582@qq.com> --- BUILD.gn | 2 + frameworks/js/napi/BUILD.gn | 1188 +++++++++-------- .../form_edit_extension_ability.js | 18 + .../form_edit_extension_ability_module.cpp | 56 + .../form_edit_extension_context.js | 30 + .../form_edit_extension_context_module.cpp | 56 + interfaces/inner_api/include/form_constants.h | 12 + .../inner_api/include/form_mgr_interface.h | 9 + interfaces/inner_api/include/form_mgr_proxy.h | 8 + interfaces/inner_api/include/form_mgr_stub.h | 8 + interfaces/inner_api/src/form_mgr_proxy.cpp | 27 + interfaces/inner_api/src/form_mgr_stub.cpp | 24 + interfaces/kits/native/include/form_mgr.h | 7 + interfaces/kits/native/src/form_mgr.cpp | 17 + services/include/form_mgr_adapter.h | 16 + services/include/form_mgr_service.h | 8 + services/src/form_mgr_adapter.cpp | 33 + services/src/form_mgr_service.cpp | 9 + 18 files changed, 972 insertions(+), 556 deletions(-) create mode 100644 frameworks/js/napi/form_edit_extension_ability/form_edit_extension_ability.js create mode 100644 frameworks/js/napi/form_edit_extension_ability/form_edit_extension_ability_module.cpp create mode 100644 frameworks/js/napi/form_edit_extension_context/form_edit_extension_context.js create mode 100644 frameworks/js/napi/form_edit_extension_context/form_edit_extension_context_module.cpp diff --git a/BUILD.gn b/BUILD.gn index f9ce5a2065..7dccd57a56 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -404,6 +404,8 @@ group("form_napi_packages") { "${form_fwk_napi_path}:formprovider", "${form_fwk_napi_path}:formprovider_napi", "${form_fwk_napi_path}:formutil_napi", + "${form_fwk_napi_path}:formeditextensionability_napi", + "${form_fwk_napi_path}:formeditextensioncontext_napi", ] } } diff --git a/frameworks/js/napi/BUILD.gn b/frameworks/js/napi/BUILD.gn index 662511c261..a75c9a263c 100644 --- a/frameworks/js/napi/BUILD.gn +++ b/frameworks/js/napi/BUILD.gn @@ -1,556 +1,632 @@ -# Copyright (c) 2021-2024 Huawei Device Co., Ltd. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import("//build/config/components/ets_frontend/es2abc_config.gni") -import("//build/ohos.gni") -import("//build/ohos/ace/ace.gni") -import("//foundation/ability/form_fwk/form_fwk.gni") - -config("fmskit_config") { - defines = [ "FMS_LOG_TAG = \"FmskitNative\"" ] -} - -################################### formbindingdata_napi ######################################## -ohos_shared_library("formbindingdata_napi") { - include_dirs = [] - - sources = [ - "form_binding_data/form_binding_data.cpp", - "form_binding_data/form_binding_data_module.cpp", - ] - - configs = [ ":fmskit_config" ] - - deps = [ "${form_fwk_path}:form_manager" ] - - external_deps = [ - "ability_runtime:runtime", - "c_utils:utils", - "hilog:libhilog", - "ipc:ipc_core", - "napi:ace_napi", - ] - - relative_install_dir = "module/application" - - subsystem_name = "ability" - part_name = "form_fwk" -} - -ohos_shared_library("formbindingdata") { - include_dirs = [] - - sources = [ - "form_binding_data/js_form_binding_data.cpp", - "form_binding_data/js_form_binding_data_module.cpp", - ] - - configs = [ ":fmskit_config" ] - - deps = [ - ":formutil_napi", - "${form_fwk_path}:form_manager", - ] - - external_deps = [ - "ability_runtime:abilitykit_native", - "ability_runtime:extensionkit_native", - "ability_runtime:runtime", - "c_utils:utils", - "common_event_service:cesfwk_innerkits", - "hilog:libhilog", - "ipc:ipc_core", - "napi:ace_napi", - ] - - relative_install_dir = "module/app/form" - - subsystem_name = "ability" - part_name = "form_fwk" -} - -################################### gen_form_extension_abc ######################################## -es2abc_gen_abc("gen_form_extension_abc") { - src_js = rebase_path("form_extension/form_extension.js") - dst_file = rebase_path(target_out_dir + "/form_extension.abc") - in_puts = [ "form_extension/form_extension.js" ] - out_puts = [ target_out_dir + "/form_extension.abc" ] - extra_args = [ "--module" ] -} - -gen_js_obj("form_extension_js") { - input = "form_extension/form_extension.js" - output = target_out_dir + "/form_extension.o" -} - -gen_js_obj("form_extension_abc") { - input = get_label_info(":gen_form_extension_abc", "target_out_dir") + - "/form_extension.abc" - output = target_out_dir + "/form_extension_abc.o" - dep = ":gen_form_extension_abc" -} - -ohos_shared_library("formextension_napi") { - sources = [ "form_extension/form_extension_module.cpp" ] - - configs = [ ":fmskit_config" ] - - deps = [ - ":form_extension_abc", - ":form_extension_js", - ] - - external_deps = [ "napi:ace_napi" ] - - relative_install_dir = "module/application" - subsystem_name = "ability" - part_name = "form_fwk" -} - -################################### gen_form_extension_ability_abc ######################################## -es2abc_gen_abc("gen_form_extension_ability_abc") { - src_js = rebase_path("form_extension_ability/form_extension_ability.js") - dst_file = rebase_path(target_out_dir + "/form_extension_ability.abc") - in_puts = [ "form_extension_ability/form_extension_ability.js" ] - out_puts = [ target_out_dir + "/form_extension_ability.abc" ] - extra_args = [ "--module" ] -} - -gen_js_obj("form_extension_ability_js") { - input = "form_extension_ability/form_extension_ability.js" - output = target_out_dir + "/form_extension_ability.o" -} - -gen_js_obj("form_extension_ability_abc") { - input = get_label_info(":gen_form_extension_ability_abc", "target_out_dir") + - "/form_extension_ability.abc" - output = target_out_dir + "/form_extension_ability_abc.o" - dep = ":gen_form_extension_ability_abc" -} - -ohos_shared_library("formextensionability") { - sources = [ "form_extension_ability/form_extension_ability_module.cpp" ] - - configs = [ ":fmskit_config" ] - - deps = [ - ":form_extension_ability_abc", - ":form_extension_ability_js", - ] - - external_deps = [ "napi:ace_napi" ] - - relative_install_dir = "module/app/form" - subsystem_name = "ability" - part_name = "form_fwk" -} - -################################### gen_form_extension_context_abc ######################################## -es2abc_gen_abc("gen_form_extension_context_abc") { - src_js = rebase_path("form_extension_context/form_extension_context.js") - dst_file = rebase_path(target_out_dir + "/form_extension_context.abc") - in_puts = [ "form_extension_context/form_extension_context.js" ] - out_puts = [ target_out_dir + "/form_extension_context.abc" ] - extra_args = [ "--module" ] -} - -gen_js_obj("form_extension_context_js") { - input = "form_extension_context/form_extension_context.js" - output = target_out_dir + "/form_extension_context.o" -} - -gen_js_obj("form_extension_context_abc") { - input = get_label_info(":gen_form_extension_context_abc", "target_out_dir") + - "/form_extension_context.abc" - output = target_out_dir + "/form_extension_context_abc.o" - dep = ":gen_form_extension_context_abc" -} - -ohos_shared_library("formextensioncontext_napi") { - sources = [ "form_extension_context/form_extension_context_module.cpp" ] - - configs = [ ":fmskit_config" ] - - deps = [ - ":form_extension_context_abc", - ":form_extension_context_js", - ] - - external_deps = [ "napi:ace_napi" ] - - relative_install_dir = "module/application" - subsystem_name = "ability" - part_name = "form_fwk" -} - -################################### forminfo_napi ######################################## -ohos_shared_library("forminfo_napi") { - include_dirs = [ "${form_fwk_path}/interfaces/inner_api/include" ] - - sources = [ - "form_info/form_info_module.cpp", - "form_info/js_form_info.cpp", - ] - - configs = [ ":fmskit_config" ] - - deps = [] - - external_deps = [ - "ability_runtime:runtime", - "bundle_framework:appexecfwk_base", - "c_utils:utils", - "hilog:libhilog", - "napi:ace_napi", - ] - - defines = [] - if (form_fwk_form_dimension_2_3) { - defines += [ "FORM_DIMENSION_2_3" ] - } - if (form_fwk_form_dimension_3_3) { - defines += [ "FORM_DIMENSION_3_3" ] - } - - relative_install_dir = "module/application" - - subsystem_name = "ability" - part_name = "form_fwk" -} - -ohos_shared_library("forminfo") { - include_dirs = [ "${form_fwk_path}/interfaces/inner_api/include" ] - - sources = [ - "form_info/form_info_module.cpp", - "form_info/js_form_info.cpp", - ] - - configs = [ ":fmskit_config" ] - - deps = [] - - external_deps = [ - "ability_runtime:runtime", - "bundle_framework:appexecfwk_base", - "c_utils:utils", - "hilog:libhilog", - "napi:ace_napi", - ] - - defines = [ "ENABLE_ERRCODE" ] - - if (form_fwk_form_dimension_2_3) { - defines += [ "FORM_DIMENSION_2_3" ] - } - if (form_fwk_form_dimension_3_3) { - defines += [ "FORM_DIMENSION_3_3" ] - } - - relative_install_dir = "module/app/form" - - subsystem_name = "ability" - part_name = "form_fwk" -} - -################################### formhost_napi ######################################## -ohos_shared_library("formhost_napi") { - include_dirs = [] - - sources = [ - "formHost/napi_form_host.cpp", - "formHost/native_module.cpp", - ] - - configs = [ ":fmskit_config" ] - - deps = [ - ":formutil_napi", - "${form_fwk_path}:fmskit_native", - ] - - external_deps = [ - "ability_base:want", - "ability_runtime:abilitykit_native", - "ability_runtime:extensionkit_native", - "ability_runtime:napi_common", - "ability_runtime:runtime", - "bundle_framework:appexecfwk_base", - "c_utils:utils", - "common_event_service:cesfwk_innerkits", - "eventhandler:libeventhandler", - "hilog:libhilog", - "napi:ace_napi", - ] - - relative_install_dir = "module/application" - - subsystem_name = "ability" - part_name = "form_fwk" -} - -################################### formhost ######################################## -ohos_shared_library("formhost") { - include_dirs = [ "${form_fwk_path}/interfaces/inner_api/include" ] - - sources = [ - "form_host/js_form_host.cpp", - "form_host/js_form_state_observer.cpp", - "form_host/native_module.cpp", - ] - - configs = [ ":fmskit_config" ] - - deps = [ - ":formutil_napi", - "${form_fwk_path}:fmskit_native", - "${form_fwk_path}:form_manager", - ] - - external_deps = [ - "ability_base:want", - "ability_runtime:abilitykit_native", - "ability_runtime:extensionkit_native", - "ability_runtime:napi_common", - "ability_runtime:runtime", - "access_token:libtokenid_sdk", - "bundle_framework:appexecfwk_base", - "c_utils:utils", - "common_event_service:cesfwk_innerkits", - "eventhandler:libeventhandler", - "hilog:libhilog", - "ipc:ipc_single", - "napi:ace_napi", - ] - - relative_install_dir = "module/app/form" - - subsystem_name = "ability" - part_name = "form_fwk" - - defines = [] - if (form_fwk_watch_api_disable) { - defines += [ "WATCH_API_DISABLE" ] - } -} - -################################### formobserver ######################################## -ohos_shared_library("formobserver") { - include_dirs = [ - "${form_fwk_path}/interfaces/inner_api/include", - "${form_fwk_path}/frameworks/js/napi/form_host", - "${form_fwk_path}/frameworks/js/napi/form_observer", - ] - - sources = [ - "form_host/js_form_state_observer.cpp", - "form_observer/js_form_observer.cpp", - "form_observer/native_module.cpp", - ] - - configs = [ ":fmskit_config" ] - - deps = [ - ":formutil_napi", - "${form_fwk_napi_path}:formhost", - "${form_fwk_path}:fmskit_native", - "${form_fwk_path}:form_manager", - ] - - external_deps = [ - "ability_base:want", - "ability_runtime:abilitykit_native", - "ability_runtime:extensionkit_native", - "ability_runtime:napi_common", - "ability_runtime:runtime", - "access_token:libtokenid_sdk", - "bundle_framework:appexecfwk_base", - "c_utils:utils", - "common_event_service:cesfwk_innerkits", - "eventhandler:libeventhandler", - "hilog:libhilog", - "ipc:ipc_single", - "napi:ace_napi", - ] - - relative_install_dir = "module/app/form" - - subsystem_name = "ability" - part_name = "form_fwk" -} - -################################### formprovider_napi ######################################## -ohos_shared_library("formprovider_napi") { - include_dirs = [] - - sources = [ - "formProvider/napi_form_provider.cpp", - "formProvider/native_module.cpp", - ] - - configs = [ ":fmskit_config" ] - - deps = [ - ":formutil_napi", - "${form_fwk_path}:fmskit_native", - "${form_fwk_path}:form_manager", - ] - - external_deps = [ - "ability_base:want", - "ability_runtime:abilitykit_native", - "ability_runtime:extensionkit_native", - "ability_runtime:napi_common", - "ability_runtime:runtime", - "bundle_framework:appexecfwk_base", - "c_utils:utils", - "common_event_service:cesfwk_innerkits", - "hilog:libhilog", - "napi:ace_napi", - ] - - relative_install_dir = "module/application" - - subsystem_name = "ability" - part_name = "form_fwk" -} - -ohos_shared_library("formprovider") { - include_dirs = [] - - sources = [ - "form_provider/js_form_provider.cpp", - "form_provider/native_module.cpp", - ] - - configs = [ ":fmskit_config" ] - - deps = [ - ":formutil_napi", - "${form_fwk_path}:fmskit_native", - "${form_fwk_path}:form_manager", - ] - - external_deps = [ - "ability_base:want", - "ability_runtime:abilitykit_native", - "ability_runtime:extensionkit_native", - "ability_runtime:napi_common", - "ability_runtime:runtime", - "access_token:libtokenid_sdk", - "bundle_framework:appexecfwk_base", - "c_utils:utils", - "common_event_service:cesfwk_innerkits", - "hilog:libhilog", - "ipc:ipc_single", - "napi:ace_napi", - ] - - relative_install_dir = "module/app/form" - - subsystem_name = "ability" - part_name = "form_fwk" -} - -################################### formagent_napi ######################################## -ohos_shared_library("formagent") { - include_dirs = [] - - sources = [ - "form_agent/js_form_agent.cpp", - "form_agent/native_module.cpp", - ] - - configs = [ ":fmskit_config" ] - - deps = [ - ":formutil_napi", - "${form_fwk_path}:fmskit_native", - "${form_fwk_path}:form_manager", - ] - - external_deps = [ - "ability_base:want", - "ability_runtime:abilitykit_native", - "ability_runtime:extensionkit_native", - "ability_runtime:napi_common", - "ability_runtime:runtime", - "bundle_framework:appexecfwk_base", - "c_utils:utils", - "common_event_service:cesfwk_innerkits", - "hilog:libhilog", - "ipc:ipc_single", - "napi:ace_napi", - ] - - relative_install_dir = "module/app/form" - - subsystem_name = "ability" - part_name = "form_fwk" -} - -################################### formutil_napi_public_config ######################################## -config("formutil_napi_public_config") { - include_dirs = [ "formUtil/" ] -} - -ohos_shared_library("formutil_napi") { - include_dirs = [] - - public_configs = [ ":formutil_napi_public_config" ] - - sources = [ "formUtil/napi_form_util.cpp" ] - - configs = [ ":fmskit_config" ] - - deps = [ "${form_fwk_path}:fmskit_native" ] - - external_deps = [ - "ability_runtime:abilitykit_native", - "ability_runtime:extensionkit_native", - "ability_runtime:runtime", - "common_event_service:cesfwk_innerkits", - "hilog:libhilog", - "napi:ace_napi", - ] - - subsystem_name = "ability" - innerapi_tags = [ "platformsdk" ] - part_name = "form_fwk" -} - -################################### formerror_napi ######################################## -ohos_shared_library("formerror_napi") { - include_dirs = [ "${form_fwk_napi_path}/formUtil" ] - - sources = [ - "form_error/form_error_module.cpp", - "form_error/js_form_error.cpp", - ] - - configs = [ ":fmskit_config" ] - - external_deps = [ - "ability_runtime:abilitykit_native", - "ability_runtime:extensionkit_native", - "ability_runtime:runtime", - "common_event_service:cesfwk_innerkits", - "hilog:libhilog", - "napi:ace_napi", - ] - - relative_install_dir = "module/application" - - subsystem_name = "ability" - part_name = "form_fwk" -} +# Copyright (c) 2021-2024 Huawei Device Co., Ltd. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//build/config/components/ets_frontend/es2abc_config.gni") +import("//build/ohos.gni") +import("//build/ohos/ace/ace.gni") +import("//foundation/ability/form_fwk/form_fwk.gni") + +config("fmskit_config") { + defines = [ "FMS_LOG_TAG = \"FmskitNative\"" ] +} + +################################### formbindingdata_napi ######################################## +ohos_shared_library("formbindingdata_napi") { + include_dirs = [] + + sources = [ + "form_binding_data/form_binding_data.cpp", + "form_binding_data/form_binding_data_module.cpp", + ] + + configs = [ ":fmskit_config" ] + + deps = [ "${form_fwk_path}:form_manager" ] + + external_deps = [ + "ability_runtime:runtime", + "c_utils:utils", + "hilog:libhilog", + "ipc:ipc_core", + "napi:ace_napi", + ] + + relative_install_dir = "module/application" + + subsystem_name = "ability" + part_name = "form_fwk" +} + +ohos_shared_library("formbindingdata") { + include_dirs = [] + + sources = [ + "form_binding_data/js_form_binding_data.cpp", + "form_binding_data/js_form_binding_data_module.cpp", + ] + + configs = [ ":fmskit_config" ] + + deps = [ + ":formutil_napi", + "${form_fwk_path}:form_manager", + ] + + external_deps = [ + "ability_runtime:abilitykit_native", + "ability_runtime:extensionkit_native", + "ability_runtime:runtime", + "c_utils:utils", + "common_event_service:cesfwk_innerkits", + "hilog:libhilog", + "ipc:ipc_core", + "napi:ace_napi", + ] + + relative_install_dir = "module/app/form" + + subsystem_name = "ability" + part_name = "form_fwk" +} + +################################### gen_form_extension_abc ######################################## +es2abc_gen_abc("gen_form_extension_abc") { + src_js = rebase_path("form_extension/form_extension.js") + dst_file = rebase_path(target_out_dir + "/form_extension.abc") + in_puts = [ "form_extension/form_extension.js" ] + out_puts = [ target_out_dir + "/form_extension.abc" ] + extra_args = [ "--module" ] +} + +gen_js_obj("form_extension_js") { + input = "form_extension/form_extension.js" + output = target_out_dir + "/form_extension.o" +} + +gen_js_obj("form_extension_abc") { + input = get_label_info(":gen_form_extension_abc", "target_out_dir") + + "/form_extension.abc" + output = target_out_dir + "/form_extension_abc.o" + dep = ":gen_form_extension_abc" +} + +ohos_shared_library("formextension_napi") { + sources = [ "form_extension/form_extension_module.cpp" ] + + configs = [ ":fmskit_config" ] + + deps = [ + ":form_extension_abc", + ":form_extension_js", + ] + + external_deps = [ "napi:ace_napi" ] + + relative_install_dir = "module/application" + subsystem_name = "ability" + part_name = "form_fwk" +} + +################################### gen_form_extension_ability_abc ######################################## +es2abc_gen_abc("gen_form_extension_ability_abc") { + src_js = rebase_path("form_extension_ability/form_extension_ability.js") + dst_file = rebase_path(target_out_dir + "/form_extension_ability.abc") + in_puts = [ "form_extension_ability/form_extension_ability.js" ] + out_puts = [ target_out_dir + "/form_extension_ability.abc" ] + extra_args = [ "--module" ] +} + +gen_js_obj("form_extension_ability_js") { + input = "form_extension_ability/form_extension_ability.js" + output = target_out_dir + "/form_extension_ability.o" +} + +gen_js_obj("form_extension_ability_abc") { + input = get_label_info(":gen_form_extension_ability_abc", "target_out_dir") + + "/form_extension_ability.abc" + output = target_out_dir + "/form_extension_ability_abc.o" + dep = ":gen_form_extension_ability_abc" +} + +ohos_shared_library("formextensionability") { + sources = [ "form_extension_ability/form_extension_ability_module.cpp" ] + + configs = [ ":fmskit_config" ] + + deps = [ + ":form_extension_ability_abc", + ":form_extension_ability_js", + ] + + external_deps = [ "napi:ace_napi" ] + + relative_install_dir = "module/app/form" + subsystem_name = "ability" + part_name = "form_fwk" +} + +################################### gen_form_extension_context_abc ######################################## +es2abc_gen_abc("gen_form_extension_context_abc") { + src_js = rebase_path("form_extension_context/form_extension_context.js") + dst_file = rebase_path(target_out_dir + "/form_extension_context.abc") + in_puts = [ "form_extension_context/form_extension_context.js" ] + out_puts = [ target_out_dir + "/form_extension_context.abc" ] + extra_args = [ "--module" ] +} + +gen_js_obj("form_extension_context_js") { + input = "form_extension_context/form_extension_context.js" + output = target_out_dir + "/form_extension_context.o" +} + +gen_js_obj("form_extension_context_abc") { + input = get_label_info(":gen_form_extension_context_abc", "target_out_dir") + + "/form_extension_context.abc" + output = target_out_dir + "/form_extension_context_abc.o" + dep = ":gen_form_extension_context_abc" +} + +ohos_shared_library("formextensioncontext_napi") { + sources = [ "form_extension_context/form_extension_context_module.cpp" ] + + configs = [ ":fmskit_config" ] + + deps = [ + ":form_extension_context_abc", + ":form_extension_context_js", + ] + + external_deps = [ "napi:ace_napi" ] + + relative_install_dir = "module/application" + subsystem_name = "ability" + part_name = "form_fwk" +} + +################################### forminfo_napi ######################################## +ohos_shared_library("forminfo_napi") { + include_dirs = [ "${form_fwk_path}/interfaces/inner_api/include" ] + + sources = [ + "form_info/form_info_module.cpp", + "form_info/js_form_info.cpp", + ] + + configs = [ ":fmskit_config" ] + + deps = [] + + external_deps = [ + "ability_runtime:runtime", + "bundle_framework:appexecfwk_base", + "c_utils:utils", + "hilog:libhilog", + "napi:ace_napi", + ] + + defines = [] + if (form_fwk_form_dimension_2_3) { + defines += [ "FORM_DIMENSION_2_3" ] + } + if (form_fwk_form_dimension_3_3) { + defines += [ "FORM_DIMENSION_3_3" ] + } + + relative_install_dir = "module/application" + + subsystem_name = "ability" + part_name = "form_fwk" +} + +ohos_shared_library("forminfo") { + include_dirs = [ "${form_fwk_path}/interfaces/inner_api/include" ] + + sources = [ + "form_info/form_info_module.cpp", + "form_info/js_form_info.cpp", + ] + + configs = [ ":fmskit_config" ] + + deps = [] + + external_deps = [ + "ability_runtime:runtime", + "bundle_framework:appexecfwk_base", + "c_utils:utils", + "hilog:libhilog", + "napi:ace_napi", + ] + + defines = [ "ENABLE_ERRCODE" ] + + if (form_fwk_form_dimension_2_3) { + defines += [ "FORM_DIMENSION_2_3" ] + } + if (form_fwk_form_dimension_3_3) { + defines += [ "FORM_DIMENSION_3_3" ] + } + + relative_install_dir = "module/app/form" + + subsystem_name = "ability" + part_name = "form_fwk" +} + +################################### formhost_napi ######################################## +ohos_shared_library("formhost_napi") { + include_dirs = [] + + sources = [ + "formHost/napi_form_host.cpp", + "formHost/native_module.cpp", + ] + + configs = [ ":fmskit_config" ] + + deps = [ + ":formutil_napi", + "${form_fwk_path}:fmskit_native", + ] + + external_deps = [ + "ability_base:want", + "ability_runtime:abilitykit_native", + "ability_runtime:extensionkit_native", + "ability_runtime:napi_common", + "ability_runtime:runtime", + "bundle_framework:appexecfwk_base", + "c_utils:utils", + "common_event_service:cesfwk_innerkits", + "eventhandler:libeventhandler", + "hilog:libhilog", + "napi:ace_napi", + ] + + relative_install_dir = "module/application" + + subsystem_name = "ability" + part_name = "form_fwk" +} + +################################### formhost ######################################## +ohos_shared_library("formhost") { + include_dirs = [ "${form_fwk_path}/interfaces/inner_api/include" ] + + sources = [ + "form_host/js_form_host.cpp", + "form_host/js_form_state_observer.cpp", + "form_host/native_module.cpp", + ] + + configs = [ ":fmskit_config" ] + + deps = [ + ":formutil_napi", + "${form_fwk_path}:fmskit_native", + "${form_fwk_path}:form_manager", + ] + + external_deps = [ + "ability_base:want", + "ability_runtime:abilitykit_native", + "ability_runtime:extensionkit_native", + "ability_runtime:napi_common", + "ability_runtime:runtime", + "access_token:libtokenid_sdk", + "bundle_framework:appexecfwk_base", + "c_utils:utils", + "common_event_service:cesfwk_innerkits", + "eventhandler:libeventhandler", + "hilog:libhilog", + "ipc:ipc_single", + "napi:ace_napi", + ] + + relative_install_dir = "module/app/form" + + subsystem_name = "ability" + part_name = "form_fwk" + + defines = [] + if (form_fwk_watch_api_disable) { + defines += [ "WATCH_API_DISABLE" ] + } +} + +################################### formobserver ######################################## +ohos_shared_library("formobserver") { + include_dirs = [ + "${form_fwk_path}/interfaces/inner_api/include", + "${form_fwk_path}/frameworks/js/napi/form_host", + "${form_fwk_path}/frameworks/js/napi/form_observer", + ] + + sources = [ + "form_host/js_form_state_observer.cpp", + "form_observer/js_form_observer.cpp", + "form_observer/native_module.cpp", + ] + + configs = [ ":fmskit_config" ] + + deps = [ + ":formutil_napi", + "${form_fwk_napi_path}:formhost", + "${form_fwk_path}:fmskit_native", + "${form_fwk_path}:form_manager", + ] + + external_deps = [ + "ability_base:want", + "ability_runtime:abilitykit_native", + "ability_runtime:extensionkit_native", + "ability_runtime:napi_common", + "ability_runtime:runtime", + "access_token:libtokenid_sdk", + "bundle_framework:appexecfwk_base", + "c_utils:utils", + "common_event_service:cesfwk_innerkits", + "eventhandler:libeventhandler", + "hilog:libhilog", + "ipc:ipc_single", + "napi:ace_napi", + ] + + relative_install_dir = "module/app/form" + + subsystem_name = "ability" + part_name = "form_fwk" +} + +################################### formprovider_napi ######################################## +ohos_shared_library("formprovider_napi") { + include_dirs = [] + + sources = [ + "formProvider/napi_form_provider.cpp", + "formProvider/native_module.cpp", + ] + + configs = [ ":fmskit_config" ] + + deps = [ + ":formutil_napi", + "${form_fwk_path}:fmskit_native", + "${form_fwk_path}:form_manager", + ] + + external_deps = [ + "ability_base:want", + "ability_runtime:abilitykit_native", + "ability_runtime:extensionkit_native", + "ability_runtime:napi_common", + "ability_runtime:runtime", + "bundle_framework:appexecfwk_base", + "c_utils:utils", + "common_event_service:cesfwk_innerkits", + "hilog:libhilog", + "napi:ace_napi", + ] + + relative_install_dir = "module/application" + + subsystem_name = "ability" + part_name = "form_fwk" +} + +ohos_shared_library("formprovider") { + include_dirs = [] + + sources = [ + "form_provider/js_form_provider.cpp", + "form_provider/native_module.cpp", + ] + + configs = [ ":fmskit_config" ] + + deps = [ + ":formutil_napi", + "${form_fwk_path}:fmskit_native", + "${form_fwk_path}:form_manager", + ] + + external_deps = [ + "ability_base:want", + "ability_runtime:abilitykit_native", + "ability_runtime:extensionkit_native", + "ability_runtime:napi_common", + "ability_runtime:runtime", + "access_token:libtokenid_sdk", + "bundle_framework:appexecfwk_base", + "c_utils:utils", + "common_event_service:cesfwk_innerkits", + "hilog:libhilog", + "ipc:ipc_single", + "napi:ace_napi", + ] + + relative_install_dir = "module/app/form" + + subsystem_name = "ability" + part_name = "form_fwk" +} + +################################### formagent_napi ######################################## +ohos_shared_library("formagent") { + include_dirs = [] + + sources = [ + "form_agent/js_form_agent.cpp", + "form_agent/native_module.cpp", + ] + + configs = [ ":fmskit_config" ] + + deps = [ + ":formutil_napi", + "${form_fwk_path}:fmskit_native", + "${form_fwk_path}:form_manager", + ] + + external_deps = [ + "ability_base:want", + "ability_runtime:abilitykit_native", + "ability_runtime:extensionkit_native", + "ability_runtime:napi_common", + "ability_runtime:runtime", + "bundle_framework:appexecfwk_base", + "c_utils:utils", + "common_event_service:cesfwk_innerkits", + "hilog:libhilog", + "ipc:ipc_single", + "napi:ace_napi", + ] + + relative_install_dir = "module/app/form" + + subsystem_name = "ability" + part_name = "form_fwk" +} + +################################### formutil_napi_public_config ######################################## +config("formutil_napi_public_config") { + include_dirs = [ "formUtil/" ] +} + +ohos_shared_library("formutil_napi") { + include_dirs = [] + + public_configs = [ ":formutil_napi_public_config" ] + + sources = [ "formUtil/napi_form_util.cpp" ] + + configs = [ ":fmskit_config" ] + + deps = [ "${form_fwk_path}:fmskit_native" ] + + external_deps = [ + "ability_runtime:abilitykit_native", + "ability_runtime:extensionkit_native", + "ability_runtime:runtime", + "common_event_service:cesfwk_innerkits", + "hilog:libhilog", + "napi:ace_napi", + ] + + subsystem_name = "ability" + innerapi_tags = [ "platformsdk" ] + part_name = "form_fwk" +} + +################################### formerror_napi ######################################## +ohos_shared_library("formerror_napi") { + include_dirs = [ "${form_fwk_napi_path}/formUtil" ] + + sources = [ + "form_error/form_error_module.cpp", + "form_error/js_form_error.cpp", + ] + + configs = [ ":fmskit_config" ] + + external_deps = [ + "ability_runtime:abilitykit_native", + "ability_runtime:extensionkit_native", + "ability_runtime:runtime", + "common_event_service:cesfwk_innerkits", + "hilog:libhilog", + "napi:ace_napi", + ] + + relative_install_dir = "module/application" + + subsystem_name = "ability" + part_name = "form_fwk" +} + +################################### gen_form_edit_extension_ability_abc ######################################## +es2abc_gen_abc("gen_form_edit_extension_ability_abc") { + src_js = rebase_path("form_edit_extension_ability/form_edit_extension_ability.js") + dst_file = rebase_path(target_out_dir + "/form_edit_extension_ability.abc") + in_puts = [ "form_edit_extension_ability/form_edit_extension_ability.js" ] + out_puts = [ target_out_dir + "/form_edit_extension_ability.abc" ] + extra_args = [ "--module" ] +} + +gen_js_obj("form_edit_extension_ability_js") { + input = "form_edit_extension_ability/form_edit_extension_ability.js" + output = target_out_dir + "/form_edit_extension_ability.o" +} + +gen_js_obj("form_edit_extension_ability_abc") { + input = get_label_info(":gen_form_edit_extension_ability_abc", "target_out_dir") + + "/form_edit_extension_ability.abc" + output = target_out_dir + "/form_edit_extension_ability_abc.o" + dep = ":gen_form_edit_extension_ability_abc" +} + +ohos_shared_library("formeditextensionability_napi") { + sources = [ "form_edit_extension_ability/form_edit_extension_ability_module.cpp" ] + + configs = [ ":fmskit_config" ] + + deps = [ + ":form_edit_extension_ability_abc", + ":form_edit_extension_ability_js", + ] + + external_deps = [ "napi:ace_napi" ] + + relative_install_dir = "module/app/form" + subsystem_name = "ability" + part_name = "form_fwk" +} + +################################### gen_form_edit_extension_context_abc ######################################## +es2abc_gen_abc("gen_form_edit_extension_context_abc") { + src_js = rebase_path("form_edit_extension_context/form_edit_extension_context.js") + dst_file = rebase_path(target_out_dir + "/form_edit_extension_context.abc") + in_puts = [ "form_edit_extension_context/form_edit_extension_context.js" ] + out_puts = [ target_out_dir + "/form_edit_extension_context.abc" ] + extra_args = [ "--module" ] +} + +gen_js_obj("form_edit_extension_context_js") { + input = "form_edit_extension_context/form_edit_extension_context.js" + output = target_out_dir + "/form_edit_extension_context.o" +} + +gen_js_obj("form_edit_extension_context_abc") { + input = get_label_info(":gen_form_edit_extension_context_abc", "target_out_dir") + + "/form_edit_extension_context.abc" + output = target_out_dir + "/form_edit_extension_context_abc.o" + dep = ":gen_form_edit_extension_context_abc" +} + +ohos_shared_library("formeditextensioncontext_napi") { + sources = [ "form_edit_extension_context/form_edit_extension_context_module.cpp" ] + + configs = [ ":fmskit_config" ] + + deps = [ + ":form_edit_extension_context_abc", + ":form_edit_extension_context_js", + ] + + external_deps = [ "napi:ace_napi" ] + + relative_install_dir = "module/application" + subsystem_name = "ability" + part_name = "form_fwk" +} \ No newline at end of file diff --git a/frameworks/js/napi/form_edit_extension_ability/form_edit_extension_ability.js b/frameworks/js/napi/form_edit_extension_ability/form_edit_extension_ability.js new file mode 100644 index 0000000000..0e983ba80a --- /dev/null +++ b/frameworks/js/napi/form_edit_extension_ability/form_edit_extension_ability.js @@ -0,0 +1,18 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +let UIExtensionAbility = requireNapi('app.ability.UIExtensionAbility'); + +export default class FormEditExtensionAbility extends UIExtensionAbility {} \ No newline at end of file diff --git a/frameworks/js/napi/form_edit_extension_ability/form_edit_extension_ability_module.cpp b/frameworks/js/napi/form_edit_extension_ability/form_edit_extension_ability_module.cpp new file mode 100644 index 0000000000..5396134bb3 --- /dev/null +++ b/frameworks/js/napi/form_edit_extension_ability/form_edit_extension_ability_module.cpp @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "native_engine/native_engine.h" +#include "napi/native_api.h" + +extern const char _binary_form_edit_extension_ability_js_start[]; +extern const char _binary_form_edit_extension_ability_js_end[]; +extern const char _binary_form_edit_extension_ability_abc_start[]; +extern const char _binary_form_edit_extension_ability_abc_end[]; + +static napi_module _module = { + .nm_version = 0, + .nm_filename = "app/form/libformeditextensionability_napi.so/form_edit_extension_ability.js", + .nm_modname = "app.form.FormEditExtensionAbility", +}; +extern "C" __attribute__((constructor)) +void NAPI_app_form_FormEditExtensionAbility_AutoRegister() +{ + napi_module_register(&_module); +} + +extern "C" __attribute__((visibility("default"))) +void NAPI_app_form_FormEditExtensionAbility_GetJSCode(const char **buf, int *bufLen) +{ + if (buf != nullptr) { + *buf = _binary_form_edit_extension_ability_js_start; + } + + if (bufLen != nullptr) { + *bufLen = _binary_form_edit_extension_ability_js_end - _binary_form_edit_extension_ability_js_start; + } +} + +extern "C" __attribute__((visibility("default"))) +void NAPI_app_form_FormEditExtensionAbility_GetABCCode(const char **buf, int *buflen) +{ + if (buf != nullptr) { + *buf = _binary_form_edit_extension_ability_abc_start; + } + if (buflen != nullptr) { + *buflen = _binary_form_edit_extension_ability_abc_end - _binary_form_edit_extension_ability_abc_start; + } +} \ No newline at end of file diff --git a/frameworks/js/napi/form_edit_extension_context/form_edit_extension_context.js b/frameworks/js/napi/form_edit_extension_context/form_edit_extension_context.js new file mode 100644 index 0000000000..8eab060c36 --- /dev/null +++ b/frameworks/js/napi/form_edit_extension_context/form_edit_extension_context.js @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +let UIExtensionContext = requireNapi('application.UIExtensionContext'); +let hilog = requireNapi('hilog'); +let domainID = 0xD001320; +let TAG = 'JSENV'; + +export class FormEditExtensionContext extends UIExtensionContext { + constructor(obj) { + super(obj); + } + + startSecondPage(want, asyncCallback) { + hilog.sLogI(domainID, TAG, 'startSecondPage want: ' + want); + return this.__context_impl__.startSecondPage(want, asyncCallback); + } +} \ No newline at end of file diff --git a/frameworks/js/napi/form_edit_extension_context/form_edit_extension_context_module.cpp b/frameworks/js/napi/form_edit_extension_context/form_edit_extension_context_module.cpp new file mode 100644 index 0000000000..c58634b72e --- /dev/null +++ b/frameworks/js/napi/form_edit_extension_context/form_edit_extension_context_module.cpp @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "native_engine/native_engine.h" + +extern const char _binary_form_edit_extension_context_js_start[]; +extern const char _binary_form_edit_extension_context_js_end[]; +extern const char _binary_form_edit_extension_context_abc_start[]; +extern const char _binary_form_edit_extension_context_abc_end[]; + +static napi_module _module = { + .nm_version = 0, + .nm_filename = "application/libformeditextensioncontext_napi.so/form_edit_extension_context.js", + .nm_modname = "application.FormEditExtensionContext", +}; +extern "C" __attribute__((constructor)) +void NAPI_application_FormEditExtensionContext_AutoRegister() +{ + napi_module_register(&_module); +} + +extern "C" __attribute__((visibility("default"))) +void NAPI_application_FormEditExtensionContext_GetJSCode(const char **buf, int *bufLen) +{ + if (buf != nullptr) { + *buf = _binary_form_edit_extension_context_js_start; + } + + if (bufLen != nullptr) { + *bufLen = _binary_form_edit_extension_context_js_end - _binary_form_edit_extension_context_js_start; + } +} + +// ability_context JS register +extern "C" __attribute__((visibility("default"))) +void NAPI_application_FormEditExtensionContext_GetABCCode(const char **buf, int *buflen) +{ + if (buf != nullptr) { + *buf = _binary_form_edit_extension_context_abc_start; + } + if (buflen != nullptr) { + *buflen = _binary_form_edit_extension_context_abc_end - _binary_form_edit_extension_context_abc_start; + } +} \ No newline at end of file diff --git a/interfaces/inner_api/include/form_constants.h b/interfaces/inner_api/include/form_constants.h index 0a53c66607..6cfe3db87a 100644 --- a/interfaces/inner_api/include/form_constants.h +++ b/interfaces/inner_api/include/form_constants.h @@ -67,6 +67,18 @@ namespace Constants { constexpr const char* LOCAL_CODE_PATH = "/data/storage/el1/bundle"; constexpr const char* LOCAL_BUNDLES = "/data/bundles"; constexpr const char* FORM_PUBLISH_ACTION = "action.form.publish"; + constexpr const char* OPEN_FORM_MANAGE_VIEW = "openFormManageView"; + constexpr const char* OPEN_FORM_MANAGE_VIEW_ACTION = "action.form.openFormManageView"; + constexpr const char* PAGE_ROUTER_SERVICE = "PageRouterService"; + constexpr const char* PAGE_ROUTER_SERVICE_LOWER = "pageRouterService"; + constexpr const char* REQUEST_SCENE_BOARD_BUNDLE_NAME = "com.ohos.sceneboard"; + constexpr int32_t PAGE_ROUTER_SERVICE_CODE_FORM_MANAGE = 1; + constexpr int32_t PAGE_ROUTER_SERVICE_CODE_CONTROL_CENTER = 2; + constexpr int32_t PAGE_ROUTER_SERVICE_CODE_FORM_EDIT = 3; + constexpr const char* PARMA_REQUEST_METHOD = "requestMehod"; + constexpr const char* PARMA_OPEN_FORM_EDIT_SEC_PAGE_VIEW = "openFormEditSecPageView"; + constexpr const char* PARAM_PAGE_ROUTER_SERVICE_CODE = "pageRouterServiceCode"; + constexpr const char* PARAM_SEC_PAGE_ABILITY_NAME = "secPageAbilityName"; constexpr const char* PARAM_DEVICE_ID_KEY = "ohos.extra.param.key.device_id"; constexpr const char* PARAM_FORM_HOST_TOKEN = "ohos.extra.param.form.host.token"; constexpr const char* PARAM_PUBLISH_FORM_HOST_BUNDLE_KEY = "ohos.extra.param.key.form_host_bundle_name"; diff --git a/interfaces/inner_api/include/form_mgr_interface.h b/interfaces/inner_api/include/form_mgr_interface.h index 3c9d29c3e4..9a440dc8fe 100644 --- a/interfaces/inner_api/include/form_mgr_interface.h +++ b/interfaces/inner_api/include/form_mgr_interface.h @@ -153,6 +153,14 @@ public: virtual ErrCode RequestPublishFormWithSnapshot(Want &want, bool withFormBindingData, std::unique_ptr &formBindingData, int64_t &formId) = 0; + /** + * @brief Request to SCB to Open FormManageView. + * + * @param want The want of the form to publish. + * @return Returns ERR_OK on success, others on failure. + */ + virtual ErrCode RequestSCBOpenFormManageView(Want &want) = 0; + /** * @brief Lifecycle update. * @param formIds The Id of the forms. @@ -787,6 +795,7 @@ public: FORM_MGR_PUBLISH_FORM_ERRCODE_RESULT, FORM_MGR_ACQUIRE_ADD_FORM_RESULT, FORM_MGR_REQUEST_PUBLISH_FORM_WITH_SNAPSHOT, + FORM_MGR_REQUEST_SCENEBOARD_OPEN_FORM_MANAGE_VIEW, FORM_MGR_BATCH_REFRESH_FORMS, FORM_MGR_ENABLE_FORMS, FORM_MGR_IS_SYSTEM_APP_FORM, diff --git a/interfaces/inner_api/include/form_mgr_proxy.h b/interfaces/inner_api/include/form_mgr_proxy.h index 5f02906d3e..62962c4523 100644 --- a/interfaces/inner_api/include/form_mgr_proxy.h +++ b/interfaces/inner_api/include/form_mgr_proxy.h @@ -637,6 +637,14 @@ public: * @return Returns ERR_OK on success, others on failure. */ ErrCode UpdateFormSize(const int64_t &formId, float width, float height, float borderWidth) override; + + /** + * @brief Request to SCB to Open FormManageView. + * + * @param want The want of the form to publish. + * @return Returns ERR_OK on success, others on failure. + */ + ErrCode RequestSCBOpenFormManageView(Want &want) override; private: template int GetParcelableInfos(MessageParcel &reply, std::vector &parcelableInfos); diff --git a/interfaces/inner_api/include/form_mgr_stub.h b/interfaces/inner_api/include/form_mgr_stub.h index e91a901d82..b00472cec9 100644 --- a/interfaces/inner_api/include/form_mgr_stub.h +++ b/interfaces/inner_api/include/form_mgr_stub.h @@ -520,6 +520,14 @@ private: */ ErrCode HandleRequestPublishFormWithSnapshot(MessageParcel &data, MessageParcel &reply); + /** + * @brief handle RequestSCBOpenFormManageView message. + * @param data input param. + * @param reply output param. + * @return Returns ERR_OK on success, others on failure. + */ + ErrCode HandleRequestSCBOpenFormManageView(MessageParcel &data, MessageParcel &reply); + /** * @brief Update form with formRefreshType, send to form manager service. * @param formRefreshType The type of the form to refresh, 0: AllForm 1: 2: AppForm 2: AtomicServiceForm diff --git a/interfaces/inner_api/src/form_mgr_proxy.cpp b/interfaces/inner_api/src/form_mgr_proxy.cpp index 92a05e6c4d..51c4cd1463 100644 --- a/interfaces/inner_api/src/form_mgr_proxy.cpp +++ b/interfaces/inner_api/src/form_mgr_proxy.cpp @@ -2296,6 +2296,33 @@ ErrCode FormMgrProxy::RequestPublishFormWithSnapshot(Want &want, bool withFormBi return errCode; } +ErrCode FormMgrProxy::RequestSCBOpenFormManageView(Want &want) +{ + MessageParcel data; + MessageParcel reply; + + if (!WriteInterfaceToken(data)) { + HILOG_ERROR("write interface token failed"); + return ERR_APPEXECFWK_PARCEL_ERROR; + } + if (!data.WriteParcelable(&want)) { + HILOG_ERROR("write want failed"); + return ERR_APPEXECFWK_PARCEL_ERROR; + } + + MessageOption option; + int32_t error = SendTransactCmd( + IFormMgr::Message::FORM_MGR_REQUEST_SCENEBOARD_OPEN_FORM_MANAGE_VIEW, + data, + reply, + option); + if (error != ERR_OK) { + HILOG_ERROR("SendRequest:%{public}d failed", error); + return ERR_APPEXECFWK_FORM_SEND_FMS_MSG; + } + return reply.ReadInt32(); +} + int32_t FormMgrProxy::BatchRefreshForms(const int32_t formRefreshType) { MessageParcel data; diff --git a/interfaces/inner_api/src/form_mgr_stub.cpp b/interfaces/inner_api/src/form_mgr_stub.cpp index c6b3400edc..aceb3d3ce4 100644 --- a/interfaces/inner_api/src/form_mgr_stub.cpp +++ b/interfaces/inner_api/src/form_mgr_stub.cpp @@ -117,6 +117,8 @@ int FormMgrStub::OnRemoteRequestFirst(uint32_t code, MessageParcel &data, Messag return HandleNotifyFormsVisible(data, reply); case static_cast(IFormMgr::Message::FORM_MGR_NOTIFY_FORMS_PRIVACY_PROTECTED): return HandleNotifyFormsPrivacyProtected(data, reply); + case static_cast(IFormMgr::Message::FORM_MGR_REQUEST_SCENEBOARD_OPEN_FORM_MANAGE_VIEW): + return HandleRequestSCBOpenFormManageView(data, reply); default: return OnRemoteRequestSecond(code, data, reply, option); } @@ -1583,6 +1585,28 @@ ErrCode FormMgrStub::HandleRequestPublishFormWithSnapshot(MessageParcel &data, M return result; } +/** + * @brief handle CreateForm message. + * @param data input param. + * @param reply output param. + * @return Returns ERR_OK on success, others on failure. + */ +ErrCode FormMgrStub::HandleRequestSCBOpenFormManageView(MessageParcel &data, MessageParcel &reply) +{ + std::unique_ptr want(data.ReadParcelable()); + if (want == nullptr) { + HILOG_ERROR("error to get want"); + return ERR_APPEXECFWK_PARCEL_ERROR; + } + + ErrCode result = RequestSCBOpenFormManageView(*want); + if (!reply.WriteInt32(result)) { + HILOG_ERROR("write result failed"); + return ERR_APPEXECFWK_PARCEL_ERROR; + } + return result; +} + ErrCode FormMgrStub::HandleBatchRefreshForms(MessageParcel &data, MessageParcel &reply) { int32_t formRefreshType = data.ReadInt32(); diff --git a/interfaces/kits/native/include/form_mgr.h b/interfaces/kits/native/include/form_mgr.h index 6c3d6baa56..a1ebcd1e28 100644 --- a/interfaces/kits/native/include/form_mgr.h +++ b/interfaces/kits/native/include/form_mgr.h @@ -455,6 +455,13 @@ public: int32_t ShareForm(int64_t formId, const std::string &remoteDeviceId, const sptr &callerToken, int64_t requestCode); + /** + * @brief Request to SCB to Open FormManageView. + * + * @param want The want of the form to publish. + * @return Returns ERR_OK on success, others on failure. + */ + ErrCode RequestSCBOpenFormManageView(Want &want); /** * @brief Acquire form data by formId. * @param formId The Id of the form to acquire data. diff --git a/interfaces/kits/native/src/form_mgr.cpp b/interfaces/kits/native/src/form_mgr.cpp index 214db6284c..9233b2a963 100644 --- a/interfaces/kits/native/src/form_mgr.cpp +++ b/interfaces/kits/native/src/form_mgr.cpp @@ -1248,6 +1248,23 @@ int32_t FormMgr::StartAbility(const Want &want, const sptr &calle return remoteProxy_->StartAbility(want, callerToken); } + +ErrCode FormMgr::RequestSCBOpenFormManageView(Want &want) +{ + HILOG_INFO("call"); + ErrCode errCode = Connect(); + if (errCode != ERR_OK) { + HILOG_ERROR("errCode:%{public}d", errCode); + return errCode; + } + std::shared_lock lock(connectMutex_); + if (remoteProxy_ == nullptr) { + HILOG_ERROR("null remoteProxy_"); + return ERR_APPEXECFWK_FORM_COMMON_CODE; + } + return remoteProxy_->RequestSCBOpenFormManageView(want); +} + int32_t FormMgr::ShareForm(int64_t formId, const std::string &remoteDeviceId, const sptr &callerToken, int64_t requestCode) { diff --git a/services/include/form_mgr_adapter.h b/services/include/form_mgr_adapter.h index 5de2489bd4..3619a3f604 100644 --- a/services/include/form_mgr_adapter.h +++ b/services/include/form_mgr_adapter.h @@ -1152,6 +1152,22 @@ private: void FilterEventMapsByVisibleType(std::map> &eventMaps, const int32_t formVisibleType, std::map &restoreFormRecords); + /** ++ * @brief Request SCB to Open Form Manage View. ++ * ++ * @param want The want of the form to publish. ++ * @param needCheckFormPermission Indicates whether the app have system permissions.default value is true. ++ * @return Returns ERR_OK on success, others on failure. ++ */ ++ ErrCode RequestSCBOpenFormManageView(Want &want, bool needCheckFormPermission = true); ++ ++ /** ++ * @brief Post request to open the form manage view of sceneBoard. ++ * @param want The want of the form to open. ++ * @return Returns ERR_OK on success, others on failure. ++ */ ++ ErrCode RequestOpenFormManageView(Want &want); + ErrCode CheckFormCountLimit(const int64_t formId, const Want &want); ErrCode AllotForm(const int64_t formId, const Want &want, diff --git a/services/include/form_mgr_service.h b/services/include/form_mgr_service.h index 15e2d7b3f4..1ea2e37acd 100644 --- a/services/include/form_mgr_service.h +++ b/services/include/form_mgr_service.h @@ -690,6 +690,14 @@ public: */ ErrCode UpdateFormSize(const int64_t &formId, float width, float height, float borderWidth) override; + /** ++ * @brief Request to publish a form to the form host for normal authority. ++ * ++ * @param want The want of the form to open. ++ * @return Returns ERR_OK on success, others on failure. ++ */ ++ ErrCode RequestSCBOpenFormManageView(Want &want) override; + void SubscribeNetConn(); friend class NetConnCallbackObserver; diff --git a/services/src/form_mgr_adapter.cpp b/services/src/form_mgr_adapter.cpp index 8a37db5026..138f449dad 100644 --- a/services/src/form_mgr_adapter.cpp +++ b/services/src/form_mgr_adapter.cpp @@ -2332,6 +2332,39 @@ ErrCode FormMgrAdapter::RequestPublishForm(Want &want, bool withFormBindingData, return errCode; } +ErrCode FormMgrAdapter::RequestSCBOpenFormManageView(Want &want, bool needCheckFormPermission) +{ + HILOG_DEBUG("call"); + int callingUid = IPCSkeleton::GetCallingUid(); + int32_t userId = GetCurrentUserId(callingUid); + want.SetParam(Constants::PARAM_FORM_USER_ID, userId); + return RequestOpenFormManageView(want); +} + +ErrCode FormMgrAdapter::RequestOpenFormManageView(Want &want) +{ + HILOG_INFO("RequestOpenFormManageView start want:%{public}s", want.ToString().c_str()); + Want wantToSceneBoard(want); + ElementName elementName = want.GetElement(); + wantToSceneBoard.SetParam(Constants::PARAM_BUNDLE_NAME_KEY, elementName.GetBundleName()); + wantToSceneBoard.SetParam(Constants::PARAM_ABILITY_NAME_KEY, elementName.GetAbilityName()); + std::string bundleName = want.GetStringParam(Constants::PARAM_PUBLISH_FORM_HOST_BUNDLE_KEY); + std::string abilityName = want.GetStringParam(Constants::PARAM_PUBLISH_FORM_HOST_ABILITY_KEY); + wantToSceneBoard.SetElementName(bundleName, abilityName); + ErrCode errCode = QueryPublishFormToHost(wantToSceneBoard); + + if (errCode == ERR_OK) { + int32_t userId = want.GetIntParam(Constants::PARAM_FORM_USER_ID, -1); + HILOG_INFO("RequestOpenFormManageView StartAbility wantToSceneBoard:%{public}s", + wantToSceneBoard.ToString().c_str()); + errCode = FormAmsHelper::GetInstance().StartAbility(wantToSceneBoard, userId); + if (errCode != ERR_OK) { + HILOG_ERROR("RequestOpenFormManageView end errCode:%{public}d", errCode); + } + } + return errCode; +} + ErrCode FormMgrAdapter::SetPublishFormResult(const int64_t formId, Constants::PublishFormResult &errorCodeInfo) { HILOG_INFO("call"); diff --git a/services/src/form_mgr_service.cpp b/services/src/form_mgr_service.cpp index d8467a7011..e13a091e13 100644 --- a/services/src/form_mgr_service.cpp +++ b/services/src/form_mgr_service.cpp @@ -1907,5 +1907,14 @@ void FormMgrService::SetDisConnectTypeTime() lastNetLostTime_ = FormUtil::GetCurrentMillisecond(); } ++ ++ErrCode FormMgrService::RequestSCBOpenFormManageView(Want &want) ++{ ++ HILOG_INFO("begin:%{public}s, publish:%{public}s, end:%{public}s, onKvDataServiceAddTime:%{public}s", ++ onStartBeginTime_.c_str(), onStartPublishTime_.c_str(), ++ onStartEndTime_.c_str(), onKvDataServiceAddTime_.c_str()); ++ ++ return FormMgrAdapter::GetInstance().RequestSCBOpenFormManageView(want, false); ++} } // namespace AppExecFwk } // namespace OHOS -- Gitee From 6b8f09100dd5a87ff80499570281f7d3d0fd73fb Mon Sep 17 00:00:00 2001 From: zhangying <42703582@qq.com> Date: Sat, 18 Jan 2025 18:46:21 +0800 Subject: [PATCH 02/15] =?UTF-8?q?=E5=8D=A1=E7=89=87=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E6=96=B0=E5=A2=9EFormEditExtensionAbility=E8=83=BD=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhangying <42703582@qq.com> --- interfaces/inner_api/include/form_mgr_interface.h | 2 +- interfaces/inner_api/include/form_mgr_proxy.h | 2 +- interfaces/inner_api/include/form_mgr_stub.h | 4 ++-- interfaces/inner_api/src/form_mgr_proxy.cpp | 2 +- interfaces/inner_api/src/form_mgr_stub.cpp | 6 +++--- interfaces/kits/native/include/form_mgr.h | 2 +- interfaces/kits/native/src/form_mgr.cpp | 4 ++-- services/include/form_mgr_adapter.h | 2 +- services/include/form_mgr_service.h | 2 +- services/src/form_mgr_adapter.cpp | 2 +- services/src/form_mgr_service.cpp | 4 ++-- 11 files changed, 16 insertions(+), 16 deletions(-) diff --git a/interfaces/inner_api/include/form_mgr_interface.h b/interfaces/inner_api/include/form_mgr_interface.h index 9a440dc8fe..5ede3e15b3 100644 --- a/interfaces/inner_api/include/form_mgr_interface.h +++ b/interfaces/inner_api/include/form_mgr_interface.h @@ -159,7 +159,7 @@ public: * @param want The want of the form to publish. * @return Returns ERR_OK on success, others on failure. */ - virtual ErrCode RequestSCBOpenFormManageView(Want &want) = 0; + virtual ErrCode RequestOpenFormView(Want &want) = 0; /** * @brief Lifecycle update. diff --git a/interfaces/inner_api/include/form_mgr_proxy.h b/interfaces/inner_api/include/form_mgr_proxy.h index 62962c4523..fc94234193 100644 --- a/interfaces/inner_api/include/form_mgr_proxy.h +++ b/interfaces/inner_api/include/form_mgr_proxy.h @@ -644,7 +644,7 @@ public: * @param want The want of the form to publish. * @return Returns ERR_OK on success, others on failure. */ - ErrCode RequestSCBOpenFormManageView(Want &want) override; + ErrCode RequestOpenFormView(Want &want) override; private: template int GetParcelableInfos(MessageParcel &reply, std::vector &parcelableInfos); diff --git a/interfaces/inner_api/include/form_mgr_stub.h b/interfaces/inner_api/include/form_mgr_stub.h index b00472cec9..27abd561f4 100644 --- a/interfaces/inner_api/include/form_mgr_stub.h +++ b/interfaces/inner_api/include/form_mgr_stub.h @@ -521,12 +521,12 @@ private: ErrCode HandleRequestPublishFormWithSnapshot(MessageParcel &data, MessageParcel &reply); /** - * @brief handle RequestSCBOpenFormManageView message. + * @brief handle RequestOpenFormView message. * @param data input param. * @param reply output param. * @return Returns ERR_OK on success, others on failure. */ - ErrCode HandleRequestSCBOpenFormManageView(MessageParcel &data, MessageParcel &reply); + ErrCode HandleRequestOpenFormView(MessageParcel &data, MessageParcel &reply); /** * @brief Update form with formRefreshType, send to form manager service. diff --git a/interfaces/inner_api/src/form_mgr_proxy.cpp b/interfaces/inner_api/src/form_mgr_proxy.cpp index 51c4cd1463..b0c93d6cfa 100644 --- a/interfaces/inner_api/src/form_mgr_proxy.cpp +++ b/interfaces/inner_api/src/form_mgr_proxy.cpp @@ -2296,7 +2296,7 @@ ErrCode FormMgrProxy::RequestPublishFormWithSnapshot(Want &want, bool withFormBi return errCode; } -ErrCode FormMgrProxy::RequestSCBOpenFormManageView(Want &want) +ErrCode FormMgrProxy::RequestOpenFormView(Want &want) { MessageParcel data; MessageParcel reply; diff --git a/interfaces/inner_api/src/form_mgr_stub.cpp b/interfaces/inner_api/src/form_mgr_stub.cpp index aceb3d3ce4..e5510087b4 100644 --- a/interfaces/inner_api/src/form_mgr_stub.cpp +++ b/interfaces/inner_api/src/form_mgr_stub.cpp @@ -118,7 +118,7 @@ int FormMgrStub::OnRemoteRequestFirst(uint32_t code, MessageParcel &data, Messag case static_cast(IFormMgr::Message::FORM_MGR_NOTIFY_FORMS_PRIVACY_PROTECTED): return HandleNotifyFormsPrivacyProtected(data, reply); case static_cast(IFormMgr::Message::FORM_MGR_REQUEST_SCENEBOARD_OPEN_FORM_MANAGE_VIEW): - return HandleRequestSCBOpenFormManageView(data, reply); + return HandleRequestOpenFormView(data, reply); default: return OnRemoteRequestSecond(code, data, reply, option); } @@ -1591,7 +1591,7 @@ ErrCode FormMgrStub::HandleRequestPublishFormWithSnapshot(MessageParcel &data, M * @param reply output param. * @return Returns ERR_OK on success, others on failure. */ -ErrCode FormMgrStub::HandleRequestSCBOpenFormManageView(MessageParcel &data, MessageParcel &reply) +ErrCode FormMgrStub::HandleRequestOpenFormView(MessageParcel &data, MessageParcel &reply) { std::unique_ptr want(data.ReadParcelable()); if (want == nullptr) { @@ -1599,7 +1599,7 @@ ErrCode FormMgrStub::HandleRequestSCBOpenFormManageView(MessageParcel &data, Mes return ERR_APPEXECFWK_PARCEL_ERROR; } - ErrCode result = RequestSCBOpenFormManageView(*want); + ErrCode result = RequestOpenFormView(*want); if (!reply.WriteInt32(result)) { HILOG_ERROR("write result failed"); return ERR_APPEXECFWK_PARCEL_ERROR; diff --git a/interfaces/kits/native/include/form_mgr.h b/interfaces/kits/native/include/form_mgr.h index a1ebcd1e28..e4c3382858 100644 --- a/interfaces/kits/native/include/form_mgr.h +++ b/interfaces/kits/native/include/form_mgr.h @@ -461,7 +461,7 @@ public: * @param want The want of the form to publish. * @return Returns ERR_OK on success, others on failure. */ - ErrCode RequestSCBOpenFormManageView(Want &want); + ErrCode RequestOpenFormView(Want &want); /** * @brief Acquire form data by formId. * @param formId The Id of the form to acquire data. diff --git a/interfaces/kits/native/src/form_mgr.cpp b/interfaces/kits/native/src/form_mgr.cpp index 9233b2a963..cf1a27ff31 100644 --- a/interfaces/kits/native/src/form_mgr.cpp +++ b/interfaces/kits/native/src/form_mgr.cpp @@ -1249,7 +1249,7 @@ int32_t FormMgr::StartAbility(const Want &want, const sptr &calle } -ErrCode FormMgr::RequestSCBOpenFormManageView(Want &want) +ErrCode FormMgr::RequestOpenFormView(Want &want) { HILOG_INFO("call"); ErrCode errCode = Connect(); @@ -1262,7 +1262,7 @@ ErrCode FormMgr::RequestSCBOpenFormManageView(Want &want) HILOG_ERROR("null remoteProxy_"); return ERR_APPEXECFWK_FORM_COMMON_CODE; } - return remoteProxy_->RequestSCBOpenFormManageView(want); + return remoteProxy_->RequestOpenFormView(want); } int32_t FormMgr::ShareForm(int64_t formId, const std::string &remoteDeviceId, diff --git a/services/include/form_mgr_adapter.h b/services/include/form_mgr_adapter.h index 3619a3f604..5a7070e4ba 100644 --- a/services/include/form_mgr_adapter.h +++ b/services/include/form_mgr_adapter.h @@ -1159,7 +1159,7 @@ private: + * @param needCheckFormPermission Indicates whether the app have system permissions.default value is true. + * @return Returns ERR_OK on success, others on failure. + */ -+ ErrCode RequestSCBOpenFormManageView(Want &want, bool needCheckFormPermission = true); ++ ErrCode RequestOpenFormView(Want &want, bool needCheckFormPermission = true); + + /** + * @brief Post request to open the form manage view of sceneBoard. diff --git a/services/include/form_mgr_service.h b/services/include/form_mgr_service.h index 1ea2e37acd..8837bfeed8 100644 --- a/services/include/form_mgr_service.h +++ b/services/include/form_mgr_service.h @@ -696,7 +696,7 @@ public: + * @param want The want of the form to open. + * @return Returns ERR_OK on success, others on failure. + */ -+ ErrCode RequestSCBOpenFormManageView(Want &want) override; ++ ErrCode RequestOpenFormView(Want &want) override; void SubscribeNetConn(); diff --git a/services/src/form_mgr_adapter.cpp b/services/src/form_mgr_adapter.cpp index 138f449dad..8ab9e24372 100644 --- a/services/src/form_mgr_adapter.cpp +++ b/services/src/form_mgr_adapter.cpp @@ -2332,7 +2332,7 @@ ErrCode FormMgrAdapter::RequestPublishForm(Want &want, bool withFormBindingData, return errCode; } -ErrCode FormMgrAdapter::RequestSCBOpenFormManageView(Want &want, bool needCheckFormPermission) +ErrCode FormMgrAdapter::RequestOpenFormView(Want &want, bool needCheckFormPermission) { HILOG_DEBUG("call"); int callingUid = IPCSkeleton::GetCallingUid(); diff --git a/services/src/form_mgr_service.cpp b/services/src/form_mgr_service.cpp index e13a091e13..2cbeb11e06 100644 --- a/services/src/form_mgr_service.cpp +++ b/services/src/form_mgr_service.cpp @@ -1908,13 +1908,13 @@ void FormMgrService::SetDisConnectTypeTime() } + -+ErrCode FormMgrService::RequestSCBOpenFormManageView(Want &want) ++ErrCode FormMgrService::RequestOpenFormView(Want &want) +{ + HILOG_INFO("begin:%{public}s, publish:%{public}s, end:%{public}s, onKvDataServiceAddTime:%{public}s", + onStartBeginTime_.c_str(), onStartPublishTime_.c_str(), + onStartEndTime_.c_str(), onKvDataServiceAddTime_.c_str()); + -+ return FormMgrAdapter::GetInstance().RequestSCBOpenFormManageView(want, false); ++ return FormMgrAdapter::GetInstance().RequestOpenFormView(want, false); +} } // namespace AppExecFwk } // namespace OHOS -- Gitee From 30041282e86d3a742e17508fb82144e1a913f4f8 Mon Sep 17 00:00:00 2001 From: zhangying <42703582@qq.com> Date: Sat, 18 Jan 2025 18:59:30 +0800 Subject: [PATCH 03/15] =?UTF-8?q?=E5=8D=A1=E7=89=87=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E6=96=B0=E5=A2=9EFormEditExtensionAbility=E8=83=BD=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhangying <42703582@qq.com> --- .../form_edit_extension_ability/form_edit_extension_ability.js | 2 +- .../form_edit_extension_ability_module.cpp | 2 +- .../form_edit_extension_context/form_edit_extension_context.js | 2 +- .../form_edit_extension_context_module.cpp | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/frameworks/js/napi/form_edit_extension_ability/form_edit_extension_ability.js b/frameworks/js/napi/form_edit_extension_ability/form_edit_extension_ability.js index 0e983ba80a..523ec055e4 100644 --- a/frameworks/js/napi/form_edit_extension_ability/form_edit_extension_ability.js +++ b/frameworks/js/napi/form_edit_extension_ability/form_edit_extension_ability.js @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/frameworks/js/napi/form_edit_extension_ability/form_edit_extension_ability_module.cpp b/frameworks/js/napi/form_edit_extension_ability/form_edit_extension_ability_module.cpp index 5396134bb3..af44d4c05e 100644 --- a/frameworks/js/napi/form_edit_extension_ability/form_edit_extension_ability_module.cpp +++ b/frameworks/js/napi/form_edit_extension_ability/form_edit_extension_ability_module.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/frameworks/js/napi/form_edit_extension_context/form_edit_extension_context.js b/frameworks/js/napi/form_edit_extension_context/form_edit_extension_context.js index 8eab060c36..b1a54b1649 100644 --- a/frameworks/js/napi/form_edit_extension_context/form_edit_extension_context.js +++ b/frameworks/js/napi/form_edit_extension_context/form_edit_extension_context.js @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/frameworks/js/napi/form_edit_extension_context/form_edit_extension_context_module.cpp b/frameworks/js/napi/form_edit_extension_context/form_edit_extension_context_module.cpp index c58634b72e..8fb6cd184d 100644 --- a/frameworks/js/napi/form_edit_extension_context/form_edit_extension_context_module.cpp +++ b/frameworks/js/napi/form_edit_extension_context/form_edit_extension_context_module.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at -- Gitee From 0f63e3773cd55aa28e47834ade12f0c34589432e Mon Sep 17 00:00:00 2001 From: zhangying <42703582@qq.com> Date: Sat, 18 Jan 2025 22:26:14 +0800 Subject: [PATCH 04/15] =?UTF-8?q?=E5=8D=A1=E7=89=87=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E6=96=B0=E5=A2=9EFormEditExtensionAbility=E8=83=BD=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhangying <42703582@qq.com> --- BUILD.gn | 4 +- frameworks/js/napi/BUILD.gn | 1268 ++++++++++++++++++----------------- 2 files changed, 638 insertions(+), 634 deletions(-) diff --git a/BUILD.gn b/BUILD.gn index 7dccd57a56..a81fd7e031 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -392,6 +392,8 @@ group("form_napi_packages") { "${form_fwk_napi_path}:formagent", "${form_fwk_napi_path}:formbindingdata", "${form_fwk_napi_path}:formbindingdata_napi", + "${form_fwk_napi_path}:formeditextensionability_napi", + "${form_fwk_napi_path}:formeditextensioncontext_napi", "${form_fwk_napi_path}:formerror_napi", "${form_fwk_napi_path}:formextension_napi", "${form_fwk_napi_path}:formextensionability", @@ -404,8 +406,6 @@ group("form_napi_packages") { "${form_fwk_napi_path}:formprovider", "${form_fwk_napi_path}:formprovider_napi", "${form_fwk_napi_path}:formutil_napi", - "${form_fwk_napi_path}:formeditextensionability_napi", - "${form_fwk_napi_path}:formeditextensioncontext_napi", ] } } diff --git a/frameworks/js/napi/BUILD.gn b/frameworks/js/napi/BUILD.gn index a75c9a263c..6f7ca5d3ac 100644 --- a/frameworks/js/napi/BUILD.gn +++ b/frameworks/js/napi/BUILD.gn @@ -1,632 +1,636 @@ -# Copyright (c) 2021-2024 Huawei Device Co., Ltd. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import("//build/config/components/ets_frontend/es2abc_config.gni") -import("//build/ohos.gni") -import("//build/ohos/ace/ace.gni") -import("//foundation/ability/form_fwk/form_fwk.gni") - -config("fmskit_config") { - defines = [ "FMS_LOG_TAG = \"FmskitNative\"" ] -} - -################################### formbindingdata_napi ######################################## -ohos_shared_library("formbindingdata_napi") { - include_dirs = [] - - sources = [ - "form_binding_data/form_binding_data.cpp", - "form_binding_data/form_binding_data_module.cpp", - ] - - configs = [ ":fmskit_config" ] - - deps = [ "${form_fwk_path}:form_manager" ] - - external_deps = [ - "ability_runtime:runtime", - "c_utils:utils", - "hilog:libhilog", - "ipc:ipc_core", - "napi:ace_napi", - ] - - relative_install_dir = "module/application" - - subsystem_name = "ability" - part_name = "form_fwk" -} - -ohos_shared_library("formbindingdata") { - include_dirs = [] - - sources = [ - "form_binding_data/js_form_binding_data.cpp", - "form_binding_data/js_form_binding_data_module.cpp", - ] - - configs = [ ":fmskit_config" ] - - deps = [ - ":formutil_napi", - "${form_fwk_path}:form_manager", - ] - - external_deps = [ - "ability_runtime:abilitykit_native", - "ability_runtime:extensionkit_native", - "ability_runtime:runtime", - "c_utils:utils", - "common_event_service:cesfwk_innerkits", - "hilog:libhilog", - "ipc:ipc_core", - "napi:ace_napi", - ] - - relative_install_dir = "module/app/form" - - subsystem_name = "ability" - part_name = "form_fwk" -} - -################################### gen_form_extension_abc ######################################## -es2abc_gen_abc("gen_form_extension_abc") { - src_js = rebase_path("form_extension/form_extension.js") - dst_file = rebase_path(target_out_dir + "/form_extension.abc") - in_puts = [ "form_extension/form_extension.js" ] - out_puts = [ target_out_dir + "/form_extension.abc" ] - extra_args = [ "--module" ] -} - -gen_js_obj("form_extension_js") { - input = "form_extension/form_extension.js" - output = target_out_dir + "/form_extension.o" -} - -gen_js_obj("form_extension_abc") { - input = get_label_info(":gen_form_extension_abc", "target_out_dir") + - "/form_extension.abc" - output = target_out_dir + "/form_extension_abc.o" - dep = ":gen_form_extension_abc" -} - -ohos_shared_library("formextension_napi") { - sources = [ "form_extension/form_extension_module.cpp" ] - - configs = [ ":fmskit_config" ] - - deps = [ - ":form_extension_abc", - ":form_extension_js", - ] - - external_deps = [ "napi:ace_napi" ] - - relative_install_dir = "module/application" - subsystem_name = "ability" - part_name = "form_fwk" -} - -################################### gen_form_extension_ability_abc ######################################## -es2abc_gen_abc("gen_form_extension_ability_abc") { - src_js = rebase_path("form_extension_ability/form_extension_ability.js") - dst_file = rebase_path(target_out_dir + "/form_extension_ability.abc") - in_puts = [ "form_extension_ability/form_extension_ability.js" ] - out_puts = [ target_out_dir + "/form_extension_ability.abc" ] - extra_args = [ "--module" ] -} - -gen_js_obj("form_extension_ability_js") { - input = "form_extension_ability/form_extension_ability.js" - output = target_out_dir + "/form_extension_ability.o" -} - -gen_js_obj("form_extension_ability_abc") { - input = get_label_info(":gen_form_extension_ability_abc", "target_out_dir") + - "/form_extension_ability.abc" - output = target_out_dir + "/form_extension_ability_abc.o" - dep = ":gen_form_extension_ability_abc" -} - -ohos_shared_library("formextensionability") { - sources = [ "form_extension_ability/form_extension_ability_module.cpp" ] - - configs = [ ":fmskit_config" ] - - deps = [ - ":form_extension_ability_abc", - ":form_extension_ability_js", - ] - - external_deps = [ "napi:ace_napi" ] - - relative_install_dir = "module/app/form" - subsystem_name = "ability" - part_name = "form_fwk" -} - -################################### gen_form_extension_context_abc ######################################## -es2abc_gen_abc("gen_form_extension_context_abc") { - src_js = rebase_path("form_extension_context/form_extension_context.js") - dst_file = rebase_path(target_out_dir + "/form_extension_context.abc") - in_puts = [ "form_extension_context/form_extension_context.js" ] - out_puts = [ target_out_dir + "/form_extension_context.abc" ] - extra_args = [ "--module" ] -} - -gen_js_obj("form_extension_context_js") { - input = "form_extension_context/form_extension_context.js" - output = target_out_dir + "/form_extension_context.o" -} - -gen_js_obj("form_extension_context_abc") { - input = get_label_info(":gen_form_extension_context_abc", "target_out_dir") + - "/form_extension_context.abc" - output = target_out_dir + "/form_extension_context_abc.o" - dep = ":gen_form_extension_context_abc" -} - -ohos_shared_library("formextensioncontext_napi") { - sources = [ "form_extension_context/form_extension_context_module.cpp" ] - - configs = [ ":fmskit_config" ] - - deps = [ - ":form_extension_context_abc", - ":form_extension_context_js", - ] - - external_deps = [ "napi:ace_napi" ] - - relative_install_dir = "module/application" - subsystem_name = "ability" - part_name = "form_fwk" -} - -################################### forminfo_napi ######################################## -ohos_shared_library("forminfo_napi") { - include_dirs = [ "${form_fwk_path}/interfaces/inner_api/include" ] - - sources = [ - "form_info/form_info_module.cpp", - "form_info/js_form_info.cpp", - ] - - configs = [ ":fmskit_config" ] - - deps = [] - - external_deps = [ - "ability_runtime:runtime", - "bundle_framework:appexecfwk_base", - "c_utils:utils", - "hilog:libhilog", - "napi:ace_napi", - ] - - defines = [] - if (form_fwk_form_dimension_2_3) { - defines += [ "FORM_DIMENSION_2_3" ] - } - if (form_fwk_form_dimension_3_3) { - defines += [ "FORM_DIMENSION_3_3" ] - } - - relative_install_dir = "module/application" - - subsystem_name = "ability" - part_name = "form_fwk" -} - -ohos_shared_library("forminfo") { - include_dirs = [ "${form_fwk_path}/interfaces/inner_api/include" ] - - sources = [ - "form_info/form_info_module.cpp", - "form_info/js_form_info.cpp", - ] - - configs = [ ":fmskit_config" ] - - deps = [] - - external_deps = [ - "ability_runtime:runtime", - "bundle_framework:appexecfwk_base", - "c_utils:utils", - "hilog:libhilog", - "napi:ace_napi", - ] - - defines = [ "ENABLE_ERRCODE" ] - - if (form_fwk_form_dimension_2_3) { - defines += [ "FORM_DIMENSION_2_3" ] - } - if (form_fwk_form_dimension_3_3) { - defines += [ "FORM_DIMENSION_3_3" ] - } - - relative_install_dir = "module/app/form" - - subsystem_name = "ability" - part_name = "form_fwk" -} - -################################### formhost_napi ######################################## -ohos_shared_library("formhost_napi") { - include_dirs = [] - - sources = [ - "formHost/napi_form_host.cpp", - "formHost/native_module.cpp", - ] - - configs = [ ":fmskit_config" ] - - deps = [ - ":formutil_napi", - "${form_fwk_path}:fmskit_native", - ] - - external_deps = [ - "ability_base:want", - "ability_runtime:abilitykit_native", - "ability_runtime:extensionkit_native", - "ability_runtime:napi_common", - "ability_runtime:runtime", - "bundle_framework:appexecfwk_base", - "c_utils:utils", - "common_event_service:cesfwk_innerkits", - "eventhandler:libeventhandler", - "hilog:libhilog", - "napi:ace_napi", - ] - - relative_install_dir = "module/application" - - subsystem_name = "ability" - part_name = "form_fwk" -} - -################################### formhost ######################################## -ohos_shared_library("formhost") { - include_dirs = [ "${form_fwk_path}/interfaces/inner_api/include" ] - - sources = [ - "form_host/js_form_host.cpp", - "form_host/js_form_state_observer.cpp", - "form_host/native_module.cpp", - ] - - configs = [ ":fmskit_config" ] - - deps = [ - ":formutil_napi", - "${form_fwk_path}:fmskit_native", - "${form_fwk_path}:form_manager", - ] - - external_deps = [ - "ability_base:want", - "ability_runtime:abilitykit_native", - "ability_runtime:extensionkit_native", - "ability_runtime:napi_common", - "ability_runtime:runtime", - "access_token:libtokenid_sdk", - "bundle_framework:appexecfwk_base", - "c_utils:utils", - "common_event_service:cesfwk_innerkits", - "eventhandler:libeventhandler", - "hilog:libhilog", - "ipc:ipc_single", - "napi:ace_napi", - ] - - relative_install_dir = "module/app/form" - - subsystem_name = "ability" - part_name = "form_fwk" - - defines = [] - if (form_fwk_watch_api_disable) { - defines += [ "WATCH_API_DISABLE" ] - } -} - -################################### formobserver ######################################## -ohos_shared_library("formobserver") { - include_dirs = [ - "${form_fwk_path}/interfaces/inner_api/include", - "${form_fwk_path}/frameworks/js/napi/form_host", - "${form_fwk_path}/frameworks/js/napi/form_observer", - ] - - sources = [ - "form_host/js_form_state_observer.cpp", - "form_observer/js_form_observer.cpp", - "form_observer/native_module.cpp", - ] - - configs = [ ":fmskit_config" ] - - deps = [ - ":formutil_napi", - "${form_fwk_napi_path}:formhost", - "${form_fwk_path}:fmskit_native", - "${form_fwk_path}:form_manager", - ] - - external_deps = [ - "ability_base:want", - "ability_runtime:abilitykit_native", - "ability_runtime:extensionkit_native", - "ability_runtime:napi_common", - "ability_runtime:runtime", - "access_token:libtokenid_sdk", - "bundle_framework:appexecfwk_base", - "c_utils:utils", - "common_event_service:cesfwk_innerkits", - "eventhandler:libeventhandler", - "hilog:libhilog", - "ipc:ipc_single", - "napi:ace_napi", - ] - - relative_install_dir = "module/app/form" - - subsystem_name = "ability" - part_name = "form_fwk" -} - -################################### formprovider_napi ######################################## -ohos_shared_library("formprovider_napi") { - include_dirs = [] - - sources = [ - "formProvider/napi_form_provider.cpp", - "formProvider/native_module.cpp", - ] - - configs = [ ":fmskit_config" ] - - deps = [ - ":formutil_napi", - "${form_fwk_path}:fmskit_native", - "${form_fwk_path}:form_manager", - ] - - external_deps = [ - "ability_base:want", - "ability_runtime:abilitykit_native", - "ability_runtime:extensionkit_native", - "ability_runtime:napi_common", - "ability_runtime:runtime", - "bundle_framework:appexecfwk_base", - "c_utils:utils", - "common_event_service:cesfwk_innerkits", - "hilog:libhilog", - "napi:ace_napi", - ] - - relative_install_dir = "module/application" - - subsystem_name = "ability" - part_name = "form_fwk" -} - -ohos_shared_library("formprovider") { - include_dirs = [] - - sources = [ - "form_provider/js_form_provider.cpp", - "form_provider/native_module.cpp", - ] - - configs = [ ":fmskit_config" ] - - deps = [ - ":formutil_napi", - "${form_fwk_path}:fmskit_native", - "${form_fwk_path}:form_manager", - ] - - external_deps = [ - "ability_base:want", - "ability_runtime:abilitykit_native", - "ability_runtime:extensionkit_native", - "ability_runtime:napi_common", - "ability_runtime:runtime", - "access_token:libtokenid_sdk", - "bundle_framework:appexecfwk_base", - "c_utils:utils", - "common_event_service:cesfwk_innerkits", - "hilog:libhilog", - "ipc:ipc_single", - "napi:ace_napi", - ] - - relative_install_dir = "module/app/form" - - subsystem_name = "ability" - part_name = "form_fwk" -} - -################################### formagent_napi ######################################## -ohos_shared_library("formagent") { - include_dirs = [] - - sources = [ - "form_agent/js_form_agent.cpp", - "form_agent/native_module.cpp", - ] - - configs = [ ":fmskit_config" ] - - deps = [ - ":formutil_napi", - "${form_fwk_path}:fmskit_native", - "${form_fwk_path}:form_manager", - ] - - external_deps = [ - "ability_base:want", - "ability_runtime:abilitykit_native", - "ability_runtime:extensionkit_native", - "ability_runtime:napi_common", - "ability_runtime:runtime", - "bundle_framework:appexecfwk_base", - "c_utils:utils", - "common_event_service:cesfwk_innerkits", - "hilog:libhilog", - "ipc:ipc_single", - "napi:ace_napi", - ] - - relative_install_dir = "module/app/form" - - subsystem_name = "ability" - part_name = "form_fwk" -} - -################################### formutil_napi_public_config ######################################## -config("formutil_napi_public_config") { - include_dirs = [ "formUtil/" ] -} - -ohos_shared_library("formutil_napi") { - include_dirs = [] - - public_configs = [ ":formutil_napi_public_config" ] - - sources = [ "formUtil/napi_form_util.cpp" ] - - configs = [ ":fmskit_config" ] - - deps = [ "${form_fwk_path}:fmskit_native" ] - - external_deps = [ - "ability_runtime:abilitykit_native", - "ability_runtime:extensionkit_native", - "ability_runtime:runtime", - "common_event_service:cesfwk_innerkits", - "hilog:libhilog", - "napi:ace_napi", - ] - - subsystem_name = "ability" - innerapi_tags = [ "platformsdk" ] - part_name = "form_fwk" -} - -################################### formerror_napi ######################################## -ohos_shared_library("formerror_napi") { - include_dirs = [ "${form_fwk_napi_path}/formUtil" ] - - sources = [ - "form_error/form_error_module.cpp", - "form_error/js_form_error.cpp", - ] - - configs = [ ":fmskit_config" ] - - external_deps = [ - "ability_runtime:abilitykit_native", - "ability_runtime:extensionkit_native", - "ability_runtime:runtime", - "common_event_service:cesfwk_innerkits", - "hilog:libhilog", - "napi:ace_napi", - ] - - relative_install_dir = "module/application" - - subsystem_name = "ability" - part_name = "form_fwk" -} - -################################### gen_form_edit_extension_ability_abc ######################################## -es2abc_gen_abc("gen_form_edit_extension_ability_abc") { - src_js = rebase_path("form_edit_extension_ability/form_edit_extension_ability.js") - dst_file = rebase_path(target_out_dir + "/form_edit_extension_ability.abc") - in_puts = [ "form_edit_extension_ability/form_edit_extension_ability.js" ] - out_puts = [ target_out_dir + "/form_edit_extension_ability.abc" ] - extra_args = [ "--module" ] -} - -gen_js_obj("form_edit_extension_ability_js") { - input = "form_edit_extension_ability/form_edit_extension_ability.js" - output = target_out_dir + "/form_edit_extension_ability.o" -} - -gen_js_obj("form_edit_extension_ability_abc") { - input = get_label_info(":gen_form_edit_extension_ability_abc", "target_out_dir") + - "/form_edit_extension_ability.abc" - output = target_out_dir + "/form_edit_extension_ability_abc.o" - dep = ":gen_form_edit_extension_ability_abc" -} - -ohos_shared_library("formeditextensionability_napi") { - sources = [ "form_edit_extension_ability/form_edit_extension_ability_module.cpp" ] - - configs = [ ":fmskit_config" ] - - deps = [ - ":form_edit_extension_ability_abc", - ":form_edit_extension_ability_js", - ] - - external_deps = [ "napi:ace_napi" ] - - relative_install_dir = "module/app/form" - subsystem_name = "ability" - part_name = "form_fwk" -} - -################################### gen_form_edit_extension_context_abc ######################################## -es2abc_gen_abc("gen_form_edit_extension_context_abc") { - src_js = rebase_path("form_edit_extension_context/form_edit_extension_context.js") - dst_file = rebase_path(target_out_dir + "/form_edit_extension_context.abc") - in_puts = [ "form_edit_extension_context/form_edit_extension_context.js" ] - out_puts = [ target_out_dir + "/form_edit_extension_context.abc" ] - extra_args = [ "--module" ] -} - -gen_js_obj("form_edit_extension_context_js") { - input = "form_edit_extension_context/form_edit_extension_context.js" - output = target_out_dir + "/form_edit_extension_context.o" -} - -gen_js_obj("form_edit_extension_context_abc") { - input = get_label_info(":gen_form_edit_extension_context_abc", "target_out_dir") + - "/form_edit_extension_context.abc" - output = target_out_dir + "/form_edit_extension_context_abc.o" - dep = ":gen_form_edit_extension_context_abc" -} - -ohos_shared_library("formeditextensioncontext_napi") { - sources = [ "form_edit_extension_context/form_edit_extension_context_module.cpp" ] - - configs = [ ":fmskit_config" ] - - deps = [ - ":form_edit_extension_context_abc", - ":form_edit_extension_context_js", - ] - - external_deps = [ "napi:ace_napi" ] - - relative_install_dir = "module/application" - subsystem_name = "ability" - part_name = "form_fwk" -} \ No newline at end of file +# Copyright (c) 2021-2024 Huawei Device Co., Ltd. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//build/config/components/ets_frontend/es2abc_config.gni") +import("//build/ohos.gni") +import("//build/ohos/ace/ace.gni") +import("//foundation/ability/form_fwk/form_fwk.gni") + +config("fmskit_config") { + defines = [ "FMS_LOG_TAG = \"FmskitNative\"" ] +} + +################################### formbindingdata_napi ######################################## +ohos_shared_library("formbindingdata_napi") { + include_dirs = [] + + sources = [ + "form_binding_data/form_binding_data.cpp", + "form_binding_data/form_binding_data_module.cpp", + ] + + configs = [ ":fmskit_config" ] + + deps = [ "${form_fwk_path}:form_manager" ] + + external_deps = [ + "ability_runtime:runtime", + "c_utils:utils", + "hilog:libhilog", + "ipc:ipc_core", + "napi:ace_napi", + ] + + relative_install_dir = "module/application" + + subsystem_name = "ability" + part_name = "form_fwk" +} + +ohos_shared_library("formbindingdata") { + include_dirs = [] + + sources = [ + "form_binding_data/js_form_binding_data.cpp", + "form_binding_data/js_form_binding_data_module.cpp", + ] + + configs = [ ":fmskit_config" ] + + deps = [ + ":formutil_napi", + "${form_fwk_path}:form_manager", + ] + + external_deps = [ + "ability_runtime:abilitykit_native", + "ability_runtime:extensionkit_native", + "ability_runtime:runtime", + "c_utils:utils", + "common_event_service:cesfwk_innerkits", + "hilog:libhilog", + "ipc:ipc_core", + "napi:ace_napi", + ] + + relative_install_dir = "module/app/form" + + subsystem_name = "ability" + part_name = "form_fwk" +} + +################################### gen_form_extension_abc ######################################## +es2abc_gen_abc("gen_form_extension_abc") { + src_js = rebase_path("form_extension/form_extension.js") + dst_file = rebase_path(target_out_dir + "/form_extension.abc") + in_puts = [ "form_extension/form_extension.js" ] + out_puts = [ target_out_dir + "/form_extension.abc" ] + extra_args = [ "--module" ] +} + +gen_js_obj("form_extension_js") { + input = "form_extension/form_extension.js" + output = target_out_dir + "/form_extension.o" +} + +gen_js_obj("form_extension_abc") { + input = get_label_info(":gen_form_extension_abc", "target_out_dir") + + "/form_extension.abc" + output = target_out_dir + "/form_extension_abc.o" + dep = ":gen_form_extension_abc" +} + +ohos_shared_library("formextension_napi") { + sources = [ "form_extension/form_extension_module.cpp" ] + + configs = [ ":fmskit_config" ] + + deps = [ + ":form_extension_abc", + ":form_extension_js", + ] + + external_deps = [ "napi:ace_napi" ] + + relative_install_dir = "module/application" + subsystem_name = "ability" + part_name = "form_fwk" +} + +################################### gen_form_extension_ability_abc ######################################## +es2abc_gen_abc("gen_form_extension_ability_abc") { + src_js = rebase_path("form_extension_ability/form_extension_ability.js") + dst_file = rebase_path(target_out_dir + "/form_extension_ability.abc") + in_puts = [ "form_extension_ability/form_extension_ability.js" ] + out_puts = [ target_out_dir + "/form_extension_ability.abc" ] + extra_args = [ "--module" ] +} + +gen_js_obj("form_extension_ability_js") { + input = "form_extension_ability/form_extension_ability.js" + output = target_out_dir + "/form_extension_ability.o" +} + +gen_js_obj("form_extension_ability_abc") { + input = get_label_info(":gen_form_extension_ability_abc", "target_out_dir") + + "/form_extension_ability.abc" + output = target_out_dir + "/form_extension_ability_abc.o" + dep = ":gen_form_extension_ability_abc" +} + +ohos_shared_library("formextensionability") { + sources = [ "form_extension_ability/form_extension_ability_module.cpp" ] + + configs = [ ":fmskit_config" ] + + deps = [ + ":form_extension_ability_abc", + ":form_extension_ability_js", + ] + + external_deps = [ "napi:ace_napi" ] + + relative_install_dir = "module/app/form" + subsystem_name = "ability" + part_name = "form_fwk" +} + +################################### gen_form_extension_context_abc ######################################## +es2abc_gen_abc("gen_form_extension_context_abc") { + src_js = rebase_path("form_extension_context/form_extension_context.js") + dst_file = rebase_path(target_out_dir + "/form_extension_context.abc") + in_puts = [ "form_extension_context/form_extension_context.js" ] + out_puts = [ target_out_dir + "/form_extension_context.abc" ] + extra_args = [ "--module" ] +} + +gen_js_obj("form_extension_context_js") { + input = "form_extension_context/form_extension_context.js" + output = target_out_dir + "/form_extension_context.o" +} + +gen_js_obj("form_extension_context_abc") { + input = get_label_info(":gen_form_extension_context_abc", "target_out_dir") + + "/form_extension_context.abc" + output = target_out_dir + "/form_extension_context_abc.o" + dep = ":gen_form_extension_context_abc" +} + +ohos_shared_library("formextensioncontext_napi") { + sources = [ "form_extension_context/form_extension_context_module.cpp" ] + + configs = [ ":fmskit_config" ] + + deps = [ + ":form_extension_context_abc", + ":form_extension_context_js", + ] + + external_deps = [ "napi:ace_napi" ] + + relative_install_dir = "module/application" + subsystem_name = "ability" + part_name = "form_fwk" +} + +################################### forminfo_napi ######################################## +ohos_shared_library("forminfo_napi") { + include_dirs = [ "${form_fwk_path}/interfaces/inner_api/include" ] + + sources = [ + "form_info/form_info_module.cpp", + "form_info/js_form_info.cpp", + ] + + configs = [ ":fmskit_config" ] + + deps = [] + + external_deps = [ + "ability_runtime:runtime", + "bundle_framework:appexecfwk_base", + "c_utils:utils", + "hilog:libhilog", + "napi:ace_napi", + ] + + defines = [] + if (form_fwk_form_dimension_2_3) { + defines += [ "FORM_DIMENSION_2_3" ] + } + if (form_fwk_form_dimension_3_3) { + defines += [ "FORM_DIMENSION_3_3" ] + } + + relative_install_dir = "module/application" + + subsystem_name = "ability" + part_name = "form_fwk" +} + +ohos_shared_library("forminfo") { + include_dirs = [ "${form_fwk_path}/interfaces/inner_api/include" ] + + sources = [ + "form_info/form_info_module.cpp", + "form_info/js_form_info.cpp", + ] + + configs = [ ":fmskit_config" ] + + deps = [] + + external_deps = [ + "ability_runtime:runtime", + "bundle_framework:appexecfwk_base", + "c_utils:utils", + "hilog:libhilog", + "napi:ace_napi", + ] + + defines = [ "ENABLE_ERRCODE" ] + + if (form_fwk_form_dimension_2_3) { + defines += [ "FORM_DIMENSION_2_3" ] + } + if (form_fwk_form_dimension_3_3) { + defines += [ "FORM_DIMENSION_3_3" ] + } + + relative_install_dir = "module/app/form" + + subsystem_name = "ability" + part_name = "form_fwk" +} + +################################### formhost_napi ######################################## +ohos_shared_library("formhost_napi") { + include_dirs = [] + + sources = [ + "formHost/napi_form_host.cpp", + "formHost/native_module.cpp", + ] + + configs = [ ":fmskit_config" ] + + deps = [ + ":formutil_napi", + "${form_fwk_path}:fmskit_native", + ] + + external_deps = [ + "ability_base:want", + "ability_runtime:abilitykit_native", + "ability_runtime:extensionkit_native", + "ability_runtime:napi_common", + "ability_runtime:runtime", + "bundle_framework:appexecfwk_base", + "c_utils:utils", + "common_event_service:cesfwk_innerkits", + "eventhandler:libeventhandler", + "hilog:libhilog", + "napi:ace_napi", + ] + + relative_install_dir = "module/application" + + subsystem_name = "ability" + part_name = "form_fwk" +} + +################################### formhost ######################################## +ohos_shared_library("formhost") { + include_dirs = [ "${form_fwk_path}/interfaces/inner_api/include" ] + + sources = [ + "form_host/js_form_host.cpp", + "form_host/js_form_state_observer.cpp", + "form_host/native_module.cpp", + ] + + configs = [ ":fmskit_config" ] + + deps = [ + ":formutil_napi", + "${form_fwk_path}:fmskit_native", + "${form_fwk_path}:form_manager", + ] + + external_deps = [ + "ability_base:want", + "ability_runtime:abilitykit_native", + "ability_runtime:extensionkit_native", + "ability_runtime:napi_common", + "ability_runtime:runtime", + "access_token:libtokenid_sdk", + "bundle_framework:appexecfwk_base", + "c_utils:utils", + "common_event_service:cesfwk_innerkits", + "eventhandler:libeventhandler", + "hilog:libhilog", + "ipc:ipc_single", + "napi:ace_napi", + ] + + relative_install_dir = "module/app/form" + + subsystem_name = "ability" + part_name = "form_fwk" + + defines = [] + if (form_fwk_watch_api_disable) { + defines += [ "WATCH_API_DISABLE" ] + } +} + +################################### formobserver ######################################## +ohos_shared_library("formobserver") { + include_dirs = [ + "${form_fwk_path}/interfaces/inner_api/include", + "${form_fwk_path}/frameworks/js/napi/form_host", + "${form_fwk_path}/frameworks/js/napi/form_observer", + ] + + sources = [ + "form_host/js_form_state_observer.cpp", + "form_observer/js_form_observer.cpp", + "form_observer/native_module.cpp", + ] + + configs = [ ":fmskit_config" ] + + deps = [ + ":formutil_napi", + "${form_fwk_napi_path}:formhost", + "${form_fwk_path}:fmskit_native", + "${form_fwk_path}:form_manager", + ] + + external_deps = [ + "ability_base:want", + "ability_runtime:abilitykit_native", + "ability_runtime:extensionkit_native", + "ability_runtime:napi_common", + "ability_runtime:runtime", + "access_token:libtokenid_sdk", + "bundle_framework:appexecfwk_base", + "c_utils:utils", + "common_event_service:cesfwk_innerkits", + "eventhandler:libeventhandler", + "hilog:libhilog", + "ipc:ipc_single", + "napi:ace_napi", + ] + + relative_install_dir = "module/app/form" + + subsystem_name = "ability" + part_name = "form_fwk" +} + +################################### formprovider_napi ######################################## +ohos_shared_library("formprovider_napi") { + include_dirs = [] + + sources = [ + "formProvider/napi_form_provider.cpp", + "formProvider/native_module.cpp", + ] + + configs = [ ":fmskit_config" ] + + deps = [ + ":formutil_napi", + "${form_fwk_path}:fmskit_native", + "${form_fwk_path}:form_manager", + ] + + external_deps = [ + "ability_base:want", + "ability_runtime:abilitykit_native", + "ability_runtime:extensionkit_native", + "ability_runtime:napi_common", + "ability_runtime:runtime", + "bundle_framework:appexecfwk_base", + "c_utils:utils", + "common_event_service:cesfwk_innerkits", + "hilog:libhilog", + "napi:ace_napi", + ] + + relative_install_dir = "module/application" + + subsystem_name = "ability" + part_name = "form_fwk" +} + +ohos_shared_library("formprovider") { + include_dirs = [] + + sources = [ + "form_provider/js_form_provider.cpp", + "form_provider/native_module.cpp", + ] + + configs = [ ":fmskit_config" ] + + deps = [ + ":formutil_napi", + "${form_fwk_path}:fmskit_native", + "${form_fwk_path}:form_manager", + ] + + external_deps = [ + "ability_base:want", + "ability_runtime:abilitykit_native", + "ability_runtime:extensionkit_native", + "ability_runtime:napi_common", + "ability_runtime:runtime", + "access_token:libtokenid_sdk", + "bundle_framework:appexecfwk_base", + "c_utils:utils", + "common_event_service:cesfwk_innerkits", + "hilog:libhilog", + "ipc:ipc_single", + "napi:ace_napi", + ] + + relative_install_dir = "module/app/form" + + subsystem_name = "ability" + part_name = "form_fwk" +} + +################################### formagent_napi ######################################## +ohos_shared_library("formagent") { + include_dirs = [] + + sources = [ + "form_agent/js_form_agent.cpp", + "form_agent/native_module.cpp", + ] + + configs = [ ":fmskit_config" ] + + deps = [ + ":formutil_napi", + "${form_fwk_path}:fmskit_native", + "${form_fwk_path}:form_manager", + ] + + external_deps = [ + "ability_base:want", + "ability_runtime:abilitykit_native", + "ability_runtime:extensionkit_native", + "ability_runtime:napi_common", + "ability_runtime:runtime", + "bundle_framework:appexecfwk_base", + "c_utils:utils", + "common_event_service:cesfwk_innerkits", + "hilog:libhilog", + "ipc:ipc_single", + "napi:ace_napi", + ] + + relative_install_dir = "module/app/form" + + subsystem_name = "ability" + part_name = "form_fwk" +} + +################################### formutil_napi_public_config ######################################## +config("formutil_napi_public_config") { + include_dirs = [ "formUtil/" ] +} + +ohos_shared_library("formutil_napi") { + include_dirs = [] + + public_configs = [ ":formutil_napi_public_config" ] + + sources = [ "formUtil/napi_form_util.cpp" ] + + configs = [ ":fmskit_config" ] + + deps = [ "${form_fwk_path}:fmskit_native" ] + + external_deps = [ + "ability_runtime:abilitykit_native", + "ability_runtime:extensionkit_native", + "ability_runtime:runtime", + "common_event_service:cesfwk_innerkits", + "hilog:libhilog", + "napi:ace_napi", + ] + + subsystem_name = "ability" + innerapi_tags = [ "platformsdk" ] + part_name = "form_fwk" +} + +################################### formerror_napi ######################################## +ohos_shared_library("formerror_napi") { + include_dirs = [ "${form_fwk_napi_path}/formUtil" ] + + sources = [ + "form_error/form_error_module.cpp", + "form_error/js_form_error.cpp", + ] + + configs = [ ":fmskit_config" ] + + external_deps = [ + "ability_runtime:abilitykit_native", + "ability_runtime:extensionkit_native", + "ability_runtime:runtime", + "common_event_service:cesfwk_innerkits", + "hilog:libhilog", + "napi:ace_napi", + ] + + relative_install_dir = "module/application" + + subsystem_name = "ability" + part_name = "form_fwk" +} + +################################### gen_form_edit_extension_ability_abc ######################################## +es2abc_gen_abc("gen_form_edit_extension_ability_abc") { + src_js = + rebase_path("form_edit_extension_ability/form_edit_extension_ability.js") + dst_file = rebase_path(target_out_dir + "/form_edit_extension_ability.abc") + in_puts = [ "form_edit_extension_ability/form_edit_extension_ability.js" ] + out_puts = [ target_out_dir + "/form_edit_extension_ability.abc" ] + extra_args = [ "--module" ] +} + +gen_js_obj("form_edit_extension_ability_js") { + input = "form_edit_extension_ability/form_edit_extension_ability.js" + output = target_out_dir + "/form_edit_extension_ability.o" +} + +gen_js_obj("form_edit_extension_ability_abc") { + input = get_label_info(":gen_form_edit_extension_ability_abc", + "target_out_dir") + "/form_edit_extension_ability.abc" + output = target_out_dir + "/form_edit_extension_ability_abc.o" + dep = ":gen_form_edit_extension_ability_abc" +} + +ohos_shared_library("formeditextensionability_napi") { + sources = + [ "form_edit_extension_ability/form_edit_extension_ability_module.cpp" ] + + configs = [ ":fmskit_config" ] + + deps = [ + ":form_edit_extension_ability_abc", + ":form_edit_extension_ability_js", + ] + + external_deps = [ "napi:ace_napi" ] + + relative_install_dir = "module/app/form" + subsystem_name = "ability" + part_name = "form_fwk" +} + +################################### gen_form_edit_extension_context_abc ######################################## +es2abc_gen_abc("gen_form_edit_extension_context_abc") { + src_js = + rebase_path("form_edit_extension_context/form_edit_extension_context.js") + dst_file = rebase_path(target_out_dir + "/form_edit_extension_context.abc") + in_puts = [ "form_edit_extension_context/form_edit_extension_context.js" ] + out_puts = [ target_out_dir + "/form_edit_extension_context.abc" ] + extra_args = [ "--module" ] +} + +gen_js_obj("form_edit_extension_context_js") { + input = "form_edit_extension_context/form_edit_extension_context.js" + output = target_out_dir + "/form_edit_extension_context.o" +} + +gen_js_obj("form_edit_extension_context_abc") { + input = get_label_info(":gen_form_edit_extension_context_abc", + "target_out_dir") + "/form_edit_extension_context.abc" + output = target_out_dir + "/form_edit_extension_context_abc.o" + dep = ":gen_form_edit_extension_context_abc" +} + +ohos_shared_library("formeditextensioncontext_napi") { + sources = + [ "form_edit_extension_context/form_edit_extension_context_module.cpp" ] + + configs = [ ":fmskit_config" ] + + deps = [ + ":form_edit_extension_context_abc", + ":form_edit_extension_context_js", + ] + + external_deps = [ "napi:ace_napi" ] + + relative_install_dir = "module/application" + subsystem_name = "ability" + part_name = "form_fwk" +} -- Gitee From 97f12d765db94ee17fb05effd0cdfd138bb6d532 Mon Sep 17 00:00:00 2001 From: zhangying <42703582@qq.com> Date: Sun, 19 Jan 2025 14:19:24 +0800 Subject: [PATCH 05/15] =?UTF-8?q?=E5=8D=A1=E7=89=87=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E6=96=B0=E5=A2=9EFormEditExtensionAbility=E8=83=BD=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhangying <42703582@qq.com> --- .../inner_api/include/form_mgr_interface.h | 9 ----- interfaces/inner_api/include/form_mgr_proxy.h | 7 ---- interfaces/inner_api/include/form_mgr_stub.h | 8 ----- interfaces/inner_api/src/form_mgr_proxy.cpp | 27 --------------- interfaces/inner_api/src/form_mgr_stub.cpp | 24 -------------- interfaces/kits/native/include/form_mgr.h | 7 ---- interfaces/kits/native/src/form_mgr.cpp | 17 ---------- services/include/form_mgr_adapter.h | 16 --------- services/include/form_mgr_service.h | 8 ----- services/src/form_mgr_adapter.cpp | 33 ------------------- services/src/form_mgr_service.cpp | 10 ------ 11 files changed, 166 deletions(-) diff --git a/interfaces/inner_api/include/form_mgr_interface.h b/interfaces/inner_api/include/form_mgr_interface.h index 5ede3e15b3..3c9d29c3e4 100644 --- a/interfaces/inner_api/include/form_mgr_interface.h +++ b/interfaces/inner_api/include/form_mgr_interface.h @@ -153,14 +153,6 @@ public: virtual ErrCode RequestPublishFormWithSnapshot(Want &want, bool withFormBindingData, std::unique_ptr &formBindingData, int64_t &formId) = 0; - /** - * @brief Request to SCB to Open FormManageView. - * - * @param want The want of the form to publish. - * @return Returns ERR_OK on success, others on failure. - */ - virtual ErrCode RequestOpenFormView(Want &want) = 0; - /** * @brief Lifecycle update. * @param formIds The Id of the forms. @@ -795,7 +787,6 @@ public: FORM_MGR_PUBLISH_FORM_ERRCODE_RESULT, FORM_MGR_ACQUIRE_ADD_FORM_RESULT, FORM_MGR_REQUEST_PUBLISH_FORM_WITH_SNAPSHOT, - FORM_MGR_REQUEST_SCENEBOARD_OPEN_FORM_MANAGE_VIEW, FORM_MGR_BATCH_REFRESH_FORMS, FORM_MGR_ENABLE_FORMS, FORM_MGR_IS_SYSTEM_APP_FORM, diff --git a/interfaces/inner_api/include/form_mgr_proxy.h b/interfaces/inner_api/include/form_mgr_proxy.h index fc94234193..63234b2990 100644 --- a/interfaces/inner_api/include/form_mgr_proxy.h +++ b/interfaces/inner_api/include/form_mgr_proxy.h @@ -638,13 +638,6 @@ public: */ ErrCode UpdateFormSize(const int64_t &formId, float width, float height, float borderWidth) override; - /** - * @brief Request to SCB to Open FormManageView. - * - * @param want The want of the form to publish. - * @return Returns ERR_OK on success, others on failure. - */ - ErrCode RequestOpenFormView(Want &want) override; private: template int GetParcelableInfos(MessageParcel &reply, std::vector &parcelableInfos); diff --git a/interfaces/inner_api/include/form_mgr_stub.h b/interfaces/inner_api/include/form_mgr_stub.h index 27abd561f4..e91a901d82 100644 --- a/interfaces/inner_api/include/form_mgr_stub.h +++ b/interfaces/inner_api/include/form_mgr_stub.h @@ -520,14 +520,6 @@ private: */ ErrCode HandleRequestPublishFormWithSnapshot(MessageParcel &data, MessageParcel &reply); - /** - * @brief handle RequestOpenFormView message. - * @param data input param. - * @param reply output param. - * @return Returns ERR_OK on success, others on failure. - */ - ErrCode HandleRequestOpenFormView(MessageParcel &data, MessageParcel &reply); - /** * @brief Update form with formRefreshType, send to form manager service. * @param formRefreshType The type of the form to refresh, 0: AllForm 1: 2: AppForm 2: AtomicServiceForm diff --git a/interfaces/inner_api/src/form_mgr_proxy.cpp b/interfaces/inner_api/src/form_mgr_proxy.cpp index b0c93d6cfa..92a05e6c4d 100644 --- a/interfaces/inner_api/src/form_mgr_proxy.cpp +++ b/interfaces/inner_api/src/form_mgr_proxy.cpp @@ -2296,33 +2296,6 @@ ErrCode FormMgrProxy::RequestPublishFormWithSnapshot(Want &want, bool withFormBi return errCode; } -ErrCode FormMgrProxy::RequestOpenFormView(Want &want) -{ - MessageParcel data; - MessageParcel reply; - - if (!WriteInterfaceToken(data)) { - HILOG_ERROR("write interface token failed"); - return ERR_APPEXECFWK_PARCEL_ERROR; - } - if (!data.WriteParcelable(&want)) { - HILOG_ERROR("write want failed"); - return ERR_APPEXECFWK_PARCEL_ERROR; - } - - MessageOption option; - int32_t error = SendTransactCmd( - IFormMgr::Message::FORM_MGR_REQUEST_SCENEBOARD_OPEN_FORM_MANAGE_VIEW, - data, - reply, - option); - if (error != ERR_OK) { - HILOG_ERROR("SendRequest:%{public}d failed", error); - return ERR_APPEXECFWK_FORM_SEND_FMS_MSG; - } - return reply.ReadInt32(); -} - int32_t FormMgrProxy::BatchRefreshForms(const int32_t formRefreshType) { MessageParcel data; diff --git a/interfaces/inner_api/src/form_mgr_stub.cpp b/interfaces/inner_api/src/form_mgr_stub.cpp index e5510087b4..c6b3400edc 100644 --- a/interfaces/inner_api/src/form_mgr_stub.cpp +++ b/interfaces/inner_api/src/form_mgr_stub.cpp @@ -117,8 +117,6 @@ int FormMgrStub::OnRemoteRequestFirst(uint32_t code, MessageParcel &data, Messag return HandleNotifyFormsVisible(data, reply); case static_cast(IFormMgr::Message::FORM_MGR_NOTIFY_FORMS_PRIVACY_PROTECTED): return HandleNotifyFormsPrivacyProtected(data, reply); - case static_cast(IFormMgr::Message::FORM_MGR_REQUEST_SCENEBOARD_OPEN_FORM_MANAGE_VIEW): - return HandleRequestOpenFormView(data, reply); default: return OnRemoteRequestSecond(code, data, reply, option); } @@ -1585,28 +1583,6 @@ ErrCode FormMgrStub::HandleRequestPublishFormWithSnapshot(MessageParcel &data, M return result; } -/** - * @brief handle CreateForm message. - * @param data input param. - * @param reply output param. - * @return Returns ERR_OK on success, others on failure. - */ -ErrCode FormMgrStub::HandleRequestOpenFormView(MessageParcel &data, MessageParcel &reply) -{ - std::unique_ptr want(data.ReadParcelable()); - if (want == nullptr) { - HILOG_ERROR("error to get want"); - return ERR_APPEXECFWK_PARCEL_ERROR; - } - - ErrCode result = RequestOpenFormView(*want); - if (!reply.WriteInt32(result)) { - HILOG_ERROR("write result failed"); - return ERR_APPEXECFWK_PARCEL_ERROR; - } - return result; -} - ErrCode FormMgrStub::HandleBatchRefreshForms(MessageParcel &data, MessageParcel &reply) { int32_t formRefreshType = data.ReadInt32(); diff --git a/interfaces/kits/native/include/form_mgr.h b/interfaces/kits/native/include/form_mgr.h index e4c3382858..6c3d6baa56 100644 --- a/interfaces/kits/native/include/form_mgr.h +++ b/interfaces/kits/native/include/form_mgr.h @@ -455,13 +455,6 @@ public: int32_t ShareForm(int64_t formId, const std::string &remoteDeviceId, const sptr &callerToken, int64_t requestCode); - /** - * @brief Request to SCB to Open FormManageView. - * - * @param want The want of the form to publish. - * @return Returns ERR_OK on success, others on failure. - */ - ErrCode RequestOpenFormView(Want &want); /** * @brief Acquire form data by formId. * @param formId The Id of the form to acquire data. diff --git a/interfaces/kits/native/src/form_mgr.cpp b/interfaces/kits/native/src/form_mgr.cpp index cf1a27ff31..214db6284c 100644 --- a/interfaces/kits/native/src/form_mgr.cpp +++ b/interfaces/kits/native/src/form_mgr.cpp @@ -1248,23 +1248,6 @@ int32_t FormMgr::StartAbility(const Want &want, const sptr &calle return remoteProxy_->StartAbility(want, callerToken); } - -ErrCode FormMgr::RequestOpenFormView(Want &want) -{ - HILOG_INFO("call"); - ErrCode errCode = Connect(); - if (errCode != ERR_OK) { - HILOG_ERROR("errCode:%{public}d", errCode); - return errCode; - } - std::shared_lock lock(connectMutex_); - if (remoteProxy_ == nullptr) { - HILOG_ERROR("null remoteProxy_"); - return ERR_APPEXECFWK_FORM_COMMON_CODE; - } - return remoteProxy_->RequestOpenFormView(want); -} - int32_t FormMgr::ShareForm(int64_t formId, const std::string &remoteDeviceId, const sptr &callerToken, int64_t requestCode) { diff --git a/services/include/form_mgr_adapter.h b/services/include/form_mgr_adapter.h index 5a7070e4ba..5de2489bd4 100644 --- a/services/include/form_mgr_adapter.h +++ b/services/include/form_mgr_adapter.h @@ -1152,22 +1152,6 @@ private: void FilterEventMapsByVisibleType(std::map> &eventMaps, const int32_t formVisibleType, std::map &restoreFormRecords); - /** -+ * @brief Request SCB to Open Form Manage View. -+ * -+ * @param want The want of the form to publish. -+ * @param needCheckFormPermission Indicates whether the app have system permissions.default value is true. -+ * @return Returns ERR_OK on success, others on failure. -+ */ -+ ErrCode RequestOpenFormView(Want &want, bool needCheckFormPermission = true); -+ -+ /** -+ * @brief Post request to open the form manage view of sceneBoard. -+ * @param want The want of the form to open. -+ * @return Returns ERR_OK on success, others on failure. -+ */ -+ ErrCode RequestOpenFormManageView(Want &want); - ErrCode CheckFormCountLimit(const int64_t formId, const Want &want); ErrCode AllotForm(const int64_t formId, const Want &want, diff --git a/services/include/form_mgr_service.h b/services/include/form_mgr_service.h index 8837bfeed8..15e2d7b3f4 100644 --- a/services/include/form_mgr_service.h +++ b/services/include/form_mgr_service.h @@ -690,14 +690,6 @@ public: */ ErrCode UpdateFormSize(const int64_t &formId, float width, float height, float borderWidth) override; - /** -+ * @brief Request to publish a form to the form host for normal authority. -+ * -+ * @param want The want of the form to open. -+ * @return Returns ERR_OK on success, others on failure. -+ */ -+ ErrCode RequestOpenFormView(Want &want) override; - void SubscribeNetConn(); friend class NetConnCallbackObserver; diff --git a/services/src/form_mgr_adapter.cpp b/services/src/form_mgr_adapter.cpp index 8ab9e24372..8a37db5026 100644 --- a/services/src/form_mgr_adapter.cpp +++ b/services/src/form_mgr_adapter.cpp @@ -2332,39 +2332,6 @@ ErrCode FormMgrAdapter::RequestPublishForm(Want &want, bool withFormBindingData, return errCode; } -ErrCode FormMgrAdapter::RequestOpenFormView(Want &want, bool needCheckFormPermission) -{ - HILOG_DEBUG("call"); - int callingUid = IPCSkeleton::GetCallingUid(); - int32_t userId = GetCurrentUserId(callingUid); - want.SetParam(Constants::PARAM_FORM_USER_ID, userId); - return RequestOpenFormManageView(want); -} - -ErrCode FormMgrAdapter::RequestOpenFormManageView(Want &want) -{ - HILOG_INFO("RequestOpenFormManageView start want:%{public}s", want.ToString().c_str()); - Want wantToSceneBoard(want); - ElementName elementName = want.GetElement(); - wantToSceneBoard.SetParam(Constants::PARAM_BUNDLE_NAME_KEY, elementName.GetBundleName()); - wantToSceneBoard.SetParam(Constants::PARAM_ABILITY_NAME_KEY, elementName.GetAbilityName()); - std::string bundleName = want.GetStringParam(Constants::PARAM_PUBLISH_FORM_HOST_BUNDLE_KEY); - std::string abilityName = want.GetStringParam(Constants::PARAM_PUBLISH_FORM_HOST_ABILITY_KEY); - wantToSceneBoard.SetElementName(bundleName, abilityName); - ErrCode errCode = QueryPublishFormToHost(wantToSceneBoard); - - if (errCode == ERR_OK) { - int32_t userId = want.GetIntParam(Constants::PARAM_FORM_USER_ID, -1); - HILOG_INFO("RequestOpenFormManageView StartAbility wantToSceneBoard:%{public}s", - wantToSceneBoard.ToString().c_str()); - errCode = FormAmsHelper::GetInstance().StartAbility(wantToSceneBoard, userId); - if (errCode != ERR_OK) { - HILOG_ERROR("RequestOpenFormManageView end errCode:%{public}d", errCode); - } - } - return errCode; -} - ErrCode FormMgrAdapter::SetPublishFormResult(const int64_t formId, Constants::PublishFormResult &errorCodeInfo) { HILOG_INFO("call"); diff --git a/services/src/form_mgr_service.cpp b/services/src/form_mgr_service.cpp index 2cbeb11e06..c31867ef66 100644 --- a/services/src/form_mgr_service.cpp +++ b/services/src/form_mgr_service.cpp @@ -1906,15 +1906,5 @@ void FormMgrService::SetDisConnectTypeTime() { lastNetLostTime_ = FormUtil::GetCurrentMillisecond(); } - -+ -+ErrCode FormMgrService::RequestOpenFormView(Want &want) -+{ -+ HILOG_INFO("begin:%{public}s, publish:%{public}s, end:%{public}s, onKvDataServiceAddTime:%{public}s", -+ onStartBeginTime_.c_str(), onStartPublishTime_.c_str(), -+ onStartEndTime_.c_str(), onKvDataServiceAddTime_.c_str()); -+ -+ return FormMgrAdapter::GetInstance().RequestOpenFormView(want, false); -+} } // namespace AppExecFwk } // namespace OHOS -- Gitee From f6e8f57eac76b5b46e2e975179ca6dbea0c1d5f5 Mon Sep 17 00:00:00 2001 From: zhangying <42703582@qq.com> Date: Sun, 19 Jan 2025 14:22:58 +0800 Subject: [PATCH 06/15] =?UTF-8?q?=E5=8D=A1=E7=89=87=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E6=96=B0=E5=A2=9EFormEditExtensionAbility=E8=83=BD=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhangying <42703582@qq.com> --- interfaces/inner_api/include/form_mgr_proxy.h | 1 - services/src/form_mgr_service.cpp | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/interfaces/inner_api/include/form_mgr_proxy.h b/interfaces/inner_api/include/form_mgr_proxy.h index 63234b2990..5f02906d3e 100644 --- a/interfaces/inner_api/include/form_mgr_proxy.h +++ b/interfaces/inner_api/include/form_mgr_proxy.h @@ -637,7 +637,6 @@ public: * @return Returns ERR_OK on success, others on failure. */ ErrCode UpdateFormSize(const int64_t &formId, float width, float height, float borderWidth) override; - private: template int GetParcelableInfos(MessageParcel &reply, std::vector &parcelableInfos); diff --git a/services/src/form_mgr_service.cpp b/services/src/form_mgr_service.cpp index c31867ef66..d8467a7011 100644 --- a/services/src/form_mgr_service.cpp +++ b/services/src/form_mgr_service.cpp @@ -1906,5 +1906,6 @@ void FormMgrService::SetDisConnectTypeTime() { lastNetLostTime_ = FormUtil::GetCurrentMillisecond(); } + } // namespace AppExecFwk } // namespace OHOS -- Gitee From 8d38fcd48212f32ef0a7203a435ed402e4a1baea Mon Sep 17 00:00:00 2001 From: zhangying <42703582@qq.com> Date: Sun, 19 Jan 2025 14:57:04 +0800 Subject: [PATCH 07/15] =?UTF-8?q?=E5=8D=A1=E7=89=87=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E6=96=B0=E5=A2=9EFormEditExtensionAbility=E8=83=BD=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhangying <42703582@qq.com> --- .../form_edit_extension_ability_module.cpp | 11 +++++------ .../form_edit_extension_context_module.cpp | 11 +++++------ 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/frameworks/js/napi/form_edit_extension_ability/form_edit_extension_ability_module.cpp b/frameworks/js/napi/form_edit_extension_ability/form_edit_extension_ability_module.cpp index af44d4c05e..ee1d50a295 100644 --- a/frameworks/js/napi/form_edit_extension_ability/form_edit_extension_ability_module.cpp +++ b/frameworks/js/napi/form_edit_extension_ability/form_edit_extension_ability_module.cpp @@ -26,14 +26,13 @@ static napi_module _module = { .nm_filename = "app/form/libformeditextensionability_napi.so/form_edit_extension_ability.js", .nm_modname = "app.form.FormEditExtensionAbility", }; -extern "C" __attribute__((constructor)) -void NAPI_app_form_FormEditExtensionAbility_AutoRegister() +extern "C" __attribute__((constructor))void NAPI_app_form_FormEditExtensionAbility_AutoRegister() { napi_module_register(&_module); } -extern "C" __attribute__((visibility("default"))) -void NAPI_app_form_FormEditExtensionAbility_GetJSCode(const char **buf, int *bufLen) +extern "C" __attribute__((visibility("default")))void NAPI_app_form_FormEditExtensionAbility_GetJSCode( + const char **buf, int *bufLen) { if (buf != nullptr) { *buf = _binary_form_edit_extension_ability_js_start; @@ -44,8 +43,8 @@ void NAPI_app_form_FormEditExtensionAbility_GetJSCode(const char **buf, int *buf } } -extern "C" __attribute__((visibility("default"))) -void NAPI_app_form_FormEditExtensionAbility_GetABCCode(const char **buf, int *buflen) +extern "C" __attribute__((visibility("default")))void NAPI_app_form_FormEditExtensionAbility_GetABCCode( + const char **buf, int *buflen) { if (buf != nullptr) { *buf = _binary_form_edit_extension_ability_abc_start; diff --git a/frameworks/js/napi/form_edit_extension_context/form_edit_extension_context_module.cpp b/frameworks/js/napi/form_edit_extension_context/form_edit_extension_context_module.cpp index 8fb6cd184d..048dd37a41 100644 --- a/frameworks/js/napi/form_edit_extension_context/form_edit_extension_context_module.cpp +++ b/frameworks/js/napi/form_edit_extension_context/form_edit_extension_context_module.cpp @@ -25,14 +25,13 @@ static napi_module _module = { .nm_filename = "application/libformeditextensioncontext_napi.so/form_edit_extension_context.js", .nm_modname = "application.FormEditExtensionContext", }; -extern "C" __attribute__((constructor)) -void NAPI_application_FormEditExtensionContext_AutoRegister() +extern "C" __attribute__((constructor)) void NAPI_application_FormEditExtensionContext_AutoRegister() { napi_module_register(&_module); } -extern "C" __attribute__((visibility("default"))) -void NAPI_application_FormEditExtensionContext_GetJSCode(const char **buf, int *bufLen) +extern "C" __attribute__((visibility("default")))void NAPI_application_FormEditExtensionContext_GetJSCode( + const char **buf, int *bufLen) { if (buf != nullptr) { *buf = _binary_form_edit_extension_context_js_start; @@ -44,8 +43,8 @@ void NAPI_application_FormEditExtensionContext_GetJSCode(const char **buf, int * } // ability_context JS register -extern "C" __attribute__((visibility("default"))) -void NAPI_application_FormEditExtensionContext_GetABCCode(const char **buf, int *buflen) +extern "C" __attribute__((visibility("default")))void NAPI_application_FormEditExtensionContext_GetABCCode( + const char **buf, int *buflen) { if (buf != nullptr) { *buf = _binary_form_edit_extension_context_abc_start; -- Gitee From b22aa3ffa1f76dab661f5be051d95ad42366fb18 Mon Sep 17 00:00:00 2001 From: zhangying <42703582@qq.com> Date: Mon, 20 Jan 2025 11:21:32 +0800 Subject: [PATCH 08/15] =?UTF-8?q?=E5=8D=A1=E7=89=87=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E6=96=B0=E5=A2=9EFormEditExtensionAbility=E8=83=BD=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhangying <42703582@qq.com> --- interfaces/inner_api/include/form_constants.h | 1 + 1 file changed, 1 insertion(+) diff --git a/interfaces/inner_api/include/form_constants.h b/interfaces/inner_api/include/form_constants.h index 6cfe3db87a..7d304eddd8 100644 --- a/interfaces/inner_api/include/form_constants.h +++ b/interfaces/inner_api/include/form_constants.h @@ -67,6 +67,7 @@ namespace Constants { constexpr const char* LOCAL_CODE_PATH = "/data/storage/el1/bundle"; constexpr const char* LOCAL_BUNDLES = "/data/bundles"; constexpr const char* FORM_PUBLISH_ACTION = "action.form.publish"; + constexpr const char* FORM_PAGE_ACTION = "action.form.page"; constexpr const char* OPEN_FORM_MANAGE_VIEW = "openFormManageView"; constexpr const char* OPEN_FORM_MANAGE_VIEW_ACTION = "action.form.openFormManageView"; constexpr const char* PAGE_ROUTER_SERVICE = "PageRouterService"; -- Gitee From 4cd50c4965828f9e76faeff4d7ad48a3b7324094 Mon Sep 17 00:00:00 2001 From: zhangying <42703582@qq.com> Date: Wed, 22 Jan 2025 15:35:59 +0800 Subject: [PATCH 09/15] =?UTF-8?q?=E5=8D=A1=E7=89=87=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E6=96=B0=E5=A2=9EFormEditExtensionAbility=E8=83=BD=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhangying <42703582@qq.com> --- BUILD.gn | 2 + frameworks/js/napi/BUILD.gn | 75 +++++++++ .../form_edit_extension.cpp | 41 +++++ .../form_edit_extension.h | 44 ++++++ .../form_edit_extension_module_loader.cpp | 48 ++++++ .../form_edit_extension_module_loader.h | 45 ++++++ .../js_form_edit_extension.cpp | 77 ++++++++++ .../js_form_edit_extension.h | 64 ++++++++ .../form_edit_extension_context.cpp | 56 +++++++ .../form_edit_extension_context.h | 52 +++++++ .../js_form_edit_extension_context.cpp | 116 ++++++++++++++ .../js_form_edit_extension_context.h | 50 ++++++ .../js_form_edit_extension_impl.cpp | 144 ++++++++++++++++++ .../js_form_edit_extension_impl.h | 52 +++++++ 14 files changed, 866 insertions(+) create mode 100644 frameworks/js/napi/form_edit_extension_ability/form_edit_extension.cpp create mode 100644 frameworks/js/napi/form_edit_extension_ability/form_edit_extension.h create mode 100644 frameworks/js/napi/form_edit_extension_ability/form_edit_extension_module_loader.cpp create mode 100644 frameworks/js/napi/form_edit_extension_ability/form_edit_extension_module_loader.h create mode 100644 frameworks/js/napi/form_edit_extension_ability/js_form_edit_extension.cpp create mode 100644 frameworks/js/napi/form_edit_extension_ability/js_form_edit_extension.h create mode 100644 frameworks/js/napi/form_edit_extension_context/form_edit_extension_context.cpp create mode 100644 frameworks/js/napi/form_edit_extension_context/form_edit_extension_context.h create mode 100644 frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_context.cpp create mode 100644 frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_context.h create mode 100644 frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_impl.cpp create mode 100644 frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_impl.h diff --git a/BUILD.gn b/BUILD.gn index a81fd7e031..dc16e3fc76 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -389,6 +389,8 @@ ohos_prebuilt_etc("form_config") { group("form_napi_packages") { if (ability_runtime_graphics) { deps = [ + "${form_fwk_napi_path}:form_edit_extension", + "${form_fwk_napi_path}:form_edit_extension_module", "${form_fwk_napi_path}:formagent", "${form_fwk_napi_path}:formbindingdata", "${form_fwk_napi_path}:formbindingdata_napi", diff --git a/frameworks/js/napi/BUILD.gn b/frameworks/js/napi/BUILD.gn index 6f7ca5d3ac..11ac111231 100644 --- a/frameworks/js/napi/BUILD.gn +++ b/frameworks/js/napi/BUILD.gn @@ -634,3 +634,78 @@ ohos_shared_library("formeditextensioncontext_napi") { subsystem_name = "ability" part_name = "form_fwk" } + +################################### gen_form_edit_extension_ability ######################################## +ohos_shared_library("form_edit_extension") { + include_dirs = [] + + sources = [ + "form_edit_extension_ability/form_edit_extension.cpp", + "form_edit_extension_ability/js_form_edit_extension.cpp", + "form_edit_extension_context/form_edit_extension_context.cpp", + "form_edit_extension_context/js_form_edit_extension_context.cpp", + "form_edit_extension_context/js_form_edit_extension_impl.cpp", + ] + + configs = [ ":fmskit_config" ] + + deps = [ + ":formutil_napi", + "${form_fwk_path}:fmskit_native", + "${form_fwk_path}:fmskit_provider_client", + "${form_fwk_path}:form_manager", + ] + + external_deps = [ + "ability_base:want", + "ability_runtime:ability_context_native", + "ability_runtime:abilitykit_native", + "ability_runtime:app_context", + "ability_runtime:napi_common", + "ability_runtime:runtime", + "ability_runtime:ui_extension", + "c_utils:utils", + "eventhandler:libeventhandler", + "ffrt:libffrt", + "hilog:libhilog", + "hitrace:hitrace_meter", + "ipc:ipc_napi", + "napi:ace_napi", + ] + + subsystem_name = "ability" + part_name = "form_fwk" +} + +ohos_shared_library("form_edit_extension_module") { + include_dirs = [] + + sources = + [ "form_edit_extension_ability/form_edit_extension_module_loader.cpp" ] + + configs = [ ":fmskit_config" ] + + deps = [ ":form_edit_extension" ] + + external_deps = [ + "ability_base:configuration", + "ability_base:session_info", + "ability_base:want", + "ability_runtime:abilitykit_native", + "ability_runtime:appkit_native", + "ability_runtime:extensionkit_native", + "ability_runtime:runtime", + "ability_runtime:ui_extension", + "bundle_framework:appexecfwk_core", + "hilog:libhilog", + "napi:ace_napi", + ] + + if (ability_runtime_graphics) { + deps += [ "${form_fwk_path}:form_manager" ] + } + + relative_install_dir = "extensionability" + subsystem_name = "ability" + part_name = "form_fwk" +} \ No newline at end of file diff --git a/frameworks/js/napi/form_edit_extension_ability/form_edit_extension.cpp b/frameworks/js/napi/form_edit_extension_ability/form_edit_extension.cpp new file mode 100644 index 0000000000..e7c08547c6 --- /dev/null +++ b/frameworks/js/napi/form_edit_extension_ability/form_edit_extension.cpp @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "form_edit_extension.h" +#include "hilog_tag_wrapper.h" +#include "js_form_edit_extension.h" +#include "runtime.h" +#include "../form_edit_extension_context/form_edit_extension_context.h" +namespace OHOS { +namespace AbilityRuntime { +FormEditExtension::FormEditExtension() +{ + TAG_LOGI(AAFwkTag::FORM_EDIT_EXT, "call"); +} + +FormEditExtension *FormEditExtension::Create(const std::unique_ptr &runtime) +{ + if (!runtime) { + return new FormEditExtension(); + } + switch (runtime->GetLanguage()) { + case Runtime::Language::JS: + return JsFormEditExtension::Create(runtime); + default: + return new FormEditExtension(); + } +} +} // namespace AbilityRuntime +} // namespace OHOS diff --git a/frameworks/js/napi/form_edit_extension_ability/form_edit_extension.h b/frameworks/js/napi/form_edit_extension_ability/form_edit_extension.h new file mode 100644 index 0000000000..e5b9627b2d --- /dev/null +++ b/frameworks/js/napi/form_edit_extension_ability/form_edit_extension.h @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef OHOS_ABILITY_RUNTIME_FORM_EDIT_EXTENSION_H +#define OHOS_ABILITY_RUNTIME_FORM_EDIT_EXTENSION_H + +#include "ui_extension_base.h" +#include "../form_edit_extension_context/form_edit_extension_context.h" +namespace OHOS { +namespace AbilityRuntime { +class FormEditExtensionContext; +class Runtime; +/** + * @brief FormEdit Extension components. + */ +class FormEditExtension : public UIExtensionBase, + public std::enable_shared_from_this { +public: + explicit FormEditExtension(); + virtual ~FormEditExtension() = default; + + /** + * @brief Create FormEditExtension UI extension. + * + * @param runtime The runtime. + * @return The FormEdit Extension instance. + */ + static FormEditExtension *Create(const std::unique_ptr &runtime); +}; +} // namespace AbilityRuntime +} // namespace OHOS +#endif // OHOS_ABILITY_RUNTIME_FORM_EDIT_EXTENSION_H diff --git a/frameworks/js/napi/form_edit_extension_ability/form_edit_extension_module_loader.cpp b/frameworks/js/napi/form_edit_extension_ability/form_edit_extension_module_loader.cpp new file mode 100644 index 0000000000..f887d84fa3 --- /dev/null +++ b/frameworks/js/napi/form_edit_extension_ability/form_edit_extension_module_loader.cpp @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "form_edit_extension_module_loader.h" + +#include "form_edit_extension.h" +#include "hilog_tag_wrapper.h" + +namespace OHOS { +namespace AbilityRuntime { +FormEditExtensionModuleLoader::FormEditExtensionModuleLoader() = default; +FormEditExtensionModuleLoader::~FormEditExtensionModuleLoader() = default; + +Extension *FormEditExtensionModuleLoader::Create(const std::unique_ptr &runtime) const +{ + TAG_LOGD(AAFwkTag::FORM_EDIT_EXT, "called"); + return FormEditExtension::Create(runtime); +} + +std::map FormEditExtensionModuleLoader::GetParams() +{ + TAG_LOGD(AAFwkTag::FORM_EDIT_EXT, "called"); + std::map params; + // type means extension type in ExtensionAbilityType of + // extension_ability_info.h, 507 means formEditExtension. + params.insert(std::pair("type", "507")); + params.insert(std::pair("name", "FormEditExtensionAbility")); + return params; +} + +extern "C" __attribute__((visibility("default"))) void *OHOS_EXTENSION_GetExtensionModule() +{ + return &FormEditExtensionModuleLoader::GetInstance(); +} +} // namespace AbilityRuntime +} // namespace OHOS \ No newline at end of file diff --git a/frameworks/js/napi/form_edit_extension_ability/form_edit_extension_module_loader.h b/frameworks/js/napi/form_edit_extension_ability/form_edit_extension_module_loader.h new file mode 100644 index 0000000000..a4520b1841 --- /dev/null +++ b/frameworks/js/napi/form_edit_extension_ability/form_edit_extension_module_loader.h @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2023 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef OHOS_ABILITY_RUNTIME_FORM_EDIT_EXTENSION_MODULE_LOADER_H +#define OHOS_ABILITY_RUNTIME_FORM_EDIT_EXTENSION_MODULE_LOADER_H + +#include "extension_module_loader.h" + +namespace OHOS { +namespace AbilityRuntime { +class FormEditExtensionModuleLoader : public ExtensionModuleLoader, public Singleton { + DECLARE_SINGLETON(FormEditExtensionModuleLoader); + +public: + /** + * @brief Create Extension. + * + * @param runtime The runtime. + * @return The Extension instance. + */ + Extension *Create(const std::unique_ptr& runtime) const override; + + /** + * @brief Get the params object + * + * @param runtime runtime + * @return td::map The map of extension type and extension name. + */ + std::map GetParams() override; +}; +} +} +#endif // OHOS_ABILITY_RUNTIME_FORM_EDIT_EXTENSION_MODULE_LOADER_H diff --git a/frameworks/js/napi/form_edit_extension_ability/js_form_edit_extension.cpp b/frameworks/js/napi/form_edit_extension_ability/js_form_edit_extension.cpp new file mode 100644 index 0000000000..6648fd85f5 --- /dev/null +++ b/frameworks/js/napi/form_edit_extension_ability/js_form_edit_extension.cpp @@ -0,0 +1,77 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "js_form_edit_extension.h" +#include "hilog_tag_wrapper.h" +#include "hitrace_meter.h" +#include "js_ui_extension_base.h" +#include "../form_edit_extension_context/js_form_edit_extension_context.h" +#include "../form_edit_extension_context/js_form_edit_extension_impl.h" + +namespace OHOS { +namespace AbilityRuntime { +JsFormEditExtension *JsFormEditExtension::Create(const std::unique_ptr &runtime) +{ + return new JsFormEditExtension(runtime); +} + +JsFormEditExtension::JsFormEditExtension(const std::unique_ptr &runtime) +{ + impl_ = std::make_shared(runtime); + SetUIExtensionBaseImpl(impl_); +} + +void JsFormEditExtension::Init(const std::shared_ptr &record, + const std::shared_ptr &application, + std::shared_ptr &handler, + const sptr &token) +{ + TAG_LOGD(AAFwkTag::UI_EXT, "Begin init form edit extension"); + std::shared_ptr context = std::make_shared(); + context->SetToken(token); + auto appContext = Context::GetApplicationContext(); + if (appContext == nullptr) { + TAG_LOGE(AAFwkTag::FORM_EDIT_EXT, "null appContext"); + return; + } + context->SetApplicationInfo(appContext->GetApplicationInfo()); + context->SetResourceManager(appContext->GetResourceManager()); + context->SetParentContext(appContext); + + if (record == nullptr) { + TAG_LOGE(AAFwkTag::FORM_EDIT_EXT, "null record"); + return; + } + auto abilityInfo = record->GetAbilityInfo(); + context->SetAbilityInfo(abilityInfo); + context->InitHapModuleInfo(abilityInfo); + context->SetConfiguration(appContext->GetConfiguration()); + if (abilityInfo->applicationInfo.multiProjects) { + std::shared_ptr moduleContext = context->CreateModuleContext(abilityInfo->moduleName); + if (moduleContext != nullptr) { + auto rm = moduleContext->GetResourceManager(); + context->SetResourceManager(rm); + } + } + + Extension::Init(record, application, handler, token); + impl_->SetContext(context); + impl_->SetAbilityInfo(Extension::abilityInfo_); + auto extensionCommon = impl_->Init(record, application, handler, token); + ExtensionBase::SetExtensionCommon(extensionCommon); +} + +} // namespace AbilityRuntime +} // namespace OHOS \ No newline at end of file diff --git a/frameworks/js/napi/form_edit_extension_ability/js_form_edit_extension.h b/frameworks/js/napi/form_edit_extension_ability/js_form_edit_extension.h new file mode 100644 index 0000000000..58e8ef388f --- /dev/null +++ b/frameworks/js/napi/form_edit_extension_ability/js_form_edit_extension.h @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef OHOS_ABILITY_RUNTIME_JS_FORM_EDIT_EXTENSION_H +#define OHOS_ABILITY_RUNTIME_JS_FORM_EDIT_EXTENSION_H + +#include "form_edit_extension.h" +#include "configuration.h" +#include "js_ui_extension_base.h" +#include + +class NativeReference; + +namespace OHOS { +namespace AbilityRuntime { +class JsRuntime; +class JsFormEditExtensionImpl; + +/** + * @brief Basic form edit extension components. + */ +class JsFormEditExtension : public FormEditExtension, public std::enable_shared_from_this { +public: + explicit JsFormEditExtension(const std::unique_ptr &runtime); + virtual ~JsFormEditExtension() override = default; + +/** + * @brief Init the photo editor extension. + * + * @param record the photo editor extension record. + * @param application the application info. + * @param handler the photo editor extension handler. + * @param token the remote token. + */ + virtual void Init(const std::shared_ptr &record, + const std::shared_ptr &application, + std::shared_ptr &handler, const sptr &token) override; + + /** + * @brief Create JsFormEditExtension. + * + * @param runtime The runtime. + * @return The JsFormEditExtension instance. + */ + static JsFormEditExtension *Create(const std::unique_ptr &runtime); + +private: + std::shared_ptr impl_ = nullptr; +}; +} // namespace AbilityRuntime +} // namespace OHOS +#endif // OHOS_ABILITY_RUNTIME_JS_FORM_EDIT_EXTENSION_H \ No newline at end of file diff --git a/frameworks/js/napi/form_edit_extension_context/form_edit_extension_context.cpp b/frameworks/js/napi/form_edit_extension_context/form_edit_extension_context.cpp new file mode 100644 index 0000000000..5e0f6be2c6 --- /dev/null +++ b/frameworks/js/napi/form_edit_extension_context/form_edit_extension_context.cpp @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "../form_edit_extension_context/form_edit_extension_context.h" +#include "hilog_tag_wrapper.h" +#include "form_constants.h" +#include "element_name.h" +#include "js_error_utils.h" +#include "js_runtime.h" +#include "js_runtime_utils.h" +#include "napi_common_util.h" +#include "napi_common_want.h" +#include "form_mgr.h" + + +namespace OHOS { +namespace AbilityRuntime { +using namespace OHOS::AppExecFwk; +void FormEditExtensionContext::SetWant(const std::shared_ptr &want) +{ + want_ = want; + TAG_LOGD(AAFwkTag::UI_EXT, "Set want done"); +} + +ErrCode FormEditExtensionContext::OnStartSceneBoard(const AAFwk::Want &want) +{ + TAG_LOGI(AAFwkTag::UI_EXT, "OnStartSceneBoard wantToHost: %{public}s", want.ToString().c_str()); + Want wantToHost(want); + std::string requestMethod = "openFormEditSecPageView"; + wantToHost.SetParam(Constants::PARAM_PAGE_ROUTER_SERVICE_CODE, Constants::PAGE_ROUTER_SERVICE_CODE_FORM_EDIT); + wantToHost.SetParam(Constants::PARMA_REQUEST_METHOD, requestMethod); + wantToHost.SetAction(Constants::FORM_PAGE_ACTION); + + TAG_LOGI(AAFwkTag::UI_EXT, "OnStartSceneBoard wantToHost: %{public}s", wantToHost.ToString().c_str()); + ErrCode err = AppExecFwk::FormMgr::GetInstance().StartAbilityByFms(wantToHost); + if (err != ERR_OK) { + TAG_LOGE(AAFwkTag::UI_EXT, "ret = %{public}d", err); + return err; + } + TAG_LOGI(AAFwkTag::UI_EXT, "OnStartSceneBoard success"); + return ERR_OK; +} +} // namespace AbilityRuntime +} // namespace OHOS \ No newline at end of file diff --git a/frameworks/js/napi/form_edit_extension_context/form_edit_extension_context.h b/frameworks/js/napi/form_edit_extension_context/form_edit_extension_context.h new file mode 100644 index 0000000000..09c668e2ba --- /dev/null +++ b/frameworks/js/napi/form_edit_extension_context/form_edit_extension_context.h @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef OHOS_ABILITY_RUNTIME_FORM_EDIT_EXTENSION_CONTEXT_H +#define OHOS_ABILITY_RUNTIME_FORM_EDIT_EXTENSION_CONTEXT_H + +#include "ui_extension_context.h" +namespace OHOS { +namespace AbilityRuntime { + +enum class FormEditErrorCode { + // success + ERROR_OK = 0, + + // param error + ERROR_CODE_PARAM_ERROR = 401, + + // internal error + ERROR_CODE_INTERNAL_ERROR = 16501000 +}; + +class FormEditExtensionContext : public UIExtensionContext { +public: + FormEditExtensionContext() = default; + + virtual ~FormEditExtensionContext() = default; + + void SetWant(const std::shared_ptr &want); + + static const size_t CONTEXT_TYPE_ID; + + ErrCode OnStartSceneBoard(const AAFwk::Want &want); + +private: + std::shared_ptr want_; +}; +} // namespace AbilityRuntime +} // namespace OHOS + +#endif // OHOS_ABILITY_RUNTIME_FORM_EDIT_EXTENSION_CONTEXT_H \ No newline at end of file diff --git a/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_context.cpp b/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_context.cpp new file mode 100644 index 0000000000..c800abba8c --- /dev/null +++ b/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_context.cpp @@ -0,0 +1,116 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "../form_edit_extension_context/js_form_edit_extension_context.h" +#include "hilog_tag_wrapper.h" +#include "js_ui_extension_context.h" +#include "js_runtime.h" +#include "js_runtime_utils.h" +#include "napi_common_util.h" +#include "napi_common_want.h" +#include "form_constants.h" +#include "element_name.h" +#include "js_error_utils.h" + +namespace OHOS { +namespace AbilityRuntime { +namespace { +constexpr size_t ARGC_TWO = 2; +constexpr const char *ERR_MSG_PARAMS_ERROR = "Params error"; +constexpr const char *ERR_MSG_INTERNAL_ERROR = "Internal error"; +constexpr int32_t INDEX_ONE = 1; +} // namespace +using namespace OHOS::AppExecFwk; + +void JsFormEditExtensionContext::Finalizer(napi_env env, void *data, void *hint) +{ + TAG_LOGD(AAFwkTag::UI_EXT, "called"); + std::unique_ptr(static_cast(data)); +} + +napi_value JsFormEditExtensionContext::CreateJsFormEditExtensionContext( + napi_env env, std::shared_ptr context) +{ + TAG_LOGD(AAFwkTag::UI_EXT, "begin"); + std::shared_ptr abilityInfo = nullptr; + if (context) { + abilityInfo = context->GetAbilityInfo(); + } + + napi_value objValue = JsUIExtensionContext::CreateJsUIExtensionContext(env, context); + std::unique_ptr jsContext = std::make_unique(context); + napi_status status = napi_wrap(env, objValue, jsContext.release(), Finalizer, nullptr, nullptr); + if (status != napi_ok) { + TAG_LOGE(AAFwkTag::UI_EXT, "Failed to do napi wrap"); + } + + const char *moduleName = "JsFormEditExtensionContext"; + BindNativeFunction(env, objValue, "startSecondPage", moduleName, StartSecondPage); + + return objValue; +} + +napi_value JsFormEditExtensionContext::StartSecondPage(napi_env env, napi_callback_info info) +{ + TAG_LOGI(AAFwkTag::UI_EXT, "called"); + GET_NAPI_INFO_AND_CALL(env, info, JsFormEditExtensionContext, OnStartSecondPage); +} + +napi_value JsFormEditExtensionContext::OnStartSecondPage(napi_env env, NapiCallbackInfo &info){ + TAG_LOGD(AAFwkTag::UI_EXT, "called: param size: %{public}d",static_cast(info.argc)); + + if (info.argc != ARGC_TWO) { + ThrowError(env, static_cast(FormEditErrorCode::ERROR_CODE_PARAM_ERROR), ERR_MSG_PARAMS_ERROR); + return CreateJsUndefined(env); + } + + auto context = context_.lock(); + if (context == nullptr) { + TAG_LOGE(AAFwkTag::UI_EXT, "Context is released"); + ThrowError(env, static_cast(FormEditErrorCode::ERROR_CODE_INTERNAL_ERROR), ERR_MSG_INTERNAL_ERROR); + return CreateJsUndefined(env); + } + + AAFwk::Want want; + OHOS::AppExecFwk::UnwrapWant(env, info.argv[0], want); + NapiAsyncTask::CompleteCallback complete = [weak = context_, want](napi_env env, NapiAsyncTask &task, + int32_t status) { + TAG_LOGD(AAFwkTag::UI_EXT, "OnStartSecondPage begin"); + auto context = weak.lock(); + if (!context) { + TAG_LOGE(AAFwkTag::UI_EXT, "Context is released"); + task.Reject(env, CreateJsError(env, static_cast(FormEditErrorCode::ERROR_CODE_INTERNAL_ERROR))); + return; + } + + ErrCode errCode = context->OnStartSceneBoard(want); + napi_value abilityResult = AppExecFwk::WrapAbilityResult(env, static_cast(errCode), want); + if (abilityResult == nullptr) { + TAG_LOGE(AAFwkTag::UI_EXT, "Wrap abilityResult failed"); + task.Reject(env, CreateJsError(env, static_cast(FormEditErrorCode::ERROR_CODE_INTERNAL_ERROR))); + return; + } + + task.Resolve(env, abilityResult); + }; + + napi_value lastParam = (info.argc > INDEX_ONE) ? info.argv[INDEX_ONE] : nullptr; + napi_value result = nullptr; + NapiAsyncTask::ScheduleHighQos("JsFormEditExtensionContext OnStartSecondPage", env, + CreateAsyncTaskWithLastParam(env, lastParam, nullptr, std::move(complete), &result)); + return result; +} +} // namespace AbilityRuntime +} // namespace OHOS \ No newline at end of file diff --git a/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_context.h b/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_context.h new file mode 100644 index 0000000000..806c95c0e9 --- /dev/null +++ b/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_context.h @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef OHOS_ABILITY_RUNTIME_JS_FORM_EDIT_EXTENSION_CONTEXT_H +#define OHOS_ABILITY_RUNTIME_JS_FORM_EDIT_EXTENSION_CONTEXT_H + +#include "../form_edit_extension_context/form_edit_extension_context.h" +#include "native_engine/native_engine.h" + +namespace OHOS { +namespace AbilityRuntime { +struct NapiCallbackInfo; +class JsFormEditExtensionContext { +public: + explicit JsFormEditExtensionContext(const std::shared_ptr &context) + : context_(context) + {} + + virtual ~JsFormEditExtensionContext() = default; + + static void Finalizer(napi_env env, void *data, void *hint); + + static napi_value CreateJsFormEditExtensionContext(napi_env env, + std::shared_ptr context); + + static napi_value StartSecondPage(napi_env env, napi_callback_info info); + + +private: + napi_value OnStartSecondPage(napi_env env, NapiCallbackInfo &info); + +private: + std::weak_ptr context_; +}; +} // namespace AbilityRuntime +} // namespace OHOS + +#endif // OHOS_ABILITY_RUNTIME_JS_FORM_EDIT_EXTENSION_CONTEXT_H \ No newline at end of file diff --git a/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_impl.cpp b/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_impl.cpp new file mode 100644 index 0000000000..226ec32baf --- /dev/null +++ b/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_impl.cpp @@ -0,0 +1,144 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "js_form_edit_extension_impl.h" +#include "hilog_tag_wrapper.h" +#include "napi/native_api.h" +#include "napi/native_node_api.h" +#include "../form_edit_extension_context/js_form_edit_extension_context.h" +#include "js_ui_extension_content_session.h" +#include "napi_common_want.h" + +namespace OHOS { +namespace AbilityRuntime { + +namespace { +constexpr size_t ARGC_ONE = 1; +} // namespace + +napi_value AttachUIExtensionContext(napi_env env, void *value, void *) +{ + TAG_LOGD(AAFwkTag::UI_EXT, "called"); + if (value == nullptr) { + TAG_LOGE(AAFwkTag::UI_EXT, "Invalid param value"); + return nullptr; + } + + auto ptr = reinterpret_cast *>(value)->lock(); + if (ptr == nullptr) { + TAG_LOGE(AAFwkTag::UI_EXT, "Invalid context"); + return nullptr; + } + napi_value object = JsFormEditExtensionContext::CreateJsFormEditExtensionContext(env, ptr); + auto contextRef = + JsRuntime::LoadSystemModuleByEngine(env, "application.FormEditExtensionContext", &object, ARGC_ONE); + if (contextRef == nullptr) { + TAG_LOGE(AAFwkTag::UI_EXT, "Fail to load module"); + return nullptr; + } + auto contextObj = contextRef->GetNapiValue(); + if (contextObj == nullptr) { + TAG_LOGE(AAFwkTag::UI_EXT, "Load context error"); + return nullptr; + } + napi_coerce_to_native_binding_object(env, contextObj, DetachCallbackFunc, AttachUIExtensionContext, value, nullptr); + auto workContext = new (std::nothrow) std::weak_ptr(ptr); + napi_status status = napi_wrap( + env, contextObj, workContext, + [](napi_env, void *data, void *) { + TAG_LOGD(AAFwkTag::UI_EXT, "Finalizer called"); + if (data == nullptr) { + TAG_LOGE(AAFwkTag::UI_EXT, "Finalizer for weak_ptr is nullptr"); + return; + } + delete static_cast *>(data); + }, + nullptr, nullptr); + if (status != napi_ok && workContext != nullptr) { + TAG_LOGE(AAFwkTag::UI_EXT, "napi_wrap Failed: %{public}d", status); + delete workContext; + return nullptr; + } + + return contextObj; +} + +JsFormEditExtensionImpl::JsFormEditExtensionImpl(const std::unique_ptr &runtime) + : JsUIExtensionBase(runtime) +{} + +void JsFormEditExtensionImpl::BindContext() +{ + HandleScope handleScope(jsRuntime_); + if (jsObj_ == nullptr) { + TAG_LOGE(AAFwkTag::UI_EXT, "jsobj_ is nullptr"); + return; + } + + napi_env env = jsRuntime_.GetNapiEnv(); + napi_value obj = jsObj_->GetNapiValue(); + if (!CheckTypeForNapiValue(env, obj, napi_object)) { + TAG_LOGE(AAFwkTag::UI_EXT, "obj is not object"); + return; + } + if (context_ == nullptr) { + TAG_LOGE(AAFwkTag::UI_EXT, "Context is nullptr"); + return; + } + TAG_LOGD(AAFwkTag::UI_EXT, "BindContext CreateJsFormEditExtensionContext"); + napi_value contextObj = JsFormEditExtensionContext::CreateJsFormEditExtensionContext(env, context_); + if (contextObj == nullptr) { + TAG_LOGE(AAFwkTag::UI_EXT, "Create js ui extension context error"); + return; + } + + shellContextRef_ = + JsRuntime::LoadSystemModuleByEngine(env, "application.FormEditExtensionContext", &contextObj, ARGC_ONE); + if (shellContextRef_ == nullptr) { + TAG_LOGE(AAFwkTag::UI_EXT, "Fail to get loadSystemModuleByEngine"); + return; + } + contextObj = shellContextRef_->GetNapiValue(); + if (!CheckTypeForNapiValue(env, contextObj, napi_object)) { + TAG_LOGE(AAFwkTag::UI_EXT, "Fail to get context native object"); + return; + } + + auto workContext = new (std::nothrow) std::shared_ptr(context_); + napi_coerce_to_native_binding_object(env, contextObj, DetachCallbackFunc, AttachUIExtensionContext, workContext, + nullptr); + context_->Bind(jsRuntime_, shellContextRef_.get()); + napi_set_named_property(env, obj, "context", contextObj); + napi_status status = napi_wrap(env, contextObj, workContext, + [](napi_env, void *data, void *) { + TAG_LOGD(AAFwkTag::UI_EXT, "Finalizer called"); + if (data == nullptr) { + TAG_LOGE(AAFwkTag::UI_EXT, "Finalizer for weak_ptr is nullptr"); + return; + } + delete static_cast *>(data); + }, + nullptr, nullptr); + if (status != napi_ok && workContext != nullptr) { + TAG_LOGE(AAFwkTag::UI_EXT, "napi_wrap Failed: %{public}d", status); + delete workContext; + return; + } + + TAG_LOGD(AAFwkTag::UI_EXT, "Bind context end"); +} + +} // namespace AbilityRuntime +} // namespace OHOS \ No newline at end of file diff --git a/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_impl.h b/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_impl.h new file mode 100644 index 0000000000..c4e9321d6e --- /dev/null +++ b/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_impl.h @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef OHOS_ABILITY_RUNTIME_JS_FORM_EDIT_EXTENSION_IMPL_H +#define OHOS_ABILITY_RUNTIME_JS_FORM_EDIT_EXTENSION_IMPL_H + +#include "js_ui_extension_base.h" +#include "../form_edit_extension_context/form_edit_extension_context.h" +#include + +namespace OHOS { +namespace AbilityRuntime { + +class FormEditExtensionContext; + +class JsFormEditExtensionImpl : public JsUIExtensionBase { +public: + explicit JsFormEditExtensionImpl(const std::unique_ptr &runtime); + virtual ~JsFormEditExtensionImpl() override = default; + + void SetContext(const std::shared_ptr &context) + { + context_ = context; + JsUIExtensionBase::SetContext(context); + } + +protected: + void BindContext() override; + +protected: + std::shared_ptr context_ = nullptr; + std::set uiExtensionComponentIdSet_; + +private: + using JsUIExtensionBase::SetContext; +}; +} // namespace AbilityRuntime +} // namespace OHOS + +#endif // OHOS_ABILITY_RUNTIME_JS_PHOTO_EDITOR_EXTENSION_IMPL_H \ No newline at end of file -- Gitee From 4c64b577d10d81fab2b531d321c25ac25c3254be Mon Sep 17 00:00:00 2001 From: zhangying <42703582@qq.com> Date: Wed, 22 Jan 2025 16:21:44 +0800 Subject: [PATCH 10/15] =?UTF-8?q?=E5=8D=A1=E7=89=87=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E6=96=B0=E5=A2=9EFormEditExtensionAbility=E8=83=BD=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhangying <42703582@qq.com> --- frameworks/js/napi/BUILD.gn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/js/napi/BUILD.gn b/frameworks/js/napi/BUILD.gn index 11ac111231..1681e21c84 100644 --- a/frameworks/js/napi/BUILD.gn +++ b/frameworks/js/napi/BUILD.gn @@ -708,4 +708,4 @@ ohos_shared_library("form_edit_extension_module") { relative_install_dir = "extensionability" subsystem_name = "ability" part_name = "form_fwk" -} \ No newline at end of file +} -- Gitee From 498b75fbe1020a069df30f9c3ed264d319651472 Mon Sep 17 00:00:00 2001 From: zhangying <42703582@qq.com> Date: Wed, 22 Jan 2025 16:41:43 +0800 Subject: [PATCH 11/15] =?UTF-8?q?=E5=8D=A1=E7=89=87=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E6=96=B0=E5=A2=9EFormEditExtensionAbility=E8=83=BD=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhangying <42703582@qq.com> --- .../form_edit_extension_module_loader.cpp | 2 +- .../js_form_edit_extension.cpp | 6 +++--- .../form_edit_extension_context.cpp | 2 +- .../js_form_edit_extension_context.cpp | 9 +++++---- .../js_form_edit_extension_context.h | 1 - .../js_form_edit_extension_impl.cpp | 9 +-------- 6 files changed, 11 insertions(+), 18 deletions(-) diff --git a/frameworks/js/napi/form_edit_extension_ability/form_edit_extension_module_loader.cpp b/frameworks/js/napi/form_edit_extension_ability/form_edit_extension_module_loader.cpp index f887d84fa3..7e26041a73 100644 --- a/frameworks/js/napi/form_edit_extension_ability/form_edit_extension_module_loader.cpp +++ b/frameworks/js/napi/form_edit_extension_ability/form_edit_extension_module_loader.cpp @@ -33,7 +33,7 @@ std::map FormEditExtensionModuleLoader::GetParams() { TAG_LOGD(AAFwkTag::FORM_EDIT_EXT, "called"); std::map params; - // type means extension type in ExtensionAbilityType of + // type means extension type in ExtensionAbilityType of // extension_ability_info.h, 507 means formEditExtension. params.insert(std::pair("type", "507")); params.insert(std::pair("name", "FormEditExtensionAbility")); diff --git a/frameworks/js/napi/form_edit_extension_ability/js_form_edit_extension.cpp b/frameworks/js/napi/form_edit_extension_ability/js_form_edit_extension.cpp index 6648fd85f5..a7f95cdde9 100644 --- a/frameworks/js/napi/form_edit_extension_ability/js_form_edit_extension.cpp +++ b/frameworks/js/napi/form_edit_extension_ability/js_form_edit_extension.cpp @@ -34,9 +34,9 @@ JsFormEditExtension::JsFormEditExtension(const std::unique_ptr &runtime } void JsFormEditExtension::Init(const std::shared_ptr &record, - const std::shared_ptr &application, - std::shared_ptr &handler, - const sptr &token) + const std::shared_ptr &application, + std::shared_ptr &handler, + const sptr &token) { TAG_LOGD(AAFwkTag::UI_EXT, "Begin init form edit extension"); std::shared_ptr context = std::make_shared(); diff --git a/frameworks/js/napi/form_edit_extension_context/form_edit_extension_context.cpp b/frameworks/js/napi/form_edit_extension_context/form_edit_extension_context.cpp index 5e0f6be2c6..8449da34f3 100644 --- a/frameworks/js/napi/form_edit_extension_context/form_edit_extension_context.cpp +++ b/frameworks/js/napi/form_edit_extension_context/form_edit_extension_context.cpp @@ -44,7 +44,7 @@ ErrCode FormEditExtensionContext::OnStartSceneBoard(const AAFwk::Want &want) wantToHost.SetAction(Constants::FORM_PAGE_ACTION); TAG_LOGI(AAFwkTag::UI_EXT, "OnStartSceneBoard wantToHost: %{public}s", wantToHost.ToString().c_str()); - ErrCode err = AppExecFwk::FormMgr::GetInstance().StartAbilityByFms(wantToHost); + ErrCode err = AppExecFwk::FormMgr::GetInstance().StartAbilityByFms(wantToHost); if (err != ERR_OK) { TAG_LOGE(AAFwkTag::UI_EXT, "ret = %{public}d", err); return err; diff --git a/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_context.cpp b/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_context.cpp index c800abba8c..c40a4b6c8f 100644 --- a/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_context.cpp +++ b/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_context.cpp @@ -68,9 +68,9 @@ napi_value JsFormEditExtensionContext::StartSecondPage(napi_env env, napi_callba GET_NAPI_INFO_AND_CALL(env, info, JsFormEditExtensionContext, OnStartSecondPage); } -napi_value JsFormEditExtensionContext::OnStartSecondPage(napi_env env, NapiCallbackInfo &info){ +napi_value JsFormEditExtensionContext::OnStartSecondPage(napi_env env, NapiCallbackInfo &info) +{ TAG_LOGD(AAFwkTag::UI_EXT, "called: param size: %{public}d",static_cast(info.argc)); - if (info.argc != ARGC_TWO) { ThrowError(env, static_cast(FormEditErrorCode::ERROR_CODE_PARAM_ERROR), ERR_MSG_PARAMS_ERROR); return CreateJsUndefined(env); @@ -95,7 +95,7 @@ napi_value JsFormEditExtensionContext::OnStartSecondPage(napi_env env, NapiCallb return; } - ErrCode errCode = context->OnStartSceneBoard(want); + ErrCode errCode = context->OnStartSceneBoard(want); napi_value abilityResult = AppExecFwk::WrapAbilityResult(env, static_cast(errCode), want); if (abilityResult == nullptr) { TAG_LOGE(AAFwkTag::UI_EXT, "Wrap abilityResult failed"); @@ -109,7 +109,8 @@ napi_value JsFormEditExtensionContext::OnStartSecondPage(napi_env env, NapiCallb napi_value lastParam = (info.argc > INDEX_ONE) ? info.argv[INDEX_ONE] : nullptr; napi_value result = nullptr; NapiAsyncTask::ScheduleHighQos("JsFormEditExtensionContext OnStartSecondPage", env, - CreateAsyncTaskWithLastParam(env, lastParam, nullptr, std::move(complete), &result)); + CreateAsyncTaskWithLastParam(env, lastParam, nullptr, + std::move(complete), &result)); return result; } } // namespace AbilityRuntime diff --git a/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_context.h b/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_context.h index 806c95c0e9..d62cde97b6 100644 --- a/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_context.h +++ b/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_context.h @@ -37,7 +37,6 @@ public: static napi_value StartSecondPage(napi_env env, napi_callback_info info); - private: napi_value OnStartSecondPage(napi_env env, NapiCallbackInfo &info); diff --git a/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_impl.cpp b/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_impl.cpp index 226ec32baf..0d5a5e3abb 100644 --- a/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_impl.cpp +++ b/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_impl.cpp @@ -86,7 +86,6 @@ void JsFormEditExtensionImpl::BindContext() TAG_LOGE(AAFwkTag::UI_EXT, "jsobj_ is nullptr"); return; } - napi_env env = jsRuntime_.GetNapiEnv(); napi_value obj = jsObj_->GetNapiValue(); if (!CheckTypeForNapiValue(env, obj, napi_object)) { @@ -97,13 +96,11 @@ void JsFormEditExtensionImpl::BindContext() TAG_LOGE(AAFwkTag::UI_EXT, "Context is nullptr"); return; } - TAG_LOGD(AAFwkTag::UI_EXT, "BindContext CreateJsFormEditExtensionContext"); napi_value contextObj = JsFormEditExtensionContext::CreateJsFormEditExtensionContext(env, context_); if (contextObj == nullptr) { TAG_LOGE(AAFwkTag::UI_EXT, "Create js ui extension context error"); return; } - shellContextRef_ = JsRuntime::LoadSystemModuleByEngine(env, "application.FormEditExtensionContext", &contextObj, ARGC_ONE); if (shellContextRef_ == nullptr) { @@ -115,7 +112,6 @@ void JsFormEditExtensionImpl::BindContext() TAG_LOGE(AAFwkTag::UI_EXT, "Fail to get context native object"); return; } - auto workContext = new (std::nothrow) std::shared_ptr(context_); napi_coerce_to_native_binding_object(env, contextObj, DetachCallbackFunc, AttachUIExtensionContext, workContext, nullptr); @@ -129,15 +125,12 @@ void JsFormEditExtensionImpl::BindContext() return; } delete static_cast *>(data); - }, - nullptr, nullptr); + }, nullptr, nullptr); if (status != napi_ok && workContext != nullptr) { TAG_LOGE(AAFwkTag::UI_EXT, "napi_wrap Failed: %{public}d", status); delete workContext; return; } - - TAG_LOGD(AAFwkTag::UI_EXT, "Bind context end"); } } // namespace AbilityRuntime -- Gitee From 4ca18430897f3628591851f01bda527627bd86f5 Mon Sep 17 00:00:00 2001 From: zhangying <42703582@qq.com> Date: Wed, 22 Jan 2025 17:40:22 +0800 Subject: [PATCH 12/15] =?UTF-8?q?=E5=8D=A1=E7=89=87=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E6=96=B0=E5=A2=9EFormEditExtensionAbility=E8=83=BD=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhangying <42703582@qq.com> --- .../js_form_edit_extension_context.cpp | 5 ++--- .../js_form_edit_extension_impl.cpp | 3 --- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_context.cpp b/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_context.cpp index c40a4b6c8f..4d78e0c500 100644 --- a/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_context.cpp +++ b/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_context.cpp @@ -70,7 +70,7 @@ napi_value JsFormEditExtensionContext::StartSecondPage(napi_env env, napi_callba napi_value JsFormEditExtensionContext::OnStartSecondPage(napi_env env, NapiCallbackInfo &info) { - TAG_LOGD(AAFwkTag::UI_EXT, "called: param size: %{public}d",static_cast(info.argc)); + TAG_LOGD(AAFwkTag::UI_EXT, "called: param size: %{public}d", static_cast(info.argc)); if (info.argc != ARGC_TWO) { ThrowError(env, static_cast(FormEditErrorCode::ERROR_CODE_PARAM_ERROR), ERR_MSG_PARAMS_ERROR); return CreateJsUndefined(env); @@ -109,8 +109,7 @@ napi_value JsFormEditExtensionContext::OnStartSecondPage(napi_env env, NapiCallb napi_value lastParam = (info.argc > INDEX_ONE) ? info.argv[INDEX_ONE] : nullptr; napi_value result = nullptr; NapiAsyncTask::ScheduleHighQos("JsFormEditExtensionContext OnStartSecondPage", env, - CreateAsyncTaskWithLastParam(env, lastParam, nullptr, - std::move(complete), &result)); + CreateAsyncTaskWithLastParam(env, lastParam, nullptr, std::move(complete), &result)); return result; } } // namespace AbilityRuntime diff --git a/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_impl.cpp b/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_impl.cpp index 0d5a5e3abb..58c8d96895 100644 --- a/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_impl.cpp +++ b/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_impl.cpp @@ -83,7 +83,6 @@ void JsFormEditExtensionImpl::BindContext() { HandleScope handleScope(jsRuntime_); if (jsObj_ == nullptr) { - TAG_LOGE(AAFwkTag::UI_EXT, "jsobj_ is nullptr"); return; } napi_env env = jsRuntime_.GetNapiEnv(); @@ -93,7 +92,6 @@ void JsFormEditExtensionImpl::BindContext() return; } if (context_ == nullptr) { - TAG_LOGE(AAFwkTag::UI_EXT, "Context is nullptr"); return; } napi_value contextObj = JsFormEditExtensionContext::CreateJsFormEditExtensionContext(env, context_); @@ -119,7 +117,6 @@ void JsFormEditExtensionImpl::BindContext() napi_set_named_property(env, obj, "context", contextObj); napi_status status = napi_wrap(env, contextObj, workContext, [](napi_env, void *data, void *) { - TAG_LOGD(AAFwkTag::UI_EXT, "Finalizer called"); if (data == nullptr) { TAG_LOGE(AAFwkTag::UI_EXT, "Finalizer for weak_ptr is nullptr"); return; -- Gitee From 53b2b7a1f2a18448c88cda1a07fd50720a1f157c Mon Sep 17 00:00:00 2001 From: zhangying <42703582@qq.com> Date: Thu, 23 Jan 2025 21:05:23 +0800 Subject: [PATCH 13/15] =?UTF-8?q?=E5=8D=A1=E7=89=87=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E6=96=B0=E5=A2=9EFormEditExtensionAbility=E8=83=BD=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhangying <42703582@qq.com> --- frameworks/js/napi/BUILD.gn | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/frameworks/js/napi/BUILD.gn b/frameworks/js/napi/BUILD.gn index 1681e21c84..e3a7cf1e4d 100644 --- a/frameworks/js/napi/BUILD.gn +++ b/frameworks/js/napi/BUILD.gn @@ -637,6 +637,16 @@ ohos_shared_library("formeditextensioncontext_napi") { ################################### gen_form_edit_extension_ability ######################################## ohos_shared_library("form_edit_extension") { + sanitize = { + integer_overflow = true + ubsan = true + boundary_sanitize = true + cfi = true + cfi_cross_dso = true + cfi_vcall_icall_only = true + debug = false + } + include_dirs = [] sources = [ @@ -678,6 +688,16 @@ ohos_shared_library("form_edit_extension") { } ohos_shared_library("form_edit_extension_module") { + sanitize = { + integer_overflow = true + ubsan = true + boundary_sanitize = true + cfi = true + cfi_cross_dso = true + cfi_vcall_icall_only = true + debug = false + } + include_dirs = [] sources = -- Gitee From 4defbf600049de348f9718ae8971fe57b4a7f33a Mon Sep 17 00:00:00 2001 From: zhangying <42703582@qq.com> Date: Fri, 24 Jan 2025 09:33:46 +0800 Subject: [PATCH 14/15] =?UTF-8?q?=E5=8D=A1=E7=89=87=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E6=96=B0=E5=A2=9EFormEditExtensionAbility=E8=83=BD=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhangying <42703582@qq.com> --- frameworks/js/napi/BUILD.gn | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/frameworks/js/napi/BUILD.gn b/frameworks/js/napi/BUILD.gn index e3a7cf1e4d..1681e21c84 100644 --- a/frameworks/js/napi/BUILD.gn +++ b/frameworks/js/napi/BUILD.gn @@ -637,16 +637,6 @@ ohos_shared_library("formeditextensioncontext_napi") { ################################### gen_form_edit_extension_ability ######################################## ohos_shared_library("form_edit_extension") { - sanitize = { - integer_overflow = true - ubsan = true - boundary_sanitize = true - cfi = true - cfi_cross_dso = true - cfi_vcall_icall_only = true - debug = false - } - include_dirs = [] sources = [ @@ -688,16 +678,6 @@ ohos_shared_library("form_edit_extension") { } ohos_shared_library("form_edit_extension_module") { - sanitize = { - integer_overflow = true - ubsan = true - boundary_sanitize = true - cfi = true - cfi_cross_dso = true - cfi_vcall_icall_only = true - debug = false - } - include_dirs = [] sources = -- Gitee From 9fe3793e994c9b16286e2d29f58189bb0dcf74b9 Mon Sep 17 00:00:00 2001 From: zhangying <42703582@qq.com> Date: Fri, 24 Jan 2025 14:55:03 +0800 Subject: [PATCH 15/15] =?UTF-8?q?=E5=8D=A1=E7=89=87=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E6=96=B0=E5=A2=9EFormEditExtensionAbility=E8=83=BD=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhangying <42703582@qq.com> --- frameworks/js/napi/BUILD.gn | 1 - .../form_edit_extension.cpp | 2 +- .../form_edit_extension.h | 2 +- .../form_edit_extension_module_loader.cpp | 6 +++--- .../form_edit_extension_module_loader.h | 2 +- .../js_form_edit_extension.cpp | 2 +- .../js_form_edit_extension.h | 8 ++++---- .../form_edit_extension_context.cpp | 16 +++++----------- .../form_edit_extension_context.h | 4 ++-- .../form_edit_extension_context.js | 5 +---- .../js_form_edit_extension_context.cpp | 4 ++-- .../js_form_edit_extension_context.h | 2 +- .../js_form_edit_extension_impl.cpp | 2 +- .../js_form_edit_extension_impl.h | 2 +- interfaces/inner_api/include/form_constants.h | 3 --- 15 files changed, 24 insertions(+), 37 deletions(-) diff --git a/frameworks/js/napi/BUILD.gn b/frameworks/js/napi/BUILD.gn index 1681e21c84..4891013102 100644 --- a/frameworks/js/napi/BUILD.gn +++ b/frameworks/js/napi/BUILD.gn @@ -666,7 +666,6 @@ ohos_shared_library("form_edit_extension") { "ability_runtime:ui_extension", "c_utils:utils", "eventhandler:libeventhandler", - "ffrt:libffrt", "hilog:libhilog", "hitrace:hitrace_meter", "ipc:ipc_napi", diff --git a/frameworks/js/napi/form_edit_extension_ability/form_edit_extension.cpp b/frameworks/js/napi/form_edit_extension_ability/form_edit_extension.cpp index e7c08547c6..e8541e4e23 100644 --- a/frameworks/js/napi/form_edit_extension_ability/form_edit_extension.cpp +++ b/frameworks/js/napi/form_edit_extension_ability/form_edit_extension.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/frameworks/js/napi/form_edit_extension_ability/form_edit_extension.h b/frameworks/js/napi/form_edit_extension_ability/form_edit_extension.h index e5b9627b2d..2f95f935a3 100644 --- a/frameworks/js/napi/form_edit_extension_ability/form_edit_extension.h +++ b/frameworks/js/napi/form_edit_extension_ability/form_edit_extension.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/frameworks/js/napi/form_edit_extension_ability/form_edit_extension_module_loader.cpp b/frameworks/js/napi/form_edit_extension_ability/form_edit_extension_module_loader.cpp index 7e26041a73..fe7e5ef6cc 100644 --- a/frameworks/js/napi/form_edit_extension_ability/form_edit_extension_module_loader.cpp +++ b/frameworks/js/napi/form_edit_extension_ability/form_edit_extension_module_loader.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -34,8 +34,8 @@ std::map FormEditExtensionModuleLoader::GetParams() TAG_LOGD(AAFwkTag::FORM_EDIT_EXT, "called"); std::map params; // type means extension type in ExtensionAbilityType of - // extension_ability_info.h, 507 means formEditExtension. - params.insert(std::pair("type", "507")); + // extension_ability_info.h, 27 means formEditExtension. + params.insert(std::pair("type", "27")); params.insert(std::pair("name", "FormEditExtensionAbility")); return params; } diff --git a/frameworks/js/napi/form_edit_extension_ability/form_edit_extension_module_loader.h b/frameworks/js/napi/form_edit_extension_ability/form_edit_extension_module_loader.h index a4520b1841..de29055ee1 100644 --- a/frameworks/js/napi/form_edit_extension_ability/form_edit_extension_module_loader.h +++ b/frameworks/js/napi/form_edit_extension_ability/form_edit_extension_module_loader.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/frameworks/js/napi/form_edit_extension_ability/js_form_edit_extension.cpp b/frameworks/js/napi/form_edit_extension_ability/js_form_edit_extension.cpp index a7f95cdde9..567a0d1f86 100644 --- a/frameworks/js/napi/form_edit_extension_ability/js_form_edit_extension.cpp +++ b/frameworks/js/napi/form_edit_extension_ability/js_form_edit_extension.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/frameworks/js/napi/form_edit_extension_ability/js_form_edit_extension.h b/frameworks/js/napi/form_edit_extension_ability/js_form_edit_extension.h index 58e8ef388f..4ec88965bf 100644 --- a/frameworks/js/napi/form_edit_extension_ability/js_form_edit_extension.h +++ b/frameworks/js/napi/form_edit_extension_ability/js_form_edit_extension.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -37,11 +37,11 @@ public: virtual ~JsFormEditExtension() override = default; /** - * @brief Init the photo editor extension. + * @brief Init the form edit extension. * - * @param record the photo editor extension record. + * @param record the form edit extension record. * @param application the application info. - * @param handler the photo editor extension handler. + * @param handler the form edit extension handler. * @param token the remote token. */ virtual void Init(const std::shared_ptr &record, diff --git a/frameworks/js/napi/form_edit_extension_context/form_edit_extension_context.cpp b/frameworks/js/napi/form_edit_extension_context/form_edit_extension_context.cpp index 8449da34f3..de9520e911 100644 --- a/frameworks/js/napi/form_edit_extension_context/form_edit_extension_context.cpp +++ b/frameworks/js/napi/form_edit_extension_context/form_edit_extension_context.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -16,12 +16,6 @@ #include "../form_edit_extension_context/form_edit_extension_context.h" #include "hilog_tag_wrapper.h" #include "form_constants.h" -#include "element_name.h" -#include "js_error_utils.h" -#include "js_runtime.h" -#include "js_runtime_utils.h" -#include "napi_common_util.h" -#include "napi_common_want.h" #include "form_mgr.h" @@ -34,22 +28,22 @@ void FormEditExtensionContext::SetWant(const std::shared_ptr &want) TAG_LOGD(AAFwkTag::UI_EXT, "Set want done"); } -ErrCode FormEditExtensionContext::OnStartSceneBoard(const AAFwk::Want &want) +ErrCode FormEditExtensionContext::StartAbilityByFms(const AAFwk::Want &want) { - TAG_LOGI(AAFwkTag::UI_EXT, "OnStartSceneBoard wantToHost: %{public}s", want.ToString().c_str()); + TAG_LOGI(AAFwkTag::UI_EXT, "StartAbilityByFms wantToHost: %{public}s", want.ToString().c_str()); Want wantToHost(want); std::string requestMethod = "openFormEditSecPageView"; wantToHost.SetParam(Constants::PARAM_PAGE_ROUTER_SERVICE_CODE, Constants::PAGE_ROUTER_SERVICE_CODE_FORM_EDIT); wantToHost.SetParam(Constants::PARMA_REQUEST_METHOD, requestMethod); wantToHost.SetAction(Constants::FORM_PAGE_ACTION); - TAG_LOGI(AAFwkTag::UI_EXT, "OnStartSceneBoard wantToHost: %{public}s", wantToHost.ToString().c_str()); + TAG_LOGI(AAFwkTag::UI_EXT, "StartAbilityByFms wantToHost: %{public}s", wantToHost.ToString().c_str()); ErrCode err = AppExecFwk::FormMgr::GetInstance().StartAbilityByFms(wantToHost); if (err != ERR_OK) { TAG_LOGE(AAFwkTag::UI_EXT, "ret = %{public}d", err); return err; } - TAG_LOGI(AAFwkTag::UI_EXT, "OnStartSceneBoard success"); + TAG_LOGI(AAFwkTag::UI_EXT, "StartAbilityByFms success"); return ERR_OK; } } // namespace AbilityRuntime diff --git a/frameworks/js/napi/form_edit_extension_context/form_edit_extension_context.h b/frameworks/js/napi/form_edit_extension_context/form_edit_extension_context.h index 09c668e2ba..adfc6d7557 100644 --- a/frameworks/js/napi/form_edit_extension_context/form_edit_extension_context.h +++ b/frameworks/js/napi/form_edit_extension_context/form_edit_extension_context.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -41,7 +41,7 @@ public: static const size_t CONTEXT_TYPE_ID; - ErrCode OnStartSceneBoard(const AAFwk::Want &want); + ErrCode StartAbilityByFms(const AAFwk::Want &want); private: std::shared_ptr want_; diff --git a/frameworks/js/napi/form_edit_extension_context/form_edit_extension_context.js b/frameworks/js/napi/form_edit_extension_context/form_edit_extension_context.js index b1a54b1649..2a40f52122 100644 --- a/frameworks/js/napi/form_edit_extension_context/form_edit_extension_context.js +++ b/frameworks/js/napi/form_edit_extension_context/form_edit_extension_context.js @@ -14,9 +14,6 @@ */ let UIExtensionContext = requireNapi('application.UIExtensionContext'); -let hilog = requireNapi('hilog'); -let domainID = 0xD001320; -let TAG = 'JSENV'; export class FormEditExtensionContext extends UIExtensionContext { constructor(obj) { @@ -24,7 +21,7 @@ export class FormEditExtensionContext extends UIExtensionContext { } startSecondPage(want, asyncCallback) { - hilog.sLogI(domainID, TAG, 'startSecondPage want: ' + want); + console.log('FormEditExtensionContext startSecondPage want: ' + want); return this.__context_impl__.startSecondPage(want, asyncCallback); } } \ No newline at end of file diff --git a/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_context.cpp b/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_context.cpp index 4d78e0c500..6c05ec0dfd 100644 --- a/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_context.cpp +++ b/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_context.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -95,7 +95,7 @@ napi_value JsFormEditExtensionContext::OnStartSecondPage(napi_env env, NapiCallb return; } - ErrCode errCode = context->OnStartSceneBoard(want); + ErrCode errCode = context->StartAbilityByFms(want); napi_value abilityResult = AppExecFwk::WrapAbilityResult(env, static_cast(errCode), want); if (abilityResult == nullptr) { TAG_LOGE(AAFwkTag::UI_EXT, "Wrap abilityResult failed"); diff --git a/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_context.h b/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_context.h index d62cde97b6..084b958b48 100644 --- a/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_context.h +++ b/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_context.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_impl.cpp b/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_impl.cpp index 58c8d96895..afa54b7023 100644 --- a/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_impl.cpp +++ b/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_impl.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_impl.h b/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_impl.h index c4e9321d6e..70668dcf86 100644 --- a/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_impl.h +++ b/frameworks/js/napi/form_edit_extension_context/js_form_edit_extension_impl.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/interfaces/inner_api/include/form_constants.h b/interfaces/inner_api/include/form_constants.h index 7d304eddd8..1072aa01a6 100644 --- a/interfaces/inner_api/include/form_constants.h +++ b/interfaces/inner_api/include/form_constants.h @@ -70,9 +70,6 @@ namespace Constants { constexpr const char* FORM_PAGE_ACTION = "action.form.page"; constexpr const char* OPEN_FORM_MANAGE_VIEW = "openFormManageView"; constexpr const char* OPEN_FORM_MANAGE_VIEW_ACTION = "action.form.openFormManageView"; - constexpr const char* PAGE_ROUTER_SERVICE = "PageRouterService"; - constexpr const char* PAGE_ROUTER_SERVICE_LOWER = "pageRouterService"; - constexpr const char* REQUEST_SCENE_BOARD_BUNDLE_NAME = "com.ohos.sceneboard"; constexpr int32_t PAGE_ROUTER_SERVICE_CODE_FORM_MANAGE = 1; constexpr int32_t PAGE_ROUTER_SERVICE_CODE_CONTROL_CENTER = 2; constexpr int32_t PAGE_ROUTER_SERVICE_CODE_FORM_EDIT = 3; -- Gitee