Commit Graph
24 Commits
Author SHA1 Message Date
Martín Lucas Golini a8eb1834eb Add tabbed HTML browsing and extend eepp navigation and input support
eepp framework:
- Add shared cookie jars to UISceneNode and UIWebView, plus versioned
  CookieManager persistence, domain clearing, and locking in hasCookie().
- Follow HTTP 303 redirects and merge same-host redirect cookies as
  name/value pairs without forwarding Set-Cookie attributes.
- Include Cookie headers in document cache keys while preserving static
  resource reuse as cookies change.
- Submit HTML forms with an empty action to the current document URL.
- Extend NavigationRequest with source, mouse buttons, modifiers, and
  navigation target; anchors forward this context to the scene.
- Emit OnLinkOpenRequested for middle-click, platform-modifier click,
  and explicit new-tab requests, with current-view fallback if unhandled.
- Install the WebView navigation interceptor during construction.
- Dispatch middle clicks to the hovered node without moving keyboard focus.
- Add the clicked target to ContextMenuEvent so applications can extend
  context menus through existing events.
- Parse HTML titles, emit TitleEvent, and fix onTitleChanged's payload cast.
- Load declared favicons through the shared image cache, emit
  OnFaviconChanged, and ignore responses from superseded navigation.
- Add optional UITabWidgetSplitter tab-bar visibility while split;
  keep it disabled by default and respect explicitly hidden tab bars.
- Add Space/Shift+Space scrolling and viewport-sized Page Up/Down steps
  to UIScrollView, shared by WebView and Markdown content.
- Implement setEnableDefaultKeybindings() and preserve text-input
  priority through normal bubbling without control-type checks.
- Report inserted UICodeEditor text as handled.
- Add UITextView::onFontColorChanged() and synchronize password-mask color.
- Support validated left, middle, and right clicks in the inspector
  server and Python client.

ui_html example:
- Use UITabWidgetSplitter for tabs and user-controlled splits.
- Share cookies and the resource cache across tabs; persist cookies
  between sessions and open new tabs blank.
- Add Inspect, Clear Domain Cookies, Clear All Cookies, and contextual
  Open Link in New Tab actions through menu event subscriptions.
- Open requested links in background tabs and synchronize navigation UI.
- Use document titles and 16dp favicons for tabs, cap width at 200dp,
  and truncate long titles with ellipsis.
- Enable tab-bar visibility across split panes.
- Fixed: the selection rectangle now uses the visible password symbols instead of the original text.

Update HTML compatibility and inspector documentation and add regression
coverage for persistence, redirects, cache isolation, navigation, menus,
titles, favicons, password colors, split visibility, and scrolling.
2026-09-29 18:58:51 -03:00
Martín Lucas Golini 3dada4857a Slight improvements to the macOS icons. Fix CI. 2026-09-29 02:03:55 -03:00
Martín Lucas Golini 850f33c336 Polish app icon sizing and bump eepp and ecode versions
Generate size-aware macOS icons and separate runtime Dock PNGs for ee,
ecode, eterm, eeiv, and eproc. Keep shared PNGs sized for small Linux
icons, and package ecode's macOS runtime icon.

Bump eepp to 5.0.0 (Kittima-attā) and ecode to 0.9.0 (Yanta-lekhā).
2026-09-29 01:02:07 -03:00
Martín Lucas Golini 4ffba20d07 feat(ui): add runtime inspector and fix HTML layout regressions
Add an opt-in TCP/NDJSON inspector for running eepp applications. It
provides authenticated, UI-thread-safe access to windows, scenes, and
widgets, including nested WebView documents. The v1 protocol supports
queries, trees, properties, focus, input actions, watches, screenshots,
and composed batches with result references and deferred execution.

Add a standard-library Python CLI, protocol documentation, build
entries, and integration tests. The listener remains disabled unless
explicitly enabled.

Fix HTML compatibility issues found while debugging NewsBlur:
- Let explicit flex minimums, including min-width: 0, replace the
  automatic content minimum.
- Measure flex lines against the container content box when padding
  and explicit dimensions are present.
- Keep promoted positioned descendants of hidden ancestors out of
  the paint list.
2026-09-28 01:15:39 -03:00
Martín Lucas Golini 0ead9dc33d Add eproc to sdk. Update eproc and eeiv windows executables icons. Generate app icons also for eproc and eeiv. 2026-09-24 01:27:36 -03:00
Martín Lucas Golini d551ac170c Expand eproc and improve eepp table and tree views
Add process columns, GPU metrics, tree mode, multi-process actions,
GUI and tray detection, and persistent filter and table settings.

Add optional column header reordering to eepp table and tree views.
Keep dragged headers in place during refresh and draw them above other
headers. Preserve row selection when sorting and when opening context
menus, and support application items in header context menus.

