Pocket PC Web browsers – the complete roundup
One of the most frequently asked questions on Pocket PC boards concerns Pocket PC Web browsers.
As this question is far more complicated than most PPC users would imagine and questions like ‘which browser should I use’ just can’t be answered with a short answer, I’ve decided to devote a complete, full-fledged roundup of all the available Web browser solutions so that, knowing your
particular needs, you will have enough information to choose.
Unfortunately, all the current Pocket PC browsing solutions have severe flaws. They are all
far dumber than any
Enough already with the talk! Let's get to the browsers.
There are several Web browsers for the Pocket PC. They are as follows:
Pocket Internet Explorer (PIE)
The Web browser that shipped with all Pocket PC’s as part of the ROM. It has both advantages (for example, it doesn’t do pixel doubling on VGA devices at rendering text and its default RAM usage is very low, compared to other browsers. Furthermore, its cookie, proxy and cache handling is the best and standards-compliant) and disadvantages (it has almost no configuration options; it offers no tab support; it’s too much tied to pixel doubling in non-native VGA modes
; it is pretty slow with pages that contain several different images and its cache should be in the RAM
Due to the severe functionality limitations listed above, several add-ins (in PIE parlance, plug-ins
) have been developed for PIE. As these plug-ins can’t entirely
to a more VGA-friendly one etc.), standalone browsers have also been written/ported to the Windows Mobile platform. Standalone browsers, however, aren’t necessarily better than PIE in some areas, especially in VGA compliance, cookie, proxy and cache handling, the major weak points of third-party browsers.
First, let’s take a look at the PIE plug-ins. There’re three of them. The fourth, ftxPBrowser
, operates quite differently from the other three, but I still list it in this section because it still uses the PIE engine to render HTML pages and (fortunately) uses the PIE low-level framework, so, it has no problems with caching/cookies/proxies.
MultiIE 3.1 d 59
A very good and popular PIE plug-in. Much as it’s resident in the memory (as with all the other two true PIE plug-ins), it doesn’t consume any CPU cycles when inactive
It really has a lot of features at the expense of its memory usage, which, particularly on VGA devices, can be pretty breathtaking – if you open a new window, it may even take 2 Mbytes of RAM.
Furthermore, the “close window” icon is located far too close to the MultiIE button and can’t be hidden. There will certainly be cases, especially in native VGA mode, when you click it instead of the MultiIE button. PIEPlus and SPP are certainly better at this.
Another annoying problem with MultiIE is that the built-in browser identification change support
requires a soft reset. Fortunately, you don’t need to use it if you use the nScriptm
script I’ve provided in the linked article.
Its unmatched goodies are, for example, full page saving
Also, support for the built-in, no-reset screen orientation change feature of Nyditot is unmatched.
Another excellent feature only MultiIE has is the URL editor, which is great for people that often want to edit URL’s using a SIP (Software Input Panel) as an input device.
Also, it has another unmatched feature, the ability to call third-party programs (see "Enable Page Extensions" and "Enable Link Extensions"). I’ll devote an entire article and, possibly, some self-written utilities/MultiIE enhancers to this subject later.
Its also has an enhanced GO button (see the arrow on the right side of the traditional Go icon, right to the Address Bar) with rudimentary macroing capabilities. This can make the life of users of services like Google, Skweezer
I show the usefulness of this feature by some examples. If you’ve read my article on reducing Internet bandwidth usage on the Pocket PC
, you may have spotted the URL Skweezer uses to directly
translate a Web page into a one-column like format.
This URL has the following form:
can also be written as q=
; I used the latter in my article. Also, you can leave the http://
from the beginning, but you don’t have to.)
As clearly can be seen, the URL of the target page needs to be inserted in this URL verbatim, at the end. This is where the macro scripting capabilities of MultiIE can be of real help.
Instead of copying the entire http://www.skweezer.net/skweeze.aspx?m=2&url=
prefix in the address bar of your PIE manually and, also manually, adding the target URL of the page you want to translate, you only need to enter the target URL to the Address Bar of your PIE, click the drop-down menu in the right (again, the GO button menu) and choose Skweezer (PDA)
from there. The built-in macros will take care of inserting the actual contents of your Address Bar in the pre-defined URL and load the page addressed by the compound URL.
Defining a macro doing something like this is very easy. For example, the above (pre-defined) macro looks like this (MultiIE Options/Misc/Address bar macros
http://www.skweezer.net/skweeze.aspx?m=2&url=*^;-Skweezer (PDA),http://www.skweezer.net/skweeze.aspx?m=3&url=*^;-Skweezer (Text),*^;-Skweezer (Off)
If you understand the introduction, then, you also understand what this means. This macro instructs MultiIE to put three Skweezer
macros in the Macro menu; the first with the PDA
, the second with the Text
and the third with the Off
suffix. The URL that must be copied verbatim into the Address Bar is before the ;-
; the place where the user-entered string must be placed in this URL is denoted by *^
. The string to be displayed in the GO button menu is between the leading ;-
and the trailing ,
(comma), just after the verbatim URL it includes in the Address Bar.
Knowing this, you won’t have a hard time understanding the pre-defined ‘Open Button: Search
’ macro either, which has the definition for four macros:
http://www.google.com/ie?q=#^;-Search Web - Google,http://news.google.com/news?hl=en&edition=us&q=#^;-Search News - Google,http://quote.money.cnn.com/quote/quote?symbols=#^;-Stock Quote - CNN,http://maps.yahoo.com/mapsch?country=us&csz=#^;-Street Map - Yahoo
Now, a little bit of excersion: let’s add WebWarper
support in MultiIE, in the same (Proxy
) macro group as Skweezer!
As WebWarper has two main modes, the standard ( av
) and the text only (s
) mode with different URL’s:
we define two new macros:
http://webwarper.net/ww/~av/#^;- WebWarper - Standard, http://webwarper.net/ww/~s/#^;- WebWarper - Text
and insert this at the end of the Proxy
Then, we just enter the page we would like to see “one column”-ized in the Address Bar field (example page here
and choose, say, WebWarper - Standard
from the GO button menu:
Based on this explanation, you will be able to write any macro.
Please note that MultiIE doesn’t support any ‘advanced’ macroing capabilities (for example, regular expression-based automatic translation), “just” verbatim including, but it’ll work in most cases where parameters are passed in GET HTTP requests like with Google, WebWarper or Skweezer.
This method, therefore, can’t be used with anything that gets it parameters through a POST request (some other Web-based GZIP on-the-fly HTTP compression services, for example). Also, you can’t make MultiIE include more than one parameters during running a macro – this means you can’t, for example, pass your login name and password at the same time to authentication server-side code via a macroed script.
Reensoft PIEPlus 1.3b2
Please note that the beta isn’t directly linked from the developer Reensoft’s
homepage. The homepage only has the older version, 1.2, online. However, the beta is publicly available
Another very good PIE plug-in, with considerably smaller memory consumption than MultiIE.
It’s definitely less featureful than MultiIE, however; except for the ‘Pocket View
’ mode, which is a welcome addition to all pre-WM2003SE Windows Mobile users (PIE has only started to have the “One column” view mode from WM2003SE; this feature is almost exactly the same). Of the PIE plug-ins, only PIEPlus and ftxPBrowser add this feature.
It has some other goodies that makes it much better than the rest of the contenders (except for MultiIE): the built-in User-Agent identification change (which is, unlike that of MultiIE, isn’t buggy), screen dragging and full screen mode without scrollbars. However, it doesn’t support for example page saving at all.
An example of Pocket View in action, on a WM2003 device:
Without that, you would need to read the page like this (this is all the WM2003 PIE is capable of if you enable View/Fit to screen
PIEPlus has problems too. The first is that the height of the tabs can’t be set (unlike with MultiIE) and, consequently, especially in Landscape mode, they take up too much screen estate. Furthermore, if you don’t disable them, they will cause scrolling problems in the default (page) scroll mode in both the full screen and the default non-full screen mode. Some examples (all taken in SE VGA; note that I haven’t directly inserted the images in here because I don’t think many people would be interested in them):
Pocket View mode on - 1
(as you can see, you need to scroll back a bit in order to be able to read the row that starts with ‘integrate into PIE’).
Pocket View mode on - 1
– the same Pocket View mode, now, in full screen. The same bug.
Pocket View mode off, but the WM2003SE PIE One Column mode on - 1
– the same problem. Also, the same in full screen: 1
. Furthermore, these two shots demonstrate that hiding the address bar won’t help either: 1
Finally, some shots of PIEPlus with disabled
(it behaves the same way in full screen). As can be seen, it’s only by disabling tabs that there won’t be scrolling problems
Fortunately, if you have a jog dial on your PDA and switch to line-based scolling from the default link-based scroll, this problem will also go away, at the expense of the need for scrolling far too more.
Also, it has another minor problem: if PIEPlus is active, the PIE context menus (image/link menus) become small on VGA devices, meaning not really 100% VGA compliance.
Spb Pocket Plus (SPP) 2.5 and 3.0
The third famous PIE plug-in. It doesn’t know much compared to the first two plug-ins (MultiIE and PIEPlus), but the feature set it has may be well enough for a lot of WM2003SE VGA users that don’t need, for example, full screen without scrollbars or for whom, for example, the Nyditot support in MultiIE or the Pocket View mode of PIEPlus are useless.
During the 2.5 -> 3.0 update, SPP received a new important feature: it is capable of loading new pages in the background, without your explicit switching back to the tab you’ve been reading. A new bugfix is also welcome: the <TITLE>-extraction bug, which was a real pain in the back in older versions, has been fixed.
This is not a plug-in physically; therefore, it has both advantages and disadvantages over the first three solutions, which integrate better into PIE. However, it still uses the PIE framework with all its goodies (reliable cache/cookie/proxy handling/international encoding and character support).
First, the advantages. It consumes far less memory than any of the other solutions (some 20 kbytes, as opposed to the sometimes 2 Mbytes of MultiIE – that’s a difference of two orders of magnitude!) when it opens a new browser window (tab). Also, it has, just like PIEPlus, a built-in One Column-type of view, which is good news for pre-WM2003SE users:
(This has been taken on a WM2003 device which, consequently, doesn’t have a built-in One Column-mode.)
The third advantage is the ability to directly save binary files like CAB files – no other browser/PIE plug-in is capable of this. (More on this later.) And, the fourth, it’s, as with Minimo, free
, unlike all the other solutions.
Now, the disadvantages. As it doesn’t integrate into PIE and uses its own engine to do everything, it has some (not very annoying) shortcomings. For example, WM2003SE VGA users will notice at once the lack of native VGA support (which isn’t a big issue though). More important is that the Layout
menu is missing from View
on WM2003SE devices:
Yes, there is no ‘One Column’ view mode.
Fortuntately, that’s not that big a problem if you use the built-in renderer that is pretty similar to One Column.
Bottom line: much as it has not as many features as MultiIE or PIEPlus, it’s 1. again, free 2. has very limited memory consumption. Therefore, it’s a worthy contender.
NetFront (NF) 3.2
As of now, the most important alternative browser. Has both advantages over PIE - and also disadvantages; on VGA devices, the lack of native VGA support being the biggest.
, which is like an automated web extractor (read more on external, PC-based solutions at, say, regarding my Mobipocket Web Companion Support Pack
). It’s the only browser to have built-in Flash support. (Note that adding Flash support to PIE isn’t complicated and it’s free, though.)
However, it still has problems, mainly because it’s not based on the PIE framework. Much as it has definitely fewer bugs than version 3.1
, it still has problems with cookie handling, DST-wise
, its JVM is still prone to memory leaks and generic slowdowns
and it has problems with Oriental languages like Korean
. Furthermore, the tabs and the scroolbars in the full screen mode can’t be hidden – this is a major flaw! It’s still a big step forward, compared to NF 3.1, if you don’t take the lack of native VGA support into account.
Its benchmark results, memory consumption etc. are all OK – nothing to write to home about, but not bad either.
ThunderHawk (TH) 2.1
ThunderHawk has always been one of the best PPC browsers, especially on QVGA devices. Its major strengths are:
- without any kind of “One Column”-type modes, it’s capable of displaying even multicolumn tables without problems
- the server it uses strips all unnecessary HTML markup from the HTML files it sends, resulting in sometimes major bandwidth usage savings.
- its memory consumption and speed is very good
However, it has major flaws:
- on VGA devices, it still uses QVGA resolution, which is particularly annoying with images/applets
- it is only able to display Western characters – no Chinese, no Japanese, no Arabic, no Hebrew, not even East-European characters.
- its persistent cookie handling is buggy
- it doesn’t have a multitabbed mode – that is, you can only browse/load one HTML page a time
- its monthly/yearly fee may be a bit on the steep side (50 US$/year). It, however, also has a 30-day free trial version.
- it doesn’t use any kind of local cache, which may result in far higher bandwidth usage than with browsers that have
- it can’t use HTTP proxies – that is, you can’t use any further GZIP compression, unlike with all the other browsers (except Minimo). This may also be a big problem – see my bandwith consume-benchmarks here
- it has absolutely no features like image saving, link copy, HTML page save; not even page content copying works
- much as its Java VM (a welcome addition to version 2.1) is pretty capable, it uses a special client/server model that makes a lot of applets very hard to use or even useless. (See for example this article
on the Radar applet – using TH, not only map dragging/GUI handling are almost impossible, but also the labels are impossible to read.)
However, if you’re looking for a great browser for QVGA devices, ThunderHawk may be the way to go.
A remark on the buggy cookie handling. First, you need to explicitly enable inter-session cookie storing in Settings
(it’s not enabled by default; you need to enable this in the Settings dialog. For people more interested in the config files used by TH: the state of the cookie storage/allowing is stored in properties.txt
in its home. It’s 2 if persistent cookies are allowed but third-party cookies aren’t (meaning cookies issued by different pages than the current page) and 1 if yes).
subdirectory, not that of SessionCookies
. If you navigate to a page, it’ll automatically move the cookie of the page (if present) from Cookies
and (generally) doesn’t move it back (that is, they will be ignored next time) when you exit TH. There’re cases when it moves cookies from Cookies
, but it doesn’t happen to all
cookies. This means you may end up having to re-login to your sites after every browser restart unless manually save each cookie that isn’t copied to Cookies
to a third directory and manually copy them to Cookies
before each browser restart.
This application is being developed continuously and is progressing by leaps and bounds. This (0.007) is the first build to include tabbed multipage support; this is why I’ve included it in the roundup. Its page loading times and the memory consumption of the rendered pages/additional tabs aren’t that bad (it’s only its program memory consumption that IS high – around 10 Mbytes, while all the other browsers consume way less program memory!)
Unfortunately, it seems it’s not possible to make it work without pixel doubling on VGA devices. Neither the traditional forced VGA hack nor Mad Programmer’s Hi-Res tool
work in SE. Neither does native VGA work.
Furthermore, much as it worked on my Pocket Loox 720 great (the device had some 80-90 Mbytes of free RAM) and, albeit very slow, on my iPAQ 2210 too, several people have reported fatal errors (it doesn’t even start) with other devices, mostly with the hx4700 and the x50v.
Its rendering engine leaves a lot to be desired. There’s not any kind of small-screen optimization (meaning you’ll need to scroll horizontally a lot), and only uses non-proportional fonts:
Also, its operation is awkward: in most cases, for example, it doesn’t use the D-pad/jog dial.
Now, its advantages:
- its additional memory consumption for each tab is very small
- its scripting support seems to be the best: it’s the only current PDA browser to render (and navigate) Google Maps
(quite) properly. The same stands for the redhotpawn.com/ test
, where it was better than even TH.
Some examples of the Google Maps test:
All in all, it’s still pretty useless for generic
browsing, but already has some areas (namely, running advanced scripts
) that it’s the only PPC-based Web browser that actually works.
Co-existing of browsers/PIE plug-ins on the same PPC
In general, all these apps peacefully co-exist on the same PDA, except for PIEPlus and MultiIE
install them on the same PPC! Always, at least, delete the shortcut of the already-installed, other application in \Windows\Startup
and reset your PPC to reboot in order to avoid major crashes – once, my iPAQ 2210 was even hard reset because I’ve installed PIEPlus while MultiIE was still active.
SPP, on the other hand, does co-exist with both MultiIE and PIEPlus. So does ftxPBrowser and all the third-party, standalone browsers.
Enough already with the talk! Let's get to the major feature, the benchmark/bug/feature table!
Here you are
(Sorry, as the local forum engine doesn’t support inline tables, I had to relocate the table onto my homepage.)
Explanation for the table:
: either a PIE plug-in or a standalone app.
Screen estate utilization
group: everything related to how browsers are able to make use of the available screen estate.
Full screen mode?
: can you switch to full-screen mode, hiding the taskbar at the top and the command bar at the bottom? I’ve also noted the way to switch back to normal mode; it’s, for example, a little icon as with all the three (real) PIE plug-ins, which is the best and least space-consuming.
Scrollbar (may be) hidden in full screen mode?
: better browsers and browser plug-ins may be configured to hide the horizontal/vertical scrollbars in full screen mode. Unfortunately, only MultiIE and PIEPlus support this.
Dynamic landscape switching compliance?
: can you dynamically switch between Portrait and Landscape in WM2003SE+ while the program is running? Fortunately, yes, even with NetFront 3.2 in forced VGA mode with the address bar displayed (in 3.1, it resulted in a very thick address bar).
Memory occupation & benchmarks
group: everything related to memory occupation (with all its aspects), loading times etc. I’ve measured memory consumption with the SOTI Pocket Controller
); in most cases, I’ve even jotted down the free (in some cases, occupied) memory size (in Megabytes) in all the fields. For example, the 25.48/ 24.73/ 23.64/ 22.92 / 22.19
sequence means in the Memory / tab; WM2003
row, with MultiIE that the PPC had 25.48 Mbytes of free RAM before I opened the second tab, while, after opening it, this decreased to 24.73 Mbytes and so on.
Overall storage mem. occ.; ROM/RAM (the latter after possible hacking!)
: ROM, in this case, means storage (which can be a storage card). RAM means the required part in the main memory needed for static storage (not runtime execution!). “The latter after possible hacking!
” means I’ve always taken into account the possibility of hacking part of the given application to flash ROM-based media to save precious RAM. This is only necessary with the two SPP versions (please read this article on this subject
); other apps can be entirely installed to alternative media. The ~ mark meaning approximately
0 kbytes means that only .unload
files and AppMgr
DLL’s are copied to main RAM (which, incidentally, can also be deleted/relocated
PIE plug-ins: persistence in memory? Where started from?
: with PIE plug-ins, which are resident in memory (ftxPBrowser is different from the rest of PIE-related apps in this respect too!), this row describes how they are started. You may need this in order to be manually remove/disable these applications, without uninstalling them. For example, if they are started from \Windows\Startup
, you just move the .lnk
file that starts them to another directory. If they are started as a system service (that is, from HKEY_LOCAL_MACHINE\Services
in the Registry), you may want to change the linked DLL name in there to temporarily disable the service and to make sure it’s completely removed off the memory after the next reboot.
PIE plug-ins: dynamic program memory occupation?
Another resident PIE plug-in-related test: how much memory do they occupy after booting in the PPC, before starting PIE – that is, if you use them, how much RAM memory do you permanently
lose (until you uninstall / disable them). As you can see, if you don’t enable any other SPP service (battery bar, X button), SPP consumes 370kbytes of RAM (quite much, taken into acount the fact that SPP is by far the least-capable PIE plug-in), while MultiIE 270k and PIEPlus only 190k.
Overall runtime program mem. occ. after start; measured in VGA
: this test shows how much dynamic program memory the given browser/ PIE plug-in + PIE combo consume. I’ve measured this with the default pages loaded (which don’t take much memory – say, 100 kbytes at most, if you also take into account the necessarily, in most cases, about an order of magnitude bigger memory consumption of a parsed HTML file). As you can see, PIE without plug-ins is the best (around 1 Mbyte memory consumption) in this respect, TH being the second. Then come the PIE + plug-in combos. They are followed by NF (4 Mbytes) and, finally, Minimo with a whopping 10 Mbyte (an order of magnitude worse than that of PIE!)
PPCMag demo HTML page (600kbytes + images) load time & memory consumption of the in-memory HTML representation
: It’s a well-known fact that if you load a HTML file in a browser, it has to parse it and transfer its content to an in-memory (say, W3C DOM) representation. This will, however, result in a memory representation that consumes far much more memory than the original HTML file.
In this test, I’ve used a 600 kbyte HTML file, saved off the Pocket PC Magazine forum
. I used a long file in order to both safely measure its memory consumption and the loading time.
As you can see, TH was the fastest to load the page (14 secs) and it consumed the least memory (300k); the second fastest was PIE with a whopping 9 Mbyte memory consumption. Minimo wasn’t much worse than PIE loading-time wise and the memory consumption of the parsed HTML file was clearly less than that of PIE (kudos to Minimo!). Netfront was the slowest (but still not much slower than PIE!), but its memory consumption was about half of that of PIE. Please note that all browsers except NF were able to render the start of the page almost instantly; in NF, you need to switch to the Rapid-Render
mode (a new, highly useful feature in NF 3.2) to combat the lack of this.
Memory / tab; WM2003
and Memory / tab; WM2003SE VGA
: how much memory each tab (which, with PIE plug-ins, almost always – except for ftxPBrowser – results in reloading about half of PIE into memory) consume. For this test, I used a very small HTML file that only displays “test” (available here
) so that only the real plug-in + PIE code
that is counted in, and not the size of the parsed Web page.
As can clearly be seen, there’re big differences between the alternative browsers.
First, the “native”, standalone applications like ftxPBrowser, Minimo and, to a certain degree, NF consume far less memory than PIE plug-ins, which, in effect, reload (part of) a completely new PIE instance into the memory. This is why ftxPBrowser only consumes 20 kbytes of RAM if you open a new tab in it, while the memory-hog MultiIE can allocate even 1.5-2 Mbytes – two orders of magnitude more memory.
It’s also worth pointing out that the memory allocation needs of some programs are greatly dependent on whether they are run on a QVGA device or on a VGA device, in VGA-enabled mode. This, to a certain degree
, understandable – you need, for example, 4 times more memory to store uncompressed images in VGA than in QVGA. However, I do think that with some more optimalization, even the memory-hog MultiIE could have been made much more memory-friendly.
The leap in memory consumption is clearly visible with MultiIE and NF. It’s worth pointing out that ftxPBrowser consumes the same 20 kbytes even in VGA mode. Way to go ftxPBrowser! :approve:
Context switch between the two PPCMag 600k test pages
: many people have been complaining about the time needed for switching between browser tabs (pages). This is why I’ve decided to include this test in the roundup.
For the test, I’ve used the same 600 kbyte-long PPCMag HTML file as with the in-memory HTML representation test. I’ve loaded these two pages in two different tabs within the same browser and measured the time needed for switching between the two windows. For this, I’ve underclocked my originally 520 MHz Pocket Loox 720 to 104 MHz so that the differences can be more clearly seen and measured. (I’ve used the same benchmarking methology as in my image viewer test here
As can clearly be seen, even the slowest-to-switch browser, Minimo, and PIE plug-in, MultiIE, can swith in 3 and 1.5…3 seconds, respectively, at 104 MHz. This, assuming a much faster PDA, means that there are very slight differences between the tab switching speeds of the current PPC browsers/plug-ins and are all well under 1 seconds in today’s PDA’s running at least at 300 MHz and on WM2003+. (Note that I haven’t made any PPC2k2 tests for this roundup. The PPC2k2 PIE is by far the slowest PIE I’ve ever benchmarked (non-English link!)
group: accessing the Net – part one.
Is the given app able to use proxy servers?
Proxy servers can be very handy in a lot of respects. Please see this article
(also linked from this
PPCMag article) on the usage of proxy servers. Also, you may want to read this article
for more information on configuring proxies on the PPC/switching between them.
As you can see, PIE, starting with PPC2k2, uses a system-level proxy server setting. PIE plug-ins also use them as they have access to all the PIE resources. NF is also able to do the same, but you can also supply a different proxy server to it locally (which is the preferred and easiest solution in most cases).
TH and Minimo, on the other hand, has no proxy support at all. (Minimo will most probably have it in the future.)
If you use proxies, you can also anonymously surf the Web (please see this
article on anonymity). This is why PIE (with all its plug-ins) and NF are preferred for anonymous surfing. TH, while it doesn’t support proxies, doesn’t pass anything client-related (no IP, no ThunderHawk username) to the HTTP server, so, it can safely be used for anonymous Web surfing too. Minimo can’t be used for this as yet.
Does use the PPC2k2+ Connections framework to diff. between
The Internet/Work connections?
: You may have already run into the The Internet/Work
distinction, which effectively plagues the life of a lot of people
. PIE is based on this paradigm; this is why you run into a lot of ‘can’t connect’ messages because of just using the opposite type of connection of what’s needed, like in the following image:
NF, TH and Minimo aren’t based on this framework, which is a big plus with them, at least for people that don’t understand the The Internet/Work
distinction (it’s not an easy stuff; furthermore, it’s not really documented either
This speaks for itself – it’s only Minimo that doesn’t support SSL. The next build, 0.008, will most probably have SSL support, though.
group: HTTP browsers that support GZIP compression (please read this
article on this subject) and support working through proxies (the case of Toonel
– more on this later) may deliver a big win in bandwidth usage. The same stands for the other two bandwidth compression clients, Globlity GHO
GZIP/Compress support? Does it really work?
The HTTP protocol and most Web clients supports GZIP compression. In this test, I’ve forced an external Web site, WebWarper.net
, to send back a GZIP-compressed page. All browsers (even Minimo), except for TH, which doesn’t directly
communicate with Web servers, passed this test.
is a great and, even better, free
online HTTP compressing service. It requires a JVM to run and explicit proxy support (and manual configuration) in the Web browser, unlike the two other compression clients, which don’t need manual configuration. In this test, I’ve noted the compliance of PPC Web browsers with Toonel. As can be seen, both PIE (also meaning all PIE-related apps) and NF is able to make use of Toonel because of their proxy support.
Globility GHO client The Globility GHO client (still in beta)
is another great tool to reduce bandwidth usage. It works differently from Toonel because it doesn’t require the user to explicitly configure the Web client to use the proxy. However, as it’s more PIE-related, other browsers may not work with it, especially new ones. For example, it’s not guaranteed that you will be able to reduce your bandwidth usage with, say, Minimo as soon as it gets proxy supports with this client, unlike with the generic Toonel client. Exactly the same stands for the next bandwidth-reducing service, OnSpeed
Saving; cache, download
group: everything related to saving Web pages to the local file system (like File/Save As
in the desktop Internet Explorer) and local caching. The latter may result in a much lower bandwidth usage but may also introduce a lot of bugs if written sloppily, which was the case with NF 3.1 (this bug has been fixed in 3.2
This shows if the browser is able to explicitly
save Web pages. As can be seen, only SPP and MultiIE are able to save Web pages. The latter can even make a full save, downloading all the resources as the desktop IE in File/Save As
- see the default Web Page, complete
option in the Save as type:
Please note that the inability to explicitly save pages shouldn’t be a showstopper: you can get the Web pages from the cache of browsers that have local caches. It requires some manual work and searching, though
. Also note that much as NF can’t explicitly save, its cache is much easier to browse than that of PIE (no separate subdirectories) and has an index file, cache.fat
, containing both the source URL’s and the in-cache file names of all the cached resources.
A side remark: many people have complained about unreadable HTML files produced by PIE when saved with SPP/MultiIE. These files are all in binary and can’t be loaded back into PIE (or to any desktop browsers). The solution to the problem is very simple. Please see mainly this
or, alternatively, this
thread on this problem and my solution to this problem.
Save link directly to file, w/o opening?
and Co-working with VITO MobileDownloader?
: You may want to read this article
on these subjects.
Note that, as has been shown in the table, Minimo tries to save binary contents, but it (still) doesn’t work:
Does the given browser have a local cache? PIE does, NF also (the latter is also easily browsable and can be accessed with a local, built-in cache browser – also see the Explicit cache navigation?
row). TH and Minimo, on the other hand, don’t.
Sometimes, it’s very important to be able to relocate the local file cache of a browser because of the following:
- if you install, for example, NF 3.2 on a slow storage card because of the sheer size (9 Mbytes for the Java-enabled version) of the browser, you’ll have a hard time waiting for the cached files to be written to the card
every time you go to another page
- if, on the other hand, you have a very fast card and you know
relocating the PIE/NF cache to it won’t result in serious speed decrease, you may want to do this. This is especially important with PIE, which, by default, keeps its local cache in the main memory and which, especially with WM2003SE devices, can grow to be as large as 20 Mbytes.
Of the browsers that use local caches, the cache of both PIE and NF can be relocated. (This, as far as NF is concerned, is a big leap forward, compared to version 3.1
group: does the given app offer image saving capabilities (in the desktop Internet Explorer, right-click a picture in a web page and choose ‘Save Picture As
’; see the row Save Image As
in the table); can you also get the contents of the “alt
” attribute in <img> tags ( View Image Text
– on the desktop, just move the mouse cursor above the image and let it be there for a second); and, finally, can you set the image as a Today wallpaper (“Set as Background
” on the desktop IE 6). As far as the latter feature is concerned, please note that you should refrain from using the Set as Wallpaper
feature of MultiIE, the only PPC Web browser that supports setting the Today wallpaper directly. The reasons for this is that it only renames the image to the standard \Windows\tdycust.gif
, without resizing/downsampling it. This means only 640*640 pictures will be usable as wallpapers (no more, no less) on VGA devices and the menu background image won't be changed either. It isn’t capable of setting the transparency level of images either, which is perfectly possible with advanced tools
. You really should avoid using it.
Tabs; opening new pages
group: information on the tabs and how new pages can be opened.
Open in background without the need for switching back manually? Feedback on loaded pages?
: Especially over slow connections with loading times in the area of tens of seconds, it may be desirable to have a browser that allows for pages being loaded in the background so that you don’t need to manually switch back from the tab containing the page being loaded to the one you would want to continue reading. It’s not an essential feature, but certainly welcome. One of the two aspects in which the PIE plug-in in SPP 3.0 is better than 2.5 is the ability to do this. Also, some kind of (configurable) feedback on loaded pages is also welcome.
Settable tab height? Can tabs be hidden?
: many people will find the default tab height in MultiIE, PIEPlus and NF too large (the tabs are taking up too much screen estate). In MultiIE, you can decrease this, unlike in the other two apps. PIEPlus only allows for hiding them completely (which is a must on VGA devices because of the anomalies with the page scrolling). Unfortunately, NF doesn’t offer any kind of configuration capabilities – tabs will be shown even in full screen mode, which is really a pain in the back.
Copy link address
: is the given application able to copy the address of a link (see “Copy Shortcut
” in the desktop IE if you right-click a link). This feature is painfully missing from NF. Fortunately, all the PIE-based apps have this feature.
Text select/copy to clipboard?
: are you able to select some text in a Web page and copy it to the clipboard? While it should be natural to have this feature, both TH and Minimo lacks it. Actually, Minimo doesn’t have any kind of copy/paste features, not even from/to textfields…
A very useful feature of the desktop IE. On the PPC, only NF has something similar.
Buttons, D-pad/Jog Dial navigation
group: everything related to scrolling without using the touchscreen; also, accessing browser (plug-in) functionality from the hardware buttons of the PDA. It’s very nice to, say, assign “back to previous page” to a hardware button, “toggle full screen mode” to another, “format this page with Skweezer” to a third etc.
HW buttons assignable?
: see above. Unfortunately, only MultiIE, ftxPBrowser and PIEPlus support hardware button assignment; SPP, Netfront and TH don’t. Minimo goes even further: you can’t use any hardware buttons (to, for example, rotate the screen or quickly start other programs) while it’s active.
Scrolling - D-pad
: Can you scroll down/up with the Directional Pad (D-Pad). By default, pressing it down scrolls down a page (and pressing it up results in a page up) with most browsers (except for Minimo). With advanced browsers/plug-ins, this can be reconfigured to scroll by lines or links. With NF, you can even set the percentage of scrolling.
D-pad configuration capabilities?
See above: can you configure the browser to override the default scrolling behaviour?
Scrolling - jog dial
The same as above, but with the jog dial. By default, jog dial scrolls to the next link in PIE. This can be very frustating; therefore, most people prefer reconfigurable jog dial scrolling too. In this table row, I’ve collected the information on how the jog dial scrolls and whether it can be overridden. Fortunately, with MultiIE, NF and PIEPlus, you can override the default behaviour. Bad news for TH users is the complete lack
of jog dial support, however.
Page scrolling on QVGA devices - problem-free?
and Page scrolling on VGA devices - problem- free?
In these tests, I’ve scrutinized each browser in Page scroll mode to see whether the cause scrolling problems (unreadable rows, the need for scrolling back etc – see the explanation for PIEPlus). Only PIEPlus had problems when its tabs were enabled.
group: this group discusses what User-Agent header is sent to the Web server whether you can override the User-Agent HTTP header. Please read this thread on this question
Built-in browser identification change
: does the application explicitly support changing identification information right within it? Note that, as I’ve pointed out in the last-linked article, you don’t need
this in PIE plug-ins in order to be able to even dynamically change your User-Agent string. It’s still a nice-to-have feature if you don’t want to install the external nScriptm
As you can clearly see, MultiIE is buggy: it even resets the PDA after toggling the User-Agent information. PIEPlus is better in this respect, but it, on the other hand, doesn’t remove the unneeded string values from the Post Platform
subkey (again, more on all these things in this article
.) Therefore, you may want to choose an external program to toggle the User-Agent information. See also the next row.
external browser identification change visible without PIE restart in tabs opened after change?
As has already been pointed out, most PIE-based apps (except for ftxPBrowser) load an almost new copy of PIE into memory when a new browser tab is opened. This, on the other hand, also means that registry changes, which PIE only notices when it’s started, will also be visible after opening a new window (because PIE also reloads the registry), without even exiting PIE.
This can be of tremendous help. Let’s assume you prefer visiting a banking site pretending to be desktop browser (because the page just doesn’t let in say, non-desktop-IE browsers), while you would like to access the, say, Pocket PC Thoughts or PocketMatrix forums as a Pocket PC client so that you receive lightweight-formatted content. And, you would prefer doing this at the same time: in one window you browse the online banking pages, in another one you browse the Pocket PC-optimized pages of the above-mentioned sites. It’s indeed possible if you always remember which tabs you opened after toggling the User-Agent.
: generally, PIE has the least compatible/capable JS interpreter and Minimo the best.
The online chess game at 'Red Hot Pawn'
for more information. Minimo 0.007 runs the script even better than TH 2.1.
Google maps? Google Maps
: The quality of the Java support (if there is) is a question worth long articles. In a nutshell, PIE has no built-in Java support, but there are decent Java Virtual Machine (JVM) plug-ins for it, CrEme being the best. NF has a decent JVM; so does TH 2.1. Their usability, however, is radically different. If you really want to know what to use them for, read Using Java on the Pocket PC - the complete tutorial
, Java support in Thunderhawk 2.1 scrutinized
and Some new information on the Java compliance of PPC Web browsers (5/07/2005)
group: cookies are a must. However, unfortunately, third-party applications (except for Minimo, which is entirely standards-compliant and, therefore, haven’t failed any of my tests) have sometimes serious flaws with their cookie handling. This group explains this.
it’s both useful and dangerous to store cookies as text files in the file system. Dangerous because, even if your passwords aren’t there in the cookie file, anyone that has access to these files can reuse the session ID’s stored in them and pretend to be you, even from a completely different computer. He, then, doesn’t even need to know your password.
On the other hand, it’s useful to have them in a readable/editable form if you need to know what cookies are issued by a given site and you even want to edit them (for example, to tailor their expiry date for your needs to avoid, for example, the need for re-login after an expiration time).
As you can see, all browsers except for NF use plain text files to store non-encrypted cookies. It’s only NF that encrypts cookie files.
Inter-session persistence test
: in this test, I’ve checked whether cookies are indeed saved and resent to the Web server after a browser restart. As it has turned out, TH has major flaws at this area. Please read the section on TH above for more information and how you can circumvent the problem manually.
DST taken into account in cookie handling?
: Dailight Saving Time is another area where some browsers fail. NF fails too. Please read my article here
on this problem and for a usable fix if interested.
group: I’ve put here all those tests/aspects that I couldn’t find a group of their own.
In-page text search
: Much as Microsoft has put in-page text search in the PIE version built into H/PC 2000 devices (for example, the HP Jornada 72x) five years ago, they still haven’t done the same to the Windows Mobile PIE’s. This is certainly a big problem – none of the PIE-based solutions can search for a string in the text of a page. You can, of course, use, say, Pocket Word or uBook
to search for the string, but it’s not the cleanest/easiest solution.
Unfortunately, it’s only NF that has text searching capabilities. Microsoft, BitStream, wake up!
Quick URL builder?
: on Pocket PC devices without a keyboard, entering URL’s can be very slow. In these cases, an editor with a pre-definable, editable list offering for example URL’s in the form of http://www..com
: in addition to navigation with the scrollbars, hardware D-pad or the Jog Dial, screen dragging offers a nice alternative, especially if you switch off the scrollbars or want to scroll in a more fine-grained manner than with the D-pad. This is especially true with horizontal scrolling.
Of the PPC browser(plug-in)s, only MultiIE, PIEPlus and NF are capable of this. It’s, not taking into account NF, pretty easy to switch between the two modes.
PIEPlus also has a very useful feature: you can set the multiplier between the page movement amount and the stylus dragging amount (between 1 and 16).
Access to standard favorites?
: PIE stores favories, as with the desktop IE, in the file system, under \Windows\Favorites
(please note that the built-in, pre-defined Favorites are stored in the Registry, under HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FavoritesEntries\
. You can freely delete this key, it won’t cause any problems.) All the tested programs had access to them, except for Minimo.
: browsers should be able to display non-Western (non-ISO-8859-1) characters as well, just like their desktop counterparts. Both NF and PIE (the latter also meaning all the PIE-based solutions) are capable of this – to a certain degree (you need to install fonts on your PDA etc
. You can find more information on installing fonts on your PDA for example here
). TH, because it only has the Western character set, isn’t able to display anything
that use other characters – it just displays a negative sign (-) as a placeholder when encounters them. An example with a text that uses some ISO-8859-2 characters:
Minimo is a bit better in this respect – it displays characters with foreign, non-Western accents, but in a rather strange way:
Please note that I’ve only run tests with East-European character sets. I haven’t checked Oriental/Arabic/Hebrew etc. character set compliance. NF 3.2, unlike its predecessor, may have problems with Korean
. Also, there may be some other language/page encoding bugs with NF
That is, try before buy if you want to browse pages written in non-European languages with NF.
Built-in one-column view on WM2003 devices; its BH quality?
As has already been pointed out, some of the browsers/PIE plug-ins have their own implementation of the infamous One Column view mode of the WM2003SE PIE. In this row, I scrutinize these implementations.
NF needs a bit more explanation. Much as Just-Fit Rendering
is able to eliminate the horizontal scrollbar (unlike the “Fit to Screen
” mode in WM2003, which is the same as the Default
view mode in WM2003SE), it is pretty useless because, in general, it produces very ugly results:
On the other hand, Smart-Fit Rendering
is almost exactly like the One Column
view mode in the WM2003SE PIE:
For comparison, the results produced by the Normal
view mode in NF are as follows:
Is there any way to display the Web page source from inside the browser? Please note that, if the given browser has a local cache, the lack of this feature (for example, in the non-plug-in-augmented PIE or in NF) isn’t that problematic. Also note that the GZIP bug
also affects this; therefore, there’ll be cases when not any PIE-based solutions will be able to display the page in question. In these cases, you need to manually uncompress the given GZIP’ed HTML file and, then, load it in a text editor.
IFRAME support (for example, Yahoo AutoComplete)?
Iframe is a useful feature of current browsers and a lot of popular tricks, for example the entirely client-side Yahoo AutoComplete
, are based on it. Unfortunately, PIE (and, therefore, not any PIE-based solution) doesn’t support Iframes. All the other (self-standing) apps do. However, it doesn’t mean they are able to run Yahoo AutoComplete – unfortunately, they aren’t. (I’ll scrutinize this some day to try to find out what causes AutoComplete to refuse to work on these devices. Hope I’ll be able to come up with a solution that works on non-PIE browsers.)