| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 4 天前 | ||
[Testing] Cover embedder bundle decoding and resource ownership Generate bundle fixtures with the build-selected encoder and cover successful decoding, malformed and truncated data, security verification, and input destruction. Add ownership and completion checks for load metadata, resource responses, and generic fetchers, including response swaps, deferred completion, and shared fetcher lifetime. Exercise the previously uninvoked fetch test and release the bundle owned by the load-meta test. TEST: macOS lynx_embedder_unittests: 84 passed, 1 disabled. All 26 affected tests passed three shuffled repetitions. | 22 天前 | |
[Feature][BugFix] Add a reusable desktop HTTP service - Move the Darwin HTTP implementation into the shared embedder layer, add a WinHTTP implementation, and register both desktop explorers. - Reuse the host process service center so fetch dispatch resolves the registered HTTP service. - Export the Trail service C APIs on macOS so the companion services library resolves them without linking a duplicate service implementation. - Sequence ArrayBuffer conversion before consuming its output length to avoid unspecified argument evaluation order. TEST: Not run locally; desktop builds will be verified by continuous integration. GithubPR: https://github.com/lynx-family/lynx/pull/8666 SkipChecks: macro | 2 个月前 | |
[Feature][DevTool][Clay] Support UI tree inspection across Clay platforms - Expose Clay UI tree inspection and style editing through the shared embedder delegate path. - Route Android Clay UI tree requests through the renderer delegate and JNI, with isClayRenderer selecting the Clay path and UTF-8 byte arrays carrying native results. - Route iOS UI tree requests to the shared UI delegate when the renderer implements each optional selector, with Clay currently providing these operations and non-Clay renderers retaining the native helper path. - Enable the implementation whenever Clay and Inspector are enabled, covering Android, iOS, Harmony, macOS, and Windows. - Serialize Clay view hierarchies and node details in a platform-independent helper, while retaining a stub for builds without Inspector. - Move the helper implementation to the shared Clay shell DevTool directory while compiling it directly from LynxAdaptor so Apple source manifests include it. - Use fixed-size style parsing to limit mobile binary growth. - Initialize the DevTool sdkVersion from the shared Lynx configuration for public, Clay, NAPI, and headless entry points. - Add helper, protocol, and embedder coverage for UI tree inspection, style editing, version reporting, and error handling, including iOS per-selector routing, partial implementations, native fallback, and empty results. - Use concrete test-only renderers to exercise real optional-selector detection without mocking respondsToSelector, and verify forwarded arguments and call counts. - Cover all four Android delegate defaults using a concrete implementation that inherits the interface methods. TEST: ui_tree_helper_unittests --gtest_filter=UITreeHelperTest.* TEST: ninja -C out/codex_mac_clay_ui_tree ui_tree_helper_unittests obj/lynx/clay/shell/common/devtool/lynx_adaptor.ui_tree_helper.o TEST: ninja -C out/codex_ios_clay_ui_tree obj/lynx/clay/lynx_adaptor/lynx_adaptor.ui_delegate_clay_ui_tree.o obj/lynx/clay/shell/common/devtool/lynx_adaptor.ui_tree_helper.o TEST: python3 tools/ios_tools/generate_podspec_scripts_by_gn.py --target //clay/shell/platform/darwin/ios:clay_podspec --enable-lynxclay TEST: devtool_agent_unittest_exec --gtest_filter=InspectorUIExecutorTest.ClayDesktopUITreeMethodsTest TEST: lynx_embedder_unittests --gtest_filter=LynxEnv.Devtool* TEST: python3 -B lynx/devtool/lynx_devtool/protocol/scripts/update_cdp_metadata.py --check TEST: LynxAndroid and LynxDevtool Java and AndroidTest compilation with Clay enabled; Android instrumentation tests not executed TEST: iOS simulator build-for-testing succeeded with concrete renderer fakes before syncing the branch base; test execution blocked by a macOS test host loading an iOS Simulator bundle TEST: Before the per-selector routing refactor, signed iOS device build, installation and launch succeeded; Clay UI tree returned five nodes on a physical device TEST: LynxAndroid AndroidTest Java compilation and Checkstyle passed; IDevToolDelegateTest passed 4/4 on the JVM with 100% line and method coverage for IDevToolDelegate; device instrumentation not executed | 1 个月前 | |
[BugFix][TestBench] Reland: Align replay behavior and record parsing - Let replay callers provide default global properties when recorded data does not supply them. - Pass the macOS example defaults through standard and benchmark replay paths. - Treat recorded macOS viewport values as LynxView content dimensions and resize the titled window around that content. - Keep standard and benchmark LynxView layouts aligned with the resulting content size. - Accept raw JSON record files after an optional UTF-8 BOM and JSON whitespace while preserving the Base64-compressed fallback. - Update the affected macOS TestBench baselines for standard and Skity rendering. TEST: Built and signed the macOS LynxDesktop debug target, replayed selected TestBench cases, and built the embedder recorder target for macOS arm64 debug. | 2 个月前 | |
[Feature] Add HTTP request configuration APIs Add C APIs for method, headers, copied binary bodies and optional timeouts. Expose configured timeouts through the header-only C++ request wrapper and declare the service and test targets' public-header dependencies. TEST: 23 HTTP request, response and service tests; pure C header compilation. | 19 天前 | |
[Infra][Desktop] Bring lynx to desktop platforms Bring lynx to desktop platforms, including Windows and macOS. It's based on the `Clay` rendering engine. Now you can experience lynx capabilities on desktop: - Windows: explorer/windows - macOS: explorer/darwin/macos issue:m-6492347102 SkipChecks: macro | 10 个月前 | |
[BugFix] Cancel extension VSync callbacks before module teardown Pending one-shot VSync requests can outlive an extension module or be discarded without releasing their callback contexts. Cancel each module's requests before runtime detach, destroy hooks and finalization. Report cancellation with zero timestamps, ignore late signals and keep requests from other modules unaffected. TEST: 119 embedder tests passed. 14 lifecycle cases passed 100 iterations with no leaks reported. AutoSubmit: True | 3 天前 | |
[Infra][Desktop] Bring lynx to desktop platforms Bring lynx to desktop platforms, including Windows and macOS. It's based on the `Clay` rendering engine. Now you can experience lynx capabilities on desktop: - Windows: explorer/windows - macOS: explorer/darwin/macos issue:m-6492347102 SkipChecks: macro | 10 个月前 | |
[BugFix] Fix Windows CEF OSR scaling and frame scheduling Reuse the shared CEF screen-info implementation with the pixel ratio supplied by Lynx layout. Notify CEF and resize its surface on ratio-only changes while preserving non-OSR window DPI behavior. Let CEF schedule OSR frames internally instead of enabling external BeginFrame control with only a one-shot load notification. This keeps navigation and interactive page updates repainting without a manual refresh. TEST: Windows Release native build; same-environment full-area rendering at DPR 2; Google to Example to Lynx visible navigation; Google input and deletion; one ratio-fix minimize/restore cycle. Repository format and git diff --check passed. Dynamic ratio transitions and other platforms were not exercised. | 1 个月前 | |
[BugFix] Cancel extension VSync callbacks before module teardown Pending one-shot VSync requests can outlive an extension module or be discarded without releasing their callback contexts. Cancel each module's requests before runtime detach, destroy hooks and finalization. Report cancellation with zero timestamps, ignore late signals and keep requests from other modules unaffected. TEST: 119 embedder tests passed. 14 lifecycle cases passed 100 iterations with no leaks reported. AutoSubmit: True | 3 天前 | |
[Infra][Clay][iOS] Support optional windowless C API embedding alongside UIView - What changed: Package UIView rendering by default and add C API windowless Metal embedding only when --headless enables is_headless. Include the public embedder C API headers, Apple resource loading, and NAPI bridge initialization. Remove the legacy C++ Embedder API from iOS framework and Pod dependencies, header packaging, and entry-point validation. - Why it was needed: Provide optional offscreen embedding through opaque C API objects while preserving UIView service paths and OS main-thread detection. Remove obsolete C++ embedding dependencies and prune stale generated headers in incremental builds. - How it was verified: Generated default and headless iOS GN graphs, checked static and dynamic framework dependencies, generated the source Podspec, and verified C API header coverage with no legacy C++ API. Checked formatting and Python syntax. The C API demo was previously verified on iPhone 12 with PNG and Photos export and same-process UIView rendering. TEST: Default/headless iOS GN graphs; C API-only source Podspec and framework dependencies; generated header coverage and stale-header cleanup; formatting and Python syntax. AutoLand: release/4.4 SkipChecks:macro issue: m-7381716787 | 22 天前 | |
[Testing] Cover embedder LynxView bundle loading and first-screen rendering Replace the disabled LynxView placeholder with a successful loading test through the public C++ API. Generate a minimal template bundle with the current encoder and verify load callbacks, first-screen notification, node hierarchy, and layout dimensions. Add a test UI renderer that records output from the real engine without creating a native window. Restrict the LynxView test to macOS, Windows, and Linux. TEST: macOS embedder suite passed all 85 tests. Rebuilt and reran LynxViewTest after restricting platforms. Formatting and git diff checks passed. Windows and Linux were not run locally. | 19 天前 | |
[Feature][DevTool] Support synthetic gestures on Clay desktop - Add a Clay InputEventTarget that supports primary mouse input and two-point synthetic touch input in LynxView-local logical coordinates. - Map touch pointer lifecycles to independent Clay device IDs, validate active pointer sets and bounds, and cancel all active input on invalid transitions, reset, or destruction. - Keep mouse as the default source, leave mouse or touchpad wheel pinch unsupported, and document explicit touch pinch usage. TEST: 12 Clay input target tests, 18 synthetic gesture tests, 36 Inspector input agent tests, 19 embedder tests, macOS core desktop build, and headless macOS tap, touch-pinch, mouse-pinch rejection, and reload validation Change-Id: I93d540a213cb1be174b7441e14b929e419d0d18e | 4 天前 | |
| 4 天前 | ||
[BugFix] Isolate desktop switch persistence per app - Update desktop SwitchPersist implementations on macOS, Windows, and Linux to store devtool switch values in app-scoped persistence buckets while keeping the original key format unchanged. - Add Linux file-based persistence for embedder devtool switches and keep legacy bucket fallback reads on all three desktop platforms for compatibility with existing stored values. - This avoids persistence collisions when multiple desktop apps share the same switch keys and preserves previously stored settings after the isolation change. | 2 个月前 | |
[Feature][DevTool] Support synthetic gestures on Clay desktop - Add a Clay InputEventTarget that supports primary mouse input and two-point synthetic touch input in LynxView-local logical coordinates. - Map touch pointer lifecycles to independent Clay device IDs, validate active pointer sets and bounds, and cancel all active input on invalid transitions, reset, or destruction. - Keep mouse as the default source, leave mouse or touchpad wheel pinch unsupported, and document explicit touch pinch usage. TEST: 12 Clay input target tests, 18 synthetic gesture tests, 36 Inspector input agent tests, 19 embedder tests, macOS core desktop build, and headless macOS tap, touch-pinch, mouse-pinch rejection, and reload validation Change-Id: I93d540a213cb1be174b7441e14b929e419d0d18e | 4 天前 | |
[Feature][DevTool] Support synthetic gestures on Clay desktop - Add a Clay InputEventTarget that supports primary mouse input and two-point synthetic touch input in LynxView-local logical coordinates. - Map touch pointer lifecycles to independent Clay device IDs, validate active pointer sets and bounds, and cancel all active input on invalid transitions, reset, or destruction. - Keep mouse as the default source, leave mouse or touchpad wheel pinch unsupported, and document explicit touch pinch usage. TEST: 12 Clay input target tests, 18 synthetic gesture tests, 36 Inspector input agent tests, 19 embedder tests, macOS core desktop build, and headless macOS tap, touch-pinch, mouse-pinch rejection, and reload validation Change-Id: I93d540a213cb1be174b7441e14b929e419d0d18e | 4 天前 | |
[Feature][DevTool] Support synthetic gestures on Clay desktop - Add a Clay InputEventTarget that supports primary mouse input and two-point synthetic touch input in LynxView-local logical coordinates. - Map touch pointer lifecycles to independent Clay device IDs, validate active pointer sets and bounds, and cancel all active input on invalid transitions, reset, or destruction. - Keep mouse as the default source, leave mouse or touchpad wheel pinch unsupported, and document explicit touch pinch usage. TEST: 12 Clay input target tests, 18 synthetic gesture tests, 36 Inspector input agent tests, 19 embedder tests, macOS core desktop build, and headless macOS tap, touch-pinch, mouse-pinch rejection, and reload validation Change-Id: I93d540a213cb1be174b7441e14b929e419d0d18e | 4 天前 | |
[BugFix][Linux] Expose DevTool V8 enable switch on Linux embedder builds Extend the build guards for the `kLynxEnableV8` DevTool setting to include `OS_LINUX` when `JS_ENGINE_TYPE == 0`. This ensures Linux embedders can sync and toggle the V8 switch consistently with Windows and macOS. SkipChecks:macro AutoSubmit:true | 3 个月前 | |
[BugFix][Linux] Expose DevTool V8 enable switch on Linux embedder builds Extend the build guards for the `kLynxEnableV8` DevTool setting to include `OS_LINUX` when `JS_ENGINE_TYPE == 0`. This ensures Linux embedders can sync and toggle the V8 switch consistently with Windows and macOS. SkipChecks:macro AutoSubmit:true | 3 个月前 | |
[Feature][Embedder] Add frame timing callbacks to LynxViewClient Introduce a `FrameTimingListenerImpl` that forwards frame start/finish timestamps to registered `LynxViewClients`, and expose `AddClient` on `LynxUIRenderer` so platform renderers can register listeners. Extend the embedder client API to support an `on_frame_timing` callback, wire it through `LynxViewClients::OnFrameTiming`, and add a corresponding `LynxViewClient::OnFrameTiming` virtual hook for C++ embedders. issue:m-6673506544 | 7 个月前 | |
[Feature][Embedder] Add frame timing callbacks to LynxViewClient Introduce a `FrameTimingListenerImpl` that forwards frame start/finish timestamps to registered `LynxViewClients`, and expose `AddClient` on `LynxUIRenderer` so platform renderers can register listeners. Extend the embedder client API to support an `on_frame_timing` callback, wire it through `LynxViewClients::OnFrameTiming`, and add a corresponding `LynxViewClient::OnFrameTiming` virtual hook for C++ embedders. issue:m-6673506544 | 7 个月前 | |
[Optimize][Embedder] Add asynchronous platform resource prewarming Add a generic PrewarmAsync API with platform dispatch inside the C entry point. Windows prepares a D3D11 device on a CRT-aware background thread; other platforms currently have no prewarming work. The first view waits for and consumes the device once, with synchronous fallback on failure. EGL and window initialization remain on their original threads. Cover ownership, concurrent consumption, and thread-local destruction with lifecycle tests. Document whether the prewarm request was accepted. TEST: Nine Windows lifecycle tests repeated 50 times before removing the public discard API. Production translation units and the host call site compile after removal; formatting and diff checks pass. Earlier integration validation covered 30 startup pairs, reload, two windows, and no-window exit. Latest integration relink was blocked by disk space; macOS was not runtime-tested. SkipChecks:macro | 1 个月前 | |
[Optimize][Embedder] Add asynchronous platform resource prewarming Add a generic PrewarmAsync API with platform dispatch inside the C entry point. Windows prepares a D3D11 device on a CRT-aware background thread; other platforms currently have no prewarming work. The first view waits for and consumes the device once, with synchronous fallback on failure. EGL and window initialization remain on their original threads. Cover ownership, concurrent consumption, and thread-local destruction with lifecycle tests. Document whether the prewarm request was accepted. TEST: Nine Windows lifecycle tests repeated 50 times before removing the public discard API. Production translation units and the host call site compile after removal; formatting and diff checks pass. Earlier integration validation covered 30 startup pairs, reload, two windows, and no-window exit. Latest integration relink was blocked by disk space; macOS was not runtime-tested. SkipChecks:macro | 1 个月前 | |
[Feature][DevTool][Clay] Support UI tree inspection across Clay platforms - Expose Clay UI tree inspection and style editing through the shared embedder delegate path. - Route Android Clay UI tree requests through the renderer delegate and JNI, with isClayRenderer selecting the Clay path and UTF-8 byte arrays carrying native results. - Route iOS UI tree requests to the shared UI delegate when the renderer implements each optional selector, with Clay currently providing these operations and non-Clay renderers retaining the native helper path. - Enable the implementation whenever Clay and Inspector are enabled, covering Android, iOS, Harmony, macOS, and Windows. - Serialize Clay view hierarchies and node details in a platform-independent helper, while retaining a stub for builds without Inspector. - Move the helper implementation to the shared Clay shell DevTool directory while compiling it directly from LynxAdaptor so Apple source manifests include it. - Use fixed-size style parsing to limit mobile binary growth. - Initialize the DevTool sdkVersion from the shared Lynx configuration for public, Clay, NAPI, and headless entry points. - Add helper, protocol, and embedder coverage for UI tree inspection, style editing, version reporting, and error handling, including iOS per-selector routing, partial implementations, native fallback, and empty results. - Use concrete test-only renderers to exercise real optional-selector detection without mocking respondsToSelector, and verify forwarded arguments and call counts. - Cover all four Android delegate defaults using a concrete implementation that inherits the interface methods. TEST: ui_tree_helper_unittests --gtest_filter=UITreeHelperTest.* TEST: ninja -C out/codex_mac_clay_ui_tree ui_tree_helper_unittests obj/lynx/clay/shell/common/devtool/lynx_adaptor.ui_tree_helper.o TEST: ninja -C out/codex_ios_clay_ui_tree obj/lynx/clay/lynx_adaptor/lynx_adaptor.ui_delegate_clay_ui_tree.o obj/lynx/clay/shell/common/devtool/lynx_adaptor.ui_tree_helper.o TEST: python3 tools/ios_tools/generate_podspec_scripts_by_gn.py --target //clay/shell/platform/darwin/ios:clay_podspec --enable-lynxclay TEST: devtool_agent_unittest_exec --gtest_filter=InspectorUIExecutorTest.ClayDesktopUITreeMethodsTest TEST: lynx_embedder_unittests --gtest_filter=LynxEnv.Devtool* TEST: python3 -B lynx/devtool/lynx_devtool/protocol/scripts/update_cdp_metadata.py --check TEST: LynxAndroid and LynxDevtool Java and AndroidTest compilation with Clay enabled; Android instrumentation tests not executed TEST: iOS simulator build-for-testing succeeded with concrete renderer fakes before syncing the branch base; test execution blocked by a macOS test host loading an iOS Simulator bundle TEST: Before the per-selector routing refactor, signed iOS device build, installation and launch succeeded; Clay UI tree returned five nodes on a physical device TEST: LynxAndroid AndroidTest Java compilation and Checkstyle passed; IDevToolDelegateTest passed 4/4 on the JVM with 100% line and method coverage for IDevToolDelegate; device instrumentation not executed | 1 个月前 | |
[BugFix] Add missing group white board support to embedder CAPI - Added a CAPI switch for enabling a shared white board on embedder Lynx groups. - Stored the group white board internally and forwarded it into embedder template renderer settings so views in the same group can share it. - Exposed the switch through the public C++ LynxGroup wrapper and covered enable, reuse, and disable behavior with unit tests. TEST: git diff --cached --check; IDE diagnostics. | 3 个月前 | |
[BugFix] Add missing group white board support to embedder CAPI - Added a CAPI switch for enabling a shared white board on embedder Lynx groups. - Stored the group white board internally and forwarded it into embedder template renderer settings so views in the same group can share it. - Exposed the switch through the public C++ LynxGroup wrapper and covered enable, reuse, and disable behavior with unit tests. TEST: git diff --cached --check; IDE diagnostics. | 3 个月前 | |
[BugFix] Add missing group white board support to embedder CAPI - Added a CAPI switch for enabling a shared white board on embedder Lynx groups. - Stored the group white board internally and forwarded it into embedder template renderer settings so views in the same group can share it. - Exposed the switch through the public C++ LynxGroup wrapper and covered enable, reuse, and disable behavior with unit tests. TEST: git diff --cached --check; IDE diagnostics. | 3 个月前 | |
[Infra][Desktop] Bring lynx to desktop platforms Bring lynx to desktop platforms, including Windows and macOS. It's based on the `Clay` rendering engine. Now you can experience lynx capabilities on desktop: - Windows: explorer/windows - macOS: explorer/darwin/macos issue:m-6492347102 SkipChecks: macro | 10 个月前 | |
[Infra][Desktop] Bring lynx to desktop platforms Bring lynx to desktop platforms, including Windows and macOS. It's based on the `Clay` rendering engine. Now you can experience lynx capabilities on desktop: - Windows: explorer/windows - macOS: explorer/darwin/macos issue:m-6492347102 SkipChecks: macro | 10 个月前 | |
[Testing] Cover embedder bundle decoding and resource ownership Generate bundle fixtures with the build-selected encoder and cover successful decoding, malformed and truncated data, security verification, and input destruction. Add ownership and completion checks for load metadata, resource responses, and generic fetchers, including response swaps, deferred completion, and shared fetcher lifetime. Exercise the previously uninvoked fetch test and release the bundle owned by the load-meta test. TEST: macOS lynx_embedder_unittests: 84 passed, 1 disabled. All 26 affected tests passed three shuffled repetitions. | 22 天前 | |
[Refactor][BugFix] Add an explicit platform log level setter Add SetPlatformMinLogLevel to route native callers through the existing platform setter. Keep SetMinLogLevel as the native-only leaf operation. Clamp platform and native thresholds to VERBOSE through ERROR without changing severity values, default levels or compile-time log gates. Android uses the generated JNI bridge; Darwin and desktop call the platform setter directly. Harmony retains the logger class during initialization and invokes it only on its owning ArkTS thread. The entry returns void on every platform. Invalid Harmony calls log an error and return without changing the level. No observer or notification queue is installed. Select the default platform setter implementation only for Windows and Linux in GN. Keep the shared delegate implementation independent of the platform entry point so desktop and headless builds cannot define it twice. TEST: Without manually defining OS macros, macOS C++ and Objective-C++ object linking reproduced the duplicate symbol before the fix and passed afterward. Native debug and release suites passed (12 tests each) with the default platform entry included. GN and C++ formatting checks passed. Host Java/JNI and ETS/N-API entry and clamp checks passed. Regenerated Android JNI bridge and Objective-C++ syntax checks passed. Full mobile application builds and device validation remain pending. AutoSubmit: True SkipChecks: macro | 1 个月前 | |
[Refactor][BugFix] Add an explicit platform log level setter Add SetPlatformMinLogLevel to route native callers through the existing platform setter. Keep SetMinLogLevel as the native-only leaf operation. Clamp platform and native thresholds to VERBOSE through ERROR without changing severity values, default levels or compile-time log gates. Android uses the generated JNI bridge; Darwin and desktop call the platform setter directly. Harmony retains the logger class during initialization and invokes it only on its owning ArkTS thread. The entry returns void on every platform. Invalid Harmony calls log an error and return without changing the level. No observer or notification queue is installed. Select the default platform setter implementation only for Windows and Linux in GN. Keep the shared delegate implementation independent of the platform entry point so desktop and headless builds cannot define it twice. TEST: Without manually defining OS macros, macOS C++ and Objective-C++ object linking reproduced the duplicate symbol before the fix and passed afterward. Native debug and release suites passed (12 tests each) with the default platform entry included. GN and C++ formatting checks passed. Host Java/JNI and ETS/N-API entry and clamp checks passed. Regenerated Android JNI bridge and Objective-C++ syntax checks passed. Full mobile application builds and device validation remain pending. AutoSubmit: True SkipChecks: macro | 1 个月前 | |
[BugFix] Fix Windows CEF off-screen rendering Run CEF child processes with the webview application and configure platform-specific subprocess paths beside the extension module. Copy accelerated paint textures into Lynx-owned surfaces while preserving orientation and a stable lifetime. Align Windows screen scale and external frame delivery for off-screen rendering. Register webview as an alias for the internal x-webview implementation and improve navigation diagnostics. Make the macOS CEF helper bundle name and identifier configurable so plugin packages can ship their own helper app. TEST: Windows Lynxtron build, CEF extension build, package tests, packaged browser demo, public webpage rendering, repeated direct minimize/restore cycles, and macOS packaged helper startup. | 1 个月前 | |
[Refactor][Embedder] Remove runtime type from attach C API - Remove the runtime type argument from the public runtime attach C callback. - Update the embedder public wrapper and Explorer examples to match the new attach callback shape. - Keep the internal runtime lifecycle observer path unchanged so runtime type propagation remains available inside the engine. AutoSubmit: True | 2 个月前 | |
[Feature] Expose JS runtime type in runtime attach lifecycle - Pass the JS runtime type string when the NAPI environment is attached to runtime lifecycle observers. - Reuse the shared JSRuntimeTypeToString helper for both SystemInfo and lifecycle attach metadata. - Update Android, iOS, Harmony, embedder, canvas mediator, examples, tests, and API snapshots for the expanded attach callback. issue: m-7360103689 AutoSubmit: True AutoLand: release/4.1, release/4.0 | 2 个月前 | |
[Optimize] Consolidate LynxBinaryReader decoding into LynxTemplateBundle Add FromBinaryGreedy method to LynxTemplateBundle that encapsulates LynxBinaryReader decoding logic, allowing all platform callers to use a unified API instead of directly depending on lynx_binary_reader.h. issue: f-7205059763 AutoSubmit: true | 5 个月前 | |
[Infra][Desktop] Bring lynx to desktop platforms Bring lynx to desktop platforms, including Windows and macOS. It's based on the `Clay` rendering engine. Now you can experience lynx capabilities on desktop: - Windows: explorer/windows - macOS: explorer/darwin/macos issue:m-6492347102 SkipChecks: macro | 10 个月前 | |
[Testing] Cover embedder bundle decoding and resource ownership Generate bundle fixtures with the build-selected encoder and cover successful decoding, malformed and truncated data, security verification, and input destruction. Add ownership and completion checks for load metadata, resource responses, and generic fetchers, including response swaps, deferred completion, and shared fetcher lifetime. Exercise the previously uninvoked fetch test and release the bundle owned by the load-meta test. TEST: macOS lynx_embedder_unittests: 84 passed, 1 disabled. All 26 affected tests passed three shuffled repetitions. | 22 天前 | |
[Refactor][LepusNG] Move QuickJS runtime into dedicated lepusng module Split LepusNG QuickJS runtime code out of lepus_context into the new core/runtime/lepusng module and wire it through GN and platform deps. Rename lepus_context to lepus. Key changes include: - Introduce core/runtime/lepusng/BUILD.gn with lepus_ng source set - Move jsvalue_helper, quick_context, qjs_callback, quickjs_debug_info, lynx_api_context_lepusng, and related tests into core/runtime/lepusng - Update includes and BUILD deps across renderer, worklet, SSR, template codec, profiling, devtools, benchmarks, tests, and iOS subspecs to reference core/runtime/lepusng - Remove the lepus_context:lepus_ng source set and reuse the new lepusng:lepus_ng target where needed AutoSubmit: True doc: https://github.com/lynx-family/lynx/discussions/281 issue: m-6787224557 | 9 个月前 | |
[Infra][Desktop] Bring lynx to desktop platforms Bring lynx to desktop platforms, including Windows and macOS. It's based on the `Clay` rendering engine. Now you can experience lynx capabilities on desktop: - Windows: explorer/windows - macOS: explorer/darwin/macos issue:m-6492347102 SkipChecks: macro | 10 个月前 | |
[Infra][Desktop] Bring lynx to desktop platforms Bring lynx to desktop platforms, including Windows and macOS. It's based on the `Clay` rendering engine. Now you can experience lynx capabilities on desktop: - Windows: explorer/windows - macOS: explorer/darwin/macos issue:m-6492347102 SkipChecks: macro | 10 个月前 | |
[Optimize][Canvas] Support asynchronous trace events through exported APIs - Map positive trace IDs to custom tracks so asynchronous sections can span threads. - Expose matching C APIs and preserve async IDs in the host adapter. - Add coverage for asynchronous exports. TEST: trace_event_unittests_exec AutoSubmit: True | 1 个月前 | |
[Feature][DevTool] Support synthetic gestures on Clay desktop - Add a Clay InputEventTarget that supports primary mouse input and two-point synthetic touch input in LynxView-local logical coordinates. - Map touch pointer lifecycles to independent Clay device IDs, validate active pointer sets and bounds, and cancel all active input on invalid transitions, reset, or destruction. - Keep mouse as the default source, leave mouse or touchpad wheel pinch unsupported, and document explicit touch pinch usage. TEST: 12 Clay input target tests, 18 synthetic gesture tests, 36 Inspector input agent tests, 19 embedder tests, macOS core desktop build, and headless macOS tap, touch-pinch, mouse-pinch rejection, and reload validation Change-Id: I93d540a213cb1be174b7441e14b929e419d0d18e | 4 天前 | |
[Feature][DevTool] Support synthetic gestures on Clay desktop - Add a Clay InputEventTarget that supports primary mouse input and two-point synthetic touch input in LynxView-local logical coordinates. - Map touch pointer lifecycles to independent Clay device IDs, validate active pointer sets and bounds, and cancel all active input on invalid transitions, reset, or destruction. - Keep mouse as the default source, leave mouse or touchpad wheel pinch unsupported, and document explicit touch pinch usage. TEST: 12 Clay input target tests, 18 synthetic gesture tests, 36 Inspector input agent tests, 19 embedder tests, macOS core desktop build, and headless macOS tap, touch-pinch, mouse-pinch rejection, and reload validation Change-Id: I93d540a213cb1be174b7441e14b929e419d0d18e | 4 天前 | |
[BugFix][Clay] android headless with CAPI CAPI is abnormal when we use headless mode on android. The CL fixes it. SkipChecks:macro | 5 个月前 | |
[Feature][DevTool] Support synthetic gestures on Clay desktop - Add a Clay InputEventTarget that supports primary mouse input and two-point synthetic touch input in LynxView-local logical coordinates. - Map touch pointer lifecycles to independent Clay device IDs, validate active pointer sets and bounds, and cancel all active input on invalid transitions, reset, or destruction. - Keep mouse as the default source, leave mouse or touchpad wheel pinch unsupported, and document explicit touch pinch usage. TEST: 12 Clay input target tests, 18 synthetic gesture tests, 36 Inspector input agent tests, 19 embedder tests, macOS core desktop build, and headless macOS tap, touch-pinch, mouse-pinch rejection, and reload validation Change-Id: I93d540a213cb1be174b7441e14b929e419d0d18e | 4 天前 | |
[Infra][Desktop] Bring lynx to desktop platforms Bring lynx to desktop platforms, including Windows and macOS. It's based on the `Clay` rendering engine. Now you can experience lynx capabilities on desktop: - Windows: explorer/windows - macOS: explorer/darwin/macos issue:m-6492347102 SkipChecks: macro | 10 个月前 | |
[Infra][Desktop] Bring lynx to desktop platforms Bring lynx to desktop platforms, including Windows and macOS. It's based on the `Clay` rendering engine. Now you can experience lynx capabilities on desktop: - Windows: explorer/windows - macOS: explorer/darwin/macos issue:m-6492347102 SkipChecks: macro | 10 个月前 | |
[Infra][Desktop] Bring lynx to desktop platforms Bring lynx to desktop platforms, including Windows and macOS. It's based on the `Clay` rendering engine. Now you can experience lynx capabilities on desktop: - Windows: explorer/windows - macOS: explorer/darwin/macos issue:m-6492347102 SkipChecks: macro | 10 个月前 | |
[Infra][Desktop] Bring lynx to desktop platforms Bring lynx to desktop platforms, including Windows and macOS. It's based on the `Clay` rendering engine. Now you can experience lynx capabilities on desktop: - Windows: explorer/windows - macOS: explorer/darwin/macos issue:m-6492347102 SkipChecks: macro | 10 个月前 | |
[Feature][DevTool] Support synthetic gestures on Clay desktop - Add a Clay InputEventTarget that supports primary mouse input and two-point synthetic touch input in LynxView-local logical coordinates. - Map touch pointer lifecycles to independent Clay device IDs, validate active pointer sets and bounds, and cancel all active input on invalid transitions, reset, or destruction. - Keep mouse as the default source, leave mouse or touchpad wheel pinch unsupported, and document explicit touch pinch usage. TEST: 12 Clay input target tests, 18 synthetic gesture tests, 36 Inspector input agent tests, 19 embedder tests, macOS core desktop build, and headless macOS tap, touch-pinch, mouse-pinch rejection, and reload validation Change-Id: I93d540a213cb1be174b7441e14b929e419d0d18e | 4 天前 | |
[Optimize][Windows] Support software rendering with skia in Windows embedder Add public C and C++ builder APIs for selecting software rendering. Connect lynx_desktop --software_render to application and benchmark views. SkipChecks:macro | 15 天前 | |
[Optimize][Windows] Support software rendering with skia in Windows embedder Add public C and C++ builder APIs for selecting software rendering. Connect lynx_desktop --software_render to application and benchmark views. SkipChecks:macro | 15 天前 | |
[Feature][Embedder] Allow hosts to configure the default page background Add a builder C API and C++ wrapper for a non-premultiplied ARGB default background. Apply it to windowless, Windows and macOS views, preserve it across page resets and recycling, and allow page CSS to override it. Keep the existing platform defaults when unset. TEST: Two LynxViewBuilder tests and the PageView reset/recycle regression passed. Compiled the macOS renderer and page implementation, checked a standalone consumer against exported headers, and passed formatting and diff checks. | 17 天前 | |
[Feature][Embedder] Add frame timing callbacks to LynxViewClient Introduce a `FrameTimingListenerImpl` that forwards frame start/finish timestamps to registered `LynxViewClients`, and expose `AddClient` on `LynxUIRenderer` so platform renderers can register listeners. Extend the embedder client API to support an `on_frame_timing` callback, wire it through `LynxViewClients::OnFrameTiming`, and add a corresponding `LynxViewClient::OnFrameTiming` virtual hook for C++ embedders. issue:m-6673506544 | 7 个月前 | |
[Feature][Embedder] Add frame timing callbacks to LynxViewClient Introduce a `FrameTimingListenerImpl` that forwards frame start/finish timestamps to registered `LynxViewClients`, and expose `AddClient` on `LynxUIRenderer` so platform renderers can register listeners. Extend the embedder client API to support an `on_frame_timing` callback, wire it through `LynxViewClients::OnFrameTiming`, and add a corresponding `LynxViewClient::OnFrameTiming` virtual hook for C++ embedders. issue:m-6673506544 | 7 个月前 | |
[Infra][Desktop] Bring lynx to desktop platforms Bring lynx to desktop platforms, including Windows and macOS. It's based on the `Clay` rendering engine. Now you can experience lynx capabilities on desktop: - Windows: explorer/windows - macOS: explorer/darwin/macos issue:m-6492347102 SkipChecks: macro | 10 个月前 | |
[BugFix][Embedder] Deep clone cached data before page reload Deep clone cached init data and global props before reload to avoid retaining references to the previous runtime context. TEST: Verified repeated Page.reload no longer crashes. | 4 天前 | |
[BugFix][desktop]Fix reload by devtool When reload is called by devtool, we should reset the `LynxTemplateRenderer` and reload template. SkipChecks: macro | 6 个月前 | |
[Feature][DevTool] Support CDP mouse event dispatch Support Input.dispatchMouseEvent in Clay-backed embedders for mouse presses, releases, hover, drag, and wheel input. Use dedicated synthetic mouse input with persistent pointer state, separate from touch and native mouse input. Add protocol metadata for Lynx 4.4 and unit coverage for event forwarding and pointer lifecycle. TEST: macOS arm64 Release build and 13 live CDP checks passed in visible mode. Formatting and CDP metadata checks passed. The full E2E runner was not executed. | 1 个月前 | |
[Feature][DevTool] Support CDP mouse event dispatch Support Input.dispatchMouseEvent in Clay-backed embedders for mouse presses, releases, hover, drag, and wheel input. Use dedicated synthetic mouse input with persistent pointer state, separate from touch and native mouse input. Add protocol metadata for Lynx 4.4 and unit coverage for event forwarding and pointer lifecycle. TEST: macOS arm64 Release build and 13 live CDP checks passed in visible mode. Formatting and CDP metadata checks passed. The full E2E runner was not executed. | 1 个月前 | |
[Feature][DevTool] Support CDP mouse event dispatch Support Input.dispatchMouseEvent in Clay-backed embedders for mouse presses, releases, hover, drag, and wheel input. Use dedicated synthetic mouse input with persistent pointer state, separate from touch and native mouse input. Add protocol metadata for Lynx 4.4 and unit coverage for event forwarding and pointer lifecycle. TEST: macOS arm64 Release build and 13 live CDP checks passed in visible mode. Formatting and CDP metadata checks passed. The full E2E runner was not executed. | 1 个月前 | |
[BugFix][Desktop] Support MTS NAPI modules in the embedder - Register view-scoped native and extension NAPI factories with the MTS native module manager while preserving native-module-first lookup priority. - Forward an opaque caller-owned runtime context through generic factory hooks so each view binds its own MTS environment without thread-local state. - Expose only the NAPI surface of extension modules to MTS while keeping all extension lifecycle callbacks on the BTS factory. - Recreate the MTS manager and factories with each shell reset, bind the Lynx view context, and cover extension NAPI invocation and teardown behavior. TEST: Passed the two MTS extension module factory tests, rebuilt the native module manager test objects and macOS libLynx.dylib, passed the keyword checker, and verified with macOS LynxDesktop that MTS invokes the extension NAPI module without extension lifecycle callbacks while the page loads successfully. AutoSubmit: true | 2 个月前 | |
[Testing] Cover embedder LynxView bundle loading and first-screen rendering Replace the disabled LynxView placeholder with a successful loading test through the public C++ API. Generate a minimal template bundle with the current encoder and verify load callbacks, first-screen notification, node hierarchy, and layout dimensions. Add a test UI renderer that records output from the real engine without creating a native window. Restrict the LynxView test to macOS, Windows, and Linux. TEST: macOS embedder suite passed all 85 tests. Rebuilt and reran LynxViewTest after restricting platforms. Formatting and git diff checks passed. Windows and Linux were not run locally. | 19 天前 | |
[BugFix] Make shared external VSync delivery safe Coalesce shared-source requests and snapshot callbacks before dispatch to avoid reentrant deadlocks and consuming requests registered during a callback. Post injected signals to the bound runner, discard stopped deliveries, and use weak request tokens to ignore late or duplicate host replies across views. Keep base UI request methods empty and use non-UI requests for injected monitors. TEST: 11 VsyncMonitor and 8 shell builder tests passed. The 2 embedder monitor tests passed before the UI adjustment; embedder sources are unchanged. AutoSubmit: True | 4 天前 | |
[BugFix] Make shared external VSync delivery safe Coalesce shared-source requests and snapshot callbacks before dispatch to avoid reentrant deadlocks and consuming requests registered during a callback. Post injected signals to the bound runner, discard stopped deliveries, and use weak request tokens to ignore late or duplicate host replies across views. Keep base UI request methods empty and use non-UI requests for injected monitors. TEST: 11 VsyncMonitor and 8 shell builder tests passed. The 2 embedder monitor tests passed before the UI adjustment; embedder sources are unchanged. AutoSubmit: True | 4 天前 | |
[BugFix] Make shared external VSync delivery safe Coalesce shared-source requests and snapshot callbacks before dispatch to avoid reentrant deadlocks and consuming requests registered during a callback. Post injected signals to the bound runner, discard stopped deliveries, and use weak request tokens to ignore late or duplicate host replies across views. Keep base UI request methods empty and use non-UI requests for injected monitors. TEST: 11 VsyncMonitor and 8 shell builder tests passed. The 2 embedder monitor tests passed before the UI adjustment; embedder sources are unchanged. AutoSubmit: True | 4 天前 | |
[BugFix] Isolate desktop switch persistence per app - Update desktop SwitchPersist implementations on macOS, Windows, and Linux to store devtool switch values in app-scoped persistence buckets while keeping the original key format unchanged. - Add Linux file-based persistence for embedder devtool switches and keep legacy bucket fallback reads on all three desktop platforms for compatibility with existing stored values. - This avoids persistence collisions when multiple desktop apps share the same switch keys and preserves previously stored settings after the isolation change. | 2 个月前 | |
[Refactor][DevTool][Embedder] Move switch persistence to Lynx embedder Move pure embedder SwitchPersist sources from lynx_devtool to the Lynx embedder module so DevToolSettingsEmbedder owns its persistence dependency directly. Keep platform-specific persistence behavior unchanged and update the build targets accordingly. | 4 个月前 | |
[BugFix] Isolate desktop switch persistence per app - Update desktop SwitchPersist implementations on macOS, Windows, and Linux to store devtool switch values in app-scoped persistence buckets while keeping the original key format unchanged. - Add Linux file-based persistence for embedder devtool switches and keep legacy bucket fallback reads on all three desktop platforms for compatibility with existing stored values. - This avoids persistence collisions when multiple desktop apps share the same switch keys and preserves previously stored settings after the isolation change. | 2 个月前 | |
[Optimize] Optimizing linux platform compilation - Consolidate Linux build dependencies through the embedder and remove duplicated source ownership from headless and Node targets. - Fill in the missing platform conditions in gn sources. | 3 个月前 | |
[Infra][Desktop] Bring lynx to desktop platforms Bring lynx to desktop platforms, including Windows and macOS. It's based on the `Clay` rendering engine. Now you can experience lynx capabilities on desktop: - Windows: explorer/windows - macOS: explorer/darwin/macos issue:m-6492347102 SkipChecks: macro | 10 个月前 | |
[Infra][Desktop] Bring lynx to desktop platforms Bring lynx to desktop platforms, including Windows and macOS. It's based on the `Clay` rendering engine. Now you can experience lynx capabilities on desktop: - Windows: explorer/windows - macOS: explorer/darwin/macos issue:m-6492347102 SkipChecks: macro | 10 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 4 天前 | ||
| 22 天前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 19 天前 | ||
| 10 个月前 | ||
| 3 天前 | ||
| 10 个月前 | ||
| 1 个月前 | ||
| 3 天前 | ||
| 22 天前 | ||
| 19 天前 | ||
| 4 天前 | ||
| 4 天前 | ||
| 2 个月前 | ||
| 4 天前 | ||
| 4 天前 | ||
| 4 天前 | ||
| 3 个月前 | ||
| 3 个月前 | ||
| 7 个月前 | ||
| 7 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 3 个月前 | ||
| 3 个月前 | ||
| 3 个月前 | ||
| 10 个月前 | ||
| 10 个月前 | ||
| 22 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 5 个月前 | ||
| 10 个月前 | ||
| 22 天前 | ||
| 9 个月前 | ||
| 10 个月前 | ||
| 10 个月前 | ||
| 1 个月前 | ||
| 4 天前 | ||
| 4 天前 | ||
| 5 个月前 | ||
| 4 天前 | ||
| 10 个月前 | ||
| 10 个月前 | ||
| 10 个月前 | ||
| 10 个月前 | ||
| 4 天前 | ||
| 15 天前 | ||
| 15 天前 | ||
| 17 天前 | ||
| 7 个月前 | ||
| 7 个月前 | ||
| 10 个月前 | ||
| 4 天前 | ||
| 6 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 19 天前 | ||
| 4 天前 | ||
| 4 天前 | ||
| 4 天前 | ||
| 2 个月前 | ||
| 4 个月前 | ||
| 2 个月前 | ||
| 3 个月前 | ||
| 10 个月前 | ||
| 10 个月前 |