If you are coding your extension in C, you will have to build it at some point; this chapter will detail a simple way to do so. If you are coding your extension in Python, you can skip this chapter entirely.
To avoid autoconf/automake hell, you could simply code your extension in the existing epiphany-extensions framework (download the source from http://projects.gnome.org/epiphany/extensions.html). To do so:
Run epiphany-extensions/tools/copy-template foo. This will copy the sample template into a new subdirectory in epiphany-extensions/extensions/.
Edit epiphany-extensions/extensions/Makefile.am and add your SUBDIRS entry:
if ENABLE_FOO_EXTENSION SUBDIRS += foo endif
Also, add your extension to the end of the DIST_SUBDIRS line.
Edit epiphany-extensions/configure.ac to add your own extension:
Add a line near the similar existing ones:
AM_CONDITIONAL(ENABLE_FOO_EXTENSION, echo "$extensions" | egrep '(^|,)foo($|,)' > /dev/null)
Add extensions/foo/Makefile to the AC_OUTPUT call.
Add your extension to the all_extensions= line.
If your extension will include strings which should be translated, edit epiphany-extensions/po/POTFILES.in and add extensions/foo/ephy-foo-extension.c. (No, the filename is not important.)
Edit epiphany-extensions/extensions/foo/foo.xml.in.in to describe your extension.
Now all work will take place in the epiphany-extensions/extensions/foo/ directory. After coding is finished, run ./autogen.sh --enable-debug --enable-extensions=foo in the epiphany-extensions/ directory, then make and make install as root.