NEWS
You can watch or actually participate in the video games you like, get the latest news, while almost simultaneously ordering a pizza. You can also send emails to your friends and pay bills.
OTHERS
Frequently Asked Questions,FAQ
General
Why is it called Chickenfoot?
Chickenfoot is a game that you can play with dominoes. Since Chickenfoot does much of its work by manipulating the Document Object Model, or DOM, of a web page, Chickenfoot the Firefox extension is like a toy that lets you play with the DOMinoes of the web.
What is the history of Chickenfoot?
Rob Miller (MIT) described the idea of a tool for web scripting embedded in the web browser at the CHI 2003 conference. Work began in earnest in fall 2003 when Michael Bolin took on the project for a Master's thesis at MIT. The original work used Mozilla as the environment for the tool and JNI to communicate with the Java libraries that Chickenfoot would leverage. Using JNI incurred a large overhead for the runtime of the application, as well as the pace of development. Progress improved dramatically with the discovery that LiveConnect could be used to call Java from a Mozilla extension (LiveConnect was originally designed only to allow web page authors to script Java applets).
The increasing maturity of Firefox also fueled Chickenfoot development. Though documentation about how to create extensions to Firefox was sparse, the onslaught of new extensions effectively yielded an array of small, open-source programs that revealed how to access various parts of the browser. As it appeared that Firefox was the wave of the future, and was more popular to extend, work on Chickenfoot was ported from Mozilla to Firefox in the summer of 2004.
In the winter of 2005, a web survey was done to explore how users would name textboxes in web pages. The results of this survey provided the motivation for keyword patterns, that is, patterns that identify controls in a web page with keywords that appear in the proximity of the control in the page. The results of this survey were published in a paper for an ICSE workshop on end-user programming (WEUSE): Naming page elements in end-user web automation. A nascent Chickenfoot 0.1 was released at this time.
Bolin's Master's thesis, End-User Programming for the Web, was published in the spring of 2005, and was accompanied by a release of Chickenfoot 0.2. Like the 0.1 release, 0.2 was not widely publicized as it was, in many ways, still a proof of concept that was not fit for public consumption. Bolin's thesis won the William A. Martin Memorial Thesis Prize for an outstanding Master's thesis in computer science.
Chickenfoot made the jump from "research project" to "practical toolkit" in the fall of 2005 with its 0.5 release. Version 0.5 appeared just in time for the ACM Symposium on User-Interface Software and Technology (UIST). There, Chickenfoot was presented as the main subject of the paper Automation and Customization of Rendered Web Pages, which received the best paper award for the conference.
How Chickenfoot differs from Greasemonkey
Chickenfoot operates on the rendered model of a web page.
The goal of Chickenfoot is to enable users to automate and customize web pages without viewing their HTML source. A key step toward this goal is enabling users to identify page elements with words they see in the page rather than the page author's name for the element. For example, the name of the HTML element for the search box on yahoo.com is p, so in Greasemonkey, the code to set the value of the search box would be:
document.getElementById('p').value = 'my search query';
However, in Chickenfoot, the equivalent line of code would be:
enter('search the web', 'my search query');
The differences between these two lines of code is significant. The former requires the user to inspect the HTML of the page to discover the name of the element, by either reading the HTML directly or through a more structured representation, such as Firefox's DOM Inspector. The latter simply requires the user to load the page and choose some keywords that appear to identify the box. This makes the code easier to for the author to compose and for others to understand.