WebPro

WebPro is the new Palm browser. Like VersaMail, it can run on older devices by simply beaming the file across. It has a number of peculiarities, however.

First off, it is absolutely dependant on Palm's proprietary proxy server, located at webpro.palm.com. Simple testing (pointing WebPro to one of our boxes and running tcpdump on it) determined that WebPro talks to webpro.palm.com via TCP port 8827, which is not exactly a standard thing to do.

Protocol Analysis

Furthermore, WebPro relies on the proxy to recompress content for it. We tried getting it to work with Squid, and it soon became apparent that WebPro only supports pre-processed XML content that webpro.palm.com compresses (Content-Transfer-Encoding: deflate) and sends back, complete with Content-Length and image scaling attributes. Here is a dump of a browser request to the proxy:

# nc -vvl -s 192.168.0.2 -p 8827
listening on 192.168.0.2 8827 ...
GET /webbrowser/ HTTP/1.1
Host: www.palm.com
Cookie: PalmCookie=192.168.0.4.(18-DIGIT STRING)
Accept: text/xml,image/palmV3,application/x-prc,application/x-pdb
Accept-Encoding: deflate
Accept-Language: en
Connection: keep-alive
User-Agent: Novarra/3.10.22.1 (Matisse)
Novarra-User-Prefs: View-Mode=Full,Javascript,Cookies,Images,Image-Fit-Size=304x304
Novarra-Device-Id: (DEVICE SERIAL NUMBER)
Novarra-Device-Type: Palm
Novarra-Client-Attributes: Bit-Depth=8,Screen-Density=144,Color-Model=stdcolor

Images are sent back from the proxy in the native image/palmV3 format, complete with scaling information. Layout seems to be done entirely client-side.

Although we did not have time to capture traffic from the proxy to our web host (it would be interesting to see the Accept: header, for one), the proxy identifies itself as a Mozilla-compatible browser, most likely to maximize compatibility with web sites:

63.97.179.30 - - 21/Feb/2003:21:18:07 "GET / HTTP/1.1" 200 0 "" "Mozilla/4.76 en (PalmOS; U; WebPro)"

Potential Issues

The proxy does _not_, however, send referrer information, which causes no end of trouble with some sites (including this one).

You will notice that it not only sends a device-unique cookie (apparently based on the device's IP address or its gateway's), but also the full device serial number - which might well worry the privacy freaks. For the non-technical folk, think of it as a hardcoded cookie that can be used to track your Web surfing habits.

Firewalls

If you get WebPro to work inside your LAN (via a serial, IRDA or Bluetooth connection to a machine acting as a PPP server), you'll most likely have to either open port 8827 (outbound) on your firewall or (even better) set up a port forwarder to send traffic to webpro.palm.com. We used the following SSH command for testing, creating an impromptu proxy:

# ssh -g -N me@localhost -L 8827:webpro.palm.com:8827