| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[BugFix][Trace]Fix lepus value free crash in profiler by checking GC mode - Add LEPUS_IsGCMode check before calling LEPUS_FreeValue - Only free value when not in GC mode - Apply fix to both LepusNGProfiler and QuickjsRuntimeProfiler AutoLand: release/3.8, release/3.7 | 6 个月前 | |
[BugFix][Trace]Fix lepus value free crash in profiler by checking GC mode - Add LEPUS_IsGCMode check before calling LEPUS_FreeValue - Only free value when not in GC mode - Apply fix to both LepusNGProfiler and QuickjsRuntimeProfiler AutoLand: release/3.8, release/3.7 | 6 个月前 | |
[BugFix][Windows] Fix V8 runtime profiling and devtools integration Expose a public runtime profiling API in the clay shell and allow setting devtool app metadata, while improving Windows main-thread profiling scheduling and V8 profile ownership. Key changes: - Add `lynx_runtime_profiler.{h,cc}` to the clay shell target and export `AddSingleV8RuntimeProfiler` / `RemoveSingleV8RuntimeProfiler` as public APIs wrapping `AddSingleLynxTraceV8RuntimeProfiler`. - Introduce `LynxEnv::SetDevtoolAppInfo` that forwards app info to `DevToolEnvEmbedder` when inspector support is enabled. - Extend `RuntimeProfiler` and `V8RuntimeProfiler` to accept an `is_main_thread` flag and, on Windows, use the UI thread task runner and `PostTask` instead of `PostEmergencyTask` for main-thread execution. - Adjust `RuntimeProfilerManager` locking to guard single-profiler checks and profiler registration separately for safer access. - Change `V8RuntimeProfilerWrapper::StopProfiling` and implementations to return `std::shared_ptr<V8CpuProfile>` instead of `std::unique_ptr` and update the unit test accordingly. TEST: Updated V8 runtime profiler unit test to use shared_ptr profiles AutoSubmit:true SkipChecks:macro | 7 个月前 | |
[Doc] Add AGENTS guides for runtime and renderer bridges - Add AGENTS guides for runtime bridge layers across JS, JSI, LepusNG, profiling, VDOM, Starlight, and TASM React. - Document how these bridging directories hand work between execution engines, renderer trees, and wrapper boundaries. - Verified by keeping this commit within the 300-line limit during the history rewrite. AutoSubmit:True | 6 个月前 | |
[Feature] LynxBase standalone -- Integrate all modules with the standalone LynxBase library Refactors the codebase to make LynxBase a fully independent component, meeting the dependency requirements for all modules. This commit completes the integration of all modules with the `LynxBase` library. Key Changes: 1. Refactor Lynx Log: a. Removed `LLog` implementations (`.java`, `.ets`, `.mm`) from the `lynx` module, forwarding all public APIs to the `LynxBase` library. b. On Android, replaced unused `ILogDelegate` and `ILynxLogService` with `BaseLogDelegate` to bridge the host-injected `AbsLogDelegate`. c. Adapted `LynxLogService` on Android, Darwin, and HarmonyOS to inherit from the `ILynxBaseLogService` interface and be injected via `LynxBaseService`. d. Replaced `logging_android.cc` and `logging_darwin.cc` in the `lynx` module with the implementations from `LynxBase`. 2. Implement Base Trace: a. On Darwin and HarmonyOS, implemented and injected `LynxBaseTraceService` during `LynxEnv` initialization, allowing `LynxBase` to retrieve the trace backend from the service. b. Replaced the `TRACE_EVENT` macro with the internal `BASE_TRACE_EVENT` macro within the `LynxBase` library. 3. Adapt Build System: a. Removed dependencies on the `base` submodule from GN projects. b. On Android, configured all modules to dynamically link the `lynx_base` library and depend on the `LynxBase` component at the platform level. c. On iOS, updated all Podspec targets (e.g., `Lynx`, `LynxDevtool`) to depend on the `LynxBase` podspec instead of `base` source files. d. On HarmonyOS, switched all modules from statically linking `base` source to dynamically linking the `lynx_base` library and depending on its HAR package. e. On Windows, established a static dependency on the `base` static library. f. Configured unit test modules to statically depend on the `base_static` library. 4. Update LynxEnv Initialization: a. Removed legacy `LLog` initialization logic. b. Added injection logic for the `LynxBase` Trace service on Darwin and HarmonyOS. c. Added calls to initialize `LynxBaseEnv` on all platforms. 5. Android Specific: Removed calls to `fml::MessageLoopAndroid::Register(env)` from outside the `LynxBase` library. 6. Symbol Management: Exported necessary symbols from `LynxBase` to support dynamic linking across all components. issue:m-6736726571 SkipChecks:macro AutoSubmit:true | 1 年前 | |
[BugFix][Windows] Fix V8 runtime profiling and devtools integration Expose a public runtime profiling API in the clay shell and allow setting devtool app metadata, while improving Windows main-thread profiling scheduling and V8 profile ownership. Key changes: - Add `lynx_runtime_profiler.{h,cc}` to the clay shell target and export `AddSingleV8RuntimeProfiler` / `RemoveSingleV8RuntimeProfiler` as public APIs wrapping `AddSingleLynxTraceV8RuntimeProfiler`. - Introduce `LynxEnv::SetDevtoolAppInfo` that forwards app info to `DevToolEnvEmbedder` when inspector support is enabled. - Extend `RuntimeProfiler` and `V8RuntimeProfiler` to accept an `is_main_thread` flag and, on Windows, use the UI thread task runner and `PostTask` instead of `PostEmergencyTask` for main-thread execution. - Adjust `RuntimeProfilerManager` locking to guard single-profiler checks and profiler registration separately for safer access. - Change `V8RuntimeProfilerWrapper::StopProfiling` and implementations to return `std::shared_ptr<V8CpuProfile>` instead of `std::unique_ptr` and update the unit test accordingly. TEST: Updated V8 runtime profiler unit test to use shared_ptr profiles AutoSubmit:true SkipChecks:macro | 7 个月前 | |
[BugFix][Windows] Fix V8 runtime profiling and devtools integration Expose a public runtime profiling API in the clay shell and allow setting devtool app metadata, while improving Windows main-thread profiling scheduling and V8 profile ownership. Key changes: - Add `lynx_runtime_profiler.{h,cc}` to the clay shell target and export `AddSingleV8RuntimeProfiler` / `RemoveSingleV8RuntimeProfiler` as public APIs wrapping `AddSingleLynxTraceV8RuntimeProfiler`. - Introduce `LynxEnv::SetDevtoolAppInfo` that forwards app info to `DevToolEnvEmbedder` when inspector support is enabled. - Extend `RuntimeProfiler` and `V8RuntimeProfiler` to accept an `is_main_thread` flag and, on Windows, use the UI thread task runner and `PostTask` instead of `PostEmergencyTask` for main-thread execution. - Adjust `RuntimeProfilerManager` locking to guard single-profiler checks and profiler registration separately for safer access. - Change `V8RuntimeProfilerWrapper::StopProfiling` and implementations to return `std::shared_ptr<V8CpuProfile>` instead of `std::unique_ptr` and update the unit test accordingly. TEST: Updated V8 runtime profiler unit test to use shared_ptr profiles AutoSubmit:true SkipChecks:macro | 7 个月前 | |
[BugFix][Windows] Fix V8 runtime profiling and devtools integration Expose a public runtime profiling API in the clay shell and allow setting devtool app metadata, while improving Windows main-thread profiling scheduling and V8 profile ownership. Key changes: - Add `lynx_runtime_profiler.{h,cc}` to the clay shell target and export `AddSingleV8RuntimeProfiler` / `RemoveSingleV8RuntimeProfiler` as public APIs wrapping `AddSingleLynxTraceV8RuntimeProfiler`. - Introduce `LynxEnv::SetDevtoolAppInfo` that forwards app info to `DevToolEnvEmbedder` when inspector support is enabled. - Extend `RuntimeProfiler` and `V8RuntimeProfiler` to accept an `is_main_thread` flag and, on Windows, use the UI thread task runner and `PostTask` instead of `PostEmergencyTask` for main-thread execution. - Adjust `RuntimeProfilerManager` locking to guard single-profiler checks and profiler registration separately for safer access. - Change `V8RuntimeProfilerWrapper::StopProfiling` and implementations to return `std::shared_ptr<V8CpuProfile>` instead of `std::unique_ptr` and update the unit test accordingly. TEST: Updated V8 runtime profiler unit test to use shared_ptr profiles AutoSubmit:true SkipChecks:macro | 7 个月前 | |
[Optimize][Trace] Integrate Lynx JS runtime profiler and export perfetto symbols Update lynx-trace/perfetto dependency and extend trace event wrappers to support more value types and legacy event fields. Introduce a helper to register a JS runtime profiler and ensure only a single V8 profiler instance is active when Lynx is linked as a dynamic library. Key changes: - Bump lynx-trace/perfetto commits in all DEPS files. - Add TraceFormatTraits specializations for floating point and enum values, and expose additional setters on TrackEvent_LegacyEvent. - Enable construction of LynxDebugAnnotation and loosen the export requirements of EventContext to make it easier for clients to use. - Add RuntimeProfiler::IsSingleProfiler and EnableSingleProfiler, and guard RuntimeProfilerManager against registering multiple V8 profilers in the same process. - Introduce AddSingleLynxTraceV8RuntimeProfiler and RemoveSingleLynxTraceV8RuntimeProfiler, and export its symbol (plus core perfetto trace symbols) via a new exported_symbols_tracing.sym list for macOS shared libraries. - Wire macOS GN targets to export tracing symbols when perfetto tracing is enabled. - Package tracing and runtime profiler headers in macOS and Windows Electron -dev builds so external hosts can integrate Lynx trace profiling. AutoSubmit:true issue:m-6845619292 SkipChecks:macro | 8 个月前 | |
[Refactor][runtime][profile] Namespace-align RuntimeProfiler and profilers under lynx::runtime::profile Move all runtime profiling types and factory functions from lynx::profile to lynx::runtime::profile to fix namespace consistency and avoid ambiguities. Update headers, implementations, unit tests, and callers across JSVM, QuickJS, V8, LepusNG, devtool helpers, and runtime manager to use the new namespace. Adjust return types and std::make_unique/shared_ptr constructions accordingly. Previous behavior: - Profiling classes lived in lynx::profile with mixed usage. New behavior: - All profiling APIs reside under lynx::runtime::profile. - Call sites use lynx::runtime::profile::GetRuntimeProfilerManager and corresponding profiler types. This is a non-functional change intended to improve clarity and prevent symbol collisions. AutoSubmit: True doc: https://github.com/lynx-family/lynx/discussions/281 issue: m-6787224557 | 9 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 6 个月前 | ||
| 6 个月前 | ||
| 7 个月前 | ||
| 6 个月前 | ||
| 1 年前 | ||
| 7 个月前 | ||
| 7 个月前 | ||
| 7 个月前 | ||
| 8 个月前 | ||
| 9 个月前 |