Fukurou web browser

Fukurou web browser icon

Fukurou is a Mozilla Firefox (version 45.43.0 ESR) web browser fork, based on TenFourFox and AquaFox. It’s built for the PowerPC architecture and Mac OS X 10.5 platform supported (which means it will only work on G4 7450 and G5 CPUs running Mac OS X 10.5 Leopard), limiting hardware that it can work on to Apple iBook G4, PowerBook G4, Power Mac G4, Power Mac G4 Cube, iMac G5 and Power Mac G5. It’s not a browser for everybody due to the fact that its main goal is to provide a stable text and image browsing, while disabling every feature that will slow it down (basically video support).

Fukurou attempts to maintain a balance between privacy and security, providing ways to spoof the browser’s footprint as to not give away the fact that you’re running a severely-outdated web browser. It’s not a tool for security-freaks, because it doesn’t disable older versions of TLS for compatibility reasons (but they can be disabled by changing the security.tls.version.min key in about:config to 3, which will disable TLS 1.0 and 1.1, leaving only support for TLS 1.2 and 1.3 enabled). It does have the latest certificates from Firefox ESR128.

Fukurou doesn’t connect to any remote website unless requested (if you install uBlock Origin it will automatically connect to some websites to update its filters), it doesn’t automatically update and has no telemetry, doesn’t point you to any sponsored content and doesn’t have a content policy like Firefox, which means you can use the web browser to do whatever you want to do with it, no questions asked.

If you’re concerned about Fukurou exposing too much information about your system, you can always disable Javascript. As for which websites do not work on Fukurou, I don’t browse mainstream websites or have accounts on them, but I can tell you that Youtube, TikTok and the likes will not work because video support is disabled. If a website is behind Cloudflare, depending on the settings the website owner enabled in his Cloudflare settings, the website might be browseable. Or not. Cloudflare is cancer anyway.

Fukurou web browser

Banking websites might not work either, depending on the amount of feature-sniffing they do, but you shouldn’t use such an old web browser to login into your bank account.

Because of the changes I did, Fukurou should load in less than 5 seconds (7-9 seconds with uBlock enabled because it will have to parse some million-line filters while starting up) and provide access to 80-90% of the Internet websites currently available. Testing system is an Apple iBook G4 with a 1.2GHz CPU and 1.256GB of RAM, incidentally it’s the same system I’m compiling Fukurou on (a full build takes 13 hours, but that’s another story).

After drag-and-dropping Fukurou.app into your Applications folder, install uBlock Origin 1.16.4.30 (last version working), and if you’re a fan of the old Firefox-look install Classic Theme Restorer 1.6.9.1.

Fukurou will only work on a Mac system using the PowerPC architecture (specifically the G4 7450 and G5 CPUs) and the Mac OS 10.5 Leopard platform. It does not support the G3 or G3s CPUs and I’m not interested in adding support for something I don’t have. Sorry, not sorry.

If you want to test what kind of data gets exposed by your web browser, use BrowserLeaks, DNS leak test and Cover Your Tracks. With Javascript disabled, the data leak should be minimal.

Extensions

  • uBlock Origin version 1.16.4.30.
  • Classic Theme Restorer version 1.6.9.1. Check out the screenshots below for the difference. Note: Classic Theme Restorer doesn’t provide any speed benefits (neither positive nor negative), it’s just something I use because the default theme has too much whitespace and it’s not well organized.
  • For Gopher support, install the Overbite extension, version 3.1.1696.

Improvements

  • disabled geolocation API, beacon, form fill, search suggestions, sensors API, battery API, contextmenu altering, clipboard events, gamepad and vibrator events, Firefox Accounts, media autoplay, EME, prefetch, PDF preview in browser, OCSP ping, telemetry, WebGL, web notifications, WebRTC.
  • enabled First Party Isolation, CPU and platform spoofing, user agent spoofing.
  • disabled all sorts of video and audio formats, which makes Fukurou unable to play any video and audio content.
  • autostart with Private Browsing by default.
  • removed the old Search Engines supported (Google, Yahoo, Bing) and added Brave Search (which is the default search engine), Yandex, DuckDuckGo, StartPage.
  • GIF animations are disabled, only frame 1 is visible.
  • default user agent should be Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36, platform MacIntel and oscpu Intel Mac OS X 10.15, which basically informs any website you visit that you’re on an Intel Macbook running macOS Catalina 10.15.7. That will not fool websites that perform additional tests to detect features in your web browser, for example if Javascript is enabled any website can get the size of your screen and figure out from that that you’re on a iBook or PowerBook (1024x768).
LanguageC, JavaScript, XML
LicenseMPLv2
Version3.0
Release dateMarch 10, 2025
DownloadDMG file for G4 CPU, DMG file for G5 CPU
Sourcezip archive

