230 lines
15 KiB
Plaintext
230 lines
15 KiB
Plaintext
Jihad Browser
|
|
Copyright (c) 2026 NotAlexNoyle.
|
|
|
|
This product includes software developed by third parties, as listed below.
|
|
This NOTICE file is provided to satisfy the attribution requirements of the
|
|
Apache License 2.0 (section 4(d)) and to document the origin of incorporated
|
|
Mozilla Public License 2.0 code.
|
|
|
|
--------------------------------------------------------------------------------
|
|
isis-browser (user-interface shell)
|
|
Copyright (c) 2012 Hewlett-Packard Development Company, L.P.
|
|
Licensed under the Apache License, Version 2.0.
|
|
Origin: https://github.com/isis-project/isis-browser
|
|
|
|
isis-project BrowserServer / BrowserAdapter / AdapterBase (render daemon + IPC)
|
|
Copyright (c) 2012 Hewlett-Packard Development Company, L.P.
|
|
Copyright (c) 2012-2014 LG Electronics, Inc.
|
|
Licensed under the Apache License, Version 2.0.
|
|
Origin: https://github.com/isis-project/{BrowserServer,BrowserAdapter,AdapterBase}
|
|
Includes the YAP interface generator, vendored at
|
|
render/browserserver/CodeGen/YapCodeGen.cpp from BrowserServer's CodeGen/YapCodeGen.cpp
|
|
and MODIFIED by the Jihad Browser project (2026-08-15): a non-terminating scan over
|
|
leading whitespace was fixed, and the definition syntax gained an "optional" flag that
|
|
emits an async command's server-side declaration with an empty default body instead of
|
|
"= 0;". The file carries a notice of those changes in its header, and the modifications
|
|
are the Jihad Browser project's own.
|
|
|
|
Enyo 1.0 framework (UI runtime dependency)
|
|
Copyright (c) 2012 Hewlett-Packard Development Company, L.P.
|
|
Licensed under the Apache License, Version 2.0.
|
|
|
|
Enyo 2 framework core + "layout" library (Mochi UI variant runtime dependency)
|
|
Copyright (c) 2012-2014 LG Electronics, Inc.
|
|
Licensed under the Apache License, Version 2.0.
|
|
Origin: https://github.com/enyojs/enyo
|
|
https://github.com/enyojs/layout
|
|
The Enyo 2 core and its layout library (FittableRows/FittableColumns, Panels,
|
|
List) are BUNDLED into the Mochi (Enyo 2) .ipk at build time by
|
|
build/webos-oe/build-mochi-ipk.sh; they are not vendored in this repo.
|
|
|
|
Mochi UI widget library (Mochi UI variant)
|
|
Copyright (c) 2014 LG Electronics, Inc.
|
|
Licensed under the Apache License, Version 2.0.
|
|
Origin: https://github.com/enyojs/mochi
|
|
The Mochi touch widget set (Header, IconButton, Input, ProgressBar, Popup,
|
|
List, Panels, etc.) drives the app-mochi/ front-end. It is BUNDLED into the
|
|
Mochi (Enyo 2) .ipk at build time (build-mochi-ipk.sh); not vendored here.
|
|
|
|
UXP — Unified XUL Platform / Goanna engine (rendering engine dependency)
|
|
Copyright (c) Mozilla Foundation and contributors.
|
|
Copyright (c) Moonchild Productions and Pale Moon contributors.
|
|
Licensed under the Mozilla Public License, Version 2.0, and other compatible
|
|
licenses documented within the UXP source tree.
|
|
Origin: https://repo.palemoon.org/MoonchildProductions/UXP
|
|
The engine in the packages is MODIFIED (MPL-2.0 section 3.2): its Source Code Form is the
|
|
branch jihad/uxp-RB_20261006 of https://git.trueog.net/NotAlexNoyle/UXP-Jihad (the pinned
|
|
commit is the third_party/uxp submodule of https://git.trueog.net/NotAlexNoyle/Jihad-Browser),
|
|
upstream base release RB_20261006; the changes are the patches in build/desktop/patches/ of
|
|
that repository, one commit each, listed in docs/ENGINE-SOURCE.md there. The same source
|
|
covers liblgpllibs (SoundTouch, LGPL-2.1) and libmozavcodec/libmozavutil (the FFmpeg subset
|
|
"ffvpx": VP8, VP9 and FLAC decoders only; LGPL-2.1). The engine's own about:license page,
|
|
installed with it, carries the licences of everything compiled into libxul.
|
|
libavcodec.so.58 and libavutil.so.56 are FFmpeg 4.4.5 (https://ffmpeg.org/, LGPL v2.1 or
|
|
later; the text is licenses/runtime/ffmpeg-COPYING.LGPLv2.1), built by
|
|
build/webos-oe/build-ffmpeg-arm.sh with the H.264, AAC and MP3 decoders and parsers only, no
|
|
GPL or non-free parts, unmodified source (sha256 of ffmpeg-4.4.5.tar.xz pinned in the script);
|
|
the engine loads libavcodec at run time for the formats ffvpx does not decode. The H.264 and AAC
|
|
formats are covered by patents in some countries; whether a decoder may be distributed or used
|
|
there is a question for the distributor and the user, not something this notice can settle.
|
|
Jihad Browser's per-domain User-Agent override table (render/goanna/
|
|
EngineHost.cpp, jihadUaTable) — the domain→Firefox-version site-compat
|
|
choices — is derived from Basilisk / Pale-Moon's uaoverrides.inc:
|
|
application/basilisk/branding/shared/uaoverrides.inc
|
|
palemoon/branding/shared/pref/uaoverrides.inc
|
|
Copyright (c) Moonchild Productions and the Pale Moon team, MPL-2.0.
|
|
|
|
Palefill Web Technologies Polyfill (bundled add-on)
|
|
Copyright (c) 2020-2025 Martok & Contributors.
|
|
Portions based on GitHub Web Components Polyfill Add-on,
|
|
Copyright (c) 2020 JustOff, Copyright (c) 2022 SeaHOH.
|
|
Licensed under the Mozilla Public License, Version 2.0 (licenses/MPL-2.0.txt).
|
|
Origin: https://github.com/martok/palefill — https://martok.github.io/palefill/
|
|
Version 1.30, the author's release file, UNMODIFIED
|
|
(sha256 5ba4b1bd90f7f37b47115595a9a4cd52e10bfc64eed650241c1754c3a0782993).
|
|
Every Jihad Browser package carries it in the engine's bundled-addons/
|
|
directory and offers it to a new profile once, through the engine's own
|
|
add-on manager; it is then the user's add-on to disable or remove. An XPI is
|
|
a zip of the add-on's source files, so the package contains its source form;
|
|
the same file is published at the origin above. See third_party/palefill/README.md.
|
|
|
|
EasyList and EasyPrivacy (bundled filter lists, data)
|
|
Copyright (c) The EasyList authors, https://easylist.to/
|
|
Dual-licensed by their authors under the GNU General Public License v3 or
|
|
later, or Creative Commons Attribution-ShareAlike 3.0 or later; Jihad Browser
|
|
takes them under the GPL v3 or later (licenses/GPL-3.0.txt).
|
|
Origin: https://easylist.to/easylist/easylist.txt
|
|
https://easylist.to/easylist/easyprivacy.txt
|
|
Snapshots of upstream version 202610151429 (15 Oct 2026), UNMODIFIED
|
|
(sha256 241caa88e276e1707c605eb44bcf53053c2eaf8f108aabd278e29a5a2ee92102 and
|
|
744da111e46b1f0f14afc6423d09fd569dc86506272f2208c96ac820753392f8).
|
|
Every Jihad Browser package carries both raw in the engine's blocklists/
|
|
directory; the content blocker (render/goanna/components/jihadContentBlocker.js,
|
|
MPL-2.0) compiles them on the device into the sets it blocks with and refreshes
|
|
them from the origin above. The lists are data the engine reads, not code linked
|
|
into it; the compiled form is a derivative of the lists under the same licence.
|
|
See third_party/easylist/README.md.
|
|
|
|
Atlas Browser (parallel isis-browser fork) — ported fixes
|
|
Copyright (c) Herman van Hazendonk (Herrie82) and the Atlas Browser project.
|
|
Licensed under the Apache License, Version 2.0.
|
|
Origin: https://github.com/Herrie82/BrowserAdapter
|
|
https://github.com/Herrie82/BrowserServer
|
|
Jihad Browser incorporates device-hardening fixes first developed in Atlas
|
|
(which also forks isis-browser but targets WPE WebKit):
|
|
- YAP memory-safety fixes (YapProxy delete[], YapServer int16 length
|
|
validation, YapClient reconnect socket teardown, YapPacket malloc
|
|
null-check) — Atlas BrowserServer commit 89b71a7.
|
|
- BrowserAdapter LunaCE paint fix (dstBuffer raw-blit path instead of the
|
|
QPainter/PGContext deref that segfaults LunaSysMgr), out-of-buffer white
|
|
fill, tall-buffer pan, pinch-zoom scaled blit, and scroll indicator —
|
|
Atlas BrowserAdapter commits 7b91ab8, aefab6d, dbc897c, 27b54a5, 77ab724.
|
|
- BrowserAdapter key-focus gating: handleKeyDown/handleKeyUp returned
|
|
bEditorFocused alone, so a page that auto-focuses an input on load left the
|
|
adapter consuming every keystroke even after the user tapped the chrome
|
|
address bar. Gated on mPageFocused as well — Atlas BrowserAdapter commit
|
|
ce199bc. Jihad extends the same expression with mFlashGestureLock so a Flash
|
|
game (which focuses no HTML editor) also receives its keys instead of
|
|
leaking them to the chrome; that extension is the Jihad project's own.
|
|
- BrowserAdapter rotation-aware composite: useGraphicsContext=true + bitblt
|
|
the offscreen (wrapped as a Piranha PGSurface) THROUGH the WebKit-provided
|
|
PGContext, which carries the card's rotation/scale transform. This makes
|
|
portrait<->landscape rotation render correctly (the raw dstBuffer blit is
|
|
row-major in the card's logical space and sheared/tiled after a rotate) —
|
|
Atlas BrowserAdapter handlePaint graphics-context path. The Piranha PG* ABI
|
|
declarations (render/adapter/PGContext.h, PGSurface.h) are the Jihad
|
|
project's own minimal reconstruction of the webOS SDK interface (resolved at
|
|
load time from the device libWebKitLuna.so), not copied from HP or Atlas.
|
|
- Self-contained install model (packaging/, build/webos-oe/recipes-jihad/):
|
|
run the engine + render daemon IN PLACE from the app's own cryptofs
|
|
deviceroot and copy NOTHING to /media/internal, because that vfat volume is
|
|
the user's USB mass storage and must stay free of app internals; confine the
|
|
rootfs footprint to the NPAPI adapter plugin and the app's own upstart job,
|
|
opened in a single remount-rw window and reversed exactly by prerm. Adopted
|
|
from atlas-browser-app/packaging/{ipk-postinst.sh,ipk-prerm.sh}, including
|
|
the practice of removing only the package's own files on uninstall so stock
|
|
registrations survive. Jihad's variant-namespacing (three independent
|
|
packages) is its own.
|
|
- Low-memory design patterns from atlas-wpe-backend/BrowserPageWPE.cpp:
|
|
pin the engine memory budget near the REAL free memory so purges happen
|
|
before system OOM, throttle pressure handling to avoid GC thrash, and
|
|
persist the cookie jar on disk so consent/login cookies survive daemon
|
|
restarts (EngineHost memory-pressure watcher + profile dir provider).
|
|
|
|
Palm/HP webOS BrowserServer (this project's upstream base, Apache-2.0)
|
|
The daemon's low-memory reaction (timed memory watch -> notify + malloc_trim,
|
|
tiered response) follows the original BrowserServer memchute watcher
|
|
(BrowserServer::doMemWatch / getMemInfo).
|
|
|
|
Arctic Fox and Mypal68 (Pale Moon / Goanna family forks for legacy hardware)
|
|
Copyright (c) their respective contributors, MPL-2.0.
|
|
Origin: https://github.com/rmottola/Arctic-Fox
|
|
https://github.com/Feodor2/Mypal68
|
|
The 512 MB device JS-heap tuning in goanna.js (javascript.options.mem.
|
|
high_water_mark, gc_incremental_slice_ms) follows the values these forks
|
|
ship for low-memory/slow-CPU machines.
|
|
|
|
--------------------------------------------------------------------------------
|
|
Trademark notice
|
|
"Pale Moon", "Basilisk", and Moonchild Productions marks and logos remain the
|
|
property of their owners and are NOT used by Jihad Browser. All such branding
|
|
is stripped from the embedded engine build. See LICENSE for details.
|
|
|
|
--------------------------------------------------------------------------------
|
|
Personas bundled with Jihad Browser (render/goanna/personas/)
|
|
Free Palestine: from the photograph "Village of Battir" by Labour Palestine,
|
|
https://www.flickr.com/photos/labour2palestine/16428074717/ (CC BY 2.0,
|
|
https://creativecommons.org/licenses/by/2.0/); cropped, scaled, the sky deepened, the flag and
|
|
the words (Noto Sans Black, SIL Open Font License 1.1) drawn over it. CC BY 2.0.
|
|
Aurora Silk: drawn for this project (MPL-2.0).
|
|
The others come from addons.riverstonerelay.org, credited there. See CREDITS.md.
|
|
|
|
--------------------------------------------------------------------------------
|
|
Runtime libraries bundled in deviceroot/hl/ (every package)
|
|
--------------------------------------------------------------------------------
|
|
The engine and the daemon run in place from the app's own directory, with their own C runtime
|
|
and the system libraries they need, because the TouchPad's are too old. Each is a third
|
|
party's work under its own licence; the texts are in licenses/ of the package and this
|
|
repository.
|
|
|
|
GNU C Library 2.23 (ld-2.23.so, ld-linux.so.3, libc.so.6, libm.so.6, libpthread.so.0,
|
|
libdl.so.2, librt.so.1, libresolv.so.2, libnss_dns.so.2, libnss_files.so.2)
|
|
Copyright (C) Free Software Foundation, Inc. LGPL-2.1 or later (licenses/LGPL-2.1.txt).
|
|
Built by crosstool-NG 1.25.0 with its 14 patches for glibc 2.23: MODIFIED.
|
|
GCC 9.4.0 runtime (libgcc_s.so.1, libstdc++.so.6)
|
|
Copyright (C) Free Software Foundation, Inc. GPL-3.0 or later with the GCC Runtime Library
|
|
Exception 3.1 (licenses/GPL-3.0.txt, licenses/GCC-exception-3.1.txt).
|
|
From Debian 8 "jessie" (armel), unmodified; Debian's copyright files, which carry the
|
|
authors' notices and licence terms, are in licenses/runtime/:
|
|
libasound.so.2 alsa-lib 1.0.28 LGPL-2.1 or later (libasound2.copyright.txt)
|
|
libexpat.so.1 Expat 2.1.0 MIT (libexpat1.copyright.txt)
|
|
libfontconfig.so.1 fontconfig 2.11.0 MIT-style (libfontconfig1.copyright.txt)
|
|
libfreetype.so.6 FreeType 2.5.2 FreeType License (libfreetype6.copyright.txt)
|
|
libglib-2.0.so.0, libgthread-2.0.so.0 GLib 2.42.1 LGPL-2.0 or later (libglib2.0-0.copyright.txt)
|
|
libpcre.so.3 PCRE 8.35 BSD-3-Clause (libpcre3.copyright.txt)
|
|
libpng12.so.0 libpng 1.2.50 libpng licence (libpng12-0.copyright.txt)
|
|
libz.so.1 zlib 1.2.8 zlib licence (zlib1g.copyright.txt)
|
|
Portions of this software are copyright (c) The FreeType Project (www.freetype.org). All
|
|
rights reserved. This software is based in part on the work of the FreeType Team.
|
|
|
|
Corresponding source (LGPL-2.1 section 4, GPL-3.0 section 6):
|
|
glibc 2.23 and GCC 9.4.0: the release tarballs named in
|
|
build/webos-oe/toolchain/tarballs.manifest (sha256-pinned, with their download URLs),
|
|
crosstool-NG 1.25.0's patches for them (third_party/crosstool-ng/packages/glibc/2.23/,
|
|
packages/gcc/9.4.0/) and the configuration build/webos-oe/toolchain/jihad.defconfig, all
|
|
in https://git.trueog.net/NotAlexNoyle/Jihad-Browser; build/webos-oe/toolchain/build.sh
|
|
rebuilds the toolchain from them.
|
|
The Debian libraries: the source packages of the versions named in
|
|
build/webos-oe/arm-sysroot-debs.manifest, at http://archive.debian.org/debian/pool/.
|
|
The engine's LGPL parts: the engine source named above.
|
|
These directions ship with the object code, in this file. Ask the project for a copy on a
|
|
medium if you cannot download: the address is in the README.
|
|
|
|
Also in the packages
|
|
Hyphenation patterns (deviceroot/hl/hyphenation/hyph_*.dic, 36 languages), from the UXP tree
|
|
(intl/locales/*/hyphenation/), each under its own licence stated in the pattern file's
|
|
header or beside it there (LGPL, GPL, MPL, BSD-style and others, all permitting
|
|
redistribution).
|
|
Lato (Mochi package only, lib/mochi/fonts/), by Lukasz Dziedzic, SIL Open Font License 1.1
|
|
(lib/mochi/fonts/OFL.txt), bundled with the Mochi library it belongs to.
|