=== Top of the Swiki === Attachments ===

Scamper

Overview

Scamper is a simple web browser which runs in Squeak. Currently it supports:

Some things that don't work:


Enough is supported that you can browse around on the Web. Images with transparent backgrounds even look pretty cool.

But still, why use a Squeak browser at all, instead of Netscape? Two reasons:

On a deep level, Squeak is a nice place to be. The code and the objects are all there, easily accessible if you ever want to get at them. A Squeak user isn't limitted to just looking at the pretty rendered HTML pages, but can get directly at the underlying objects which structure them; they can move within the web, instead of just looking at it through glass. Sure, most of the time users are content to just read; but when they want to do something more, shouldn't they have the opportunity?

On a pragmatic level, if you already do most of your work within Squeak, it would be nice if you can do mundane things like look up Web documents within Squeak, too.

Executing

The most current version of Scamper is in the Squeak release. There is no separate installation currently available. Run Scamper by selecting the "open..." world menu and then selectiong "web browser".

Architecture

Here is an overview of the design, for anyone interested in web hacking.

Network-URL category
parsing absolute and relative URLs, and downloading Web documents through an abstract interface. Also includes a "MIMEDocument" class which combines data with its content-type and source URL.
HTML category
The biggest part. It includes four main subparts:
  1. HtmlTokenizer: divides a text stream into a sequence of HTML tags, text (handling character reference entities) and comments.
  2. HtmlParser: takes results from the above and generates a tree of HTML entities which is more convenient to manipulate.
  3. HtmlFormatter: takes result of the above and generates a formatted Text object suitable for display.
  4. FormInput hiearchy: handles the set of inputs from a Form.

Scamper
a simple Web browser with a mousey name. Display is handled via the pluggable views.



Thoughts


Contributors

Scamper was originally put together by Lex Spoon.

David J. Pennell has been working on dynamic HTML generation, and pointed out the existing Document Object Model at http://w3c.org/DOM/. Feel free to jump in and explain this better!

Comments

Hey, this is a Swiki after all. Any comments are quite welcome.

Another scamper page


Cookies

One thing annoying about Navelgator is the series of dialog boxes you get if you want to approve cookies before they are accepted. As an alternative, I propose a "cookie browser." The bottom of the page could contain a list of recently receieved cookies, with a check box by each one so the user can indicate whether they accept that cookie for sending back to the server. As cookies arrive, they get stuffed in the cookie browser. The default behavior (send or not send) could be an easy user-controlled switch.