Features detection

courtesy of BrowserLeaks

click for a list

HTML5 Features

descriptionresult
History API
HTML5 Audio Element
Audio Loop Attribute
HTML5 Audio ogg vorbis
HTML5 Audio mp3
HTML5 Audio wav
HTML5 Audio m4a/aac
HTML5 Audio opus
Web Audio API
Speech Recognition API
Speech Synthesis API
HTML5 Video
HTML5 Video ogg
HTML5 Video webm
HTML5 Video h264
HTML5 Video vp9
HTML5 Video hls
HTML5 Video crossOrigin
HTML5 Video Loop Attribute
HTML5 Video Preload Attribute
Input Attribute autocomplete
Input Attribute autofocus
Input Attribute list
Input Attribute max
Input Attribute min
Input Attribute multiple
Input Attribute pattern
Input Attribute placeholder
Input Attribute required
Input Attribute step
input[form] Attribute
input[capture] Attribute
input[file] Attribute
input[directory] Attribute
input formaction
input formenctype
input formmethod
input formnovalidate
input formtarget
input[search] search event
form#requestAutocomplete()
Form Validation
Form Input Color (type=color)
Form Input Date (type=date)
Form Input Date and Time (type=datetime)
Form Input Local Date and Time (type=datetime-local)
Form Input Time (type=time)
Form Input Week (type=week)
Form Input Month (type=month)
Form Input Number (type=number)
Form Input Range (type=range)
Form Input Search (type=search)
Form Input E-mail (type=email)
Form Input Telephone (type=tel)
Form Input URL (type=url)
postMessage
postMessage Structured Clones
Web Workers
Worker Type Options
Shared Web Workers
DOM Element.classList
dataset API
Document Fragment
Intersection Observer API
Microdata DOM API
DOM4 MutationObserver
Passive event listeners
Shadow DOM API
Shadow DOM API (Legacy)
bdi Element
details Element
output Element
picture Element
progress Element
meter Element
ruby, rp, rt Elements
template Element
time Element
track Element
Text track API
Unknown Elements
textarea maxlength
QuerySelector
matchMedia
PushManager
ResizeObserver
HTML Imports
Web Animations API
Vibration API

CSS Features

descriptionresult
CSS all property
CSS Animations
CSS Appearance
CSS Backdrop Filter
CSS Background Blend Mode
CSS Background Clip Text
CSS background-position Shorthand
CSS background-position-x/y
CSS background-repeat: round
CSS background-repeat: space
CSS background-size
CSS background-size: cover
CSS border-image
CSS border-radius
CSS box-decoration-break
CSS box-shadow
CSS box-sizing
CSS calc
CSS :checked pseudo-selector
CSS Font ch Units
CSS Columns
CSS column-width
CSS column-span
CSS column-fill
CSS column-gap
CSS column-rule
CSS column-rule-color
CSS column-rule-style
CSS column-rule-width
CSS Grid (new)
CSS Grid (legacy)
CSS vw unit
CSS aspect-ratio
CSS Cubic Bezier Range
CSS Variables (Custom Properties)
CSS display: run-in
CSS display: table
CSS text-overflow ellipsis
CSS.escape()
CSS Font ex Units
CSS Filters
CSS @font-face
Flexbox
Flexbox (legacy)
Flexbox (tweener)
Flex Gap
Flex Line Wrapping
CSS :focus-within pseudo-selector
CSS :focus-within pseudo-selector
CSS font-display
CSS Generated Content (:before/:after)
CSS Gradients
CSS HSLA Colors
CSS RGBA Colors
CSS :invalid pseudo-class
CSS :last-child pseudo-selector
CSS Mask
CSS Media Queries
CSS Hover Media Query
CSS Pointer Media Query
CSS Multiple Backgrounds
CSS :nth-child pseudo-selector
CSS Object Fit
CSS opacity
CSS Overflow Scrolling
CSS Pointer Events
CSS position: sticky
CSS Reflections
CSS Regions
CSS Font rem Units
CSS resize
CSS Styleable Scrollbars
CSS Scroll Snap Points
CSS Shapes
CSS general sibling selector
CSS Subpixel Fonts
CSS @supports
CSS :target pseudo-class
CSS text-align-last
CSS text-decoration
CSS text-decoration-line
CSS text-decoration-style
CSS text-decoration-color
CSS text-decoration-skip
CSS text-decoration-skip-ink
CSS text-shadow
CSS Transforms
CSS Transforms 3D
CSS Transforms Level 2
CSS Transform Style preserve-3d
CSS Transitions
CSS user-select
CSS :valid pseudo-class
CSS font-variation-settings
CSS vh unit
CSS vmax unit
CSS vmin unit
CSS will-change
CSS Exclusions wrap-flow
CSS HiDPI/Retina Hairlines
CSS Generated Content Animations
CSS Generated Content Transitions