Refresh eepp and tool icons and add the icon generation script.
Add tests for the process views, icon decoding, and GUI table behavior.
2026-09-23 20:57:34 -03:00
Martín Lucas Golini 7f0633afb6 Auto publish eepp sdk builds in nightlys and tagged releases (not tested beyond Linux, let's see...). 2026-08-22 17:44:26 -03:00
Martín Lucas Golini d8fa49be37 Fix xvfb-run-eepp, update unit-tests.md. 2026-06-07 22:12:28 -03:00
Martín Lucas Golini 972be7c12f Fix run_gdb_tests.sh 2026-05-31 13:51:52 -03:00
Martín Lucas Golini c2b1a91d90 Added the pending flex support tests.
Added xvfb-run-eepp with better defaults than xvfb-run, updated documentation.
2026-05-31 13:14:30 -03:00
Martín Lucas Golini dea87f345e Disable ASAN leak detection when run unit-tests with xvfb-run (because the tool leaks all X11 windows). 2026-04-24 12:00:45 -03:00
Martín Lucas Golini e1f64d3d51 Tests should pass with these changes. 2026-03-29 01:04:50 -03:00
Martín Lucas Golini 5429b15e04 More ACP client WIP, finishing the protocol implementation. 2026-03-23 14:25:44 -03:00
Martín Lucas Golini 9c966ac427 ACP Improvements phase 2 ready. 2026-03-23 13:22:17 -03:00
Martín Lucas Golini 9409a82092 Added syntax highlighting for WebAssembly Text Format (SpartanJ/ecode#842) and WebAssembly Interface Types (SpartanJ/ecode#844).
Improvements in SyntaxTokenizer TextMate compatability.
Fixed debugging types definition scripts.
2026-03-16 01:11:23 -03:00
Martín Lucas Golini a1bc99d619 Added amalgamate.py to generate an eepp.hpp single header include (issue #172).
Added `find_missing_includes.py` that checks if all the header files of each module in the "general" module includes are included.
With this I udpated the pending includes in the modules.
2026-03-14 17:55:26 -03:00
Martín Lucas Golini 4718a52423 Migrated from robin_hood to unordered_dense (for UnorderedMap and UnorederedSet).
Added support for SmallVector using svector (and we are already using it in a couple of places).
Added debug symbol inspector script for the new SmallVector in project/scripts/debug.
Added tilde support for files and folders passed as parameters from the CLI in ecode (and added FileSystem::expandTilde).
Fixed a bug in "light-dark" parsing.
2026-03-14 15:13:41 -03:00
Martín Lucas Golini 7632e63f46 Should fix patch_commit_number.ps1 call (shallow clone cannot find a proper commit number for the nightly release). 2025-12-14 12:22:22 -03:00
blueberryscone238 bd86dd50d5 Update ecode-nightly.yml (#155)
* Update ecode-nightly.yml

* Create patch_commit_number.ps1

* Update ecode-nightly.yml

* Create copy_ecode_assets.ps1

* Update ecode-nightly.yml

For consistency, all use backward slashes now.

* Update ecode-nightly.yml

* Update ecode-nightly.yml

* Create build.app.ps1

* Update build.app.ps1

* Update ecode-nightly.yml

* Update build.app.ps1

* Update build_sdl2.sh

* Update ecode-nightly.yml

* Update patch_commit_number.ps1

* Update build.app.ps1

* Update patch_commit_number.ps1

* Update copy_ecode_assets.ps1

* Update copy_ecode_assets.ps1

* Update build.app.ps1

* Update ecode-nightly.yml

* Update ecode-nightly.yml
2025-12-13 13:50:27 -03:00
Martín Lucas Golini c69740d886 Added a copy_ecode_assets.sh script to simplify ecode build scripts across platforms.
Modified find_most_recent_sdl2.sh script to search for an specific CPU architecture version of the SDL2 library.
2025-12-12 01:25:24 -03:00
Curculigo 662cf33baa Update patch_commit_number.sh (#150)
Fix an edge case when `OSTYPE` is in mixed case.
2025-12-06 11:01:08 -03:00
Curculigo d50bbfde2f Update patch_commit_number.sh (#148)
* Update patch_commit_number.sh

FreeBSD does not include Perl in the base system. Since the workflow installs gsed, why not use it instead? To use Perl, you would need to install perl5 anyway.

* Update patch_commit_number.sh

* Update patch_commit_number.sh

* OpenBSD

* OpenBSD

* OpenBSD

* Update build.app.sh

* Update build.app.sh

* Update build.app.sh

* Delete projects/openbsd directory

* Update build.app.sh

* Update build.app.sh
2025-12-05 22:47:15 -03:00
Martín Lucas Golini 71a38e81be Fix patch commit number replacement in macOS and FreeBSD. 2024-11-01 11:13:34 -03:00
Martín Lucas Golini b9667b75a3 Identify and flag nightly builds. If a new version is released as stable they will be able to recognize that there's a new version available. 2024-10-19 17:29:18 -03:00