73 Commits
Author SHA1 Message Date
iPel 680a08a330 fix(android): destroy scope and engine only on js thread (#4594)
Non-JS threads, such as http pool callbacks, could hold the last strong ref of
Scope/Engine. When that raced with DestroyJsDriver, ~Engine ran on the http
thread and destroyed V8 globals after the isolate had been disposed, crashing
in GlobalHandles::Destroy.

- add Scope::AnyThreadHandle: it takes strong refs under a close lock and
  releases them before Close() can return, posts work to the js thread, and
  skips tasks once the scope is closed
- close the scope at the beginning of JsDriverUtils::DestroyInstance, while the
  owner still holds both scope and engine
- use the handle in the uri loader result callback, the ContextifyModule load
  callback, and the four perf jni callbacks, replacing perf_runner_map
2026-10-27 11:11:45 +08:00
iPel 3fe3339ee0 fix(android): guard resource load end against destroy race
Invalidate JsDriver after destroy and harden OnResourceLoadEnd/UriLoader
callbacks so late HTTP responses cannot touch a torn-down engine/context.
2026-09-09 17:20:24 +08:00
etkmao 6e73a0f3a2 fix(android): crash protect for some destroy engine conditions 2025-12-12 19:13:12 +08:00
etkmao f4f86314d6 fix(core): android layout config avoid static for some overflowed scene 2025-10-20 20:47:24 +08:00
etkmao cb3332f3ed feat(android): v8 10.6.194.26 version support 16k pages patch 2025-08-13 14:38:26 +08:00
wwwcg c9ee0a92c2 feat(hermes): hermes engine support (phase I) (#4169)
* feat(hermes): support hermes engine first part

feat(hermes): support hermes engine second part

feat(hermes): close demo v8 serialization

feat(hermes): jsi mode support

feat(hermes): demo build script support hermes

feat(hermes): use std::any_cast in ios 11 when opening c++ exception

* fix(ios): resolve hermes build error

* feat(hermes): remove obsolete context wrapper

* feat(ios): support dynamic switching hermes and jsc

* feat(hermes): engine infrastructure improve

* feat(hermes): devtools support for ios

* feat(hermes): update engine version and

* feat(ios): drop v8 engine support

* refactor(ios): bridge setup process and update demo

chore(hermes): update hermes context imp

* chore(hermes): resolve build issue

* chore(ios): remove unnecessary assert

* fix(hermes): resolve context nullptr exception

* feat(hermes): using embeded hbc code for hermes

refactor native source code 's structure

* feat(hermes): resolve bugs and code clean

* feat(hermes): update ws url for devtools under hermes engine

use android as hermes's identity for now

* feat(hermes): resolve build issue

* feat(hermes): add ArrayBuffer type support

* fix(hermes): resolve rebase issues

code refactor for ios jeexecutor

* fix(hermes): dynamic load not support for hermes

Temporary solution

* chore(hermes): add warning ignore mark

* feat(hermes): engine ctx bugfix

* feat(hermes): resolve android build issues

* feat(hermes): resolve android build issue

* fix(hermes): add null pointer check during engine release

optimize call function imp

* feat(hermes): resolve context release issue

* feat(hermes): use toLocaleLowerCase since hermes support

* fix(hermes): resolve build issues

* feat(hermes): use toLowerCase in hippy js package

* chore(hermes): restore android demo params

* fix(core): adjust context destructor timing to avoid crash

* feat(hermes): resolve context bug and config update

* feat(hermes): update core build scripts for android and ohos

* feat(ios): update podspec and bump deployment version

* build(hermes): update build config for android and ohos

* feat(hermes): resolve ohos build issues

* fix(hermes): resolve ohos build issue

* fix(hermes): resolve test failure

* docs(hermes): add hermes usage guide

* chore(hermes): use jsc by default in demo

* feat(hermes): update docs and code optimize

* chore(ios): disable bitcode for iOS demo

* docs(hermes): update hermes usage guide

* chore(hermes): revert android config modify

* feat(hermes): context code optimization

* feat(hermes): context code optimization

* build(js): resolve some frontend build issues
2025-03-05 21:06:21 +08:00
etkmao a2aab0f227 fix(core): fix android scope null when init engine exception 2025-01-08 10:54:46 +08:00
etkmao 3b65921f4c fix(android): java HippyMap leak oom by jni local ref 2024-11-26 20:17:56 +08:00
maxli 166dde2ffa fix(android): correct some log level 2024-11-08 17:53:09 +08:00
wwwcg 824badedb2 build(android): resolve build error 2024-10-30 14:27:52 +08:00
wwwcg 950a78206b fix(android,ios): performance record inaccurate when engine reuse 2024-10-29 15:59:02 +08:00
maxli 213d26aa15 fix(android): support work reuse with group id 2024-09-29 15:35:54 +08:00
wwwcg 390c338eb6 fix(ios, android): performance records inaccurate issues 2024-07-22 11:35:51 +08:00
徐浩哲 8ef98824ad fix(android): resolve local ref overflow 2024-06-13 11:41:14 +00:00
etkmao 1537ba887e fix(perf): fix OnResourceLoadEnd crash (#3895) 2024-06-12 12:16:44 +08:00
etkmao a6d3da3321 Bugfix/anim state crash (#3891)
* fix(perf): animation state not crash on release version

* fix(core): crash protect when onInstanceDestroy is invoked 2 timers

* fix(core): animation state not crash on release version
2024-06-11 16:21:57 +08:00
etkmao 948927c098 fix(perf): fix OnResourceLoadEnd crash (#3888) 2024-06-11 14:51:28 +08:00
zealotchen 60fd4eb13e fix(devtool): fix muli devtool instance crash on android (#3862)
* fix(devtool): fix muli devtool instance crash on android

* fix(devtool): modify some comment
2024-05-20 10:52:27 +08:00
siguangliandmaxli b38e990d13 feat(android): support fcp monitor (#3796)
* feat(android): support fcp monitor

* fix(android): rename to PAINT_TYPE_KEY

---------

Co-authored-by: maxli <maxli@tencent.com>
2024-03-27 14:09:34 +08:00
ilikethese 0658dc3ed0 fix(driver): fix multi thead conflict when destroy engine 2023-10-17 06:55:00 +00:00
ilikethese 9c64bb70b7 fix(driver): fix destroy driver before scope initialization 2023-09-25 08:46:23 +00:00
ilikethese 2fbb558523 feat(dom): set dom thread priority 2023-09-21 10:18:31 +08:00
ilikethese 54753a29f3 fix(dom): get scope return nullptr 2023-09-19 12:24:49 +00:00
9399e28541 fix(core): support onerror for js (#3471)
* fix(core): support onerror for js

* fix(android): add res load reslut to record jni

* fix(core): support onerror for js

---------

Co-authored-by: etkmao <etkmao@tecent.com>
Co-authored-by: maxli <maxli@tencent.com>
2023-09-05 20:21:42 +08:00
etkmao be822e3234 fix(perf): fix resource entry nullptr crash 2023-09-04 01:12:12 +00:00
etkmao 3a2e85d5ab fix(renderer): update tdfcore d47969ec25d4f403595f06219ea43b202de9af74 2023-08-29 08:12:42 +00:00
etkmao b3b7df670b fix(perf): fix performance api for ios params 2023-08-21 03:45:36 +00:00
maxli 418c55e962 fix(android): add removeSnapshotView interface 2023-08-17 03:08:45 +00:00
maxli d8a0402470 fix(android): should call native renderer destroy 2023-08-10 08:29:49 +00:00
ilikethese 62af4ee618 fix(dom): fix call function crash 2023-08-08 06:50:16 +00:00
iPel d81a321adc fix(android): fix incremental build 2023-08-01 03:30:32 +00:00
232bf7472e fix(perf): support performance api (#3348)
* fix(perf): support performance api

* fix(perf): support performance api

* fix(perf): support performance api

* fix(perf): support performance api

* fix(perf): support performance api

* fix(perf): support performance api

* feat(ios): add bridge time point performance

* fix(perf): support performance api

* fix(perf): support performance api

* fix(perf): support performance api

* feat(ios): remove old ios performance logger

* feat(ios): add performance point for engine start/end

* fix(perf): support performance api

* feat(ios): engine init point and execute source point and resource point

* fix(perf): support performance api

* fix(perf): support performance api

* feat(ios): add first frame naviation timing point

* fix(perf): support performance api

* fix(perf): support performance api

* fix(perf): support performance api

* feat(android): add performace impl

* fix(perf): support performance api

* feat(ios): fix conflicts & add performance api

* feat(ios): add performance api

* fix(android): remove OnNativeInitStart interface

* fix(perf): support performance api

* feat(ios): update ios navigation timing report

* fix(ios): fix correct copyright header

---------

Co-authored-by: etkmao <etkmao@tecent.com>
Co-authored-by: luomy <ozonelmy@163.com>
Co-authored-by: maxli <maxli@tencent.com>
2023-07-04 03:55:39 +00:00
pollyzhang 5fd6d244fc feat(driver): modify the release order of scope and engine 2023-05-23 11:50:35 +00:00
pollyzhang a5b10b7045 fix(driver): fix scope release bug 2023-05-16 18:09:19 +08:00
pollyzhang 427f26f965 fix(driver): fix breakpoint bug 2023-05-12 09:47:55 +00:00
pollyzhang d8197d1554 fix(driver): fix reload crash 2023-05-12 04:26:23 +00:00
a3a52f18df refactor(driver): refactor runtime (#3200)
* feat(driver): refactor runtime

* feat(driver): remove redundant code

* feat(ios): add inspectable for ios

* feat(voltron): compat vm opt for voltron android

* fix(voltron): fix conflict to v3.0-dev

* fix(driver): fix code conflicts

* fix(voltron): delete swift plugin file

* fix(voltron): fix ios vm compile error

---------

Co-authored-by: luomy <ozonelmy@163.com>
Co-authored-by: lvfen <284437334@qq.com>
Co-authored-by: OpenHippy <124017524+open-hippy@users.noreply.github.com>
2023-05-11 10:13:59 +00:00
ilikethese c34cb12e16 fix(layout): fix missing scale factor value 2023-04-27 05:05:08 +00:00
etkmao 5312eb0c91 fix(renderer): update binary tdfcore and compile fix 2023-04-24 04:51:09 +00:00
pollyzhang c7fcbdf1e1 fix(connector): domManager calls terminate when it is destroyed 2023-04-23 02:02:42 +00:00
maxli b351cfeed0 fix(android): suport find view by id for engine context 2023-04-20 08:36:25 +00:00
maxli b8ba7f2390 feat(android): support time monitor add point 2023-04-10 01:42:44 +00:00
pollyzhang 785fae3db5 feat(vfs): vfs handler add workerManager 2023-04-03 08:10:39 +00:00
pollyzhang 0dad7cc696 feat(animation): add releaseRootResources for rootNode 2023-03-30 04:01:42 +00:00
pollyzhang 04cf85dba3 feat(driver): add RequestIdleCallback 2023-03-16 14:46:27 +08:00
churchill-zhang 0df056b08f feat(driver): refactor napi and jsi (#3033)
* refactor(driver): refactor napi and jsi

* feat(demo): reset @hippy/react dependencies
2023-03-15 19:30:39 +08:00
maxli dac15926cc fix(android): add get root view with root id 2023-03-14 13:10:07 +00:00
maxli b7660b28ef feat(android): compatible with some usage methods of version 2.0 2023-02-28 11:38:01 +00:00
shermanchen 186cc8d760 fix(driver): compatile with single callback in native2js 2023-02-27 02:10:49 +00:00
Zoom Chan b849b7eafc feat(core): allow all schemas to dynamic load (#2829) 2023-02-23 02:37:22 +00:00