Graphics Features

descriptionresult
Canvas
Canvas Text
Emoji
Canvas.toDataURL image/jpeg
Canvas.toDataURL image/png
Canvas.toDataURL image/webp
Canvas Blending Support
Canvas Winding Support
SVG
Inline SVG
SVG as an IMG tag source
SVG CSS clip-path
SVG SMIL animation
SVG foreignObject
SVG Filters
Image crossOrigin
Lazy loading via attribute for images & iframes
IMG srcset attribute

Storage Features

descriptionresult
Cookie
Web Storage API localStorage
Quota Storage Management API
Web Storage API sessionStorage
IE User Data API
Web SQL Database
Application Cache

ECMAScript Features

descriptionresult
ES5
ES5 Syntax
ES5 Immutable Undefined
ES5 Strict Mode
ES5 Array
ES5 Date
ES5 Function
ES5 Object
ES5 String
ES6 Array
ES6 Arrow Functions
ES6 Collections
ES6 Generators
ES6 Math
ES6 Numbers
ES6 Object
ES6 Promises
ES6 Rest parameters
ES6 Spread array
ES6 Template Strings
ES6 String
Typed Arrays
ES7 Array
ES7 Rest destructuring: Rest in arrays
ES7 Rest destructuring: Rest in objects
ES7 Spread object
ES8 Object

Network Features

descriptionresult
WebSockets
WebSockets Binary
WebRTC Data Channel
WebRTC getUserMedia
WebRTC MediaStream Recording API
WebRTC Peer Connections
XHR responseType arraybuffer
XHR responseType blob
XHR responseType document
XHR responseType json
XHR responseType text
XHR responseType
XHR2 XMLHTTPRequest Level 2
Connection Effective Type
Low Bandwidth Connection
Server Sent Events
Fetch API
Beacon API
ServiceWorker API
XDomainRequest API

Miscellaneous

descriptionresult
Geolocation API
a[download] Attribute
a[ping] Attribute
area[ping] Attribute
Battery API
Low Battery Level
Blob Constructor
Content Editable
Context menus
Cross-Origin Resource Sharing
Custom Protocol Handler
DataView
CustomEvent
addEventListener
Force Touch Events
hashchange Event
Device Motion Event
Device Orientation Event
onInput Event
DOM Pointer Events API
File API
Filesystem API
Fullscreen API
GamePad API
IE8 compat mode
iframe[sandbox] Attribute
iframe[seamless] Attribute
iframe[srcdoc] Attribute
Native JSON Parsing
Reverse Ordered Lists
MathML
Notifications API
Navigation Timing API
Pointer Lock API
requestAnimationFrame
script async
script defer
DOM style[scoped]
Unicode Range
Blob URLs
URL parser
URLSearchParams
Web Intents
Framed Window
Ambient Light Events
Base 64 encoding/decoding
Web Cryptography API
Web Cryptography API getRandomValues
Dart
Internationalization API
Font Ligatures
Page Visibility API
VML
Custom Elements API
Media Source Extensions API
Channel Messaging API
Proxy Object
Web Authentication PublicKeyCredential
TextEncoder
TextDecoder
Link rel=prefetch

Tor mode

I don’t suggest you should buy drugs or hire professional killers on the various Tor markets using Fukurou because it’s an old and outdated web browser, Tor mode in Fukurou should be used just for browsing Tor onion links with Javascript disabled.

Compile and install Tor from MacPorts:

$ sudo port install tor

Start Tor:

$ sudo port load tor

Create a new user profile in Fukurou, profile that you will only be using with Tor:

$ /Applications/Fukurou.app/Contents/MacOS/fukurou -p

It will be easier to start Fukurou each time in the Choose User Profile mode, so you can switch easier between profiles, and that can be achieved by starting Fukurou from terminal with the above command and untick the Use the selected profile without asking at startup checkbox.

Start Fukurou, select the new user profile that you just created, be absolutely sure Javascript is disabled and setup Fukurou to connect to the Internet using a SOCKS proxy (visit about:preferences, click Advanced, click the Network tab, click the Settings button; in the dialog that opens, select Manual proxy configuration, fill in the SOCKS Host to 127.0.0.1 and Port to 9050; make sure Remote DNS checkbox is ticked).

Visit Tor check to make sure your Tor proxy is enabled and working.

Good luck!

Screenshots

default look without any installed extensions

after installing Classic Theme Restorer and uBlock Origin extensions

 

Building Fukurou

work in progress

License

Fukurou is released under Mozilla Public License v2.0.