Bug 676078 Remove unused mozmill code from mozilla-central r=ctalbert
authorJeff Hammel <jhammel@mozilla.com>
Thu, 13 Oct 2011 16:27:33 -0700
changeset 78714 fa458dc8b04bdbcc5d915ecdd519cec3255cd0a4
parent 78713 64a65ae6f6441d6daa18b461405de3a698692d8b
child 78715 5b68174fe6f6611733b0ec66aa091c00e1dec10b
push id2646
push userctalbert@mozilla.com
push dateThu, 13 Oct 2011 23:29:52 +0000
treeherdermozilla-inbound@fa458dc8b04b [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersctalbert
bugs676078
milestone10.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 676078 Remove unused mozmill code from mozilla-central r=ctalbert
other-licenses/simplejson-2.1.1/CHANGES.txt
other-licenses/simplejson-2.1.1/LICENSE.txt
other-licenses/simplejson-2.1.1/PKG-INFO
other-licenses/simplejson-2.1.1/conf.py
other-licenses/simplejson-2.1.1/docs/_sources/index.txt
other-licenses/simplejson-2.1.1/docs/_static/contents.png
other-licenses/simplejson-2.1.1/docs/_static/default.css
other-licenses/simplejson-2.1.1/docs/_static/doctools.js
other-licenses/simplejson-2.1.1/docs/_static/file.png
other-licenses/simplejson-2.1.1/docs/_static/interface.js
other-licenses/simplejson-2.1.1/docs/_static/jquery.js
other-licenses/simplejson-2.1.1/docs/_static/minus.png
other-licenses/simplejson-2.1.1/docs/_static/navigation.png
other-licenses/simplejson-2.1.1/docs/_static/plus.png
other-licenses/simplejson-2.1.1/docs/_static/pygments.css
other-licenses/simplejson-2.1.1/docs/_static/rightsidebar.css
other-licenses/simplejson-2.1.1/docs/_static/searchtools.js
other-licenses/simplejson-2.1.1/docs/_static/sphinxdoc.css
other-licenses/simplejson-2.1.1/docs/_static/stickysidebar.css
other-licenses/simplejson-2.1.1/docs/_static/traditional.css
other-licenses/simplejson-2.1.1/docs/genindex.html
other-licenses/simplejson-2.1.1/docs/index.html
other-licenses/simplejson-2.1.1/docs/objects.inv
other-licenses/simplejson-2.1.1/docs/search.html
other-licenses/simplejson-2.1.1/docs/searchindex.js
other-licenses/simplejson-2.1.1/docs/searchindex.json
other-licenses/simplejson-2.1.1/ez_setup.py
other-licenses/simplejson-2.1.1/index.rst
other-licenses/simplejson-2.1.1/scripts/make_docs.py
other-licenses/simplejson-2.1.1/setup.cfg
other-licenses/simplejson-2.1.1/setup.py
other-licenses/simplejson-2.1.1/simplejson/__init__.py
other-licenses/simplejson-2.1.1/simplejson/_speedups.c
other-licenses/simplejson-2.1.1/simplejson/decoder.py
other-licenses/simplejson-2.1.1/simplejson/encoder.py
other-licenses/simplejson-2.1.1/simplejson/ordered_dict.py
other-licenses/simplejson-2.1.1/simplejson/scanner.py
other-licenses/simplejson-2.1.1/simplejson/tests/__init__.py
other-licenses/simplejson-2.1.1/simplejson/tests/test_check_circular.py
other-licenses/simplejson-2.1.1/simplejson/tests/test_decimal.py
other-licenses/simplejson-2.1.1/simplejson/tests/test_decode.py
other-licenses/simplejson-2.1.1/simplejson/tests/test_default.py
other-licenses/simplejson-2.1.1/simplejson/tests/test_dump.py
other-licenses/simplejson-2.1.1/simplejson/tests/test_encode_basestring_ascii.py
other-licenses/simplejson-2.1.1/simplejson/tests/test_encode_for_html.py
other-licenses/simplejson-2.1.1/simplejson/tests/test_fail.py
other-licenses/simplejson-2.1.1/simplejson/tests/test_float.py
other-licenses/simplejson-2.1.1/simplejson/tests/test_indent.py
other-licenses/simplejson-2.1.1/simplejson/tests/test_pass1.py
other-licenses/simplejson-2.1.1/simplejson/tests/test_pass2.py
other-licenses/simplejson-2.1.1/simplejson/tests/test_pass3.py
other-licenses/simplejson-2.1.1/simplejson/tests/test_recursion.py
other-licenses/simplejson-2.1.1/simplejson/tests/test_scanstring.py
other-licenses/simplejson-2.1.1/simplejson/tests/test_separators.py
other-licenses/simplejson-2.1.1/simplejson/tests/test_speedups.py
other-licenses/simplejson-2.1.1/simplejson/tests/test_unicode.py
other-licenses/simplejson-2.1.1/simplejson/tool.py
other-licenses/virtualenv/MANIFEST.in
other-licenses/virtualenv/PKG-INFO
other-licenses/virtualenv/docs/_build/_sources/index.txt
other-licenses/virtualenv/docs/_build/_sources/license.txt
other-licenses/virtualenv/docs/_build/_sources/news.txt
other-licenses/virtualenv/docs/index.txt
other-licenses/virtualenv/docs/license.txt
other-licenses/virtualenv/docs/news.txt
other-licenses/virtualenv/scripts/virtualenv
other-licenses/virtualenv/setup.cfg
other-licenses/virtualenv/setup.py
other-licenses/virtualenv/virtualenv.py
other-licenses/virtualenv/virtualenv_support/__init__.py
other-licenses/virtualenv/virtualenv_support/distribute-0.6.8.tar.gz
other-licenses/virtualenv/virtualenv_support/pip-0.7.1.tar.gz
other-licenses/virtualenv/virtualenv_support/setuptools-0.6c11-py2.4.egg
other-licenses/virtualenv/virtualenv_support/setuptools-0.6c11-py2.5.egg
other-licenses/virtualenv/virtualenv_support/setuptools-0.6c11-py2.6.egg
testing/firebug/Makefile.in
testing/mozmill/Makefile.in
testing/mozmill/README.txt
testing/mozmill/installmozmill.py
testing/mozmill/jsbridge/MANIFEST.in
testing/mozmill/jsbridge/jsbridge/__init__.py
testing/mozmill/jsbridge/jsbridge/extension/chrome.manifest
testing/mozmill/jsbridge/jsbridge/extension/chrome/content/overlay.js
testing/mozmill/jsbridge/jsbridge/extension/chrome/content/overlay.xul
testing/mozmill/jsbridge/jsbridge/extension/components/cmdarg.js
testing/mozmill/jsbridge/jsbridge/extension/install.rdf
testing/mozmill/jsbridge/jsbridge/extension/resource/modules/events.js
testing/mozmill/jsbridge/jsbridge/extension/resource/modules/init.js
testing/mozmill/jsbridge/jsbridge/extension/resource/modules/json2.js
testing/mozmill/jsbridge/jsbridge/extension/resource/modules/server.js
testing/mozmill/jsbridge/jsbridge/jsobjects.py
testing/mozmill/jsbridge/jsbridge/network.py
testing/mozmill/jsbridge/setup.py
testing/mozmill/mozmill/MANIFEST.in
testing/mozmill/mozmill/docs/Makefile
testing/mozmill/mozmill/docs/_build/doctrees/environment.pickle
testing/mozmill/mozmill/docs/_build/doctrees/index.doctree
testing/mozmill/mozmill/docs/_build/html/_sources/index.txt
testing/mozmill/mozmill/docs/_build/html/_static/contents.png
testing/mozmill/mozmill/docs/_build/html/_static/default.css
testing/mozmill/mozmill/docs/_build/html/_static/doctools.js
testing/mozmill/mozmill/docs/_build/html/_static/file.png
testing/mozmill/mozmill/docs/_build/html/_static/jquery.js
testing/mozmill/mozmill/docs/_build/html/_static/minus.png
testing/mozmill/mozmill/docs/_build/html/_static/navigation.png
testing/mozmill/mozmill/docs/_build/html/_static/plus.png
testing/mozmill/mozmill/docs/_build/html/_static/pygments.css
testing/mozmill/mozmill/docs/_build/html/_static/rightsidebar.css
testing/mozmill/mozmill/docs/_build/html/_static/searchtools.js
testing/mozmill/mozmill/docs/_build/html/_static/sphinxdoc.css
testing/mozmill/mozmill/docs/_build/html/_static/stickysidebar.css
testing/mozmill/mozmill/docs/_build/html/_static/traditional.css
testing/mozmill/mozmill/docs/_build/html/genindex.html
testing/mozmill/mozmill/docs/_build/html/index.html
testing/mozmill/mozmill/docs/_build/html/modindex.html
testing/mozmill/mozmill/docs/_build/html/objects.inv
testing/mozmill/mozmill/docs/_build/html/search.html
testing/mozmill/mozmill/docs/_build/html/searchindex.js
testing/mozmill/mozmill/docs/conf.py
testing/mozmill/mozmill/docs/index.rst
testing/mozmill/mozmill/mozmill/__init__.py
testing/mozmill/mozmill/mozmill/extension/build.xml
testing/mozmill/mozmill/mozmill/extension/chrome-jar.manifest
testing/mozmill/mozmill/mozmill/extension/chrome.manifest
testing/mozmill/mozmill/mozmill/extension/content/chrome.js
testing/mozmill/mozmill/mozmill/extension/content/css/fg.menu.css
testing/mozmill/mozmill/mozmill/extension/content/css/mozmill.css
testing/mozmill/mozmill/mozmill/extension/content/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png
testing/mozmill/mozmill/mozmill/extension/content/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png
testing/mozmill/mozmill/mozmill/extension/content/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png
testing/mozmill/mozmill/mozmill/extension/content/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png
testing/mozmill/mozmill/mozmill/extension/content/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png
testing/mozmill/mozmill/mozmill/extension/content/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png
testing/mozmill/mozmill/mozmill/extension/content/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png
testing/mozmill/mozmill/mozmill/extension/content/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png
testing/mozmill/mozmill/mozmill/extension/content/css/smoothness/images/ui-icons_222222_256x240.png
testing/mozmill/mozmill/mozmill/extension/content/css/smoothness/images/ui-icons_2e83ff_256x240.png
testing/mozmill/mozmill/mozmill/extension/content/css/smoothness/images/ui-icons_454545_256x240.png
testing/mozmill/mozmill/mozmill/extension/content/css/smoothness/images/ui-icons_888888_256x240.png
testing/mozmill/mozmill/mozmill/extension/content/css/smoothness/images/ui-icons_cd0a0a_256x240.png
testing/mozmill/mozmill/mozmill/extension/content/css/smoothness/jquery-ui-1.7.1.custom.css
testing/mozmill/mozmill/mozmill/extension/content/dx.js
testing/mozmill/mozmill/mozmill/extension/content/dxwindow.xul
testing/mozmill/mozmill/mozmill/extension/content/editor/bespin/BespinEmbedded.css
testing/mozmill/mozmill/mozmill/extension/content/editor/bespin/BespinEmbedded.js
testing/mozmill/mozmill/mozmill/extension/content/editor/bespin/BespinMain.js
testing/mozmill/mozmill/mozmill/extension/content/editor/bespin/BespinWorker.js
testing/mozmill/mozmill/mozmill/extension/content/editor/bespin/resources/screen_theme/theme.less
testing/mozmill/mozmill/mozmill/extension/content/editor/editor.js
testing/mozmill/mozmill/mozmill/extension/content/img/wmIcon.png
testing/mozmill/mozmill/mozmill/extension/content/inspector.js
testing/mozmill/mozmill/mozmill/extension/content/jquery/fg.menu.css
testing/mozmill/mozmill/mozmill/extension/content/jquery/fg.menu.js
testing/mozmill/mozmill/mozmill/extension/content/jquery/jquery-1.3.2.min.js
testing/mozmill/mozmill/mozmill/extension/content/jquery/jquery-ui-1.7.1.custom.min.js
testing/mozmill/mozmill/mozmill/extension/content/jquery/jquery.ui.core.js
testing/mozmill/mozmill/mozmill/extension/content/jquery/jquery.ui.menu.js
testing/mozmill/mozmill/mozmill/extension/content/menus.js
testing/mozmill/mozmill/mozmill/extension/content/mozmill.html
testing/mozmill/mozmill/mozmill/extension/content/mozmill.js
testing/mozmill/mozmill/mozmill/extension/content/mozmill.xul
testing/mozmill/mozmill/mozmill/extension/content/output.js
testing/mozmill/mozmill/mozmill/extension/content/overlay.js
testing/mozmill/mozmill/mozmill/extension/content/overlay.xul
testing/mozmill/mozmill/mozmill/extension/content/overlay_tb.xul
testing/mozmill/mozmill/mozmill/extension/content/prefs.xul
testing/mozmill/mozmill/mozmill/extension/content/rec.js
testing/mozmill/mozmill/mozmill/extension/content/shell.js
testing/mozmill/mozmill/mozmill/extension/content/shortcuts.js
testing/mozmill/mozmill/mozmill/extension/content/testwindow.xul
testing/mozmill/mozmill/mozmill/extension/content/ui.js
testing/mozmill/mozmill/mozmill/extension/defaults/preferences/debug.js
testing/mozmill/mozmill/mozmill/extension/install.rdf
testing/mozmill/mozmill/mozmill/extension/locale/en-US/mozmill.dtd
testing/mozmill/mozmill/mozmill/extension/locale/en-US/overlay.dtd
testing/mozmill/mozmill/mozmill/extension/readme.txt
testing/mozmill/mozmill/mozmill/extension/resource/modules/controller.js
testing/mozmill/mozmill/mozmill/extension/resource/modules/elementslib.js
testing/mozmill/mozmill/mozmill/extension/resource/modules/events.js
testing/mozmill/mozmill/mozmill/extension/resource/modules/frame.js
testing/mozmill/mozmill/mozmill/extension/resource/modules/init.js
testing/mozmill/mozmill/mozmill/extension/resource/modules/inspection.js
testing/mozmill/mozmill/mozmill/extension/resource/modules/jum.js
testing/mozmill/mozmill/mozmill/extension/resource/modules/mozmill.js
testing/mozmill/mozmill/mozmill/extension/resource/modules/utils.js
testing/mozmill/mozmill/mozmill/extension/resource/stdlib/EventUtils.js
testing/mozmill/mozmill/mozmill/extension/resource/stdlib/arrays.js
testing/mozmill/mozmill/mozmill/extension/resource/stdlib/dom.js
testing/mozmill/mozmill/mozmill/extension/resource/stdlib/httpd.js
testing/mozmill/mozmill/mozmill/extension/resource/stdlib/json2.js
testing/mozmill/mozmill/mozmill/extension/resource/stdlib/objects.js
testing/mozmill/mozmill/mozmill/extension/resource/stdlib/os.js
testing/mozmill/mozmill/mozmill/extension/resource/stdlib/securable-module.js
testing/mozmill/mozmill/mozmill/extension/resource/stdlib/strings.js
testing/mozmill/mozmill/mozmill/extension/resource/stdlib/withs.js
testing/mozmill/mozmill/mozmill/extension/skin/chrome.css
testing/mozmill/mozmill/mozmill/extension/skin/overlay.css
testing/mozmill/mozmill/mozmill/extension/zipexclude.lst
testing/mozmill/mozmill/patches/eventUtils.patch
testing/mozmill/mozmill/patches/httpd.patch
testing/mozmill/mozmill/scripts/songmill.py
testing/mozmill/mozmill/scripts/sync_dependencies.py
testing/mozmill/mozmill/setup.py
testing/mozmill/mozmill/test/commonjs/modules1/moda.js
testing/mozmill/mozmill/test/commonjs/modules1/modb.js
testing/mozmill/mozmill/test/commonjs/modules2/modc.js
testing/mozmill/mozmill/test/commonjs/tests/test_require.js
testing/mozmill/mozmill/test/elementLib-UnitTest.js
testing/mozmill/mozmill/test/first_sunbird_test.js
testing/mozmill/mozmill/test/first_thunderbird_test.js
testing/mozmill/mozmill/test/restart/test_browser/testPost.js
testing/mozmill/mozmill/test/restart/test_browser/testPre.js
testing/mozmill/mozmill/test/restart/test_fails/testPost.js
testing/mozmill/mozmill/test/restart/test_fails/testPre.js
testing/mozmill/mozmill/test/restart/test_multi_restart/test1.js
testing/mozmill/mozmill/test/restart/test_multi_restart/test2.js
testing/mozmill/mozmill/test/restart/test_multi_restart/test3.js
testing/mozmill/mozmill/test/restart/test_multi_restart/test4.js
testing/mozmill/mozmill/test/restart/test_multi_restart/test5.js
testing/mozmill/mozmill/test/restart/test_nothing/testPost.js
testing/mozmill/mozmill/test/restart/test_nothing/testPre.js
testing/mozmill/mozmill/test/restart/test_python_callback/callbacks.py
testing/mozmill/mozmill/test/restart/test_python_callback/testPost.js
testing/mozmill/mozmill/test/restart/test_python_callback/testPre.js
testing/mozmill/mozmill/test/restart/test_user_restart/test1.js
testing/mozmill/mozmill/test/restart/test_user_restart/test2.js
testing/mozmill/mozmill/test/restart/test_user_restart/test3.js
testing/mozmill/mozmill/test/restart/test_user_restart/test4.js
testing/mozmill/mozmill/test/restart/test_user_restart/test5.js
testing/mozmill/mozmill/test/test_assert.js
testing/mozmill/mozmill/test/test_demo.js
testing/mozmill/mozmill/test/test_diggIterator.js
testing/mozmill/mozmill/test/test_focus.js
testing/mozmill/mozmill/test/test_git.js
testing/mozmill/mozmill/test/test_googleIterator.js
testing/mozmill/mozmill/test/test_menu.js
testing/mozmill/mozmill/test/test_prefs.js
testing/mozmill/mozmill/test/test_property.js
testing/mozmill/mozmill/test/test_python_callbacks.js
testing/mozmill/mozmill/test/test_python_callbacks_callbacks.py
testing/mozmill/mozmill/test/test_something/test_parents.js
testing/mozmill/mozmill/test/test_something/test_sub/test_deps.js
testing/mozmill/mozmill/test/test_synthesizeEvents.js
testing/mozmill/mozmill/test/test_unit.js
testing/mozmill/mozmill/test/test_usershutdown.js
testing/mozmill/mozmill/test/test_waitForPageLoad.js
testing/mozmill/mozrunner/mozrunner/__init__.py
testing/mozmill/mozrunner/mozrunner/killableprocess.py
testing/mozmill/mozrunner/mozrunner/qijo.py
testing/mozmill/mozrunner/mozrunner/winprocess.py
testing/mozmill/mozrunner/mozrunner/wpk.py
testing/mozmill/mozrunner/setup.py
testing/mozmill/mozrunner/tests/debub_settings.py
testing/mozmill/mozrunner/tests/jss_settings.py
testing/mozmill/simplejson-2.1.1/CHANGES.txt
testing/mozmill/simplejson-2.1.1/LICENSE.txt
testing/mozmill/simplejson-2.1.1/PKG-INFO
testing/mozmill/simplejson-2.1.1/conf.py
testing/mozmill/simplejson-2.1.1/docs/_sources/index.txt
testing/mozmill/simplejson-2.1.1/docs/_static/contents.png
testing/mozmill/simplejson-2.1.1/docs/_static/default.css
testing/mozmill/simplejson-2.1.1/docs/_static/doctools.js
testing/mozmill/simplejson-2.1.1/docs/_static/file.png
testing/mozmill/simplejson-2.1.1/docs/_static/interface.js
testing/mozmill/simplejson-2.1.1/docs/_static/jquery.js
testing/mozmill/simplejson-2.1.1/docs/_static/minus.png
testing/mozmill/simplejson-2.1.1/docs/_static/navigation.png
testing/mozmill/simplejson-2.1.1/docs/_static/plus.png
testing/mozmill/simplejson-2.1.1/docs/_static/pygments.css
testing/mozmill/simplejson-2.1.1/docs/_static/rightsidebar.css
testing/mozmill/simplejson-2.1.1/docs/_static/searchtools.js
testing/mozmill/simplejson-2.1.1/docs/_static/sphinxdoc.css
testing/mozmill/simplejson-2.1.1/docs/_static/stickysidebar.css
testing/mozmill/simplejson-2.1.1/docs/_static/traditional.css
testing/mozmill/simplejson-2.1.1/docs/genindex.html
testing/mozmill/simplejson-2.1.1/docs/index.html
testing/mozmill/simplejson-2.1.1/docs/objects.inv
testing/mozmill/simplejson-2.1.1/docs/search.html
testing/mozmill/simplejson-2.1.1/docs/searchindex.js
testing/mozmill/simplejson-2.1.1/docs/searchindex.json
testing/mozmill/simplejson-2.1.1/ez_setup.py
testing/mozmill/simplejson-2.1.1/index.rst
testing/mozmill/simplejson-2.1.1/scripts/make_docs.py
testing/mozmill/simplejson-2.1.1/setup.cfg
testing/mozmill/simplejson-2.1.1/setup.py
testing/mozmill/simplejson-2.1.1/simplejson/__init__.py
testing/mozmill/simplejson-2.1.1/simplejson/_speedups.c
testing/mozmill/simplejson-2.1.1/simplejson/decoder.py
testing/mozmill/simplejson-2.1.1/simplejson/encoder.py
testing/mozmill/simplejson-2.1.1/simplejson/ordered_dict.py
testing/mozmill/simplejson-2.1.1/simplejson/scanner.py
testing/mozmill/simplejson-2.1.1/simplejson/tests/__init__.py
testing/mozmill/simplejson-2.1.1/simplejson/tests/test_check_circular.py
testing/mozmill/simplejson-2.1.1/simplejson/tests/test_decimal.py
testing/mozmill/simplejson-2.1.1/simplejson/tests/test_decode.py
testing/mozmill/simplejson-2.1.1/simplejson/tests/test_default.py
testing/mozmill/simplejson-2.1.1/simplejson/tests/test_dump.py
testing/mozmill/simplejson-2.1.1/simplejson/tests/test_encode_basestring_ascii.py
testing/mozmill/simplejson-2.1.1/simplejson/tests/test_encode_for_html.py
testing/mozmill/simplejson-2.1.1/simplejson/tests/test_fail.py
testing/mozmill/simplejson-2.1.1/simplejson/tests/test_float.py
testing/mozmill/simplejson-2.1.1/simplejson/tests/test_indent.py
testing/mozmill/simplejson-2.1.1/simplejson/tests/test_pass1.py
testing/mozmill/simplejson-2.1.1/simplejson/tests/test_pass2.py
testing/mozmill/simplejson-2.1.1/simplejson/tests/test_pass3.py
testing/mozmill/simplejson-2.1.1/simplejson/tests/test_recursion.py
testing/mozmill/simplejson-2.1.1/simplejson/tests/test_scanstring.py
testing/mozmill/simplejson-2.1.1/simplejson/tests/test_separators.py
testing/mozmill/simplejson-2.1.1/simplejson/tests/test_speedups.py
testing/mozmill/simplejson-2.1.1/simplejson/tests/test_unicode.py
testing/mozmill/simplejson-2.1.1/simplejson/tool.py
testing/mozmill/tests/firefox/restartTests/readme.txt
testing/mozmill/tests/firefox/restartTests/testDummyTest/test1.js
testing/mozmill/tests/firefox/test-files/awesomebar/copypaste.html
testing/mozmill/tests/firefox/test-files/cookies/cookie_single.html
testing/mozmill/tests/firefox/test-files/downloading/unknown_type.fmtd
testing/mozmill/tests/firefox/test-files/downloading/unknown_type.mtdl
testing/mozmill/tests/firefox/test-files/downloading/unknown_type_pb.stbf
testing/mozmill/tests/firefox/test-files/form_manager/form.html
testing/mozmill/tests/firefox/test-files/geolocation/position.html
testing/mozmill/tests/firefox/test-files/images/firefox_favicon.ico
testing/mozmill/tests/firefox/test-files/images/mozilla_favicon.ico
testing/mozmill/tests/firefox/test-files/images/mozilla_logo.jpg
testing/mozmill/tests/firefox/test-files/images/seamonkey_favicon.ico
testing/mozmill/tests/firefox/test-files/images/thunderbird_favicon.ico
testing/mozmill/tests/firefox/test-files/layout/mozilla.html
testing/mozmill/tests/firefox/test-files/layout/mozilla_community.html
testing/mozmill/tests/firefox/test-files/layout/mozilla_contribute.html
testing/mozmill/tests/firefox/test-files/layout/mozilla_governance.html
testing/mozmill/tests/firefox/test-files/layout/mozilla_grants.html
testing/mozmill/tests/firefox/test-files/layout/mozilla_mission.html
testing/mozmill/tests/firefox/test-files/layout/mozilla_organizations.html
testing/mozmill/tests/firefox/test-files/layout/mozilla_projects.html
testing/mozmill/tests/firefox/test-files/password_manager/login_form.html
testing/mozmill/tests/firefox/test-files/plugins/default_plugin.html
testing/mozmill/tests/firefox/test-files/popups/popup.html
testing/mozmill/tests/firefox/test-files/popups/popups_2.html
testing/mozmill/tests/firefox/test-files/search/mozsearch.html
testing/mozmill/tests/firefox/test-files/search/mozsearch.xml
testing/mozmill/tests/firefox/test-files/search/opensearch.html
testing/mozmill/tests/firefox/test-files/search/opensearch.xml
testing/mozmill/tests/firefox/test-files/search/searchresults.html
testing/mozmill/tests/firefox/test-files/tabbedbrowsing/openinnewtab.html
testing/mozmill/tests/firefox/test-files/tabbedbrowsing/openinnewtab_target.html
testing/mozmill/tests/firefox/testAwesomeBar/testFaviconInAutocomplete.js
testing/mozmill/tests/firefox/testAwesomeBar/testGoButton.js
testing/mozmill/tests/firefox/testPreferences/testSetToCurrentPage.js
testing/mozmill/tests/firefox/testPrivateBrowsing/testCloseWindow.js
testing/mozmill/tests/firefox/testSessionStore/testUndoTabFromContextMenu.js
testing/mozmill/tests/firefox/testTechnicalTools/testAccessPageInfoDialog.js
testing/mozmill/tests/firefox/testToolbar/testBackForwardButtons.js
testing/mozmill/tests/shared-modules/readme.txt
testing/mozmill/tests/shared-modules/testAddonsAPI.js
testing/mozmill/tests/shared-modules/testDOMUtilsAPI.js
testing/mozmill/tests/shared-modules/testDownloadsAPI.js
testing/mozmill/tests/shared-modules/testModalDialogAPI.js
testing/mozmill/tests/shared-modules/testPlacesAPI.js
testing/mozmill/tests/shared-modules/testPrefsAPI.js
testing/mozmill/tests/shared-modules/testPrivateBrowsingAPI.js
testing/mozmill/tests/shared-modules/testSearchAPI.js
testing/mozmill/tests/shared-modules/testSessionStoreAPI.js
testing/mozmill/tests/shared-modules/testSoftwareUpdateAPI.js
testing/mozmill/tests/shared-modules/testTabbedBrowsingAPI.js
testing/mozmill/tests/shared-modules/testToolbarAPI.js
testing/mozmill/tests/shared-modules/testUtilsAPI.js
testing/mozmill/tests/shared-modules/testWidgetsAPI.js
testing/mozmill/virtualenv/MANIFEST.in
testing/mozmill/virtualenv/PKG-INFO
testing/mozmill/virtualenv/docs/_build/_sources/index.txt
testing/mozmill/virtualenv/docs/_build/_sources/license.txt
testing/mozmill/virtualenv/docs/_build/_sources/news.txt
testing/mozmill/virtualenv/docs/index.txt
testing/mozmill/virtualenv/docs/license.txt
testing/mozmill/virtualenv/docs/news.txt
testing/mozmill/virtualenv/scripts/virtualenv
testing/mozmill/virtualenv/setup.cfg
testing/mozmill/virtualenv/setup.py
testing/mozmill/virtualenv/virtualenv.py
testing/mozmill/virtualenv/virtualenv_support/__init__.py
testing/mozmill/virtualenv/virtualenv_support/distribute-0.6.8.tar.gz
testing/mozmill/virtualenv/virtualenv_support/pip-0.7.1.tar.gz
testing/mozmill/virtualenv/virtualenv_support/setuptools-0.6c11-py2.4.egg
testing/mozmill/virtualenv/virtualenv_support/setuptools-0.6c11-py2.5.egg
testing/mozmill/virtualenv/virtualenv_support/setuptools-0.6c11-py2.6.egg
testing/testsuite-targets.mk
toolkit/toolkit-tiers.mk
rename from testing/mozmill/simplejson-2.1.1/CHANGES.txt
rename to other-licenses/simplejson-2.1.1/CHANGES.txt
rename from testing/mozmill/simplejson-2.1.1/LICENSE.txt
rename to other-licenses/simplejson-2.1.1/LICENSE.txt
rename from testing/mozmill/simplejson-2.1.1/PKG-INFO
rename to other-licenses/simplejson-2.1.1/PKG-INFO
rename from testing/mozmill/simplejson-2.1.1/conf.py
rename to other-licenses/simplejson-2.1.1/conf.py
rename from testing/mozmill/simplejson-2.1.1/docs/_sources/index.txt
rename to other-licenses/simplejson-2.1.1/docs/_sources/index.txt
rename from testing/mozmill/simplejson-2.1.1/docs/_static/contents.png
rename to other-licenses/simplejson-2.1.1/docs/_static/contents.png
rename from testing/mozmill/simplejson-2.1.1/docs/_static/default.css
rename to other-licenses/simplejson-2.1.1/docs/_static/default.css
rename from testing/mozmill/simplejson-2.1.1/docs/_static/doctools.js
rename to other-licenses/simplejson-2.1.1/docs/_static/doctools.js
rename from testing/mozmill/simplejson-2.1.1/docs/_static/file.png
rename to other-licenses/simplejson-2.1.1/docs/_static/file.png
rename from testing/mozmill/simplejson-2.1.1/docs/_static/interface.js
rename to other-licenses/simplejson-2.1.1/docs/_static/interface.js
rename from testing/mozmill/simplejson-2.1.1/docs/_static/jquery.js
rename to other-licenses/simplejson-2.1.1/docs/_static/jquery.js
rename from testing/mozmill/simplejson-2.1.1/docs/_static/minus.png
rename to other-licenses/simplejson-2.1.1/docs/_static/minus.png
rename from testing/mozmill/simplejson-2.1.1/docs/_static/navigation.png
rename to other-licenses/simplejson-2.1.1/docs/_static/navigation.png
rename from testing/mozmill/simplejson-2.1.1/docs/_static/plus.png
rename to other-licenses/simplejson-2.1.1/docs/_static/plus.png
rename from testing/mozmill/simplejson-2.1.1/docs/_static/pygments.css
rename to other-licenses/simplejson-2.1.1/docs/_static/pygments.css
rename from testing/mozmill/simplejson-2.1.1/docs/_static/rightsidebar.css
rename to other-licenses/simplejson-2.1.1/docs/_static/rightsidebar.css
rename from testing/mozmill/simplejson-2.1.1/docs/_static/searchtools.js
rename to other-licenses/simplejson-2.1.1/docs/_static/searchtools.js
rename from testing/mozmill/simplejson-2.1.1/docs/_static/sphinxdoc.css
rename to other-licenses/simplejson-2.1.1/docs/_static/sphinxdoc.css
rename from testing/mozmill/simplejson-2.1.1/docs/_static/stickysidebar.css
rename to other-licenses/simplejson-2.1.1/docs/_static/stickysidebar.css
rename from testing/mozmill/simplejson-2.1.1/docs/_static/traditional.css
rename to other-licenses/simplejson-2.1.1/docs/_static/traditional.css
rename from testing/mozmill/simplejson-2.1.1/docs/genindex.html
rename to other-licenses/simplejson-2.1.1/docs/genindex.html
rename from testing/mozmill/simplejson-2.1.1/docs/index.html
rename to other-licenses/simplejson-2.1.1/docs/index.html
rename from testing/mozmill/simplejson-2.1.1/docs/objects.inv
rename to other-licenses/simplejson-2.1.1/docs/objects.inv
rename from testing/mozmill/simplejson-2.1.1/docs/search.html
rename to other-licenses/simplejson-2.1.1/docs/search.html
rename from testing/mozmill/simplejson-2.1.1/docs/searchindex.js
rename to other-licenses/simplejson-2.1.1/docs/searchindex.js
rename from testing/mozmill/simplejson-2.1.1/docs/searchindex.json
rename to other-licenses/simplejson-2.1.1/docs/searchindex.json
rename from testing/mozmill/simplejson-2.1.1/ez_setup.py
rename to other-licenses/simplejson-2.1.1/ez_setup.py
rename from testing/mozmill/simplejson-2.1.1/index.rst
rename to other-licenses/simplejson-2.1.1/index.rst
rename from testing/mozmill/simplejson-2.1.1/scripts/make_docs.py
rename to other-licenses/simplejson-2.1.1/scripts/make_docs.py
rename from testing/mozmill/simplejson-2.1.1/setup.cfg
rename to other-licenses/simplejson-2.1.1/setup.cfg
rename from testing/mozmill/simplejson-2.1.1/setup.py
rename to other-licenses/simplejson-2.1.1/setup.py
rename from testing/mozmill/simplejson-2.1.1/simplejson/__init__.py
rename to other-licenses/simplejson-2.1.1/simplejson/__init__.py
rename from testing/mozmill/simplejson-2.1.1/simplejson/_speedups.c
rename to other-licenses/simplejson-2.1.1/simplejson/_speedups.c
rename from testing/mozmill/simplejson-2.1.1/simplejson/decoder.py
rename to other-licenses/simplejson-2.1.1/simplejson/decoder.py
rename from testing/mozmill/simplejson-2.1.1/simplejson/encoder.py
rename to other-licenses/simplejson-2.1.1/simplejson/encoder.py
rename from testing/mozmill/simplejson-2.1.1/simplejson/ordered_dict.py
rename to other-licenses/simplejson-2.1.1/simplejson/ordered_dict.py
rename from testing/mozmill/simplejson-2.1.1/simplejson/scanner.py
rename to other-licenses/simplejson-2.1.1/simplejson/scanner.py
rename from testing/mozmill/simplejson-2.1.1/simplejson/tests/__init__.py
rename to other-licenses/simplejson-2.1.1/simplejson/tests/__init__.py
rename from testing/mozmill/simplejson-2.1.1/simplejson/tests/test_check_circular.py
rename to other-licenses/simplejson-2.1.1/simplejson/tests/test_check_circular.py
rename from testing/mozmill/simplejson-2.1.1/simplejson/tests/test_decimal.py
rename to other-licenses/simplejson-2.1.1/simplejson/tests/test_decimal.py
rename from testing/mozmill/simplejson-2.1.1/simplejson/tests/test_decode.py
rename to other-licenses/simplejson-2.1.1/simplejson/tests/test_decode.py
rename from testing/mozmill/simplejson-2.1.1/simplejson/tests/test_default.py
rename to other-licenses/simplejson-2.1.1/simplejson/tests/test_default.py
rename from testing/mozmill/simplejson-2.1.1/simplejson/tests/test_dump.py
rename to other-licenses/simplejson-2.1.1/simplejson/tests/test_dump.py
rename from testing/mozmill/simplejson-2.1.1/simplejson/tests/test_encode_basestring_ascii.py
rename to other-licenses/simplejson-2.1.1/simplejson/tests/test_encode_basestring_ascii.py
rename from testing/mozmill/simplejson-2.1.1/simplejson/tests/test_encode_for_html.py
rename to other-licenses/simplejson-2.1.1/simplejson/tests/test_encode_for_html.py
rename from testing/mozmill/simplejson-2.1.1/simplejson/tests/test_fail.py
rename to other-licenses/simplejson-2.1.1/simplejson/tests/test_fail.py
rename from testing/mozmill/simplejson-2.1.1/simplejson/tests/test_float.py
rename to other-licenses/simplejson-2.1.1/simplejson/tests/test_float.py
rename from testing/mozmill/simplejson-2.1.1/simplejson/tests/test_indent.py
rename to other-licenses/simplejson-2.1.1/simplejson/tests/test_indent.py
rename from testing/mozmill/simplejson-2.1.1/simplejson/tests/test_pass1.py
rename to other-licenses/simplejson-2.1.1/simplejson/tests/test_pass1.py
rename from testing/mozmill/simplejson-2.1.1/simplejson/tests/test_pass2.py
rename to other-licenses/simplejson-2.1.1/simplejson/tests/test_pass2.py
rename from testing/mozmill/simplejson-2.1.1/simplejson/tests/test_pass3.py
rename to other-licenses/simplejson-2.1.1/simplejson/tests/test_pass3.py
rename from testing/mozmill/simplejson-2.1.1/simplejson/tests/test_recursion.py
rename to other-licenses/simplejson-2.1.1/simplejson/tests/test_recursion.py
rename from testing/mozmill/simplejson-2.1.1/simplejson/tests/test_scanstring.py
rename to other-licenses/simplejson-2.1.1/simplejson/tests/test_scanstring.py
rename from testing/mozmill/simplejson-2.1.1/simplejson/tests/test_separators.py
rename to other-licenses/simplejson-2.1.1/simplejson/tests/test_separators.py
rename from testing/mozmill/simplejson-2.1.1/simplejson/tests/test_speedups.py
rename to other-licenses/simplejson-2.1.1/simplejson/tests/test_speedups.py
rename from testing/mozmill/simplejson-2.1.1/simplejson/tests/test_unicode.py
rename to other-licenses/simplejson-2.1.1/simplejson/tests/test_unicode.py
rename from testing/mozmill/simplejson-2.1.1/simplejson/tool.py
rename to other-licenses/simplejson-2.1.1/simplejson/tool.py
rename from testing/mozmill/virtualenv/MANIFEST.in
rename to other-licenses/virtualenv/MANIFEST.in
rename from testing/mozmill/virtualenv/PKG-INFO
rename to other-licenses/virtualenv/PKG-INFO
rename from testing/mozmill/virtualenv/docs/_build/_sources/index.txt
rename to other-licenses/virtualenv/docs/_build/_sources/index.txt
rename from testing/mozmill/virtualenv/docs/_build/_sources/license.txt
rename to other-licenses/virtualenv/docs/_build/_sources/license.txt
rename from testing/mozmill/virtualenv/docs/_build/_sources/news.txt
rename to other-licenses/virtualenv/docs/_build/_sources/news.txt
rename from testing/mozmill/virtualenv/docs/index.txt
rename to other-licenses/virtualenv/docs/index.txt
rename from testing/mozmill/virtualenv/docs/license.txt
rename to other-licenses/virtualenv/docs/license.txt
rename from testing/mozmill/virtualenv/docs/news.txt
rename to other-licenses/virtualenv/docs/news.txt
rename from testing/mozmill/virtualenv/scripts/virtualenv
rename to other-licenses/virtualenv/scripts/virtualenv
rename from testing/mozmill/virtualenv/setup.cfg
rename to other-licenses/virtualenv/setup.cfg
rename from testing/mozmill/virtualenv/setup.py
rename to other-licenses/virtualenv/setup.py
rename from testing/mozmill/virtualenv/virtualenv.py
rename to other-licenses/virtualenv/virtualenv.py
rename from testing/mozmill/virtualenv/virtualenv_support/__init__.py
rename to other-licenses/virtualenv/virtualenv_support/__init__.py
rename from testing/mozmill/virtualenv/virtualenv_support/distribute-0.6.8.tar.gz
rename to other-licenses/virtualenv/virtualenv_support/distribute-0.6.8.tar.gz
rename from testing/mozmill/virtualenv/virtualenv_support/pip-0.7.1.tar.gz
rename to other-licenses/virtualenv/virtualenv_support/pip-0.7.1.tar.gz
rename from testing/mozmill/virtualenv/virtualenv_support/setuptools-0.6c11-py2.4.egg
rename to other-licenses/virtualenv/virtualenv_support/setuptools-0.6c11-py2.4.egg
rename from testing/mozmill/virtualenv/virtualenv_support/setuptools-0.6c11-py2.5.egg
rename to other-licenses/virtualenv/virtualenv_support/setuptools-0.6c11-py2.5.egg
rename from testing/mozmill/virtualenv/virtualenv_support/setuptools-0.6c11-py2.6.egg
rename to other-licenses/virtualenv/virtualenv_support/setuptools-0.6c11-py2.6.egg
--- a/testing/firebug/Makefile.in
+++ b/testing/firebug/Makefile.in
@@ -34,32 +34,32 @@
 # the terms of any one of the MPL, the GPL or the LGPL.
 #
 # ***** END LICENSE BLOCK *****
 
 DEPTH = ../..
 topsrcdir = @top_srcdir@
 srcdir = @srcdir@
 VPATH = @srcdir@
-mozmilldir = @top_srcdir@/testing/mozmill
+otherlicenses = @top_srcdir@/other-licenses
 
 include $(DEPTH)/config/autoconf.mk
 
 MODULE = testing_firebug
 
 include $(topsrcdir)/config/rules.mk
 
-# Firebug requires several of the same packages as Mozmill.
-# Rather than check them into m-c twice, just grab them from
-# the Mozmill directory.
-TEST_MOZMILL_PACKAGES = \
+# Firebug requires several 3rd party packages.
+# Grab them from the other-licenses directory:
+# http://mxr.mozilla.org/mozilla-central/source/other-licenses/
+TEST_OTHER_PACKAGES = \
   simplejson-2.1.1 \
   $(NULL)
 
-TEST_MOZMILL_EXTRAS = \
+TEST_OTHER_EXTRAS = \
   virtualenv \
   $(NULL)
 
 # Harness packages from the srcdir;
 # python packages to be installed IN INSTALLATION ORDER.
 # Packages later in the list can depend only on packages earlier in the list.
 TEST_HARNESS_PACKAGES = \
   mozprofile \
@@ -74,14 +74,14 @@ TEST_HARNESS_EXTRAS = \
 TEST_HARNESS_FILES = \
   fb_run.py \
   fb-test-runner.config \
   $(NULL)
 
 stage-package: PKG_STAGE = $(DIST)/test-package-stage
 stage-package:
 	$(NSINSTALL) -D $(PKG_STAGE)/firebug
-	@echo $(TEST_MOZMILL_PACKAGES) $(TEST_HARNESS_PACKAGES) > $(PKG_STAGE)/firebug/PACKAGES
+	@echo $(TEST_OTHER_PACKAGES) $(TEST_HARNESS_PACKAGES) > $(PKG_STAGE)/firebug/PACKAGES
 	@(cd $(srcdir) && tar $(TAR_CREATE_FLAGS) - $(TEST_HARNESS_PACKAGES)) | (cd $(PKG_STAGE)/firebug && tar -xf -)
 	@(cd $(srcdir) && tar $(TAR_CREATE_FLAGS) - $(TEST_HARNESS_FILES)) | (cd $(PKG_STAGE)/firebug && tar -xf -)
 	@(cd $(srcdir) && tar $(TAR_CREATE_FLAGS) - $(TEST_HARNESS_EXTRAS)) | (cd $(PKG_STAGE)/firebug && tar -xf -)
-	@(cd $(mozmilldir) && tar $(TAR_CREATE_FLAGS) - $(TEST_MOZMILL_EXTRAS)) | (cd $(PKG_STAGE)/firebug && tar -xf -)
-	@(cd $(mozmilldir) && tar $(TAR_CREATE_FLAGS) - $(TEST_MOZMILL_PACKAGES)) | (cd $(PKG_STAGE)/firebug && tar -xf -)
+	@(cd $(otherlicenses) && tar $(TAR_CREATE_FLAGS) - $(TEST_OTHER_EXTRAS)) | (cd $(PKG_STAGE)/firebug && tar -xf -)
+	@(cd $(otherlicenses) && tar $(TAR_CREATE_FLAGS) - $(TEST_OTHER_PACKAGES)) | (cd $(PKG_STAGE)/firebug && tar -xf -)
deleted file mode 100644
--- a/testing/mozmill/Makefile.in
+++ /dev/null
@@ -1,101 +0,0 @@
-#
-# ***** BEGIN LICENSE BLOCK *****
-# Version: MPL 1.1/GPL 2.0/LGPL 2.1
-#
-# The contents of this file are subject to the Mozilla Public License Version
-# 1.1 (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-# http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS IS" basis,
-# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-# for the specific language governing rights and limitations under the
-# License.
-#
-# The Original Code is mozilla.org code.
-#
-# The Initial Developer of the Original Code is
-# Mozilla.org.
-# Portions created by the Initial Developer are Copyright (C) 2010
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-#     Jeff Hammel <jhammel@mozilla.com>     (Original author)
-#     Clint Talbert <ctalbert@mozilla.com>  (Original author)
-#
-# Alternatively, the contents of this file may be used under the terms of
-# either of the GNU General Public License Version 2 or later (the "GPL"),
-# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-# in which case the provisions of the GPL or the LGPL are applicable instead
-# of those above. If you wish to allow use of your version of this file only
-# under the terms of either the GPL or the LGPL, and not to allow others to
-# use your version of this file under the terms of the MPL, indicate your
-# decision by deleting the provisions above and replace them with the notice
-# and other provisions required by the GPL or the LGPL. If you do not delete
-# the provisions above, a recipient may use your version of this file under
-# the terms of any one of the MPL, the GPL or the LGPL.
-#
-# ***** END LICENSE BLOCK *****
-
-DEPTH		= ../..
-topsrcdir	= @top_srcdir@
-srcdir		= @srcdir@
-VPATH		= @srcdir@
-
-include $(DEPTH)/config/autoconf.mk
-
-MODULE		= testing_mozmill
-
-include $(topsrcdir)/config/rules.mk
-
-
-# Harness packages from the srcdir;
-# python packages to be installed IN INSTALLATION ORDER.
-# Packages later in the list can depend only on packages earlier in the list.
-# Since jsbridge depends on simplejson and mozrunner, these
-# must be installed before jsbridge is installed.  Likewise, 
-# mozmill depends on jsbridge.  If the dependencies are not
-# found installed, pip will download them from the internet
-# which is normally not desirable,
-TEST_HARNESS_PACKAGES = \
-  simplejson-2.1.1 \
-  mozrunner \
-  jsbridge \
-  mozmill \
-  $(NULL)
-
-MOZMILL_EXTRAS := \
-  virtualenv \
-  README.txt \
-  installmozmill.py \
-  $(NULL)
-
-TEST_FILES := \
-  $(TEST_HARNESS_PACKAGES) \
-  $(MOZMILL_EXTRAS) \
-  tests \
-  $(NULL)
-
-# assumes you are in objdir
-mozmill-dir:
-	$(NSINSTALL) -D $(PKG_STAGE)/mozmill
-	echo $(TEST_HARNESS_PACKAGES) > $(PKG_STAGE)/mozmill/PACKAGES
-
-install: mozmill-dir
-	(cd $(srcdir) && tar $(TAR_CREATE_FLAGS) - $(TEST_FILES)) | (cd $(PKG_STAGE)/mozmill && tar -xf -)
-
-# on WINNT, copy the tests; otherwise, assume you can symlink them
-ifeq ($(OS_ARCH),WINNT)
-install-develop: install
-else
-install-develop: mozmill-dir
-	$(INSTALL) $(foreach f, $(TEST_HARNESS_PACKAGES), "$(srcdir)/$f") $(PKG_STAGE)/mozmill/
-	(cd $(srcdir) && tar $(TAR_CREATE_FLAGS) - $(MOZMILL_EXTRAS)) | (cd $(PKG_STAGE)/mozmill && tar -xf -)
-	$(INSTALL) $(topsrcdir)/testing/mozmill/tests $(PKG_STAGE)/mozmill
-endif
-
-# Rules for staging the necessary harness bits for a test package
-stage-package: install
-
-PKG_STAGE = $(DIST)/test-package-stage
-	
deleted file mode 100644
--- a/testing/mozmill/README.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Simple mozmill test harness
-
-See https://developer.mozilla.org/en/Mozmill
-
-The tests are from http://hg.mozilla.org/qa/mozmill-tests
deleted file mode 100755
--- a/testing/mozmill/installmozmill.py
+++ /dev/null
@@ -1,162 +0,0 @@
-#!/usr/bin/env python
-
-# ***** BEGIN LICENSE BLOCK *****
-# Version: MPL 1.1/GPL 2.0/LGPL 2.1
-#
-# The contents of this file are subject to the Mozilla Public License Version
-# 1.1 (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-# http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS IS" basis,
-# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-# for the specific language governing rights and limitations under the
-# License.
-#
-# The Original Code is mozilla.org code.
-#
-# The Initial Developer of the Original Code is
-# Mozilla.org.
-# Portions created by the Initial Developer are Copyright (C) 2010
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-#     Jeff Hammel <jhammel@mozilla.com>     (Original author)
-#
-# Alternatively, the contents of this file may be used under the terms of
-# either of the GNU General Public License Version 2 or later (the "GPL"),
-# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-# in which case the provisions of the GPL or the LGPL are applicable instead
-# of those above. If you wish to allow use of your version of this file only
-# under the terms of either the GPL or the LGPL, and not to allow others to
-# use your version of this file under the terms of the MPL, indicate your
-# decision by deleting the provisions above and replace them with the notice
-# and other provisions required by the GPL or the LGPL. If you do not delete
-# the provisions above, a recipient may use your version of this file under
-# the terms of any one of the MPL, the GPL or the LGPL.
-#
-# ***** END LICENSE BLOCK *****
-
-"""
-install mozmill and its dependencies
-"""
-
-import os
-import sys
-from optparse import OptionParser
-from subprocess import call
-
-### utility functions for cross-platform
-
-def is_windows():
-  return sys.platform.startswith('win')
-
-def esc(path):
-  """quote and escape a path for cross-platform use"""
-  return '"%s"' % repr(path)[1:-1]
-
-def scripts_path(virtual_env):
-  """path to scripts directory"""
-  if is_windows():
-    return os.path.join(virtual_env, 'Scripts')
-  return os.path.join(virtual_env, 'bin')
-
-def python_script_path(virtual_env, script_name):
-  """path to a python script in a virtualenv"""
-  scripts_dir = scripts_path(virtual_env)
-  if is_windows():
-    script_name = script_name + '-script.py'
-  return os.path.join(scripts_dir, script_name)
-
-def entry_point_path(virtual_env, entry_point):
-  path = os.path.join(scripts_path(virtual_env), entry_point)
-  if is_windows():
-    path += '.exe'
-  return path
-
-### command-line entry point
-
-def main(args=None):
-  """command line front-end function"""
-
-  # parse command line arguments
-  args = args or sys.argv[1:]
-  usage = "Usage: %prog [options] [destination]"
-  parser = OptionParser(usage=usage)
-  parser.add_option('--develop', dest='develop',
-                    action='store_true', default=False,
-                    help='setup in development mode')
-  options, args = parser.parse_args(args)
-
-  # Print the python version
-  print 'Python: %s' % sys.version
-
-  # The data is kept in the same directory as the script
-  source=os.path.abspath(os.path.dirname(__file__))
-
-  # directory to install to
-  if not len(args):
-    destination = source
-  elif len(args) == 1:
-    destination = os.path.abspath(args[0])
-  else:
-    parser.print_usage()
-    parser.exit(1)
-
-  os.chdir(source)
-
-  # check for existence of necessary files
-  if not os.path.exists('virtualenv'):
-    print "File not found: virtualenv"
-    sys.exit(1)
-  PACKAGES_FILE = 'PACKAGES'
-  if not os.path.exists(PACKAGES_FILE) and destination != source:
-      PACKAGES_FILE = os.path.join(destination, PACKAGES_FILE)
-  if not os.path.exists(PACKAGES_FILE):
-    print "File not found: PACKAGES"
-
-  # packages to install in dependency order
-  PACKAGES=file(PACKAGES_FILE).read().split()
-  assert PACKAGES
-  
-  # create the virtualenv and install packages
-  env = os.environ.copy()
-  env.pop('PYTHONHOME', None)
-  returncode = call([sys.executable, os.path.join('virtualenv', 'virtualenv.py'), destination], env=env)
-  if returncode:
-    print 'Failure to install virtualenv'
-    sys.exit(returncode)
-  if options.develop:
-    python = entry_point_path(destination, 'python')
-    for package in PACKAGES:
-      oldcwd = os.getcwd()
-      os.chdir(package)
-      returncode = call([python, 'setup.py', 'develop'])
-      os.chdir(oldcwd)
-      if returncode:
-        break
-  else:
-    pip = entry_point_path(destination, 'pip')
-    returncode = call([pip, 'install'] + PACKAGES, env=env)
-
-  if returncode:
-    print 'Failure to install packages'
-    sys.exit(returncode)
-
-  # create a front end runner that is path-independent
-  template = """#!/bin/bash
-unset PYTHONHOME
-%(PYTHON)s %(MOZMILL)s $@
-"""
-  variables = {'PYTHON': esc(entry_point_path(destination, 'python')) }
-  for script in 'mozmill', 'mozmill-restart':
-    path = os.path.join(destination, script + '.sh')
-    f = file(path, 'w')
-    variables['MOZMILL'] = esc(python_script_path(destination, script))
-    print >> f, template % variables
-    f.close()
-    if not is_windows():
-      os.chmod(path, 0755)
-
-if __name__ == '__main__':
-  main()
deleted file mode 100644
--- a/testing/mozmill/jsbridge/MANIFEST.in
+++ /dev/null
@@ -1,2 +0,0 @@
-recursive-include jsbridge/extension *
-recursive-include jsbridge/xpi *
deleted file mode 100644
--- a/testing/mozmill/jsbridge/jsbridge/__init__.py
+++ /dev/null
@@ -1,177 +0,0 @@
-# ***** BEGIN LICENSE BLOCK *****
-# Version: MPL 1.1/GPL 2.0/LGPL 2.1
-# 
-# The contents of this file are subject to the Mozilla Public License Version
-# 1.1 (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-# http://www.mozilla.org/MPL/
-# 
-# Software distributed under the License is distributed on an "AS IS" basis,
-# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-# for the specific language governing rights and limitations under the
-# License.
-# 
-# The Original Code is Mozilla Corporation Code.
-# 
-# The Initial Developer of the Original Code is
-# Mikeal Rogers.
-# Portions created by the Initial Developer are Copyright (C) 2008 -2009
-# the Initial Developer. All Rights Reserved.
-# 
-# Contributor(s):
-#  Mikeal Rogers <mikeal.rogers@gmail.com>
-#  Henrik Skupin <hskupin@mozilla.com>
-# 
-# Alternatively, the contents of this file may be used under the terms of
-# either the GNU General Public License Version 2 or later (the "GPL"), or
-# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-# in which case the provisions of the GPL or the LGPL are applicable instead
-# of those above. If you wish to allow use of your version of this file only
-# under the terms of either the GPL or the LGPL, and not to allow others to
-# use your version of this file under the terms of the MPL, indicate your
-# decision by deleting the provisions above and replace them with the notice
-# and other provisions required by the GPL or the LGPL. If you do not delete
-# the provisions above, a recipient may use your version of this file under
-# the terms of any one of the MPL, the GPL or the LGPL.
-# 
-# ***** END LICENSE BLOCK *****
-
-import socket
-import os
-import copy
-import asyncore
-
-from time import sleep
-from network import Bridge, BackChannel, create_network
-from jsobjects import JSObject
-
-import mozrunner
-
-settings_env = 'JSBRIDGE_SETTINGS_FILE'
-
-parent = os.path.abspath(os.path.dirname(__file__))
-extension_path = os.path.join(parent, 'extension')
-
-window_string = "Components.classes['@mozilla.org/appshell/window-mediator;1'].getService(Components.interfaces.nsIWindowMediator).getMostRecentWindow('')"
-
-wait_to_create_timeout = 60
-
-def wait_and_create_network(host, port, timeout=wait_to_create_timeout):
-    ttl = 0
-    while ttl < timeout:
-        try:
-            s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-            s.connect((host, port))
-            s.close()
-            break
-        except socket.error:
-            pass
-        sleep(.25)
-        ttl += .25
-    if ttl == timeout:
-        raise Exception("Sorry, cannot connect to jsbridge extension, port %s" % port)
-    
-    back_channel, bridge = create_network(host, port)
-    sleep(.5)
-    
-    while back_channel.registered is False:
-        back_channel.close()
-        bridge.close()
-        asyncore.socket_map = {}
-        sleep(1)
-        back_channel, bridge = create_network(host, port)
-    
-    return back_channel, bridge
-
-class CLI(mozrunner.CLI):
-    """Command line interface."""
-    
-    module = "jsbridge"
-
-    parser_options = copy.copy(mozrunner.CLI.parser_options)
-    parser_options[('-D', '--debug',)] = dict(dest="debug", 
-                                             action="store_true",
-                                             help="Debug mode", 
-                                             metavar="JSBRIDGE_DEBUG",
-                                             default=False )
-    parser_options[('-s', '--shell',)] = dict(dest="shell", 
-                                             action="store_true",
-                                             help="Start a Python shell",
-                                             metavar="JSBRIDGE_SHELL",
-                                             default=False )
-    parser_options[('-u', '--usecode',)] = dict(dest="usecode", action="store_true",
-                                               help="Use code module instead of iPython",
-                                               default=False)
-    parser_options[('-P', '--port')] = dict(dest="port", default="24242",
-                                            help="TCP port to run jsbridge on.")
-
-    def get_profile(self, *args, **kwargs):
-        if self.options.debug:
-            kwargs.setdefault('preferences', {}).update({
-              'extensions.checkCompatibility':False,
-              'devtools.errorconsole.enabled':True
-            })
-        profile = mozrunner.CLI.get_profile(self, *args, **kwargs)
-        profile.install_addon(extension_path)
-        return profile
-        
-    def get_runner(self, *args, **kwargs):
-        runner = super(CLI, self).get_runner(*args, **kwargs)
-        if self.options.debug:
-            runner.cmdargs.append('-jsconsole')
-        runner.cmdargs += ['-jsbridge', self.options.port]
-        return runner
-        
-    def run(self):
-        runner = self.create_runner()
-        runner.start()
-        self.start_jsbridge_network()
-        if self.options.shell:
-            self.start_shell(runner)
-        else:
-            try:
-                runner.wait()
-            except KeyboardInterrupt:
-                runner.stop()
-                
-        runner.profile.cleanup()
-    
-    def start_shell(self, runner):
-        try:
-            import IPython
-        except:
-            IPython = None
-        jsobj = JSObject(self.bridge, window_string)
-        
-        if IPython is None or self.options.usecode:
-            import code
-            code.interact(local={"jsobj":jsobj, 
-                                 "getBrowserWindow":lambda : getBrowserWindow(self.bridge),
-                                 "back_channel":self.back_channel,
-                                 })
-        else:
-            from IPython.Shell import IPShellEmbed
-            ipshell = IPShellEmbed([])
-            ipshell(local_ns={"jsobj":jsobj, 
-                              "getBrowserWindow":lambda : getBrowserWindow(self.bridge),
-                              "back_channel":self.back_channel,
-                              })
-        runner.stop()
-        
-    def start_jsbridge_network(self, timeout=10):
-        port = int(self.options.port)
-        host = '127.0.0.1'
-        self.back_channel, self.bridge = wait_and_create_network(host, port, timeout)
-
-def cli():
-    CLI().run()
-
-def getBrowserWindow(bridge):
-    return JSObject(bridge, "Components.classes['@mozilla.org/appshell/window-mediator;1'].getService(Components.interfaces.nsIWindowMediator).getMostRecentWindow('')")
-    
-
-
-
-
-
-
deleted file mode 100644
--- a/testing/mozmill/jsbridge/jsbridge/extension/chrome.manifest
+++ /dev/null
@@ -1,14 +0,0 @@
-resource jsbridge resource/
-
-content jsbridge chrome/content/
-
-overlay chrome://browser/content/browser.xul chrome://jsbridge/content/overlay.xul
-overlay chrome://messenger/content/mailWindowOverlay.xul chrome://jsbridge/content/overlay.xul
-
-overlay chrome://calendar/content/calendar.xul chrome://jsbridge/content/overlay.xul
-
-overlay windowtype:Songbird:Main chrome://jsbridge/content/overlay.xul
-
-component {2872d428-14f6-11de-ac86-001f5bd9235c} components/cmdarg.js
-contract @mozilla.org/commandlinehandler/general-startup;1?type=jsbridge {2872d428-14f6-11de-ac86-001f5bd9235c}
-category command-line-handler jsbridge @mozilla.org/commandlinehandler/general-startup;1?type=jsbridge
deleted file mode 100644
--- a/testing/mozmill/jsbridge/jsbridge/extension/chrome/content/overlay.js
+++ /dev/null
@@ -1,40 +0,0 @@
-// ***** BEGIN LICENSE BLOCK *****
-// Version: MPL 1.1/GPL 2.0/LGPL 2.1
-// 
-// The contents of this file are subject to the Mozilla Public License Version
-// 1.1 (the "License"); you may not use this file except in compliance with
-// the License. You may obtain a copy of the License at
-// http://www.mozilla.org/MPL/
-// 
-// Software distributed under the License is distributed on an "AS IS" basis,
-// WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-// for the specific language governing rights and limitations under the
-// License.
-// 
-// The Original Code is Mozilla Corporation Code.
-// 
-// The Initial Developer of the Original Code is
-// Mikeal Rogers.
-// Portions created by the Initial Developer are Copyright (C) 2008
-// the Initial Developer. All Rights Reserved.
-// 
-// Contributor(s):
-//  Mikeal Rogers <mikeal.rogers@gmail.com>
-// 
-// Alternatively, the contents of this file may be used under the terms of
-// either the GNU General Public License Version 2 or later (the "GPL"), or
-// the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-// in which case the provisions of the GPL or the LGPL are applicable instead
-// of those above. If you wish to allow use of your version of this file only
-// under the terms of either the GPL or the LGPL, and not to allow others to
-// use your version of this file under the terms of the MPL, indicate your
-// decision by deleting the provisions above and replace them with the notice
-// and other provisions required by the GPL or the LGPL. If you do not delete
-// the provisions above, a recipient may use your version of this file under
-// the terms of any one of the MPL, the GPL or the LGPL.
-// 
-// ***** END LICENSE BLOCK *****
-
-var jsbridgeInit = {}; Components.utils.import('resource://jsbridge/modules/init.js',jsbridgeInit);
-
-
deleted file mode 100644
--- a/testing/mozmill/jsbridge/jsbridge/extension/chrome/content/overlay.xul
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0"?>
-<overlay id="jsbridge-overlay"
-         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
-  <script src="overlay.js"/>
-</overlay>
deleted file mode 100644
--- a/testing/mozmill/jsbridge/jsbridge/extension/components/cmdarg.js
+++ /dev/null
@@ -1,124 +0,0 @@
-Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
-
-const nsIAppShellService    = Components.interfaces.nsIAppShellService;
-const nsISupports           = Components.interfaces.nsISupports;
-const nsICategoryManager    = Components.interfaces.nsICategoryManager;
-const nsIComponentRegistrar = Components.interfaces.nsIComponentRegistrar;
-const nsICommandLine        = Components.interfaces.nsICommandLine;
-const nsICommandLineHandler = Components.interfaces.nsICommandLineHandler;
-const nsIFactory            = Components.interfaces.nsIFactory;
-const nsIModule             = Components.interfaces.nsIModule;
-const nsIWindowWatcher      = Components.interfaces.nsIWindowWatcher;
-
-// CHANGEME: to the chrome URI of your extension or application
-const CHROME_URI = "chrome://jsbridge/content/";
-
-// CHANGEME: change the contract id, CID, and category to be unique
-// to your application.
-const clh_contractID = "@mozilla.org/commandlinehandler/general-startup;1?type=jsbridge";
-
-// use uuidgen to generate a unique ID
-const clh_CID = Components.ID("{2872d428-14f6-11de-ac86-001f5bd9235c}");
-
-// category names are sorted alphabetically. Typical command-line handlers use a
-// category that begins with the letter "m".
-const clh_category = "jsbridge";
-
-var aConsoleService = Components.classes["@mozilla.org/consoleservice;1"].
-     getService(Components.interfaces.nsIConsoleService);
-
-/**
- * Utility functions
- */
-
-/**
- * Opens a chrome window.
- * @param aChromeURISpec a string specifying the URI of the window to open.
- * @param aArgument an argument to pass to the window (may be null)
- */
-function openWindow(aChromeURISpec, aArgument)
-{
-  var ww = Components.classes["@mozilla.org/embedcomp/window-watcher;1"].
-    getService(Components.interfaces.nsIWindowWatcher);
-  ww.openWindow(null, aChromeURISpec, "_blank",
-                "chrome,menubar,toolbar,status,resizable,dialog=no",
-                aArgument);
-}
-
-/**
- * The XPCOM component that implements nsICommandLineHandler.
- * It also implements nsIFactory to serve as its own singleton factory.
- */
-function jsbridgeHandler() {
-}
-jsbridgeHandler.prototype = {
-  classID: clh_CID,
-  contractID: clh_contractID,
-  classDescription: "jsbridgeHandler",
-  _xpcom_categories: [{category: "command-line-handler", entry: clh_category}],
-
-  /* nsISupports */
-  QueryInterface : function clh_QI(iid)
-  {
-    if (iid.equals(nsICommandLineHandler) ||
-        iid.equals(nsIFactory) ||
-        iid.equals(nsISupports))
-      return this;
-
-    throw Components.results.NS_ERROR_NO_INTERFACE;
-  },
-
-  /* nsICommandLineHandler */
-
-  handle : function clh_handle(cmdLine)
-  {
-    try {
-      var port = cmdLine.handleFlagWithParam("jsbridge", false);
-      if (port) {
-        var server = {};
-        Components.utils.import('resource://jsbridge/modules/server.js', server);
-        server.startServer(parseInt(port));
-      } else {
-        var server = {};
-        Components.utils.import('resource://jsbridge/modules/server.js', server);
-        server.startServer(24242);
-      }
-    }
-    catch (e) {
-      Components.utils.reportError("incorrect parameter passed to -jsbridge on the command line.");
-    }
-
-  },
-
-  // CHANGEME: change the help info as appropriate, but
-  // follow the guidelines in nsICommandLineHandler.idl
-  // specifically, flag descriptions should start at
-  // character 24, and lines should be wrapped at
-  // 72 characters with embedded newlines,
-  // and finally, the string should end with a newline
-  helpInfo : "  -jsbridge            Port to run jsbridge on.\n",
-
-  /* nsIFactory */
-
-  createInstance : function clh_CI(outer, iid)
-  {
-    if (outer != null)
-      throw Components.results.NS_ERROR_NO_AGGREGATION;
-
-    return this.QueryInterface(iid);
-  },
-
-  lockFactory : function clh_lock(lock)
-  {
-    /* no-op */
-  }
-};
-
-/**
- * XPCOMUtils.generateNSGetFactory was introduced in Mozilla 2 (Firefox 4).
- * XPCOMUtils.generateNSGetModule is for Mozilla 1.9.1 (Firefox 3.5).
- */
-if (XPCOMUtils.generateNSGetFactory)
-  const NSGetFactory = XPCOMUtils.generateNSGetFactory([jsbridgeHandler]);
-else
-  const NSGetModule = XPCOMUtils.generateNSGetModule([jsbridgeHandler]);
deleted file mode 100644
--- a/testing/mozmill/jsbridge/jsbridge/extension/install.rdf
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0"?>
-<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-     xmlns:em="http://www.mozilla.org/2004/em-rdf#">
-   <Description about="urn:mozilla:install-manifest">
-     <em:id>jsbridge@mozilla.com</em:id>
-     <em:name>jsbridge</em:name>
-     <em:version>2.4.1rc2</em:version>
-     <em:creator>Mikeal Rogers</em:creator>
-     <em:description>Python to JavaScript bridge</em:description>
-     <em:targetApplication>
-       <!-- Firefox -->
-       <Description>
-         <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
-         <em:minVersion>3.5</em:minVersion>
-         <em:maxVersion>4.*</em:maxVersion>
-       </Description>
-     </em:targetApplication>
-     <em:targetApplication>
-       <!-- Thunderbird -->
-       <Description>
-         <em:id>{3550f703-e582-4d05-9a08-453d09bdfdc6}</em:id>
-         <em:minVersion>3.0a1pre</em:minVersion>
-         <em:maxVersion>4.*</em:maxVersion>
-       </Description>
-     </em:targetApplication>
-     <em:targetApplication>
-       <!-- Sunbird -->
-       <Description>
-         <em:id>{718e30fb-e89b-41dd-9da7-e25a45638b28}</em:id>
-         <em:minVersion>1.0b1pre</em:minVersion>
-         <em:maxVersion>1.0pre</em:maxVersion>
-       </Description>
-     </em:targetApplication>
-	   <em:targetApplication>
-	      <!-- Songbird -->
-	      <Description>
-	        <em:id>songbird@songbirdnest.com</em:id>
-	        <em:minVersion>0.3pre</em:minVersion>
-	        <em:maxVersion>2.*</em:maxVersion>
-	      </Description>
-	   </em:targetApplication>
-	   <em:targetApplication>
-         <Description>
-          <em:id>toolkit@mozilla.org</em:id>
-          <em:minVersion>1.9.1</em:minVersion>
-          <em:maxVersion>2.0*</em:maxVersion>
-         </Description>
-     </em:targetApplication>
-   </Description>
-
-
-</RDF>
deleted file mode 100644
--- a/testing/mozmill/jsbridge/jsbridge/extension/resource/modules/events.js
+++ /dev/null
@@ -1,13 +0,0 @@
-var EXPORTED_SYMBOLS = ["backchannels", "fireEvent", "addBackChannel"];
-
-var backchannels = [];
-
-var fireEvent = function (name, obj) {
-  for each(backchannel in backchannels) {
-    backchannel.session.encodeOut({'eventType':name, 'result':obj});
-  }
-}
-
-var addBackChannel = function (backchannel) {
-    backchannels.push(backchannel);
-}
deleted file mode 100644
--- a/testing/mozmill/jsbridge/jsbridge/extension/resource/modules/init.js
+++ /dev/null
@@ -1,40 +0,0 @@
-// ***** BEGIN LICENSE BLOCK *****
-// Version: MPL 1.1/GPL 2.0/LGPL 2.1
-// 
-// The contents of this file are subject to the Mozilla Public License Version
-// 1.1 (the "License"); you may not use this file except in compliance with
-// the License. You may obtain a copy of the License at
-// http://www.mozilla.org/MPL/
-// 
-// Software distributed under the License is distributed on an "AS IS" basis,
-// WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-// for the specific language governing rights and limitations under the
-// License.
-// 
-// The Original Code is Mozilla Corporation Code.
-// 
-// The Initial Developer of the Original Code is
-// Mikeal Rogers.
-// Portions created by the Initial Developer are Copyright (C) 2008
-// the Initial Developer. All Rights Reserved.
-// 
-// Contributor(s):
-//  Mikeal Rogers <mikeal.rogers@gmail.com>
-// 
-// Alternatively, the contents of this file may be used under the terms of
-// either the GNU General Public License Version 2 or later (the "GPL"), or
-// the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-// in which case the provisions of the GPL or the LGPL are applicable instead
-// of those above. If you wish to allow use of your version of this file only
-// under the terms of either the GPL or the LGPL, and not to allow others to
-// use your version of this file under the terms of the MPL, indicate your
-// decision by deleting the provisions above and replace them with the notice
-// and other provisions required by the GPL or the LGPL. If you do not delete
-// the provisions above, a recipient may use your version of this file under
-// the terms of any one of the MPL, the GPL or the LGPL.
-// 
-// ***** END LICENSE BLOCK *****
-
-var EXPORTED_SYMBOLS = ["server"];
-
-var server = {}; Components.utils.import('resource://jsbridge/modules/server.js', server);
deleted file mode 100644
--- a/testing/mozmill/jsbridge/jsbridge/extension/resource/modules/json2.js
+++ /dev/null
@@ -1,471 +0,0 @@
-/*
-    http://www.JSON.org/json2.js
-    2008-05-25
-
-    Public Domain.
-
-    NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.
-
-    See http://www.JSON.org/js.html
-
-    This file creates a global JSON object containing two methods: stringify
-    and parse.
-
-        JSON.stringify(value, replacer, space)
-            value       any JavaScript value, usually an object or array.
-
-            replacer    an optional parameter that determines how object
-                        values are stringified for objects without a toJSON
-                        method. It can be a function or an array.
-
-            space       an optional parameter that specifies the indentation
-                        of nested structures. If it is omitted, the text will
-                        be packed without extra whitespace. If it is a number,
-                        it will specify the number of spaces to indent at each
-                        level. If it is a string (such as '\t' or '&nbsp;'),
-                        it contains the characters used to indent at each level.
-
-            This method produces a JSON text from a JavaScript value.
-
-            When an object value is found, if the object contains a toJSON
-            method, its toJSON method will be called and the result will be
-            stringified. A toJSON method does not serialize: it returns the
-            value represented by the name/value pair that should be serialized,
-            or undefined if nothing should be serialized. The toJSON method
-            will be passed the key associated with the value, and this will be
-            bound to the object holding the key.
-
-            For example, this would serialize Dates as ISO strings.
-
-                Date.prototype.toJSON = function (key) {
-                    function f(n) {
-                        // Format integers to have at least two digits.
-                        return n < 10 ? '0' + n : n;
-                    }
-
-                    return this.getUTCFullYear()   + '-' +
-                         f(this.getUTCMonth() + 1) + '-' +
-                         f(this.getUTCDate())      + 'T' +
-                         f(this.getUTCHours())     + ':' +
-                         f(this.getUTCMinutes())   + ':' +
-                         f(this.getUTCSeconds())   + 'Z';
-                };
-
-            You can provide an optional replacer method. It will be passed the
-            key and value of each member, with this bound to the containing
-            object. The value that is returned from your method will be
-            serialized. If your method returns undefined, then the member will
-            be excluded from the serialization.
-
-            If the replacer parameter is an array, then it will be used to
-            select the members to be serialized. It filters the results such
-            that only members with keys listed in the replacer array are
-            stringified.
-
-            Values that do not have JSON representations, such as undefined or
-            functions, will not be serialized. Such values in objects will be
-            dropped; in arrays they will be replaced with null. You can use
-            a replacer function to replace those with JSON values.
-            JSON.stringify(undefined) returns undefined.
-
-            The optional space parameter produces a stringification of the
-            value that is filled with line breaks and indentation to make it
-            easier to read.
-
-            If the space parameter is a non-empty string, then that string will
-            be used for indentation. If the space parameter is a number, then
-            the indentation will be that many spaces.
-
-            Example:
-
-            text = JSON.stringify(['e', {pluribus: 'unum'}]);
-            // text is '["e",{"pluribus":"unum"}]'
-
-
-            text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\t');
-            // text is '[\n\t"e",\n\t{\n\t\t"pluribus": "unum"\n\t}\n]'
-
-            text = JSON.stringify([new Date()], function (key, value) {
-                return this[key] instanceof Date ?
-                    'Date(' + this[key] + ')' : value;
-            });
-            // text is '["Date(---current time---)"]'
-
-
-        JSON.parse(text, reviver)
-            This method parses a JSON text to produce an object or array.
-            It can throw a SyntaxError exception.
-
-            The optional reviver parameter is a function that can filter and
-            transform the results. It receives each of the keys and values,
-            and its return value is used instead of the original value.
-            If it returns what it received, then the structure is not modified.
-            If it returns undefined then the member is deleted.
-
-            Example:
-
-            // Parse the text. Values that look like ISO date strings will
-            // be converted to Date objects.
-
-            myData = JSON.parse(text, function (key, value) {
-                var a;
-                if (typeof value === 'string') {
-                    a =
-/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value);
-                    if (a) {
-                        return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],
-                            +a[5], +a[6]));
-                    }
-                }
-                return value;
-            });
-
-            myData = JSON.parse('["Date(09/09/2001)"]', function (key, value) {
-                var d;
-                if (typeof value === 'string' &&
-                        value.slice(0, 5) === 'Date(' &&
-                        value.slice(-1) === ')') {
-                    d = new Date(value.slice(5, -1));
-                    if (d) {
-                        return d;
-                    }
-                }
-                return value;
-            });
-
-
-    This is a reference implementation. You are free to copy, modify, or
-    redistribute.
-
-    This code should be minified before deployment.
-    See http://javascript.crockford.com/jsmin.html
-
-    USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO
-    NOT CONTROL.
-*/
-
-/*jslint evil: true */
-
-/*global JSON */
-
-/*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", call,
-    charCodeAt, getUTCDate, getUTCFullYear, getUTCHours, getUTCMinutes,
-    getUTCMonth, getUTCSeconds, hasOwnProperty, join, lastIndex, length,
-    parse, propertyIsEnumerable, prototype, push, replace, slice, stringify,
-    test, toJSON, toString
-*/
-
-var EXPORTED_SYMBOLS = ["JSON"];
-
-if (!this.JSON) {
-
-// Create a JSON object only if one does not already exist. We create the
-// object in a closure to avoid creating global variables.
-
-    JSON = function () {
-
-        function f(n) {
-            // Format integers to have at least two digits.
-            return n < 10 ? '0' + n : n;
-        }
-
-        Date.prototype.toJSON = function (key) {
-
-            return this.getUTCFullYear()   + '-' +
-                 f(this.getUTCMonth() + 1) + '-' +
-                 f(this.getUTCDate())      + 'T' +
-                 f(this.getUTCHours())     + ':' +
-                 f(this.getUTCMinutes())   + ':' +
-                 f(this.getUTCSeconds())   + 'Z';
-        };
-
-        var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
-            escapeable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
-            gap,
-            indent,
-            meta = {    // table of character substitutions
-                '\b': '\\b',
-                '\t': '\\t',
-                '\n': '\\n',
-                '\f': '\\f',
-                '\r': '\\r',
-                '"' : '\\"',
-                '\\': '\\\\'
-            },
-            rep;
-
-
-        function quote(string) {
-
-// If the string contains no control characters, no quote characters, and no
-// backslash characters, then we can safely slap some quotes around it.
-// Otherwise we must also replace the offending characters with safe escape
-// sequences.
-
-            escapeable.lastIndex = 0;
-            return escapeable.test(string) ?
-                '"' + string.replace(escapeable, function (a) {
-                    var c = meta[a];
-                    if (typeof c === 'string') {
-                        return c;
-                    }
-                    return '\\u' + ('0000' +
-                            (+(a.charCodeAt(0))).toString(16)).slice(-4);
-                }) + '"' :
-                '"' + string + '"';
-        }
-
-
-        function str(key, holder) {
-
-// Produce a string from holder[key].
-
-            var i,          // The loop counter.
-                k,          // The member key.
-                v,          // The member value.
-                length,
-                mind = gap,
-                partial,
-                value = holder[key];
-
-// If the value has a toJSON method, call it to obtain a replacement value.
-
-            if (value && typeof value === 'object' &&
-                    typeof value.toJSON === 'function') {
-                value = value.toJSON(key);
-            }
-
-// If we were called with a replacer function, then call the replacer to
-// obtain a replacement value.
-
-            if (typeof rep === 'function') {
-                value = rep.call(holder, key, value);
-            }
-
-// What happens next depends on the value's type.
-
-            switch (typeof value) {
-            case 'string':
-                return quote(value);
-
-            case 'number':
-
-// JSON numbers must be finite. Encode non-finite numbers as null.
-
-                return isFinite(value) ? String(value) : 'null';
-
-            case 'boolean':
-            case 'null':
-
-// If the value is a boolean or null, convert it to a string. Note:
-// typeof null does not produce 'null'. The case is included here in
-// the remote chance that this gets fixed someday.
-
-                return String(value);
-
-// If the type is 'object', we might be dealing with an object or an array or
-// null.
-
-            case 'object':
-
-// Due to a specification blunder in ECMAScript, typeof null is 'object',
-// so watch out for that case.
-
-                if (!value) {
-                    return 'null';
-                }
-
-// Make an array to hold the partial results of stringifying this object value.
-
-                gap += indent;
-                partial = [];
-
-// If the object has a dontEnum length property, we'll treat it as an array.
-
-                if (typeof value.length === 'number' &&
-                        !(value.propertyIsEnumerable('length'))) {
-
-// The object is an array. Stringify every element. Use null as a placeholder
-// for non-JSON values.
-
-                    length = value.length;
-                    for (i = 0; i < length; i += 1) {
-                        partial[i] = str(i, value) || 'null';
-                    }
-
-// Join all of the elements together, separated with commas, and wrap them in
-// brackets.
-
-                    v = partial.length === 0 ? '[]' :
-                        gap ? '[\n' + gap +
-                                partial.join(',\n' + gap) + '\n' +
-                                    mind + ']' :
-                              '[' + partial.join(',') + ']';
-                    gap = mind;
-                    return v;
-                }
-
-// If the replacer is an array, use it to select the members to be stringified.
-
-                if (rep && typeof rep === 'object') {
-                    length = rep.length;
-                    for (i = 0; i < length; i += 1) {
-                        k = rep[i];
-                        if (typeof k === 'string') {
-                            v = str(k, value, rep);
-                            if (v) {
-                                partial.push(quote(k) + (gap ? ': ' : ':') + v);
-                            }
-                        }
-                    }
-                } else {
-
-// Otherwise, iterate through all of the keys in the object.
-
-                    for (k in value) {
-                        if (Object.hasOwnProperty.call(value, k)) {
-                            v = str(k, value, rep);
-                            if (v) {
-                                partial.push(quote(k) + (gap ? ': ' : ':') + v);
-                            }
-                        }
-                    }
-                }
-
-// Join all of the member texts together, separated with commas,
-// and wrap them in braces.
-
-                v = partial.length === 0 ? '{}' :
-                    gap ? '{\n' + gap + partial.join(',\n' + gap) + '\n' +
-                            mind + '}' : '{' + partial.join(',') + '}';
-                gap = mind;
-                return v;
-            }
-        }
-
-// Return the JSON object containing the stringify and parse methods.
-
-        return {
-            stringify: function (value, replacer, space) {
-
-// The stringify method takes a value and an optional replacer, and an optional
-// space parameter, and returns a JSON text. The replacer can be a function
-// that can replace values, or an array of strings that will select the keys.
-// A default replacer method can be provided. Use of the space parameter can
-// produce text that is more easily readable.
-
-                var i;
-                gap = '';
-                indent = '';
-
-// If the space parameter is a number, make an indent string containing that
-// many spaces.
-
-                if (typeof space === 'number') {
-                    for (i = 0; i < space; i += 1) {
-                        indent += ' ';
-                    }
-
-// If the space parameter is a string, it will be used as the indent string.
-
-                } else if (typeof space === 'string') {
-                    indent = space;
-                }
-
-// If there is a replacer, it must be a function or an array.
-// Otherwise, throw an error.
-
-                rep = replacer;
-                if (replacer && typeof replacer !== 'function' &&
-                        (typeof replacer !== 'object' ||
-                         typeof replacer.length !== 'number')) {
-                    throw new Error('JSON.stringify');
-                }
-
-// Make a fake root object containing our value under the key of ''.
-// Return the result of stringifying the value.
-
-                return str('', {'': value});
-            },
-
-
-            parse: function (text, reviver) {
-
-// The parse method takes a text and an optional reviver function, and returns
-// a JavaScript value if the text is a valid JSON text.
-
-                var j;
-
-                function walk(holder, key) {
-
-// The walk method is used to recursively walk the resulting structure so
-// that modifications can be made.
-
-                    var k, v, value = holder[key];
-                    if (value && typeof value === 'object') {
-                        for (k in value) {
-                            if (Object.hasOwnProperty.call(value, k)) {
-                                v = walk(value, k);
-                                if (v !== undefined) {
-                                    value[k] = v;
-                                } else {
-                                    delete value[k];
-                                }
-                            }
-                        }
-                    }
-                    return reviver.call(holder, key, value);
-                }
-
-
-// Parsing happens in four stages. In the first stage, we replace certain
-// Unicode characters with escape sequences. JavaScript handles many characters
-// incorrectly, either silently deleting them, or treating them as line endings.
-
-                cx.lastIndex = 0;
-                if (cx.test(text)) {
-                    text = text.replace(cx, function (a) {
-                        return '\\u' + ('0000' +
-                                (+(a.charCodeAt(0))).toString(16)).slice(-4);
-                    });
-                }
-
-// In the second stage, we run the text against regular expressions that look
-// for non-JSON patterns. We are especially concerned with '()' and 'new'
-// because they can cause invocation, and '=' because it can cause mutation.
-// But just to be safe, we want to reject all unexpected forms.
-
-// We split the second stage into 4 regexp operations in order to work around
-// crippling inefficiencies in IE's and Safari's regexp engines. First we
-// replace the JSON backslash pairs with '@' (a non-JSON character). Second, we
-// replace all simple value tokens with ']' characters. Third, we delete all
-// open brackets that follow a colon or comma or that begin the text. Finally,
-// we look to see that the remaining characters are only whitespace or ']' or
-// ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval.
-
-                if (/^[\],:{}\s]*$/.
-test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@').
-replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']').
-replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) {
-
-// In the third stage we use the eval function to compile the text into a
-// JavaScript structure. The '{' operator is subject to a syntactic ambiguity
-// in JavaScript: it can begin a block or an object literal. We wrap the text
-// in parens to eliminate the ambiguity.
-
-                    j = eval('(' + text + ')');
-
-// In the optional fourth stage, we recursively walk the new structure, passing
-// each name/value pair to a reviver function for possible transformation.
-
-                    return typeof reviver === 'function' ?
-                        walk({'': j}, '') : j;
-                }
-
-// If the text is not JSON parseable, then a SyntaxError is thrown.
-
-                throw new SyntaxError('JSON.parse');
-            }
-        };
-    }();
-}
deleted file mode 100644
--- a/testing/mozmill/jsbridge/jsbridge/extension/resource/modules/server.js
+++ /dev/null
@@ -1,302 +0,0 @@
-// ***** BEGIN LICENSE BLOCK *****
-// Version: MPL 1.1/GPL 2.0/LGPL 2.1
-// 
-// The contents of this file are subject to the Mozilla Public License Version
-// 1.1 (the "License"); you may not use this file except in compliance with
-// the License. You may obtain a copy of the License at
-// http://www.mozilla.org/MPL/
-// 
-// Software distributed under the License is distributed on an "AS IS" basis,
-// WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-// for the specific language governing rights and limitations under the
-// License.
-// 
-// The Original Code is Mozilla Corporation Code.
-// 
-// The Initial Developer of the Original Code is
-// based on the MozRepl project.
-// Portions created by the Initial Developer are Copyright (C) 2008
-// the Initial Developer. All Rights Reserved.
-// 
-// Contributor(s):
-//  Mikeal Rogers <mikeal.rogers@gmail.com>
-//  Massimiliano Mirra <bard@hyperstruct.net>
-//
-// Alternatively, the contents of this file may be used under the terms of
-// either the GNU General Public License Version 2 or later (the "GPL"), or
-// the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-// in which case the provisions of the GPL or the LGPL are applicable instead
-// of those above. If you wish to allow use of your version of this file only
-// under the terms of either the GPL or the LGPL, and not to allow others to
-// use your version of this file under the terms of the MPL, indicate your
-// decision by deleting the provisions above and replace them with the notice
-// and other provisions required by the GPL or the LGPL. If you do not delete
-// the provisions above, a recipient may use your version of this file under
-// the terms of any one of the MPL, the GPL or the LGPL.
-// 
-// ***** END LICENSE BLOCK *****
-
-var EXPORTED_SYMBOLS = ["Server", "server", "AsyncRead", "Session", "sessions", "globalRegistry", "startServer"];
-
-var events = {}; Components.utils.import("resource://jsbridge/modules/events.js", events);
-
-const Cc = Components.classes;
-const Ci = Components.interfaces;
-const loader = Cc['@mozilla.org/moz/jssubscript-loader;1']
-    .getService(Ci.mozIJSSubScriptLoader);
-
-var hwindow = Components.classes["@mozilla.org/appshell/appShellService;1"]
-    .getService(Components.interfaces.nsIAppShellService)
-    .hiddenDOMWindow;
-    
-var uuidgen = Components.classes["@mozilla.org/uuid-generator;1"]
-    .getService(Components.interfaces.nsIUUIDGenerator);
-
-function AsyncRead (session) {
-  this.session = session;
-}
-AsyncRead.prototype.onStartRequest = function (request, context) {};
-AsyncRead.prototype.onStopRequest = function (request, context, status) {
-  this.session.onQuit();
-}
-AsyncRead.prototype.onDataAvailable = function (request, context, inputStream, offset, count) {
-  var str = {};
-  this.session.instream.readString(count, str);
-  this.session.receive(str.value);
-}
-
-
-
-globalRegistry = {};
-
-function Bridge (session) {
-  this.session = session;
-  this.registry = globalRegistry;
-}
-Bridge.prototype._register = function (_type) {
-  this.bridgeType = _type;
-  if (_type == "backchannel") {
-    events.addBackChannel(this);
-  }
-}
-Bridge.prototype.register = function (uuid, _type) {
-  try {
-    this._register(_type);
-    var passed = true;
-  } catch(e) {
-    if (typeof(e) == "string") {
-      var exception = e;
-    } else {
-      var exception = {'name':e.name, 'message':e.message};
-    }
-    this.session.encodeOut({'result':false, 'exception':exception, 'uuid':uuid});
-  }
-  if (passed != undefined) {
-    this.session.encodeOut({"result":true, 'eventType':'register', 'uuid':uuid});
-  }
-  
-}
-Bridge.prototype._describe = function (obj) {
-  var response = {};
-  if (obj == null) {
-    var type = "null";
-  } else {
-    var type = typeof(obj);
-  }
-  if (type == "object") {
-    if (obj.length != undefined) {
-      var type = "array";
-    }
-    response.attributes = [];
-    for (i in obj) {
-      response.attributes = response.attributes.concat(i);
-    }
-  }
-  else if (type != "function"){
-    response.data = obj;
-  }
-  response.type = type;
-  return response;
-}
-Bridge.prototype.describe = function (uuid, obj) {
-  var response = this._describe(obj);
-  response.uuid = uuid;
-  response.result = true;
-  this.session.encodeOut(response);
-}
-Bridge.prototype._set = function (obj) {
-  var uuid = uuidgen.generateUUID().toString();
-  this.registry[uuid] = obj;
-  return uuid;
-}
-Bridge.prototype.set = function (uuid, obj) {
-  var ruuid = this._set(obj);
-  this.session.encodeOut({'result':true, 'data':'bridge.registry["'+ruuid+'"]', 'uuid':uuid});
-}
-Bridge.prototype._setAttribute = function (obj, name, value) {
-  obj[name] = value;
-  return value;
-}
-Bridge.prototype.setAttribute = function (uuid, obj, name, value) {
-  // log(uuid, String(obj), name, String(value))
-  try {
-    var result = this._setAttribute(obj, name, value);
-  } catch(e) {
-    if (typeof(e) == "string") {
-      var exception = e;
-    } else {
-      var exception = {'name':e.name, 'message':e.message};
-    }
-    this.session.encodeOut({'result':false, 'exception':exception, 'uuid':uuid});
-  }
-  if (result != undefined) {
-    this.set(uuid, obj[name]);
-  }
-}
-Bridge.prototype._execFunction = function (func, args) {
-  return func.apply(this.session.sandbox, args);
-}
-Bridge.prototype.execFunction = function (uuid, func, args) {
-  try {
-    var data = this._execFunction(func, args);
-    var result = true;
-  } catch(e) {
-    if (typeof(e) == "string") {
-      var exception = e;
-    } else {
-      var exception = {'name':e.name, 'message':e.message};
-    }
-    this.session.encodeOut({'result':false, 'exception':exception, 'uuid':uuid});
-    var result = true;
-  }  
-  if (data != undefined) {
-    this.set(uuid, data);
-  } else if ( result == true) {
-    this.session.encodeOut({'result':true, 'data':null, 'uuid':uuid});
-  } else {
-    throw 'Something very bad happened.'
-  }
-}
-
-backstage = this;
-
-function Session (transport) {
-  this.transpart = transport;
-  this.sandbox = Components.utils.Sandbox(backstage);
-  this.sandbox.bridge = new Bridge(this);
-  this.sandbox.openPreferences = hwindow.openPreferences;
-  try {
-      this.outputstream = transport.openOutputStream(Ci.nsITransport.OPEN_BLOCKING, 0, 0);	
-      this.outstream = Cc['@mozilla.org/intl/converter-output-stream;1']
-                    .createInstance(Ci.nsIConverterOutputStream);
-      this.outstream.init(this.outputstream, 'UTF-8', 1024,
-                    Ci.nsIConverterOutputStream.DEFAULT_REPLACEMENT_CHARACTER);
-      this.stream = transport.openInputStream(0, 0, 0);
-      this.instream = Cc['@mozilla.org/intl/converter-input-stream;1']
-          .createInstance(Ci.nsIConverterInputStream);
-      this.instream.init(this.stream, 'UTF-8', 1024,
-                    Ci.nsIConverterInputStream.DEFAULT_REPLACEMENT_CHARACTER);
-  } catch(e) {
-      log('jsbridge: Error: ' + e);
-  }
-  // log('jsbridge: Accepted connection.');
-  
-  this.pump = Cc['@mozilla.org/network/input-stream-pump;1']
-      .createInstance(Ci.nsIInputStreamPump);
-  this.pump.init(this.stream, -1, -1, 0, 0, false);
-  this.pump.asyncRead(new AsyncRead(this), null);
-}
-Session.prototype.onOutput = function(string) {
-  // log('jsbridge write: '+string)
-  if (typeof(string) != "string") {
-    throw "This is not a string"
-  } 
-  try {
-    this.outstream.writeString(string);
-    this.outstream.flush();
-  } catch (e) {
-    throw "Why is this failing "+string
-  }
-  // this.outstream.write(string, string.length);
-};
-Session.prototype.onQuit = function() {
-  this.instream.close();
-  this.outstream.close();
-  sessions.remove(session);
-};
-Session.prototype.encodeOut = function (obj) {
-  try {
-    this.onOutput(JSON.stringify(obj));
-  } catch(e) {
-    if (typeof(e) == "string") {
-      var exception = e;
-    } else {
-      var exception = {'name':e.name, 'message':e.message};
-    }
-    this.onOutput(JSON.stringify({'result':false, 'exception':exception}));
-  }
-  
-}
-Session.prototype.receive = function(data) {
-  // log('jsbrige receive: '+data);
-  Components.utils.evalInSandbox(data, this.sandbox);
-}
-
-var sessions = {
-    _list: [],
-    add: function(session) {
-        this._list.push(session);
-    },
-    remove: function(session) {
-        var index = this._list.indexOf(session);
-        if(index != -1)
-            this._list.splice(index, 1);
-    },
-    get: function(index) {
-        return this._list[index];
-    },
-    quit: function() {
-        this._list.forEach(
-            function(session) { session.quit; });
-        this._list.splice(0, this._list.length);
-    }
-};
-
-function Server (port) {
-  this.port = port;
-}
-Server.prototype.start = function () {
-  try {
-    this.serv = Cc['@mozilla.org/network/server-socket;1']
-        .createInstance(Ci.nsIServerSocket);
-    this.serv.init(this.port, true, -1);
-    this.serv.asyncListen(this);
-    // log('jsbridge: Listening...');
-  } catch(e) {
-    log('jsbridge: Exception: ' + e);
-  }    
-}
-Server.prototype.stop = function () {
-    log('jsbridge: Closing...');
-    this.serv.close();
-    this.sessions.quit();
-    this.serv = undefined;
-}
-Server.prototype.onStopListening = function (serv, status) {
-// Stub function
-}
-Server.prototype.onSocketAccepted = function (serv, transport) {
-  session = new Session(transport)
-  sessions.add(session);
-}
-
-function log(msg) {
-    dump(msg + '\n');
-}
-
-function startServer(port) {
-  var server = new Server(port)
-  server.start()
-}
-
-
deleted file mode 100644
--- a/testing/mozmill/jsbridge/jsbridge/jsobjects.py
+++ /dev/null
@@ -1,167 +0,0 @@
-# ***** BEGIN LICENSE BLOCK *****
-# Version: MPL 1.1/GPL 2.0/LGPL 2.1
-#
-# The contents of this file are subject to the Mozilla Public License Version
-# 1.1 (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-# http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS IS" basis,
-# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-# for the specific language governing rights and limitations under the
-# License.
-#
-# The Original Code is Mozilla Corporation Code.
-#
-# The Initial Developer of the Original Code is
-# Mikeal Rogers.
-# Portions created by the Initial Developer are Copyright (C) 2008
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-#  Mikeal Rogers <mikeal.rogers@gmail.com>
-#
-# Alternatively, the contents of this file may be used under the terms of
-# either the GNU General Public License Version 2 or later (the "GPL"), or
-# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-# in which case the provisions of the GPL or the LGPL are applicable instead
-# of those above. If you wish to allow use of your version of this file only
-# under the terms of either the GPL or the LGPL, and not to allow others to
-# use your version of this file under the terms of the MPL, indicate your
-# decision by deleting the provisions above and replace them with the notice
-# and other provisions required by the GPL or the LGPL. If you do not delete
-# the provisions above, a recipient may use your version of this file under
-# the terms of any one of the MPL, the GPL or the LGPL.
-#
-# ***** END LICENSE BLOCK *****
-
-def init_jsobject(cls, bridge, name, value, description=None):
-    """Initialize a js object that is a subclassed base type; int, str, unicode, float."""
-    obj = cls(value)
-    obj._bridge_ = bridge
-    obj._name_ = name
-    obj._description_ = description
-    return obj
-
-def create_jsobject(bridge, fullname, value=None, obj_type=None, override_set=False):
-    """Create a single JSObject for named object on other side of the bridge.
-    
-    Handles various initization cases for different JSObjects."""
-    description = bridge.describe(fullname)
-    obj_type = description['type']
-    value = description.get('data', None)
-    
-    if value is True or value is False:
-        return value
-
-    if js_type_cases.has_key(obj_type):
-        cls, needs_init = js_type_cases[obj_type]
-        # Objects that requires initialization are base types that have "values".
-        if needs_init:
-            obj = init_jsobject(cls, bridge, fullname, value, description=description)
-        else:
-            obj = cls(bridge, fullname, description=description, override_set=override_set)
-        return obj
-    else:
-        # Something very bad happened, we don't have a representation for the given type.
-        raise TypeError("Don't have a JSObject for javascript type "+obj_type)
-    
-class JSObject(object):
-    """Base javascript object representation."""
-    _loaded_ = False
-    
-    def __init__(self, bridge, name, override_set=False, description=None, *args, **kwargs):
-        self._bridge_ = bridge
-        if not override_set:
-            name = bridge.set(name)['data']
-        self._name_ = name
-        self._description_ = description
-    
-    def __jsget__(self, name):
-        """Abstraction for final step in get events; __getitem__ and __getattr__.
-        """
-        result = create_jsobject(self._bridge_, name, override_set=True)
-        return result
-    
-    def __getattr__(self, name):
-        """Get the object from jsbridge. 
-        
-        Handles lazy loading of all attributes of self."""
-        # A little hack so that ipython returns all the names.
-        if name == '_getAttributeNames':
-            return lambda : self._bridge_.describe(self._name_)['attributes']
-            
-        attributes = self._bridge_.describe(self._name_)['attributes']
-        if name in attributes:
-            return self.__jsget__(self._name_+'["'+name+'"]')
-        else:
-            raise AttributeError(name+" is undefined.")
-    
-    __getitem__ = __getattr__
-        
-    def __setattr__(self, name, value):
-        """Set the given JSObject as an attribute of this JSObject and make proper javascript
-        assignment on the other side of the bridge."""
-        if name.startswith('_') and name.endswith('_'):
-            return object.__setattr__(self, name, value)
-
-        response = self._bridge_.setAttribute(self._name_, name, value)
-        object.__setattr__(self, name, create_jsobject(self._bridge_, response['data'], override_set=True))
-    
-    __setitem__ = __setattr__
-
-class JSFunction(JSObject):
-    """Javascript function represenation.
-    
-    Returns a JSObject instance for the serialized js type with 
-    name set to the full javascript call for this function. 
-    """    
-    
-    def __init__(self, bridge, name, override_set=False, description=None, *args, **kwargs):
-        self._bridge_ = bridge
-        self._name_ = name
-        self._description_ = description
-    
-    def __call__(self, *args):
-        response = self._bridge_.execFunction(self._name_, args)
-        if response['data'] is not None:
-            return create_jsobject(self._bridge_, response['data'], override_set=True)
-
-
-class JSString(JSObject, unicode):
-    "Javascript string representation."
-    __init__ = unicode.__init__
-
-class JSInt(JSObject, int): 
-    """Javascript number representation for Python int."""
-    __init__ = int.__init__
-
-class JSFloat(JSObject, float):
-    """Javascript number representation for Python float."""
-    __init__ = float.__init__
-    
-class JSUndefined(JSObject):
-    """Javascript undefined representation."""    
-    __str__ = lambda self : "undefined"
-
-    def __cmp__(self, other):
-        if isinstance(other, JSUndefined):
-            return True
-        else:
-            return False
-
-    __nonzero__ = lambda self: False
-
-js_type_cases = {'function'  :(JSFunction, False,), 
-                  'object'   :(JSObject, False,), 
-                  'array'    :(JSObject, False,),
-                  'string'   :(JSString, True,), 
-                  'number'   :(JSFloat, True,),
-                  'undefined':(JSUndefined, False,),
-                  'null'     :(JSObject, False,),
-                  }
-py_type_cases = {unicode  :JSString,
-                  str     :JSString,
-                  int     :JSInt,
-                  float   :JSFloat,
-                  }
deleted file mode 100644
--- a/testing/mozmill/jsbridge/jsbridge/network.py
+++ /dev/null
@@ -1,306 +0,0 @@
-# ***** BEGIN LICENSE BLOCK *****
-# Version: MPL 1.1/GPL 2.0/LGPL 2.1
-#
-# The contents of this file are subject to the Mozilla Public License Version
-# 1.1 (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-# http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS IS" basis,
-# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-# for the specific language governing rights and limitations under the
-# License.
-#
-# The Original Code is Mozilla Corporation Code.
-#
-# The Initial Developer of the Original Code is
-# Mikeal Rogers.
-# Portions created by the Initial Developer are Copyright (C) 2008
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-#  Mikeal Rogers <mikeal.rogers@gmail.com>
-#
-# Alternatively, the contents of this file may be used under the terms of
-# either the GNU General Public License Version 2 or later (the "GPL"), or
-# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-# in which case the provisions of the GPL or the LGPL are applicable instead
-# of those above. If you wish to allow use of your version of this file only
-# under the terms of either the GPL or the LGPL, and not to allow others to
-# use your version of this file under the terms of the MPL, indicate your
-# decision by deleting the provisions above and replace them with the notice
-# and other provisions required by the GPL or the LGPL. If you do not delete
-# the provisions above, a recipient may use your version of this file under
-# the terms of any one of the MPL, the GPL or the LGPL.
-#
-# ***** END LICENSE BLOCK *****
-
-import asyncore
-import socket
-import select
-import logging
-import uuid
-from time import sleep
-from threading import Thread
-
-try:
-    import json as simplejson
-    from json.encoder import encode_basestring_ascii, encode_basestring
-except ImportError:
-    import simplejson
-    from simplejson.encoder import encode_basestring_ascii, encode_basestring
-
-logger = logging.getLogger(__name__)
-
-class JavaScriptException(Exception): pass
-
-class Telnet(asyncore.dispatcher):
-    def __init__(self, host, port):
-        self.host, self.port = host, port
-        asyncore.dispatcher.__init__(self)
-        self.create_socket(socket.AF_INET, socket.SOCK_STREAM)
-        self.connect((host, port))
-        self.buffer = ''
-        self.logger = logger
-
-    def __del__(self):
-        self.close()
-
-    def handle_close(self):
-        """override method of asyncore.dispatcher"""
-        self.close()
-
-    def handle_expt(self): self.close() # connection failed, shutdown
-    
-    def writable(self):
-        return (len(self.buffer) > 0)
-
-    def handle_write(self):
-        sent = self.send(self.buffer)
-        self.buffer = self.buffer[sent:]
-        
-    def read_all(self):
-        import socket
-        data = ''
-        while 1:
-            try:
-                data += self.recv(4096)
-            except socket.error:
-                return data
-
-    def handle_read(self):
-        self.data = self.read_all()
-        self.process_read(self.data)
-        
-    read_callback = lambda self, data: None
-
-decoder = simplejson.JSONDecoder()
-
-class JSObjectEncoder(simplejson.JSONEncoder):
-    """Encoder that supports jsobject references by name."""
-
-    def encode(self, o):
-        import jsobjects
-        if isinstance(o, jsobjects.JSObject):
-            return o._name_
-        else:
-            return simplejson.JSONEncoder.encode(self, o)
-
-    def _iterencode(self, o, markers=None):
-        import jsobjects
-        if isinstance(o, jsobjects.JSObject):
-            yield o._name_
-        elif isinstance(o, basestring):
-            if self.ensure_ascii:
-                encoder = encode_basestring_ascii
-            else:
-                encoder = encode_basestring
-            _encoding = self.encoding
-            if (_encoding is not None and isinstance(o, str)
-                    and not (_encoding == 'utf-8')):
-                o = o.decode(_encoding)
-            yield encoder(o)
-        elif o is None:
-            yield 'null'
-        elif o is True:
-            yield 'true'
-        elif o is False:
-            yield 'false'
-        elif isinstance(o, (int, long)):
-            yield str(o)
-        elif isinstance(o, float):
-            yield getattr(simplejson.encoder, 'floatstr', simplejson.encoder._floatstr)(o, self.allow_nan)
-        elif isinstance(o, (list, tuple)):
-            for chunk in self._iterencode_list(o, markers):
-                yield chunk
-        elif isinstance(o, dict):
-            for chunk in self._iterencode_dict(o, markers):
-                yield chunk
-        else:
-            if markers is not None:
-                markerid = id(o)
-                if markerid in markers:
-                    raise ValueError("Circular reference detected")
-                markers[markerid] = o
-            for chunk in self._iterencode_default(o, markers):
-                yield chunk
-            if markers is not None:
-                del markers[markerid]
-
-encoder = JSObjectEncoder()
-
-class JSBridgeDisconnectError(Exception): 
-    """exception raised when an unexpected disconect happens"""
-
-
-class Bridge(Telnet):
-    
-    trashes = []
-    reading = False
-    sbuffer = ''
-    events_list = []
-
-    callbacks = {}
-        
-    bridge_type = "bridge"
-    
-    registered = False
-    timeout_ctr = 0. # global timeout counter
-    
-    def __init__(self, host, port, timeout=60.):
-        """
-        - timeout : failsafe timeout for each call to run in seconds
-        """
-        self.timeout = timeout
-        Telnet.__init__(self, host, port)
-        sleep(.1)
-
-        # XXX we've actually already connected in Telnet
-        self.connect((host, port))
-    
-    def handle_connect(self):
-        self.register()
-
-    def run(self, _uuid, exec_string, interval=.2, raise_exeption=True):
-
-
-        exec_string += '\r\n'
-        self.send(exec_string)
-
-        while _uuid not in self.callbacks.keys():
-
-            Bridge.timeout_ctr += interval
-            if Bridge.timeout_ctr > self.timeout:
-                print 'Timeout: %s' % exec_string
-                raise JSBridgeDisconnectError("Connection timed out")
-            
-            sleep(interval)
-            try:
-                self.send('')
-            except socket.error:
-                raise JSBridgeDisconnectError("Connected disconnected")
-
-        Bridge.timeout_ctr = 0. # reset the counter
-        
-        callback = self.callbacks.pop(_uuid)
-        if callback['result'] is False and raise_exeption is True:
-            raise JavaScriptException(callback['exception'])
-        return callback 
-        
-    def register(self):
-        _uuid = str(uuid.uuid1())
-        self.send('bridge.register("'+_uuid+'", "'+self.bridge_type+'")\r\n')
-        self.registered = True
-
-    def execFunction(self, func_name, args, interval=.25):
-        _uuid = str(uuid.uuid1())
-        exec_args = [encoder.encode(_uuid), func_name, encoder.encode(args)]
-        return self.run(_uuid, 'bridge.execFunction('+ ', '.join(exec_args)+')', interval)
-        
-    def setAttribute(self, obj_name, name, value):
-        _uuid = str(uuid.uuid1())
-        exec_args = [encoder.encode(_uuid), obj_name, encoder.encode(name), encoder.encode(value)]
-        return self.run(_uuid, 'bridge.setAttribute('+', '.join(exec_args)+')')
-        
-    def set(self, obj_name):
-        _uuid = str(uuid.uuid1())
-        return self.run(_uuid, 'bridge.set('+', '.join([encoder.encode(_uuid), obj_name])+')')
-        
-    def describe(self, obj_name):
-        _uuid = str(uuid.uuid1())
-        return self.run(_uuid, 'bridge.describe('+', '.join([encoder.encode(_uuid), obj_name])+')')
-    
-    def fire_callbacks(self, obj):
-        self.callbacks[obj['uuid']] = obj
-    
-    def process_read(self, data):
-        """Parse out json objects and fire callbacks."""
-        self.sbuffer += data
-        self.reading = True
-        self.parsing = True
-        while self.parsing:
-            # Remove erroneus data in front of callback object
-            index = self.sbuffer.find('{')
-            if index is not -1 and index is not 0:
-                self.sbuffer = self.sbuffer[index:]
-            # Try to get a json object from the data stream    
-            try:
-                obj, index = decoder.raw_decode(self.sbuffer)
-            except Exception, e:
-                self.parsing = False
-            # If we got an object fire the callback infra    
-            if self.parsing:
-                self.fire_callbacks(obj)
-                self.sbuffer = self.sbuffer[index:]
-        
-class BackChannel(Bridge):
-    
-    bridge_type = "backchannel"
-    
-    def __init__(self, host, port):
-        Bridge.__init__(self, host, port)
-        self.uuid_listener_index = {}
-        self.event_listener_index = {}
-        self.global_listeners = []
-        
-    def fire_callbacks(self, obj):
-        """Handle all callback fireing on json objects pulled from the data stream."""
-        self.fire_event(**dict([(str(key), value,) for key, value in obj.items()]))
-
-    def add_listener(self, callback, uuid=None, eventType=None):
-        if uuid is not None:
-            self.uuid_listener_index.setdefault(uuid, []).append(callback)
-        if eventType is not None:
-            self.event_listener_index.setdefault(eventType, []).append(callback)
-
-    def add_global_listener(self, callback):
-        self.global_listeners.append(callback)
-
-    def fire_event(self, eventType=None, uuid=None, result=None, exception=None):
-        Bridge.timeout_ctr = 0. # reset the counter
-        event = eventType
-        if uuid is not None and self.uuid_listener_index.has_key(uuid):
-            for callback in self.uuid_listener_index[uuid]:
-                callback(result)
-        if event is not None and self.event_listener_index.has_key(event):
-            for callback in self.event_listener_index[event]:
-                callback(result)
-        for listener in self.global_listeners:
-            listener(eventType, result)
-
-thread = None
- 
-def create_network(hostname, port):
-    back_channel = BackChannel(hostname, port)
-    bridge = Bridge(hostname, port)
-    global thread
-    if not thread or not thread.isAlive():
-        def do():
-            try: asyncore.loop(use_poll=True)
-            except select.error:pass
-            
-        thread = Thread(target=do)
-        getattr(thread, 'setDaemon', lambda x : None)(True)
-        thread.start()
-    
-    return back_channel, bridge
deleted file mode 100644
--- a/testing/mozmill/jsbridge/setup.py
+++ /dev/null
@@ -1,76 +0,0 @@
-# ***** BEGIN LICENSE BLOCK *****
-# Version: MPL 1.1/GPL 2.0/LGPL 2.1
-#
-# The contents of this file are subject to the Mozilla Public License Version
-# 1.1 (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-# http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS IS" basis,
-# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-# for the specific language governing rights and limitations under the
-# License.
-#
-# The Original Code is Mozilla Corporation Code.
-#
-# The Initial Developer of the Original Code is
-# Mikeal Rogers.
-# Portions created by the Initial Developer are Copyright (C) 2008
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-#  Mikeal Rogers <mikeal.rogers@gmail.com>
-#
-# Alternatively, the contents of this file may be used under the terms of
-# either the GNU General Public License Version 2 or later (the "GPL"), or
-# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-# in which case the provisions of the GPL or the LGPL are applicable instead
-# of those above. If you wish to allow use of your version of this file only
-# under the terms of either the GPL or the LGPL, and not to allow others to
-# use your version of this file under the terms of the MPL, indicate your
-# decision by deleting the provisions above and replace them with the notice
-# and other provisions required by the GPL or the LGPL. If you do not delete
-# the provisions above, a recipient may use your version of this file under
-# the terms of any one of the MPL, the GPL or the LGPL.
-#
-# ***** END LICENSE BLOCK *****
-
-import sys
-from setuptools import setup, find_packages
-
-desc = """Python to JavaScript bridge interface."""
-summ = """A powerful and extensible Python to JavaScript bridge interface."""
-
-PACKAGE_NAME = "jsbridge"
-PACKAGE_VERSION = "2.4.1rc2"
-
-requires = ['mozrunner == 2.5.2rc2']
-
-if not sys.version.startswith('2.6'):
-    requires.append('simplejson')
-
-setup(name=PACKAGE_NAME,
-      version=PACKAGE_VERSION,
-      description=desc,
-      long_description=summ,
-      author='Mikeal Rogers, Mozilla',
-      author_email='mikeal.rogers@gmail.com',
-      url='http://github.com/mozautomation/mozmill',
-      license='http://www.apache.org/licenses/LICENSE-2.0',
-      packages=find_packages(exclude=['test']),
-      include_package_data=True,
-      package_data = {'': ['*.js', '*.css', '*.html', '*.txt', '*.xpi', '*.rdf', '*.xul', '*.jsm', '*.xml' 'extension'],},
-      entry_points="""
-          [console_scripts]
-          jsbridge = jsbridge:cli
-        """,
-      platforms =['Any'],
-      install_requires = requires,
-      classifiers=['Development Status :: 4 - Beta',
-                   'Environment :: Console',
-                   'Intended Audience :: Developers',
-                   'License :: OSI Approved :: Apache Software License',
-                   'Operating System :: OS Independent',
-                   'Topic :: Software Development :: Libraries :: Python Modules',
-                  ]
-     )
deleted file mode 100644
--- a/testing/mozmill/mozmill/MANIFEST.in
+++ /dev/null
@@ -1,2 +0,0 @@
-recursive-include docs *
-recursive-include mozmill/extension *
deleted file mode 100644
--- a/testing/mozmill/mozmill/docs/Makefile
+++ /dev/null
@@ -1,75 +0,0 @@
-# Makefile for Sphinx documentation
-#
-
-# You can set these variables from the command line.
-SPHINXOPTS    =
-SPHINXBUILD   = sphinx-build
-PAPER         =
-
-# Internal variables.
-PAPEROPT_a4     = -D latex_paper_size=a4
-PAPEROPT_letter = -D latex_paper_size=letter
-ALLSPHINXOPTS   = -d _build/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
-
-.PHONY: help clean html web pickle htmlhelp latex changes linkcheck
-
-help:
-	@echo "Please use \`make <target>' where <target> is one of"
-	@echo "  html      to make standalone HTML files"
-	@echo "  pickle    to make pickle files"
-	@echo "  json      to make JSON files"
-	@echo "  htmlhelp  to make HTML files and a HTML help project"
-	@echo "  latex     to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
-	@echo "  changes   to make an overview over all changed/added/deprecated items"
-	@echo "  linkcheck to check all external links for integrity"
-
-clean:
-	-rm -rf _build/*
-
-html:
-	mkdir -p _build/html _build/doctrees
-	$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) _build/html
-	@echo
-	@echo "Build finished. The HTML pages are in _build/html."
-
-pickle:
-	mkdir -p _build/pickle _build/doctrees
-	$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) _build/pickle
-	@echo
-	@echo "Build finished; now you can process the pickle files."
-
-web: pickle
-
-json:
-	mkdir -p _build/json _build/doctrees
-	$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) _build/json
-	@echo
-	@echo "Build finished; now you can process the JSON files."
-
-htmlhelp:
-	mkdir -p _build/htmlhelp _build/doctrees
-	$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) _build/htmlhelp
-	@echo
-	@echo "Build finished; now you can run HTML Help Workshop with the" \
-	      ".hhp project file in _build/htmlhelp."
-
-latex:
-	mkdir -p _build/latex _build/doctrees
-	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) _build/latex
-	@echo
-	@echo "Build finished; the LaTeX files are in _build/latex."
-	@echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \
-	      "run these through (pdf)latex."
-
-changes:
-	mkdir -p _build/changes _build/doctrees
-	$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) _build/changes
-	@echo
-	@echo "The overview file is in _build/changes."
-
-linkcheck:
-	mkdir -p _build/linkcheck _build/doctrees
-	$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) _build/linkcheck
-	@echo
-	@echo "Link check complete; look for any errors in the above output " \
-	      "or in _build/linkcheck/output.txt."
deleted file mode 100644
index e86b37588750230abe690cd9488c6c38fb5ad607..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 15c791446ca392f54af3299a84533327f8b95dc3..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
--- a/testing/mozmill/mozmill/docs/_build/html/_sources/index.txt
+++ /dev/null
@@ -1,188 +0,0 @@
-:mod:`mozmill` --- Full automation of XULRunner applications.
-=============================================================
-
-.. module:: mozmill
-   :synopsis: Full automation of XULRunner applications.
-.. moduleauthor:: Mikeal Rogers <mikeal.rogers@gmail.com>
-.. sectionauthor:: Mikeal Rogers <mikeal.rogers@gmail.com>
-
-Command Line Usage
-------------------
-
-The mozmill command line is versatile and includes a fair amount of debugging options. Even though all these options are available mozmill should run by default without any arguments and find your locally installed Firefox and run with mozmill.
-
-In most modes, ctrl-c will shut down Firefox and exit out of the mozmill Python side as well.
-
-.. code-block:: none
-      
-      $ mozmill
-
-.. cmdoption:: -h, --help
-
-   Show help message.
-
-.. cmdoption:: -b <binary>, --binary <binary>
-
-   Specify application binary location.
-   
-   Default :class:`mozrunner.Profile` and :class:`mozrunner.Runner` are still 
-   :class:`mozrunner.FirefoxProfile` and :class:`mozrunner.FirefoxRunner`. You can
-   change this by creating your own command line utility by subclassing :class:`CLI`
-   
-.. cmdoption:: -d <defaultprofile>
-
-   Specify the path to the default **clean** profile used to create new profiles.
-
-.. cmdoption:: -n, --no-new-profile
-
-   Do not create a new fresh profile.
-   
-.. cmdoption:: -p <profile>, --profile <profile>
-
-   Specifies a profile to use. Must be used with --no-new-profile.
-
-.. cmdoption:: -w <plugins>, --plugins <plugins>
-
-   Comma seperated list of additional paths to plugins to install.
-
-   Plugins can be either .xpi zip compressed extensions or deflated extension directories.
-
-.. cmdoption:: -l <logfile>, --logfile <logfile>
-
-   Log all events to *logfile*.
-
-.. cmdoption:: --report <uri>
-
-   *Currently in development.*
-
-   POST results to given brasstacks results server at *uri*. 
-
-.. cmdoption:: -t <test>, --test <test>
-
-   Run *test*. Can be either single test file or directory of tests.
-
-.. cmdoption::  --showall
-
-   Show all test output.
-
-.. cmdoption:: -D, --debug
-
-   Install debugging extensions and run with -jsconole
-
-.. cmdoption:: --show-errors
-
-   Print all logger errors to the console. When running tests only test failures and skipped 
-   tests are printed, this option print all other errors.
-
-.. cmdoption:: -s, --shell
-
-   Starts a Python shell for debugging.
-
-.. cmdoption:: -u, --usecode
-
-   By default --shell mode will use iPython if install and fall back to using the code module.
-   This option forces the use of the code module instead of iPython even when installed.
-
-.. cmdoption:: -P <port>, --port <port>
-
-   Specify port for jsbridge.
-
-Command Line Class
-------------------
-
-.. class:: CLI
-
-   Inherits from :class:`jsbridge.CLI` which inherits from :class:`mozrunner.CLI`.
-   
-   All the heavy lifting is handled by jsbridge and mozrunner. If you are subclassing
-   this in order to creat a new command line interface be sure to call :func:`super` on all
-   related methods.
-   
-   .. attribute:: runner_class
-   
-      Default runner class. Should be subclass of :class:`mozrunner.Runner`.
-      Defaults to :class:`mozrunner.FirefoxRunner`. 
-
-   .. attribute:: profile_class
-   
-      Default profile class. Should be subclass of :class:`mozruner.Profile`.
-      Defaults to :class:`mozrunner.FirefoxProfile`.
-
-Running MozMill from Python
----------------------------
-
-.. class:: MozMill([runner_class[, profile_class[, jsbridge_port]]])
-
-   Manages an instance of Firefox w/ jsbridge and provides facilities for running tests and
-   keeping track of results with callback methods.
-   
-   Default *runner_class* is :class:`mozrunner.FirefoxRunner`. Value should be a subclass of 
-   :class:`mozrunner.Runner`.
-   
-   Default *profile_class* is :class:`mozrunner.FirefoxProfile`. Value should be a subclass of 
-   :class:`mozrunner.Profile`.
-   
-   Default *jsbridge_port* is `24242`.
-   
-   .. attribute:: runner_class
-   
-      Set during initialization to subclass of :class:`mozrunner.Runner`.
-      
-   .. attribute:: profile_class
-   
-      Set during initialization to subclass of :class:`mozrunner.Profile`.
-   
-   .. attribute:: jsbridge_port
-   
-      Set during initialization to :class:`numbers.Integral`.
-   
-   .. method:: start([profile[, runner]])
-   
-      Start mozrunner and jsbridge pre-requisites.
-   
-      *profile* should be an instance of a `mozrunner.Profile` subclass. If one is not passed 
-      an instance of `self.profile_class` is created. `self.profile` will be set to this 
-      value.
-      
-      *runner* should be an instance of a `mozrunner.Runner` subclass. If one is not passed an 
-      instance of :attr:`runner_class` will be created. :attr:`runner` will be set to this value.
-      
-      This method will also run `runner.start()` and :func:`mozrunner.wait_and_create_network`
-      and sets :attr:`back_channel` and :attr:`bridge` to instances of 
-      :class:`jsbridge.BackChannel` and :class:`jsbridge.Bridge` respectively.
-      
-   .. attribute:: profile
-   
-      Set during :meth:`start` to subclass of :class:`mozrunner.Profile`.
-      
-   .. attribute:: runner
-   
-      Set during :meth:`start` to subclass of :class:`mozrunner.Runner`.
-      
-   .. attribute:: back_channel
-   
-      Set during :meth:`start` to subclass of :class:`jsbridge.BackChannel`.
-      
-   .. attribute:: bridge
-   
-      Set during :meth:`start` to subclass of :class:`jsbridge.Bridge`
-
-   .. method:: run_tests(test[, report])
-   
-      Run *test* in live Firefox using :attr:`bridge`.
-      
-      Adds local listeners :meth:`endTest_listener` and :meth:`endRunner_listener` to 
-      `"endTest"` and `"endRunner"` events using :meth:`jsbridge.BackChannel.add_listener` of
-      :attr:`back_channel`.
-      
-      When tests are done the results are posted to a results server at *report* if passed.
-      
-   .. method:: endTest_listener(test)
-   
-      When a test is finished the test object will be passed to this callback.
-      
-   .. method:: endRunner_listener(obj)
-   
-      When all the tests are done running this callback will be fired.
-   
-   
\ No newline at end of file
deleted file mode 100644
index 7fb82154a1748d507925865d3fbf7508d62483e5..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
--- a/testing/mozmill/mozmill/docs/_build/html/_static/default.css
+++ /dev/null
@@ -1,657 +0,0 @@
-/**
- * Sphinx Doc Design
- */
-
-body {
-    font-family: sans-serif;
-    font-size: 100%;
-    background-color: #11303d;
-    color: #000;
-    margin: 0;
-    padding: 0;
-}
-
-/* :::: LAYOUT :::: */
-
-div.document {
-    background-color: #1c4e63;
-}
-
-div.documentwrapper {
-    float: left;
-    width: 100%;
-}
-
-div.bodywrapper {
-    margin: 0 0 0 230px;
-}
-
-div.body {
-    background-color: white;
-    padding: 0 20px 30px 20px;
-}
-
-div.sphinxsidebarwrapper {
-    padding: 10px 5px 0 10px;
-}
-
-div.sphinxsidebar {
-    float: left;
-    width: 230px;
-    margin-left: -100%;
-    font-size: 90%;
-}
-
-div.clearer {
-    clear: both;
-}
-
-div.footer {
-    color: #fff;
-    width: 100%;
-    padding: 9px 0 9px 0;
-    text-align: center;
-    font-size: 75%;
-}
-
-div.footer a {
-    color: #fff;
-    text-decoration: underline;
-}
-
-div.related {
-    background-color: #133f52;
-    color: #fff;
-    width: 100%;
-    line-height: 30px;
-    font-size: 90%;
-}
-
-div.related h3 {
-    display: none;
-}
-
-div.related ul {
-    margin: 0;
-    padding: 0 0 0 10px;
-    list-style: none;
-}
-
-div.related li {
-    display: inline;
-}
-
-div.related li.right {
-    float: right;
-    margin-right: 5px;
-}
-
-div.related a {
-    color: white;
-}
-
-/* ::: TOC :::: */
-div.sphinxsidebar h3 {
-    font-family: 'Trebuchet MS', sans-serif;
-    color: white;
-    font-size: 1.4em;
-    font-weight: normal;
-    margin: 0;
-    padding: 0;
-}
-
-div.sphinxsidebar h3 a {
-    color: white;
-}
-
-div.sphinxsidebar h4 {
-    font-family: 'Trebuchet MS', sans-serif;
-    color: white;
-    font-size: 1.3em;
-    font-weight: normal;
-    margin: 5px 0 0 0;
-    padding: 0;
-}
-
-div.sphinxsidebar p {
-    color: white;
-}
-
-div.sphinxsidebar p.topless {
-    margin: 5px 10px 10px 10px;
-}
-
-div.sphinxsidebar ul {
-    margin: 10px;
-    padding: 0;
-    list-style: none;
-    color: white;
-}
-
-div.sphinxsidebar ul ul,
-div.sphinxsidebar ul.want-points {
-    margin-left: 20px;
-    list-style: square;
-}
-
-div.sphinxsidebar ul ul {
-    margin-top: 0;
-    margin-bottom: 0;
-}
-
-div.sphinxsidebar a {
-    color: #98dbcc;
-}
-
-div.sphinxsidebar form {
-    margin-top: 10px;
-}
-
-div.sphinxsidebar input {
-    border: 1px solid #98dbcc;
-    font-family: sans-serif;
-    font-size: 1em;
-}
-
-/* :::: MODULE CLOUD :::: */
-div.modulecloud {
-    margin: -5px 10px 5px 10px;
-    padding: 10px;
-    line-height: 160%;
-    border: 1px solid #cbe7e5;
-    background-color: #f2fbfd;
-}
-
-div.modulecloud a {
-    padding: 0 5px 0 5px;
-}
-
-/* :::: SEARCH :::: */
-ul.search {
-    margin: 10px 0 0 20px;
-    padding: 0;
-}
-
-ul.search li {
-    padding: 5px 0 5px 20px;
-    background-image: url(file.png);
-    background-repeat: no-repeat;
-    background-position: 0 7px;
-}
-
-ul.search li a {
-    font-weight: bold;
-}
-
-ul.search li div.context {
-    color: #888;
-    margin: 2px 0 0 30px;
-    text-align: left;
-}
-
-ul.keywordmatches li.goodmatch a {
-    font-weight: bold;
-}
-
-/* :::: COMMON FORM STYLES :::: */
-
-div.actions {
-    padding: 5px 10px 5px 10px;
-    border-top: 1px solid #cbe7e5;
-    border-bottom: 1px solid #cbe7e5;
-    background-color: #e0f6f4;
-}
-
-form dl {
-    color: #333;
-}
-
-form dt {
-    clear: both;
-    float: left;
-    min-width: 110px;
-    margin-right: 10px;
-    padding-top: 2px;
-}
-
-input#homepage {
-    display: none;
-}
-
-div.error {
-    margin: 5px 20px 0 0;
-    padding: 5px;
-    border: 1px solid #d00;
-    font-weight: bold;
-}
-
-/* :::: INDEX PAGE :::: */
-
-table.contentstable {
-    width: 90%;
-}
-
-table.contentstable p.biglink {
-    line-height: 150%;
-}
-
-a.biglink {
-    font-size: 1.3em;
-}
-
-span.linkdescr {
-    font-style: italic;
-    padding-top: 5px;
-    font-size: 90%;
-}
-
-/* :::: INDEX STYLES :::: */
-
-table.indextable td {
-    text-align: left;
-    vertical-align: top;
-}
-
-table.indextable dl, table.indextable dd {
-    margin-top: 0;
-    margin-bottom: 0;
-}
-
-table.indextable tr.pcap {
-    height: 10px;
-}
-
-table.indextable tr.cap {
-    margin-top: 10px;
-    background-color: #f2f2f2;
-}
-
-img.toggler {
-    margin-right: 3px;
-    margin-top: 3px;
-    cursor: pointer;
-}
-
-form.pfform {
-    margin: 10px 0 20px 0;
-}
-
-/* :::: GLOBAL STYLES :::: */
-
-.docwarning {
-    background-color: #ffe4e4;
-    padding: 10px;
-    margin: 0 -20px 0 -20px;
-    border-bottom: 1px solid #f66;
-}
-
-p.subhead {
-    font-weight: bold;
-    margin-top: 20px;
-}
-
-a {
-    color: #355f7c;
-    text-decoration: none;
-}
-
-a:hover {
-    text-decoration: underline;
-}
-
-div.body h1,
-div.body h2,
-div.body h3,
-div.body h4,
-div.body h5,
-div.body h6 {
-    font-family: 'Trebuchet MS', sans-serif;
-    background-color: #f2f2f2;
-    font-weight: normal;
-    color: #20435c;
-    border-bottom: 1px solid #ccc;
-    margin: 20px -20px 10px -20px;
-    padding: 3px 0 3px 10px;
-}
-
-div.body h1 { margin-top: 0; font-size: 200%; }
-div.body h2 { font-size: 160%; }
-div.body h3 { font-size: 140%; }
-div.body h4 { font-size: 120%; }
-div.body h5 { font-size: 110%; }
-div.body h6 { font-size: 100%; }
-
-a.headerlink {
-    color: #c60f0f;
-    font-size: 0.8em;
-    padding: 0 4px 0 4px;
-    text-decoration: none;
-    visibility: hidden;
-}
-
-h1:hover > a.headerlink,
-h2:hover > a.headerlink,
-h3:hover > a.headerlink,
-h4:hover > a.headerlink,
-h5:hover > a.headerlink,
-h6:hover > a.headerlink,
-dt:hover > a.headerlink {
-    visibility: visible;
-}
-
-a.headerlink:hover {
-    background-color: #c60f0f;
-    color: white;
-}
-
-div.body p, div.body dd, div.body li {
-    text-align: justify;
-    line-height: 130%;
-}
-
-div.body p.caption {
-    text-align: inherit;
-}
-
-div.body td {
-    text-align: left;
-}
-
-ul.fakelist {
-    list-style: none;
-    margin: 10px 0 10px 20px;
-    padding: 0;
-}
-
-.field-list ul {
-    padding-left: 1em;
-}
-
-.first {
-    margin-top: 0 !important;
-}
-
-/* "Footnotes" heading */
-p.rubric {
-    margin-top: 30px;
-    font-weight: bold;
-}
-
-/* Sidebars */
-
-div.sidebar {
-    margin: 0 0 0.5em 1em;
-    border: 1px solid #ddb;
-    padding: 7px 7px 0 7px;
-    background-color: #ffe;
-    width: 40%;
-    float: right;
-}
-
-p.sidebar-title {
-    font-weight: bold;
-}
-
-/* "Topics" */
-
-div.topic {
-    background-color: #eee;
-    border: 1px solid #ccc;
-    padding: 7px 7px 0 7px;
-    margin: 10px 0 10px 0;
-}
-
-p.topic-title {
-    font-size: 1.1em;
-    font-weight: bold;
-    margin-top: 10px;
-}
-
-/* Admonitions */
-
-div.admonition {
-    margin-top: 10px;
-    margin-bottom: 10px;
-    padding: 7px;
-}
-
-div.admonition dt {
-    font-weight: bold;
-}
-
-div.admonition dl {
-    margin-bottom: 0;
-}
-
-div.admonition p.admonition-title + p {
-    display: inline;
-}
-
-div.seealso {
-    background-color: #ffc;
-    border: 1px solid #ff6;
-}
-
-div.warning {
-    background-color: #ffe4e4;
-    border: 1px solid #f66;
-}
-
-div.note {
-    background-color: #eee;
-    border: 1px solid #ccc;
-}
-
-p.admonition-title {
-    margin: 0px 10px 5px 0px;
-    font-weight: bold;
-    display: inline;
-}
-
-p.admonition-title:after {
-    content: ":";
-}
-
-div.body p.centered {
-    text-align: center;
-    margin-top: 25px;
-}
-
-table.docutils {
-    border: 0;
-}
-
-table.docutils td, table.docutils th {
-    padding: 1px 8px 1px 0;
-    border-top: 0;
-    border-left: 0;
-    border-right: 0;
-    border-bottom: 1px solid #aaa;
-}
-
-table.field-list td, table.field-list th {
-    border: 0 !important;
-}
-
-table.footnote td, table.footnote th {
-    border: 0 !important;
-}
-
-.field-list ul {
-    margin: 0;
-    padding-left: 1em;
-}
-
-.field-list p {
-    margin: 0;
-}
-
-dl {
-    margin-bottom: 15px;
-    clear: both;
-}
-
-dd p {
-    margin-top: 0px;
-}
-
-dd ul, dd table {
-    margin-bottom: 10px;
-}
-
-dd {
-    margin-top: 3px;
-    margin-bottom: 10px;
-    margin-left: 30px;
-}
-
-.refcount {
-    color: #060;
-}
-
-dt:target,
-.highlight {
-    background-color: #fbe54e;
-}
-
-dl.glossary dt {
-    font-weight: bold;
-    font-size: 1.1em;
-}
-
-th {
-    text-align: left;
-    padding-right: 5px;
-}
-
-pre {
-    padding: 5px;
-    background-color: #efc;
-    color: #333;
-    border: 1px solid #ac9;
-    border-left: none;
-    border-right: none;
-    overflow: auto;
-}
-
-td.linenos pre {
-    padding: 5px 0px;
-    border: 0;
-    background-color: transparent;
-    color: #aaa;
-}
-
-table.highlighttable {
-    margin-left: 0.5em;
-}
-
-table.highlighttable td {
-    padding: 0 0.5em 0 0.5em;
-}
-
-tt {
-    background-color: #ecf0f3;
-    padding: 0 1px 0 1px;
-    font-size: 0.95em;
-}
-
-tt.descname {
-    background-color: transparent;
-    font-weight: bold;
-    font-size: 1.2em;
-}
-
-tt.descclassname {
-    background-color: transparent;
-}
-
-tt.xref, a tt {
-    background-color: transparent;
-    font-weight: bold;
-}
-
-.footnote:target  { background-color: #ffa }
-
-h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {
-    background-color: transparent;
-}
-
-.optional {
-    font-size: 1.3em;
-}
-
-.versionmodified {
-    font-style: italic;
-}
-
-form.comment {
-    margin: 0;
-    padding: 10px 30px 10px 30px;
-    background-color: #eee;
-}
-
-form.comment h3 {
-    background-color: #326591;
-    color: white;
-    margin: -10px -30px 10px -30px;
-    padding: 5px;
-    font-size: 1.4em;
-}
-
-form.comment input,
-form.comment textarea {
-    border: 1px solid #ccc;
-    padding: 2px;
-    font-family: sans-serif;
-    font-size: 100%;
-}
-
-form.comment input[type="text"] {
-    width: 240px;
-}
-
-form.comment textarea {
-    width: 100%;
-    height: 200px;
-    margin-bottom: 10px;
-}
-
-.system-message {
-    background-color: #fda;
-    padding: 5px;
-    border: 3px solid red;
-}
-
-img.math {
-    vertical-align: middle;
-}
-
-div.math p {
-    text-align: center;
-}
-
-span.eqno {
-    float: right;
-}
-
-img.logo {
-    border: 0;
-}
-
-/* :::: PRINT :::: */
-@media print {
-    div.document,
-    div.documentwrapper,
-    div.bodywrapper {
-        margin: 0;
-        width : 100%;
-    }
-
-    div.sphinxsidebar,
-    div.related,
-    div.footer,
-    div#comments div.new-comment-box,
-    #top-link {
-        display: none;
-    }
-}
deleted file mode 100644
--- a/testing/mozmill/mozmill/docs/_build/html/_static/doctools.js
+++ /dev/null
@@ -1,232 +0,0 @@
-/// XXX: make it cross browser
-
-/**
- * make the code below compatible with browsers without
- * an installed firebug like debugger
- */
-if (!window.console || !console.firebug) {
-  var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml",
-      "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];
-  window.console = {};
-  for (var i = 0; i < names.length; ++i)
-    window.console[names[i]] = function() {}
-}
-
-/**
- * small helper function to urldecode strings
- */
-jQuery.urldecode = function(x) {
-  return decodeURIComponent(x).replace(/\+/g, ' ');
-}
-
-/**
- * small helper function to urlencode strings
- */
-jQuery.urlencode = encodeURIComponent;
-
-/**
- * This function returns the parsed url parameters of the
- * current request. Multiple values per key are supported,
- * it will always return arrays of strings for the value parts.
- */
-jQuery.getQueryParameters = function(s) {
-  if (typeof s == 'undefined')
-    s = document.location.search;
-  var parts = s.substr(s.indexOf('?') + 1).split('&');
-  var result = {};
-  for (var i = 0; i < parts.length; i++) {
-    var tmp = parts[i].split('=', 2);
-    var key = jQuery.urldecode(tmp[0]);
-    var value = jQuery.urldecode(tmp[1]);
-    if (key in result)
-      result[key].push(value);
-    else
-      result[key] = [value];
-  }
-  return result;
-}
-
-/**
- * small function to check if an array contains
- * a given item.
- */
-jQuery.contains = function(arr, item) {
-  for (var i = 0; i < arr.length; i++) {
-    if (arr[i] == item)
-      return true;
-  }
-  return false;
-}
-
-/**
- * highlight a given string on a jquery object by wrapping it in
- * span elements with the given class name.
- */
-jQuery.fn.highlightText = function(text, className) {
-  function highlight(node) {
-    if (node.nodeType == 3) {
-      var val = node.nodeValue;
-      var pos = val.toLowerCase().indexOf(text);
-      if (pos >= 0 && !jQuery.className.has(node.parentNode, className)) {
-        var span = document.createElement("span");
-        span.className = className;
-        span.appendChild(document.createTextNode(val.substr(pos, text.length)));
-        node.parentNode.insertBefore(span, node.parentNode.insertBefore(
-          document.createTextNode(val.substr(pos + text.length)),
-          node.nextSibling));
-        node.nodeValue = val.substr(0, pos);
-      }
-    }
-    else if (!jQuery(node).is("button, select, textarea")) {
-      jQuery.each(node.childNodes, function() {
-        highlight(this)
-      });
-    }
-  }
-  return this.each(function() {
-    highlight(this);
-  });
-}
-
-/**
- * Small JavaScript module for the documentation.
- */
-var Documentation = {
-
-  init : function() {
-    this.fixFirefoxAnchorBug();
-    this.highlightSearchWords();
-    this.initModIndex();
-  },
-
-  /**
-   * i18n support
-   */
-  TRANSLATIONS : {},
-  PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; },
-  LOCALE : 'unknown',
-
-  // gettext and ngettext don't access this so that the functions
-  // can savely bound to a different name (_ = Documentation.gettext)
-  gettext : function(string) {
-    var translated = Documentation.TRANSLATIONS[string];
-    if (typeof translated == 'undefined')
-      return string;
-    return (typeof translated == 'string') ? translated : translated[0];
-  },
-
-  ngettext : function(singular, plural, n) {
-    var translated = Documentation.TRANSLATIONS[singular];
-    if (typeof translated == 'undefined')
-      return (n == 1) ? singular : plural;
-    return translated[Documentation.PLURALEXPR(n)];
-  },
-
-  addTranslations : function(catalog) {
-    for (var key in catalog.messages)
-      this.TRANSLATIONS[key] = catalog.messages[key];
-    this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')');
-    this.LOCALE = catalog.locale;
-  },
-
-  /**
-   * add context elements like header anchor links
-   */
-  addContextElements : function() {
-    $('div[@id] > :header:first').each(function() {
-      $('<a class="headerlink">\u00B6</a>').
-      attr('href', '#' + this.id).
-      attr('title', _('Permalink to this headline')).
-      appendTo(this);
-    });
-    $('dt[@id]').each(function() {
-      $('<a class="headerlink">\u00B6</a>').
-      attr('href', '#' + this.id).
-      attr('title', _('Permalink to this definition')).
-      appendTo(this);
-    });
-  },
-
-  /**
-   * workaround a firefox stupidity
-   */
-  fixFirefoxAnchorBug : function() {
-    if (document.location.hash && $.browser.mozilla)
-      window.setTimeout(function() {
-        document.location.href += '';
-      }, 10);
-  },
-
-  /**
-   * highlight the search words provided in the url in the text
-   */
-  highlightSearchWords : function() {
-    var params = $.getQueryParameters();
-    var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : [];
-    if (terms.length) {
-      var body = $('div.body');
-      window.setTimeout(function() {
-        $.each(terms, function() {
-          body.highlightText(this.toLowerCase(), 'highlight');
-        });
-      }, 10);
-      $('<li class="highlight-link"><a href="javascript:Documentation.' +
-        'hideSearchWords()">' + _('Hide Search Matches') + '</a></li>')
-          .appendTo($('.sidebar .this-page-menu'));
-    }
-  },
-
-  /**
-   * init the modindex toggle buttons
-   */
-  initModIndex : function() {
-    var togglers = $('img.toggler').click(function() {
-      var src = $(this).attr('src');
-      var idnum = $(this).attr('id').substr(7);
-      console.log($('tr.cg-' + idnum).toggle());
-      if (src.substr(-9) == 'minus.png')
-        $(this).attr('src', src.substr(0, src.length-9) + 'plus.png');
-      else
-        $(this).attr('src', src.substr(0, src.length-8) + 'minus.png');
-    }).css('display', '');
-    if (DOCUMENTATION_OPTIONS.COLLAPSE_MODINDEX) {
-        togglers.click();
-    }
-  },
-
-  /**
-   * helper function to hide the search marks again
-   */
-  hideSearchWords : function() {
-    $('.sidebar .this-page-menu li.highlight-link').fadeOut(300);
-    $('span.highlight').removeClass('highlight');
-  },
-
-  /**
-   * make the url absolute
-   */
-  makeURL : function(relativeURL) {
-    return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL;
-  },
-
-  /**
-   * get the current relative url
-   */
-  getCurrentURL : function() {
-    var path = document.location.pathname;
-    var parts = path.split(/\//);
-    $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() {
-      if (this == '..')
-        parts.pop();
-    });
-    var url = parts.join('/');
-    return path.substring(url.lastIndexOf('/') + 1, path.length - 1);
-  }
-};
-
-// quick alias for translations
-_ = Documentation.gettext;
-
-$(document).ready(function() {
-  Documentation.init();
-});
deleted file mode 100644
index d18082e397e7e54f20721af768c4c2983258f1b4..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
--- a/testing/mozmill/mozmill/docs/_build/html/_static/jquery.js
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * jQuery 1.2.6 - New Wave Javascript
- *
- * Copyright (c) 2008 John Resig (jquery.com)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * $Date: 2008-05-24 14:22:17 -0400 (Sat, 24 May 2008) $
- * $Rev: 5685 $
- */
-(function(){var _jQuery=window.jQuery,_$=window.$;var jQuery=window.jQuery=window.$=function(selector,context){return new jQuery.fn.init(selector,context);};var quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,isSimple=/^.[^:#\[\.]*$/,undefined;jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;if(selector.nodeType){this[0]=selector;this.length=1;return this;}if(typeof selector=="string"){var match=quickExpr.exec(selector);if(match&&(match[1]||!context)){if(match[1])selector=jQuery.clean([match[1]],context);else{var elem=document.getElementById(match[3]);if(elem){if(elem.id!=match[3])return jQuery().find(selector);return jQuery(elem);}selector=[];}}else
-return jQuery(context).find(selector);}else if(jQuery.isFunction(selector))return jQuery(document)[jQuery.fn.ready?"ready":"load"](selector);return this.setArray(jQuery.makeArray(selector));},jquery:"1.2.6",size:function(){return this.length;},length:0,get:function(num){return num==undefined?jQuery.makeArray(this):this[num];},pushStack:function(elems){var ret=jQuery(elems);ret.prevObject=this;return ret;},setArray:function(elems){this.length=0;Array.prototype.push.apply(this,elems);return this;},each:function(callback,args){return jQuery.each(this,callback,args);},index:function(elem){var ret=-1;return jQuery.inArray(elem&&elem.jquery?elem[0]:elem,this);},attr:function(name,value,type){var options=name;if(name.constructor==String)if(value===undefined)return this[0]&&jQuery[type||"attr"](this[0],name);else{options={};options[name]=value;}return this.each(function(i){for(name in options)jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name));});},css:function(key,value){if((key=='width'||key=='height')&&parseFloat(value)<0)value=undefined;return this.attr(key,value,"curCSS");},text:function(text){if(typeof text!="object"&&text!=null)return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text));var ret="";jQuery.each(text||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8)ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this]);});});return ret;},wrapAll:function(html){if(this[0])jQuery(html,this[0].ownerDocument).clone().insertBefore(this[0]).map(function(){var elem=this;while(elem.firstChild)elem=elem.firstChild;return elem;}).append(this);return this;},wrapInner:function(html){return this.each(function(){jQuery(this).contents().wrapAll(html);});},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html);});},append:function(){return this.domManip(arguments,true,false,function(elem){if(this.nodeType==1)this.appendChild(elem);});},prepend:function(){return this.domManip(arguments,true,true,function(elem){if(this.nodeType==1)this.insertBefore(elem,this.firstChild);});},before:function(){return this.domManip(arguments,false,false,function(elem){this.parentNode.insertBefore(elem,this);});},after:function(){return this.domManip(arguments,false,true,function(elem){this.parentNode.insertBefore(elem,this.nextSibling);});},end:function(){return this.prevObject||jQuery([]);},find:function(selector){var elems=jQuery.map(this,function(elem){return jQuery.find(selector,elem);});return this.pushStack(/[^+>] [^+>]/.test(selector)||selector.indexOf("..")>-1?jQuery.unique(elems):elems);},clone:function(events){var ret=this.map(function(){if(jQuery.browser.msie&&!jQuery.isXMLDoc(this)){var clone=this.cloneNode(true),container=document.createElement("div");container.appendChild(clone);return jQuery.clean([container.innerHTML])[0];}else
-return this.cloneNode(true);});var clone=ret.find("*").andSelf().each(function(){if(this[expando]!=undefined)this[expando]=null;});if(events===true)this.find("*").andSelf().each(function(i){if(this.nodeType==3)return;var events=jQuery.data(this,"events");for(var type in events)for(var handler in events[type])jQuery.event.add(clone[i],type,events[type][handler],events[type][handler].data);});return ret;},filter:function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i){return selector.call(elem,i);})||jQuery.multiFilter(selector,this));},not:function(selector){if(selector.constructor==String)if(isSimple.test(selector))return this.pushStack(jQuery.multiFilter(selector,this,true));else
-selector=jQuery.multiFilter(selector,this);var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector;});},add:function(selector){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),typeof selector=='string'?jQuery(selector):jQuery.makeArray(selector))));},is:function(selector){return!!selector&&jQuery.multiFilter(selector,this).length>0;},hasClass:function(selector){return this.is("."+selector);},val:function(value){if(value==undefined){if(this.length){var elem=this[0];if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type=="select-one";if(index<0)return null;for(var i=one?index:0,max=one?index+1:options.length;i<max;i++){var option=options[i];if(option.selected){value=jQuery.browser.msie&&!option.attributes.value.specified?option.text:option.value;if(one)return value;values.push(value);}}return values;}else
-return(this[0].value||"").replace(/\r/g,"");}return undefined;}if(value.constructor==Number)value+='';return this.each(function(){if(this.nodeType!=1)return;if(value.constructor==Array&&/radio|checkbox/.test(this.type))this.checked=(jQuery.inArray(this.value,value)>=0||jQuery.inArray(this.name,value)>=0);else if(jQuery.nodeName(this,"select")){var values=jQuery.makeArray(value);jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0);});if(!values.length)this.selectedIndex=-1;}else
-this.value=value;});},html:function(value){return value==undefined?(this[0]?this[0].innerHTML:null):this.empty().append(value);},replaceWith:function(value){return this.after(value).remove();},eq:function(i){return this.slice(i,i+1);},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments));},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},andSelf:function(){return this.add(this.prevObject);},data:function(key,value){var parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value===undefined){var data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data===undefined&&this.length)data=jQuery.data(this[0],key);return data===undefined&&parts[1]?this.data(parts[0]):data;}else
-return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQuery.data(this,key,value);});},removeData:function(key){return this.each(function(){jQuery.removeData(this,key);});},domManip:function(args,table,reverse,callback){var clone=this.length>1,elems;return this.each(function(){if(!elems){elems=jQuery.clean(args,this.ownerDocument);if(reverse)elems.reverse();}var obj=this;if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(elems[0],"tr"))obj=this.getElementsByTagName("tbody")[0]||this.appendChild(this.ownerDocument.createElement("tbody"));var scripts=jQuery([]);jQuery.each(elems,function(){var elem=clone?jQuery(this).clone(true)[0]:this;if(jQuery.nodeName(elem,"script"))scripts=scripts.add(elem);else{if(elem.nodeType==1)scripts=scripts.add(jQuery("script",elem).remove());callback.call(obj,elem);}});scripts.each(evalScript);});}};jQuery.fn.init.prototype=jQuery.fn;function evalScript(i,elem){if(elem.src)jQuery.ajax({url:elem.src,async:false,dataType:"script"});else
-jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");if(elem.parentNode)elem.parentNode.removeChild(elem);}function now(){return+new Date;}jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;if(target.constructor==Boolean){deep=target;target=arguments[1]||{};i=2;}if(typeof target!="object"&&typeof target!="function")target={};if(length==i){target=this;--i;}for(;i<length;i++)if((options=arguments[i])!=null)for(var name in options){var src=target[name],copy=options[name];if(target===copy)continue;if(deep&&copy&&typeof copy=="object"&&!copy.nodeType)target[name]=jQuery.extend(deep,src||(copy.length!=null?[]:{}),copy);else if(copy!==undefined)target[name]=copy;}return target;};var expando="jQuery"+now(),uuid=0,windowData={},exclude=/z-?index|font-?weight|opacity|zoom|line-?height/i,defaultView=document.defaultView||{};jQuery.extend({noConflict:function(deep){window.$=_$;if(deep)window.jQuery=_jQuery;return jQuery;},isFunction:function(fn){return!!fn&&typeof fn!="string"&&!fn.nodeName&&fn.constructor!=Array&&/^[\s[]?function/.test(fn+"");},isXMLDoc:function(elem){return elem.documentElement&&!elem.body||elem.tagName&&elem.ownerDocument&&!elem.ownerDocument.body;},globalEval:function(data){data=jQuery.trim(data);if(data){var head=document.getElementsByTagName("head")[0]||document.documentElement,script=document.createElement("script");script.type="text/javascript";if(jQuery.browser.msie)script.text=data;else
-script.appendChild(document.createTextNode(data));head.insertBefore(script,head.firstChild);head.removeChild(script);}},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toUpperCase()==name.toUpperCase();},cache:{},data:function(elem,name,data){elem=elem==window?windowData:elem;var id=elem[expando];if(!id)id=elem[expando]=++uuid;if(name&&!jQuery.cache[id])jQuery.cache[id]={};if(data!==undefined)jQuery.cache[id][name]=data;return name?jQuery.cache[id][name]:id;},removeData:function(elem,name){elem=elem==window?windowData:elem;var id=elem[expando];if(name){if(jQuery.cache[id]){delete jQuery.cache[id][name];name="";for(name in jQuery.cache[id])break;if(!name)jQuery.removeData(elem);}}else{try{delete elem[expando];}catch(e){if(elem.removeAttribute)elem.removeAttribute(expando);}delete jQuery.cache[id];}},each:function(object,callback,args){var name,i=0,length=object.length;if(args){if(length==undefined){for(name in object)if(callback.apply(object[name],args)===false)break;}else
-for(;i<length;)if(callback.apply(object[i++],args)===false)break;}else{if(length==undefined){for(name in object)if(callback.call(object[name],name,object[name])===false)break;}else
-for(var value=object[0];i<length&&callback.call(value,i,value)!==false;value=object[++i]){}}return object;},prop:function(elem,value,type,i,name){if(jQuery.isFunction(value))value=value.call(elem,i);return value&&value.constructor==Number&&type=="curCSS"&&!exclude.test(name)?value+"px":value;},className:{add:function(elem,classNames){jQuery.each((classNames||"").split(/\s+/),function(i,className){if(elem.nodeType==1&&!jQuery.className.has(elem.className,className))elem.className+=(elem.className?" ":"")+className;});},remove:function(elem,classNames){if(elem.nodeType==1)elem.className=classNames!=undefined?jQuery.grep(elem.className.split(/\s+/),function(className){return!jQuery.className.has(classNames,className);}).join(" "):"";},has:function(elem,className){return jQuery.inArray(className,(elem.className||elem).toString().split(/\s+/))>-1;}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name];}callback.call(elem);for(var name in options)elem.style[name]=old[name];},css:function(elem,name,force){if(name=="width"||name=="height"){var val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=="width"?["Left","Right"]:["Top","Bottom"];function getWH(){val=name=="width"?elem.offsetWidth:elem.offsetHeight;var padding=0,border=0;jQuery.each(which,function(){padding+=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;border+=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;});val-=Math.round(padding+border);}if(jQuery(elem).is(":visible"))getWH();else
-jQuery.swap(elem,props,getWH);return Math.max(0,val);}return jQuery.curCSS(elem,name,force);},curCSS:function(elem,name,force){var ret,style=elem.style;function color(elem){if(!jQuery.browser.safari)return false;var ret=defaultView.getComputedStyle(elem,null);return!ret||ret.getPropertyValue("color")=="";}if(name=="opacity"&&jQuery.browser.msie){ret=jQuery.attr(style,"opacity");return ret==""?"1":ret;}if(jQuery.browser.opera&&name=="display"){var save=style.outline;style.outline="0 solid black";style.outline=save;}if(name.match(/float/i))name=styleFloat;if(!force&&style&&style[name])ret=style[name];else if(defaultView.getComputedStyle){if(name.match(/float/i))name="float";name=name.replace(/([A-Z])/g,"-$1").toLowerCase();var computedStyle=defaultView.getComputedStyle(elem,null);if(computedStyle&&!color(elem))ret=computedStyle.getPropertyValue(name);else{var swap=[],stack=[],a=elem,i=0;for(;a&&color(a);a=a.parentNode)stack.unshift(a);for(;i<stack.length;i++)if(color(stack[i])){swap[i]=stack[i].style.display;stack[i].style.display="block";}ret=name=="display"&&swap[stack.length-1]!=null?"none":(computedStyle&&computedStyle.getPropertyValue(name))||"";for(i=0;i<swap.length;i++)if(swap[i]!=null)stack[i].style.display=swap[i];}if(name=="opacity"&&ret=="")ret="1";}else if(elem.currentStyle){var camelCase=name.replace(/\-(\w)/g,function(all,letter){return letter.toUpperCase();});ret=elem.currentStyle[name]||elem.currentStyle[camelCase];if(!/^\d+(px)?$/i.test(ret)&&/^\d/.test(ret)){var left=style.left,rsLeft=elem.runtimeStyle.left;elem.runtimeStyle.left=elem.currentStyle.left;style.left=ret||0;ret=style.pixelLeft+"px";style.left=left;elem.runtimeStyle.left=rsLeft;}}return ret;},clean:function(elems,context){var ret=[];context=context||document;if(typeof context.createElement=='undefined')context=context.ownerDocument||context[0]&&context[0].ownerDocument||document;jQuery.each(elems,function(i,elem){if(!elem)return;if(elem.constructor==Number)elem+='';if(typeof elem=="string"){elem=elem.replace(/(<(\w+)[^>]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+"></"+tag+">";});var tags=jQuery.trim(elem).toLowerCase(),div=context.createElement("div");var wrap=!tags.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!tags.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!tags.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!tags.indexOf("<td")||!tags.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!tags.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||jQuery.browser.msie&&[1,"div<div>","</div>"]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--)div=div.lastChild;if(jQuery.browser.msie){var tbody=!tags.indexOf("<table")&&tags.indexOf("<tbody")<0?div.firstChild&&div.firstChild.childNodes:wrap[1]=="<table>"&&tags.indexOf("<tbody")<0?div.childNodes:[];for(var j=tbody.length-1;j>=0;--j)if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length)tbody[j].parentNode.removeChild(tbody[j]);if(/^\s/.test(elem))div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild);}elem=jQuery.makeArray(div.childNodes);}if(elem.length===0&&(!jQuery.nodeName(elem,"form")&&!jQuery.nodeName(elem,"select")))return;if(elem[0]==undefined||jQuery.nodeName(elem,"form")||elem.options)ret.push(elem);else
-ret=jQuery.merge(ret,elem);});return ret;},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8)return undefined;var notxml=!jQuery.isXMLDoc(elem),set=value!==undefined,msie=jQuery.browser.msie;name=notxml&&jQuery.props[name]||name;if(elem.tagName){var special=/href|src|style/.test(name);if(name=="selected"&&jQuery.browser.safari)elem.parentNode.selectedIndex;if(name in elem&&notxml&&!special){if(set){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode)throw"type property can't be changed";elem[name]=value;}if(jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name))return elem.getAttributeNode(name).nodeValue;return elem[name];}if(msie&&notxml&&name=="style")return jQuery.attr(elem.style,"cssText",value);if(set)elem.setAttribute(name,""+value);var attr=msie&&notxml&&special?elem.getAttribute(name,2):elem.getAttribute(name);return attr===null?undefined:attr;}if(msie&&name=="opacity"){if(set){elem.zoom=1;elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(value)+''=="NaN"?"":"alpha(opacity="+value*100+")");}return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100)+'':"";}name=name.replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase();});if(set)elem[name]=value;return elem[name];},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"");},makeArray:function(array){var ret=[];if(array!=null){var i=array.length;if(i==null||array.split||array.setInterval||array.call)ret[0]=array;else
-while(i)ret[--i]=array[i];}return ret;},inArray:function(elem,array){for(var i=0,length=array.length;i<length;i++)if(array[i]===elem)return i;return-1;},merge:function(first,second){var i=0,elem,pos=first.length;if(jQuery.browser.msie){while(elem=second[i++])if(elem.nodeType!=8)first[pos++]=elem;}else
-while(elem=second[i++])first[pos++]=elem;return first;},unique:function(array){var ret=[],done={};try{for(var i=0,length=array.length;i<length;i++){var id=jQuery.data(array[i]);if(!done[id]){done[id]=true;ret.push(array[i]);}}}catch(e){ret=array;}return ret;},grep:function(elems,callback,inv){var ret=[];for(var i=0,length=elems.length;i<length;i++)if(!inv!=!callback(elems[i],i))ret.push(elems[i]);return ret;},map:function(elems,callback){var ret=[];for(var i=0,length=elems.length;i<length;i++){var value=callback(elems[i],i);if(value!=null)ret[ret.length]=value;}return ret.concat.apply([],ret);}});var userAgent=navigator.userAgent.toLowerCase();jQuery.browser={version:(userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[])[1],safari:/webkit/.test(userAgent),opera:/opera/.test(userAgent),msie:/msie/.test(userAgent)&&!/opera/.test(userAgent),mozilla:/mozilla/.test(userAgent)&&!/(compatible|webkit)/.test(userAgent)};var styleFloat=jQuery.browser.msie?"styleFloat":"cssFloat";jQuery.extend({boxModel:!jQuery.browser.msie||document.compatMode=="CSS1Compat",props:{"for":"htmlFor","class":"className","float":styleFloat,cssFloat:styleFloat,styleFloat:styleFloat,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing"}});jQuery.each({parent:function(elem){return elem.parentNode;},parents:function(elem){return jQuery.dir(elem,"parentNode");},next:function(elem){return jQuery.nth(elem,2,"nextSibling");},prev:function(elem){return jQuery.nth(elem,2,"previousSibling");},nextAll:function(elem){return jQuery.dir(elem,"nextSibling");},prevAll:function(elem){return jQuery.dir(elem,"previousSibling");},siblings:function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem);},children:function(elem){return jQuery.sibling(elem.firstChild);},contents:function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes);}},function(name,fn){jQuery.fn[name]=function(selector){var ret=jQuery.map(this,fn);if(selector&&typeof selector=="string")ret=jQuery.multiFilter(selector,ret);return this.pushStack(jQuery.unique(ret));};});jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(){var args=arguments;return this.each(function(){for(var i=0,length=args.length;i<length;i++)jQuery(args[i])[original](this);});};});jQuery.each({removeAttr:function(name){jQuery.attr(this,name,"");if(this.nodeType==1)this.removeAttribute(name);},addClass:function(classNames){jQuery.className.add(this,classNames);},removeClass:function(classNames){jQuery.className.remove(this,classNames);},toggleClass:function(classNames){jQuery.className[jQuery.className.has(this,classNames)?"remove":"add"](this,classNames);},remove:function(selector){if(!selector||jQuery.filter(selector,[this]).r.length){jQuery("*",this).add(this).each(function(){jQuery.event.remove(this);jQuery.removeData(this);});if(this.parentNode)this.parentNode.removeChild(this);}},empty:function(){jQuery(">*",this).remove();while(this.firstChild)this.removeChild(this.firstChild);}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments);};});jQuery.each(["Height","Width"],function(i,name){var type=name.toLowerCase();jQuery.fn[type]=function(size){return this[0]==window?jQuery.browser.opera&&document.body["client"+name]||jQuery.browser.safari&&window["inner"+name]||document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(Math.max(document.body["scroll"+name],document.documentElement["scroll"+name]),Math.max(document.body["offset"+name],document.documentElement["offset"+name])):size==undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,size.constructor==String?size:size+"px");};});function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0;}var chars=jQuery.browser.safari&&parseInt(jQuery.browser.version)<417?"(?:[\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quickChild=new RegExp("^>\\s*("+chars+"+)"),quickID=new RegExp("^("+chars+"+)(#)("+chars+"+)"),quickClass=new RegExp("^([#.]?)("+chars+"*)");jQuery.extend({expr:{"":function(a,i,m){return m[2]=="*"||jQuery.nodeName(a,m[2]);},"#":function(a,i,m){return a.getAttribute("id")==m[2];},":":{lt:function(a,i,m){return i<m[3]-0;},gt:function(a,i,m){return i>m[3]-0;},nth:function(a,i,m){return m[3]-0==i;},eq:function(a,i,m){return m[3]-0==i;},first:function(a,i){return i==0;},last:function(a,i,m,r){return i==r.length-1;},even:function(a,i){return i%2==0;},odd:function(a,i){return i%2;},"first-child":function(a){return a.parentNode.getElementsByTagName("*")[0]==a;},"last-child":function(a){return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a;},"only-child":function(a){return!jQuery.nth(a.parentNode.lastChild,2,"previousSibling");},parent:function(a){return a.firstChild;},empty:function(a){return!a.firstChild;},contains:function(a,i,m){return(a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m[3])>=0;},visible:function(a){return"hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden";},hidden:function(a){return"hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden";},enabled:function(a){return!a.disabled;},disabled:function(a){return a.disabled;},checked:function(a){return a.checked;},selected:function(a){return a.selected||jQuery.attr(a,"selected");},text:function(a){return"text"==a.type;},radio:function(a){return"radio"==a.type;},checkbox:function(a){return"checkbox"==a.type;},file:function(a){return"file"==a.type;},password:function(a){return"password"==a.type;},submit:function(a){return"submit"==a.type;},image:function(a){return"image"==a.type;},reset:function(a){return"reset"==a.type;},button:function(a){return"button"==a.type||jQuery.nodeName(a,"button");},input:function(a){return/input|select|textarea|button/i.test(a.nodeName);},has:function(a,i,m){return jQuery.find(m[3],a).length;},header:function(a){return/h\d/i.test(a.nodeName);},animated:function(a){return jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length;}}},parse:[/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,new RegExp("^([:.#]*)("+chars+"+)")],multiFilter:function(expr,elems,not){var old,cur=[];while(expr&&expr!=old){old=expr;var f=jQuery.filter(expr,elems,not);expr=f.t.replace(/^\s*,\s*/,"");cur=not?elems=f.r:jQuery.merge(cur,f.r);}return cur;},find:function(t,context){if(typeof t!="string")return[t];if(context&&context.nodeType!=1&&context.nodeType!=9)return[];context=context||document;var ret=[context],done=[],last,nodeName;while(t&&last!=t){var r=[];last=t;t=jQuery.trim(t);var foundToken=false,re=quickChild,m=re.exec(t);if(m){nodeName=m[1].toUpperCase();for(var i=0;ret[i];i++)for(var c=ret[i].firstChild;c;c=c.nextSibling)if(c.nodeType==1&&(nodeName=="*"||c.nodeName.toUpperCase()==nodeName))r.push(c);ret=r;t=t.replace(re,"");if(t.indexOf(" ")==0)continue;foundToken=true;}else{re=/^([>+~])\s*(\w*)/i;if((m=re.exec(t))!=null){r=[];var merge={};nodeName=m[2].toUpperCase();m=m[1];for(var j=0,rl=ret.length;j<rl;j++){var n=m=="~"||m=="+"?ret[j].nextSibling:ret[j].firstChild;for(;n;n=n.nextSibling)if(n.nodeType==1){var id=jQuery.data(n);if(m=="~"&&merge[id])break;if(!nodeName||n.nodeName.toUpperCase()==nodeName){if(m=="~")merge[id]=true;r.push(n);}if(m=="+")break;}}ret=r;t=jQuery.trim(t.replace(re,""));foundToken=true;}}if(t&&!foundToken){if(!t.indexOf(",")){if(context==ret[0])ret.shift();done=jQuery.merge(done,ret);r=ret=[context];t=" "+t.substr(1,t.length);}else{var re2=quickID;var m=re2.exec(t);if(m){m=[0,m[2],m[3],m[1]];}else{re2=quickClass;m=re2.exec(t);}m[2]=m[2].replace(/\\/g,"");var elem=ret[ret.length-1];if(m[1]=="#"&&elem&&elem.getElementById&&!jQuery.isXMLDoc(elem)){var oid=elem.getElementById(m[2]);if((jQuery.browser.msie||jQuery.browser.opera)&&oid&&typeof oid.id=="string"&&oid.id!=m[2])oid=jQuery('[@id="'+m[2]+'"]',elem)[0];ret=r=oid&&(!m[3]||jQuery.nodeName(oid,m[3]))?[oid]:[];}else{for(var i=0;ret[i];i++){var tag=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];if(tag=="*"&&ret[i].nodeName.toLowerCase()=="object")tag="param";r=jQuery.merge(r,ret[i].getElementsByTagName(tag));}if(m[1]==".")r=jQuery.classFilter(r,m[2]);if(m[1]=="#"){var tmp=[];for(var i=0;r[i];i++)if(r[i].getAttribute("id")==m[2]){tmp=[r[i]];break;}r=tmp;}ret=r;}t=t.replace(re2,"");}}if(t){var val=jQuery.filter(t,r);ret=r=val.r;t=jQuery.trim(val.t);}}if(t)ret=[];if(ret&&context==ret[0])ret.shift();done=jQuery.merge(done,ret);return done;},classFilter:function(r,m,not){m=" "+m+" ";var tmp=[];for(var i=0;r[i];i++){var pass=(" "+r[i].className+" ").indexOf(m)>=0;if(!not&&pass||not&&!pass)tmp.push(r[i]);}return tmp;},filter:function(t,r,not){var last;while(t&&t!=last){last=t;var p=jQuery.parse,m;for(var i=0;p[i];i++){m=p[i].exec(t);if(m){t=t.substring(m[0].length);m[2]=m[2].replace(/\\/g,"");break;}}if(!m)break;if(m[1]==":"&&m[2]=="not")r=isSimple.test(m[3])?jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3]);else if(m[1]==".")r=jQuery.classFilter(r,m[2],not);else if(m[1]=="["){var tmp=[],type=m[3];for(var i=0,rl=r.length;i<rl;i++){var a=r[i],z=a[jQuery.props[m[2]]||m[2]];if(z==null||/href|src|selected/.test(m[2]))z=jQuery.attr(a,m[2])||'';if((type==""&&!!z||type=="="&&z==m[5]||type=="!="&&z!=m[5]||type=="^="&&z&&!z.indexOf(m[5])||type=="$="&&z.substr(z.length-m[5].length)==m[5]||(type=="*="||type=="~=")&&z.indexOf(m[5])>=0)^not)tmp.push(a);}r=tmp;}else if(m[1]==":"&&m[2]=="nth-child"){var merge={},tmp=[],test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3]=="even"&&"2n"||m[3]=="odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),first=(test[1]+(test[2]||1))-0,last=test[3]-0;for(var i=0,rl=r.length;i<rl;i++){var node=r[i],parentNode=node.parentNode,id=jQuery.data(parentNode);if(!merge[id]){var c=1;for(var n=parentNode.firstChild;n;n=n.nextSibling)if(n.nodeType==1)n.nodeIndex=c++;merge[id]=true;}var add=false;if(first==0){if(node.nodeIndex==last)add=true;}else if((node.nodeIndex-last)%first==0&&(node.nodeIndex-last)/first>=0)add=true;if(add^not)tmp.push(node);}r=tmp;}else{var fn=jQuery.expr[m[1]];if(typeof fn=="object")fn=fn[m[2]];if(typeof fn=="string")fn=eval("false||function(a,i){return "+fn+";}");r=jQuery.grep(r,function(elem,i){return fn(elem,i,m,r);},not);}}return{r:r,t:t};},dir:function(elem,dir){var matched=[],cur=elem[dir];while(cur&&cur!=document){if(cur.nodeType==1)matched.push(cur);cur=cur[dir];}return matched;},nth:function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir])if(cur.nodeType==1&&++num==result)break;return cur;},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType==1&&n!=elem)r.push(n);}return r;}});jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8)return;if(jQuery.browser.msie&&elem.setInterval)elem=window;if(!handler.guid)handler.guid=this.guid++;if(data!=undefined){var fn=handler;handler=this.proxy(fn,function(){return fn.apply(this,arguments);});handler.data=data;}var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){if(typeof jQuery!="undefined"&&!jQuery.event.triggered)return jQuery.event.handle.apply(arguments.callee.elem,arguments);});handle.elem=elem;jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];handler.type=parts[1];var handlers=events[type];if(!handlers){handlers=events[type]={};if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem)===false){if(elem.addEventListener)elem.addEventListener(type,handle,false);else if(elem.attachEvent)elem.attachEvent("on"+type,handle);}}handlers[handler.guid]=handler;jQuery.event.global[type]=true;});elem=null;},guid:1,global:{},remove:function(elem,types,handler){if(elem.nodeType==3||elem.nodeType==8)return;var events=jQuery.data(elem,"events"),ret,index;if(events){if(types==undefined||(typeof types=="string"&&types.charAt(0)=="."))for(var type in events)this.remove(elem,type+(types||""));else{if(types.type){handler=types.handler;types=types.type;}jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];if(events[type]){if(handler)delete events[type][handler.guid];else
-for(handler in events[type])if(!parts[1]||events[type][handler].type==parts[1])delete events[type][handler];for(ret in events[type])break;if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem)===false){if(elem.removeEventListener)elem.removeEventListener(type,jQuery.data(elem,"handle"),false);else if(elem.detachEvent)elem.detachEvent("on"+type,jQuery.data(elem,"handle"));}ret=null;delete events[type];}}});}for(ret in events)break;if(!ret){var handle=jQuery.data(elem,"handle");if(handle)handle.elem=null;jQuery.removeData(elem,"events");jQuery.removeData(elem,"handle");}}},trigger:function(type,data,elem,donative,extra){data=jQuery.makeArray(data);if(type.indexOf("!")>=0){type=type.slice(0,-1);var exclusive=true;}if(!elem){if(this.global[type])jQuery("*").add([window,document]).trigger(type,data);}else{if(elem.nodeType==3||elem.nodeType==8)return undefined;var val,ret,fn=jQuery.isFunction(elem[type]||null),event=!data[0]||!data[0].preventDefault;if(event){data.unshift({type:type,target:elem,preventDefault:function(){},stopPropagation:function(){},timeStamp:now()});data[0][expando]=true;}data[0].type=type;if(exclusive)data[0].exclusive=true;var handle=jQuery.data(elem,"handle");if(handle)val=handle.apply(elem,data);if((!fn||(jQuery.nodeName(elem,'a')&&type=="click"))&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false)val=false;if(event)data.shift();if(extra&&jQuery.isFunction(extra)){ret=extra.apply(elem,val==null?data:data.concat(val));if(ret!==undefined)val=ret;}if(fn&&donative!==false&&val!==false&&!(jQuery.nodeName(elem,'a')&&type=="click")){this.triggered=true;try{elem[type]();}catch(e){}}this.triggered=false;}return val;},handle:function(event){var val,ret,namespace,all,handlers;event=arguments[0]=jQuery.event.fix(event||window.event);namespace=event.type.split(".");event.type=namespace[0];namespace=namespace[1];all=!namespace&&!event.exclusive;handlers=(jQuery.data(this,"events")||{})[event.type];for(var j in handlers){var handler=handlers[j];if(all||handler.type==namespace){event.handler=handler;event.data=handler.data;ret=handler.apply(this,arguments);if(val!==false)val=ret;if(ret===false){event.preventDefault();event.stopPropagation();}}}return val;},fix:function(event){if(event[expando]==true)return event;var originalEvent=event;event={originalEvent:originalEvent};var props="altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target timeStamp toElement type view wheelDelta which".split(" ");for(var i=props.length;i;i--)event[props[i]]=originalEvent[props[i]];event[expando]=true;event.preventDefault=function(){if(originalEvent.preventDefault)originalEvent.preventDefault();originalEvent.returnValue=false;};event.stopPropagation=function(){if(originalEvent.stopPropagation)originalEvent.stopPropagation();originalEvent.cancelBubble=true;};event.timeStamp=event.timeStamp||now();if(!event.target)event.target=event.srcElement||document;if(event.target.nodeType==3)event.target=event.target.parentNode;if(!event.relatedTarget&&event.fromElement)event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement;if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0);}if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode))event.which=event.charCode||event.keyCode;if(!event.metaKey&&event.ctrlKey)event.metaKey=event.ctrlKey;if(!event.which&&event.button)event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));return event;},proxy:function(fn,proxy){proxy.guid=fn.guid=fn.guid||proxy.guid||this.guid++;return proxy;},special:{ready:{setup:function(){bindReady();return;},teardown:function(){return;}},mouseenter:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseover",jQuery.event.special.mouseenter.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseover",jQuery.event.special.mouseenter.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseenter";return jQuery.event.handle.apply(this,arguments);}},mouseleave:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseout",jQuery.event.special.mouseleave.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseout",jQuery.event.special.mouseleave.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseleave";return jQuery.event.handle.apply(this,arguments);}}}};jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data);});},one:function(type,data,fn){var one=jQuery.event.proxy(fn||data,function(event){jQuery(this).unbind(event,one);return(fn||data).apply(this,arguments);});return this.each(function(){jQuery.event.add(this,type,one,fn&&data);});},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn);});},trigger:function(type,data,fn){return this.each(function(){jQuery.event.trigger(type,data,this,true,fn);});},triggerHandler:function(type,data,fn){return this[0]&&jQuery.event.trigger(type,data,this[0],false,fn);},toggle:function(fn){var args=arguments,i=1;while(i<args.length)jQuery.event.proxy(fn,args[i++]);return this.click(jQuery.event.proxy(fn,function(event){this.lastToggle=(this.lastToggle||0)%i;event.preventDefault();return args[this.lastToggle++].apply(this,arguments)||false;}));},hover:function(fnOver,fnOut){return this.bind('mouseenter',fnOver).bind('mouseleave',fnOut);},ready:function(fn){bindReady();if(jQuery.isReady)fn.call(document,jQuery);else
-jQuery.readyList.push(function(){return fn.call(this,jQuery);});return this;}});jQuery.extend({isReady:false,readyList:[],ready:function(){if(!jQuery.isReady){jQuery.isReady=true;if(jQuery.readyList){jQuery.each(jQuery.readyList,function(){this.call(document);});jQuery.readyList=null;}jQuery(document).triggerHandler("ready");}}});var readyBound=false;function bindReady(){if(readyBound)return;readyBound=true;if(document.addEventListener&&!jQuery.browser.opera)document.addEventListener("DOMContentLoaded",jQuery.ready,false);if(jQuery.browser.msie&&window==top)(function(){if(jQuery.isReady)return;try{document.documentElement.doScroll("left");}catch(error){setTimeout(arguments.callee,0);return;}jQuery.ready();})();if(jQuery.browser.opera)document.addEventListener("DOMContentLoaded",function(){if(jQuery.isReady)return;for(var i=0;i<document.styleSheets.length;i++)if(document.styleSheets[i].disabled){setTimeout(arguments.callee,0);return;}jQuery.ready();},false);if(jQuery.browser.safari){var numStyles;(function(){if(jQuery.isReady)return;if(document.readyState!="loaded"&&document.readyState!="complete"){setTimeout(arguments.callee,0);return;}if(numStyles===undefined)numStyles=jQuery("style, link[rel=stylesheet]").length;if(document.styleSheets.length!=numStyles){setTimeout(arguments.callee,0);return;}jQuery.ready();})();}jQuery.event.add(window,"load",jQuery.ready);}jQuery.each(("blur,focus,load,resize,scroll,unload,click,dblclick,"+"mousedown,mouseup,mousemove,mouseover,mouseout,change,select,"+"submit,keydown,keypress,keyup,error").split(","),function(i,name){jQuery.fn[name]=function(fn){return fn?this.bind(name,fn):this.trigger(name);};});var withinElement=function(event,elem){var parent=event.relatedTarget;while(parent&&parent!=elem)try{parent=parent.parentNode;}catch(error){parent=elem;}return parent==elem;};jQuery(window).bind("unload",function(){jQuery("*").add(document).unbind();});jQuery.fn.extend({_load:jQuery.fn.load,load:function(url,params,callback){if(typeof url!='string')return this._load(url);var off=url.indexOf(" ");if(off>=0){var selector=url.slice(off,url.length);url=url.slice(0,off);}callback=callback||function(){};var type="GET";if(params)if(jQuery.isFunction(params)){callback=params;params=null;}else{params=jQuery.param(params);type="POST";}var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(res,status){if(status=="success"||status=="notmodified")self.html(selector?jQuery("<div/>").append(res.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(selector):res.responseText);self.each(callback,[res.responseText,status,res]);}});return this;},serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){return jQuery.nodeName(this,"form")?jQuery.makeArray(this.elements):this;}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password/i.test(this.type));}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:val.constructor==Array?jQuery.map(val,function(val,i){return{name:elem.name,value:val};}):{name:elem.name,value:val};}).get();}});jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f);};});var jsc=now();jQuery.extend({get:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data=null;}return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type});},getScript:function(url,callback){return jQuery.get(url,null,callback,"script");},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data={};}return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type});},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings);},ajaxSettings:{url:location.href,global:true,type:"GET",timeout:0,contentType:"application/x-www-form-urlencoded",processData:true,async:true,data:null,username:null,password:null,accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(s){s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));var jsonp,jsre=/=\?(&|$)/g,status,data,type=s.type.toUpperCase();if(s.data&&s.processData&&typeof s.data!="string")s.data=jQuery.param(s.data);if(s.dataType=="jsonp"){if(type=="GET"){if(!s.url.match(jsre))s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?";}else if(!s.data||!s.data.match(jsre))s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?";s.dataType="json";}if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){jsonp="jsonp"+jsc++;if(s.data)s.data=(s.data+"").replace(jsre,"="+jsonp+"$1");s.url=s.url.replace(jsre,"="+jsonp+"$1");s.dataType="script";window[jsonp]=function(tmp){data=tmp;success();complete();window[jsonp]=undefined;try{delete window[jsonp];}catch(e){}if(head)head.removeChild(script);};}if(s.dataType=="script"&&s.cache==null)s.cache=false;if(s.cache===false&&type=="GET"){var ts=now();var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2");s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:"");}if(s.data&&type=="GET"){s.url+=(s.url.match(/\?/)?"&":"?")+s.data;s.data=null;}if(s.global&&!jQuery.active++)jQuery.event.trigger("ajaxStart");var remote=/^(?:\w+:)?\/\/([^\/?#]+)/;if(s.dataType=="script"&&type=="GET"&&remote.test(s.url)&&remote.exec(s.url)[1]!=location.host){var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");script.src=s.url;if(s.scriptCharset)script.charset=s.scriptCharset;if(!jsonp){var done=false;script.onload=script.onreadystatechange=function(){if(!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){done=true;success();complete();head.removeChild(script);}};}head.appendChild(script);return undefined;}var requestDone=false;var xhr=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();if(s.username)xhr.open(type,s.url,s.async,s.username,s.password);else
-xhr.open(type,s.url,s.async);try{if(s.data)xhr.setRequestHeader("Content-Type",s.contentType);if(s.ifModified)xhr.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT");xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default);}catch(e){}if(s.beforeSend&&s.beforeSend(xhr,s)===false){s.global&&jQuery.active--;xhr.abort();return false;}if(s.global)jQuery.event.trigger("ajaxSend",[xhr,s]);var onreadystatechange=function(isTimeout){if(!requestDone&&xhr&&(xhr.readyState==4||isTimeout=="timeout")){requestDone=true;if(ival){clearInterval(ival);ival=null;}status=isTimeout=="timeout"&&"timeout"||!jQuery.httpSuccess(xhr)&&"error"||s.ifModified&&jQuery.httpNotModified(xhr,s.url)&&"notmodified"||"success";if(status=="success"){try{data=jQuery.httpData(xhr,s.dataType,s.dataFilter);}catch(e){status="parsererror";}}if(status=="success"){var modRes;try{modRes=xhr.getResponseHeader("Last-Modified");}catch(e){}if(s.ifModified&&modRes)jQuery.lastModified[s.url]=modRes;if(!jsonp)success();}else
-jQuery.handleError(s,xhr,status);complete();if(s.async)xhr=null;}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0)setTimeout(function(){if(xhr){xhr.abort();if(!requestDone)onreadystatechange("timeout");}},s.timeout);}try{xhr.send(s.data);}catch(e){jQuery.handleError(s,xhr,null,e);}if(!s.async)onreadystatechange();function success(){if(s.success)s.success(data,status);if(s.global)jQuery.event.trigger("ajaxSuccess",[xhr,s]);}function complete(){if(s.complete)s.complete(xhr,status);if(s.global)jQuery.event.trigger("ajaxComplete",[xhr,s]);if(s.global&&!--jQuery.active)jQuery.event.trigger("ajaxStop");}return xhr;},handleError:function(s,xhr,status,e){if(s.error)s.error(xhr,status,e);if(s.global)jQuery.event.trigger("ajaxError",[xhr,s,e]);},active:0,httpSuccess:function(xhr){try{return!xhr.status&&location.protocol=="file:"||(xhr.status>=200&&xhr.status<300)||xhr.status==304||xhr.status==1223||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpNotModified:function(xhr,url){try{var xhrRes=xhr.getResponseHeader("Last-Modified");return xhr.status==304||xhrRes==jQuery.lastModified[url]||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpData:function(xhr,type,filter){var ct=xhr.getResponseHeader("content-type"),xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0,data=xml?xhr.responseXML:xhr.responseText;if(xml&&data.documentElement.tagName=="parsererror")throw"parsererror";if(filter)data=filter(data,type);if(type=="script")jQuery.globalEval(data);if(type=="json")data=eval("("+data+")");return data;},param:function(a){var s=[];if(a.constructor==Array||a.jquery)jQuery.each(a,function(){s.push(encodeURIComponent(this.name)+"="+encodeURIComponent(this.value));});else
-for(var j in a)if(a[j]&&a[j].constructor==Array)jQuery.each(a[j],function(){s.push(encodeURIComponent(j)+"="+encodeURIComponent(this));});else
-s.push(encodeURIComponent(j)+"="+encodeURIComponent(jQuery.isFunction(a[j])?a[j]():a[j]));return s.join("&").replace(/%20/g,"+");}});jQuery.fn.extend({show:function(speed,callback){return speed?this.animate({height:"show",width:"show",opacity:"show"},speed,callback):this.filter(":hidden").each(function(){this.style.display=this.oldblock||"";if(jQuery.css(this,"display")=="none"){var elem=jQuery("<"+this.tagName+" />").appendTo("body");this.style.display=elem.css("display");if(this.style.display=="none")this.style.display="block";elem.remove();}}).end();},hide:function(speed,callback){return speed?this.animate({height:"hide",width:"hide",opacity:"hide"},speed,callback):this.filter(":visible").each(function(){this.oldblock=this.oldblock||jQuery.css(this,"display");this.style.display="none";}).end();},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle.apply(this,arguments):fn?this.animate({height:"toggle",width:"toggle",opacity:"toggle"},fn,fn2):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();});},slideDown:function(speed,callback){return this.animate({height:"show"},speed,callback);},slideUp:function(speed,callback){return this.animate({height:"hide"},speed,callback);},slideToggle:function(speed,callback){return this.animate({height:"toggle"},speed,callback);},fadeIn:function(speed,callback){return this.animate({opacity:"show"},speed,callback);},fadeOut:function(speed,callback){return this.animate({opacity:"hide"},speed,callback);},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback);},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);return this[optall.queue===false?"each":"queue"](function(){if(this.nodeType!=1)return false;var opt=jQuery.extend({},optall),p,hidden=jQuery(this).is(":hidden"),self=this;for(p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden)return opt.complete.call(this);if(p=="height"||p=="width"){opt.display=jQuery.css(this,"display");opt.overflow=this.style.overflow;}}if(opt.overflow!=null)this.style.overflow="hidden";opt.curAnim=jQuery.extend({},prop);jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(/toggle|show|hide/.test(val))e[val=="toggle"?hidden?"show":"hide":val](prop);else{var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;if(parts){var end=parseFloat(parts[2]),unit=parts[3]||"px";if(unit!="px"){self.style[name]=(end||1)+unit;start=((end||1)/e.cur(true))*start;self.style[name]=start+unit;}if(parts[1])end=((parts[1]=="-="?-1:1)*end)+start;e.custom(start,end,unit);}else
-e.custom(start,val,"");}});return true;});},queue:function(type,fn){if(jQuery.isFunction(type)||(type&&type.constructor==Array)){fn=type;type="fx";}if(!type||(typeof type=="string"&&!fn))return queue(this[0],type);return this.each(function(){if(fn.constructor==Array)queue(this,type,fn);else{queue(this,type).push(fn);if(queue(this,type).length==1)fn.call(this);}});},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;if(clearQueue)this.queue([]);this.each(function(){for(var i=timers.length-1;i>=0;i--)if(timers[i].elem==this){if(gotoEnd)timers[i](true);timers.splice(i,1);}});if(!gotoEnd)this.dequeue();return this;}});var queue=function(elem,type,array){if(elem){type=type||"fx";var q=jQuery.data(elem,type+"queue");if(!q||array)q=jQuery.data(elem,type+"queue",jQuery.makeArray(array));}return q;};jQuery.fn.dequeue=function(type){type=type||"fx";return this.each(function(){var q=queue(this,type);q.shift();if(q.length)q[0].call(this);});};jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&speed.constructor==Object?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&easing.constructor!=Function&&easing};opt.duration=(opt.duration&&opt.duration.constructor==Number?opt.duration:jQuery.fx.speeds[opt.duration])||jQuery.fx.speeds.def;opt.old=opt.complete;opt.complete=function(){if(opt.queue!==false)jQuery(this).dequeue();if(jQuery.isFunction(opt.old))opt.old.call(this);};return opt;},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p;},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum;}},timers:[],timerId:null,fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;if(!options.orig)options.orig={};}});jQuery.fx.prototype={update:function(){if(this.options.step)this.options.step.call(this.elem,this.now,this);(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);if(this.prop=="height"||this.prop=="width")this.elem.style.display="block";},cur:function(force){if(this.elem[this.prop]!=null&&this.elem.style[this.prop]==null)return this.elem[this.prop];var r=parseFloat(jQuery.css(this.elem,this.prop,force));return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0;},custom:function(from,to,unit){this.startTime=now();this.start=from;this.end=to;this.unit=unit||this.unit||"px";this.now=this.start;this.pos=this.state=0;this.update();var self=this;function t(gotoEnd){return self.step(gotoEnd);}t.elem=this.elem;jQuery.timers.push(t);if(jQuery.timerId==null){jQuery.timerId=setInterval(function(){var timers=jQuery.timers;for(var i=0;i<timers.length;i++)if(!timers[i]())timers.splice(i--,1);if(!timers.length){clearInterval(jQuery.timerId);jQuery.timerId=null;}},13);}},show:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.show=true;this.custom(0,this.cur());if(this.prop=="width"||this.prop=="height")this.elem.style[this.prop]="1px";jQuery(this.elem).show();},hide:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0);},step:function(gotoEnd){var t=now();if(gotoEnd||t>this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var done=true;for(var i in this.options.curAnim)if(this.options.curAnim[i]!==true)done=false;if(done){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(jQuery.css(this.elem,"display")=="none")this.elem.style.display="block";}if(this.options.hide)this.elem.style.display="none";if(this.options.hide||this.options.show)for(var p in this.options.curAnim)jQuery.attr(this.elem.style,p,this.options.orig[p]);}if(done)this.options.complete.call(this.elem);return false;}else{var n=t-this.startTime;this.state=n/this.options.duration;this.pos=jQuery.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.state,n,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update();}return true;}};jQuery.extend(jQuery.fx,{speeds:{slow:600,fast:200,def:400},step:{scrollLeft:function(fx){fx.elem.scrollLeft=fx.now;},scrollTop:function(fx){fx.elem.scrollTop=fx.now;},opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now);},_default:function(fx){fx.elem.style[fx.prop]=fx.now+fx.unit;}}});jQuery.fn.offset=function(){var left=0,top=0,elem=this[0],results;if(elem)with(jQuery.browser){var parent=elem.parentNode,offsetChild=elem,offsetParent=elem.offsetParent,doc=elem.ownerDocument,safari2=safari&&parseInt(version)<522&&!/adobeair/i.test(userAgent),css=jQuery.curCSS,fixed=css(elem,"position")=="fixed";if(elem.getBoundingClientRect){var box=elem.getBoundingClientRect();add(box.left+Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),box.top+Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));add(-doc.documentElement.clientLeft,-doc.documentElement.clientTop);}else{add(elem.offsetLeft,elem.offsetTop);while(offsetParent){add(offsetParent.offsetLeft,offsetParent.offsetTop);if(mozilla&&!/^t(able|d|h)$/i.test(offsetParent.tagName)||safari&&!safari2)border(offsetParent);if(!fixed&&css(offsetParent,"position")=="fixed")fixed=true;offsetChild=/^body$/i.test(offsetParent.tagName)?offsetChild:offsetParent;offsetParent=offsetParent.offsetParent;}while(parent&&parent.tagName&&!/^body|html$/i.test(parent.tagName)){if(!/^inline|table.*$/i.test(css(parent,"display")))add(-parent.scrollLeft,-parent.scrollTop);if(mozilla&&css(parent,"overflow")!="visible")border(parent);parent=parent.parentNode;}if((safari2&&(fixed||css(offsetChild,"position")=="absolute"))||(mozilla&&css(offsetChild,"position")!="absolute"))add(-doc.body.offsetLeft,-doc.body.offsetTop);if(fixed)add(Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));}results={top:top,left:left};}function border(elem){add(jQuery.curCSS(elem,"borderLeftWidth",true),jQuery.curCSS(elem,"borderTopWidth",true));}function add(l,t){left+=parseInt(l,10)||0;top+=parseInt(t,10)||0;}return results;};jQuery.fn.extend({position:function(){var left=0,top=0,results;if(this[0]){var offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=/^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent.offset();offset.top-=num(this,'marginTop');offset.left-=num(this,'marginLeft');parentOffset.top+=num(offsetParent,'borderTopWidth');parentOffset.left+=num(offsetParent,'borderLeftWidth');results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};}return results;},offsetParent:function(){var offsetParent=this[0].offsetParent;while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&jQuery.css(offsetParent,'position')=='static'))offsetParent=offsetParent.offsetParent;return jQuery(offsetParent);}});jQuery.each(['Left','Top'],function(i,name){var method='scroll'+name;jQuery.fn[method]=function(val){if(!this[0])return;return val!=undefined?this.each(function(){this==window||this==document?window.scrollTo(!i?val:jQuery(window).scrollLeft(),i?val:jQuery(window).scrollTop()):this[method]=val;}):this[0]==window||this[0]==document?self[i?'pageYOffset':'pageXOffset']||jQuery.boxModel&&document.documentElement[method]||document.body[method]:this[0][method];};});jQuery.each(["Height","Width"],function(i,name){var tl=i?"Left":"Top",br=i?"Right":"Bottom";jQuery.fn["inner"+name]=function(){return this[name.toLowerCase()]()+num(this,"padding"+tl)+num(this,"padding"+br);};jQuery.fn["outer"+name]=function(margin){return this["inner"+name]()+num(this,"border"+tl+"Width")+num(this,"border"+br+"Width")+(margin?num(this,"margin"+tl)+num(this,"margin"+br):0);};});})();
\ No newline at end of file
deleted file mode 100644
index da1c5620d10c047525a467a425abe9ff5269cfc2..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 1081dc1439fb984dfa7ef627afe3c7dc476fdbce..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index b3cb37425ea68b39ffa7b2e5fb69161275a87541..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
--- a/testing/mozmill/mozmill/docs/_build/html/_static/pygments.css
+++ /dev/null
@@ -1,61 +0,0 @@
-.hll { background-color: #ffffcc }
-.c { color: #408090; font-style: italic } /* Comment */
-.err { border: 1px solid #FF0000 } /* Error */
-.k { color: #007020; font-weight: bold } /* Keyword */
-.o { color: #666666 } /* Operator */
-.cm { color: #408090; font-style: italic } /* Comment.Multiline */
-.cp { color: #007020 } /* Comment.Preproc */
-.c1 { color: #408090; font-style: italic } /* Comment.Single */
-.cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */
-.gd { color: #A00000 } /* Generic.Deleted */
-.ge { font-style: italic } /* Generic.Emph */
-.gr { color: #FF0000 } /* Generic.Error */
-.gh { color: #000080; font-weight: bold } /* Generic.Heading */
-.gi { color: #00A000 } /* Generic.Inserted */
-.go { color: #303030 } /* Generic.Output */
-.gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
-.gs { font-weight: bold } /* Generic.Strong */
-.gu { color: #800080; font-weight: bold } /* Generic.Subheading */
-.gt { color: #0040D0 } /* Generic.Traceback */
-.kc { color: #007020; font-weight: bold } /* Keyword.Constant */
-.kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
-.kn { color: #007020; font-weight: bold } /* Keyword.Namespace */
-.kp { color: #007020 } /* Keyword.Pseudo */
-.kr { color: #007020; font-weight: bold } /* Keyword.Reserved */
-.kt { color: #902000 } /* Keyword.Type */
-.m { color: #208050 } /* Literal.Number */
-.s { color: #4070a0 } /* Literal.String */
-.na { color: #4070a0 } /* Name.Attribute */
-.nb { color: #007020 } /* Name.Builtin */
-.nc { color: #0e84b5; font-weight: bold } /* Name.Class */
-.no { color: #60add5 } /* Name.Constant */
-.nd { color: #555555; font-weight: bold } /* Name.Decorator */
-.ni { color: #d55537; font-weight: bold } /* Name.Entity */
-.ne { color: #007020 } /* Name.Exception */
-.nf { color: #06287e } /* Name.Function */
-.nl { color: #002070; font-weight: bold } /* Name.Label */
-.nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */
-.nt { color: #062873; font-weight: bold } /* Name.Tag */
-.nv { color: #bb60d5 } /* Name.Variable */
-.ow { color: #007020; font-weight: bold } /* Operator.Word */
-.w { color: #bbbbbb } /* Text.Whitespace */
-.mf { color: #208050 } /* Literal.Number.Float */
-.mh { color: #208050 } /* Literal.Number.Hex */
-.mi { color: #208050 } /* Literal.Number.Integer */
-.mo { color: #208050 } /* Literal.Number.Oct */
-.sb { color: #4070a0 } /* Literal.String.Backtick */
-.sc { color: #4070a0 } /* Literal.String.Char */
-.sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */
-.s2 { color: #4070a0 } /* Literal.String.Double */
-.se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */
-.sh { color: #4070a0 } /* Literal.String.Heredoc */
-.si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */
-.sx { color: #c65d09 } /* Literal.String.Other */
-.sr { color: #235388 } /* Literal.String.Regex */
-.s1 { color: #4070a0 } /* Literal.String.Single */
-.ss { color: #517918 } /* Literal.String.Symbol */
-.bp { color: #007020 } /* Name.Builtin.Pseudo */
-.vc { color: #bb60d5 } /* Name.Variable.Class */
-.vg { color: #bb60d5 } /* Name.Variable.Global */
-.vi { color: #bb60d5 } /* Name.Variable.Instance */
-.il { color: #208050 } /* Literal.Number.Integer.Long */
\ No newline at end of file
deleted file mode 100644
--- a/testing/mozmill/mozmill/docs/_build/html/_static/rightsidebar.css
+++ /dev/null
@@ -1,16 +0,0 @@
-/**
- * Sphinx Doc Design -- Right Side Bar Overrides
- */
-
-
-div.sphinxsidebar {
-    float: right;
-}
-
-div.bodywrapper {
-    margin: 0 230px 0 0;
-}
-
-div.inlinecomments {
-    right: 250px;
-}
deleted file mode 100644
--- a/testing/mozmill/mozmill/docs/_build/html/_static/searchtools.js
+++ /dev/null
@@ -1,467 +0,0 @@
-/**
- * helper function to return a node containing the
- * search summary for a given text. keywords is a list
- * of stemmed words, hlwords is the list of normal, unstemmed
- * words. the first one is used to find the occurance, the
- * latter for highlighting it.
- */
-
-jQuery.makeSearchSummary = function(text, keywords, hlwords) {
-  var textLower = text.toLowerCase();
-  var start = 0;
-  $.each(keywords, function() {
-    var i = textLower.indexOf(this.toLowerCase());
-    if (i > -1)
-      start = i;
-  });
-  start = Math.max(start - 120, 0);
-  var excerpt = ((start > 0) ? '...' : '') +
-  $.trim(text.substr(start, 240)) +
-  ((start + 240 - text.length) ? '...' : '');
-  var rv = $('<div class="context"></div>').text(excerpt);
-  $.each(hlwords, function() {
-    rv = rv.highlightText(this, 'highlight');
-  });
-  return rv;
-}
-
-/**
- * Porter Stemmer
- */
-var PorterStemmer = function() {
-
-  var step2list = {
-    ational: 'ate',
-    tional: 'tion',
-    enci: 'ence',
-    anci: 'ance',
-    izer: 'ize',
-    bli: 'ble',
-    alli: 'al',
-    entli: 'ent',
-    eli: 'e',
-    ousli: 'ous',
-    ization: 'ize',
-    ation: 'ate',
-    ator: 'ate',
-    alism: 'al',
-    iveness: 'ive',
-    fulness: 'ful',
-    ousness: 'ous',
-    aliti: 'al',
-    iviti: 'ive',
-    biliti: 'ble',
-    logi: 'log'
-  };
-
-  var step3list = {
-    icate: 'ic',
-    ative: '',
-    alize: 'al',
-    iciti: 'ic',
-    ical: 'ic',
-    ful: '',
-    ness: ''
-  };
-
-  var c = "[^aeiou]";          // consonant
-  var v = "[aeiouy]";          // vowel
-  var C = c + "[^aeiouy]*";    // consonant sequence
-  var V = v + "[aeiou]*";      // vowel sequence
-
-  var mgr0 = "^(" + C + ")?" + V + C;                      // [C]VC... is m>0
-  var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$";    // [C]VC[V] is m=1
-  var mgr1 = "^(" + C + ")?" + V + C + V + C;              // [C]VCVC... is m>1
-  var s_v   = "^(" + C + ")?" + v;                         // vowel in stem
-
-  this.stemWord = function (w) {
-    var stem;
-    var suffix;
-    var firstch;
-    var origword = w;
-
-    if (w.length < 3)
-      return w;
-
-    var re;
-    var re2;
-    var re3;
-    var re4;
-
-    firstch = w.substr(0,1);
-    if (firstch == "y")
-      w = firstch.toUpperCase() + w.substr(1);
-
-    // Step 1a
-    re = /^(.+?)(ss|i)es$/;
-    re2 = /^(.+?)([^s])s$/;
-
-    if (re.test(w))
-      w = w.replace(re,"$1$2");
-    else if (re2.test(w))
-      w = w.replace(re2,"$1$2");
-
-    // Step 1b
-    re = /^(.+?)eed$/;
-    re2 = /^(.+?)(ed|ing)$/;
-    if (re.test(w)) {
-      var fp = re.exec(w);
-      re = new RegExp(mgr0);
-      if (re.test(fp[1])) {
-        re = /.$/;
-        w = w.replace(re,"");
-      }
-    }
-    else if (re2.test(w)) {
-      var fp = re2.exec(w);
-      stem = fp[1];
-      re2 = new RegExp(s_v);
-      if (re2.test(stem)) {
-        w = stem;
-        re2 = /(at|bl|iz)$/;
-        re3 = new RegExp("([^aeiouylsz])\\1$");
-        re4 = new RegExp("^" + C + v + "[^aeiouwxy]$");
-        if (re2.test(w))
-          w = w + "e";
-        else if (re3.test(w)) {
-          re = /.$/;
-          w = w.replace(re,"");
-        }
-        else if (re4.test(w))
-          w = w + "e";
-      }
-    }
-
-    // Step 1c
-    re = /^(.+?)y$/;
-    if (re.test(w)) {
-      var fp = re.exec(w);
-      stem = fp[1];
-      re = new RegExp(s_v);
-      if (re.test(stem))
-        w = stem + "i";
-    }
-
-    // Step 2
-    re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;
-    if (re.test(w)) {
-      var fp = re.exec(w);
-      stem = fp[1];
-      suffix = fp[2];
-      re = new RegExp(mgr0);
-      if (re.test(stem))
-        w = stem + step2list[suffix];
-    }
-
-    // Step 3
-    re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;
-    if (re.test(w)) {
-      var fp = re.exec(w);
-      stem = fp[1];
-      suffix = fp[2];
-      re = new RegExp(mgr0);
-      if (re.test(stem))
-        w = stem + step3list[suffix];
-    }
-
-    // Step 4
-    re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;
-    re2 = /^(.+?)(s|t)(ion)$/;
-    if (re.test(w)) {
-      var fp = re.exec(w);
-      stem = fp[1];
-      re = new RegExp(mgr1);
-      if (re.test(stem))
-        w = stem;
-    }
-    else if (re2.test(w)) {
-      var fp = re2.exec(w);
-      stem = fp[1] + fp[2];
-      re2 = new RegExp(mgr1);
-      if (re2.test(stem))
-        w = stem;
-    }
-
-    // Step 5
-    re = /^(.+?)e$/;
-    if (re.test(w)) {
-      var fp = re.exec(w);
-      stem = fp[1];
-      re = new RegExp(mgr1);
-      re2 = new RegExp(meq1);
-      re3 = new RegExp("^" + C + v + "[^aeiouwxy]$");
-      if (re.test(stem) || (re2.test(stem) && !(re3.test(stem))))
-        w = stem;
-    }
-    re = /ll$/;
-    re2 = new RegExp(mgr1);
-    if (re.test(w) && re2.test(w)) {
-      re = /.$/;
-      w = w.replace(re,"");
-    }
-
-    // and turn initial Y back to y
-    if (firstch == "y")
-      w = firstch.toLowerCase() + w.substr(1);
-    return w;
-  }
-}
-
-
-/**
- * Search Module
- */
-var Search = {
-
-  _index : null,
-  _queued_query : null,
-  _pulse_status : -1,
-
-  init : function() {
-      var params = $.getQueryParameters();
-      if (params.q) {
-          var query = params.q[0];
-          $('input[@name="q"]')[0].value = query;
-          this.performSearch(query);
-      }
-  },
-
-  /**
-   * Sets the index
-   */
-  setIndex : function(index) {
-    var q;
-    this._index = index;
-    if ((q = this._queued_query) !== null) {
-      this._queued_query = null;
-      Search.query(q);
-    }
-  },
-
-  hasIndex : function() {
-      return this._index !== null;
-  },
-
-  deferQuery : function(query) {
-      this._queued_query = query;
-  },
-
-  stopPulse : function() {
-      this._pulse_status = 0;
-  },
-
-  startPulse : function() {
-    if (this._pulse_status >= 0)
-        return;
-    function pulse() {
-      Search._pulse_status = (Search._pulse_status + 1) % 4;
-      var dotString = '';
-      for (var i = 0; i < Search._pulse_status; i++)
-        dotString += '.';
-      Search.dots.text(dotString);
-      if (Search._pulse_status > -1)
-        window.setTimeout(pulse, 500);
-    };
-    pulse();
-  },
-
-  /**
-   * perform a search for something
-   */
-  performSearch : function(query) {
-    // create the required interface elements
-    this.out = $('#search-results');
-    this.title = $('<h2>' + _('Searching') + '</h2>').appendTo(this.out);
-    this.dots = $('<span></span>').appendTo(this.title);
-    this.status = $('<p style="display: none"></p>').appendTo(this.out);
-    this.output = $('<ul class="search"/>').appendTo(this.out);
-
-    $('#search-progress').text(_('Preparing search...'));
-    this.startPulse();
-
-    // index already loaded, the browser was quick!
-    if (this.hasIndex())
-      this.query(query);
-    else
-      this.setQuery(query);
-  },
-
-  query : function(query) {
-    // stem the searchterms and add them to the
-    // correct list
-    var stemmer = new PorterStemmer();
-    var searchterms = [];
-    var excluded = [];
-    var hlterms = [];
-    var tmp = query.split(/\s+/);
-    var object = (tmp.length == 1) ? tmp[0].toLowerCase() : null;
-    for (var i = 0; i < tmp.length; i++) {
-      // stem the word
-      var word = stemmer.stemWord(tmp[i]).toLowerCase();
-      // select the correct list
-      if (word[0] == '-') {
-        var toAppend = excluded;
-        word = word.substr(1);
-      }
-      else {
-        var toAppend = searchterms;
-        hlterms.push(tmp[i].toLowerCase());
-      }
-      // only add if not already in the list
-      if (!$.contains(toAppend, word))
-        toAppend.push(word);
-    };
-    var highlightstring = '?highlight=' + $.urlencode(hlterms.join(" "));
-
-    console.debug('SEARCH: searching for:');
-    console.info('required: ', searchterms);
-    console.info('excluded: ', excluded);
-
-    // prepare search
-    var filenames = this._index.filenames;
-    var titles = this._index.titles;
-    var terms = this._index.terms;
-    var descrefs = this._index.descrefs;
-    var modules = this._index.modules;
-    var desctypes = this._index.desctypes;
-    var fileMap = {};
-    var files = null;
-    var objectResults = [];
-    var regularResults = [];
-    $('#search-progress').empty();
-
-    // lookup as object
-    if (object != null) {
-      for (var module in modules) {
-        if (module.indexOf(object) > -1) {
-          fn = modules[module];
-          descr = _('module, in ') + titles[fn];
-          objectResults.push([filenames[fn], module, '#module-'+module, descr]);
-        }
-      }
-      for (var prefix in descrefs) {
-        for (var name in descrefs[prefix]) {
-          if (name.toLowerCase().indexOf(object) > -1) {
-            match = descrefs[prefix][name];
-            fullname = (prefix ? prefix + '.' : '') + name;
-            descr = desctypes[match[1]] + _(', in ') + titles[match[0]];
-            objectResults.push([filenames[match[0]], fullname, '#'+fullname, descr]);
-          }
-        }
-      }
-    }
-
-    // sort results descending
-    objectResults.sort(function(a, b) {
-      return (a[1] > b[1]) ? -1 : ((a[1] < b[1]) ? 1 : 0);
-    });
-
-
-    // perform the search on the required terms
-    for (var i = 0; i < searchterms.length; i++) {
-      var word = searchterms[i];
-      // no match but word was a required one
-      if ((files = terms[word]) == null)
-        break;
-      if (files.length == undefined) {
-        files = [files];
-      }
-      // create the mapping
-      for (var j = 0; j < files.length; j++) {
-        var file = files[j];
-        if (file in fileMap)
-          fileMap[file].push(word);
-        else
-          fileMap[file] = [word];
-      }
-    }
-
-    // now check if the files don't contain excluded terms
-    for (var file in fileMap) {
-      var valid = true;
-
-      // check if all requirements are matched
-      if (fileMap[file].length != searchterms.length)
-        continue;
-
-      // ensure that none of the excluded terms is in the
-      // search result.
-      for (var i = 0; i < excluded.length; i++) {
-        if (terms[excluded[i]] == file ||
-            $.contains(terms[excluded[i]] || [], file)) {
-          valid = false;
-          break;
-        }
-      }
-
-      // if we have still a valid result we can add it
-      // to the result list
-      if (valid)
-        regularResults.push([filenames[file], titles[file], '', null]);
-    }
-
-    // delete unused variables in order to not waste
-    // memory until list is retrieved completely
-    delete filenames, titles, terms;
-
-    // now sort the regular results descending by title
-    regularResults.sort(function(a, b) {
-      var left = a[1].toLowerCase();
-      var right = b[1].toLowerCase();
-      return (left > right) ? -1 : ((left < right) ? 1 : 0);
-    });
-
-    // combine both
-    var results = regularResults.concat(objectResults);
-
-    // print the results
-    var resultCount = results.length;
-    function displayNextItem() {
-      // results left, load the summary and display it
-      if (results.length) {
-        var item = results.pop();
-        var listItem = $('<li style="display:none"></li>');
-        listItem.append($('<a/>').attr(
-          'href',
-          item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX +
-          highlightstring + item[2]).html(item[1]));
-        if (item[3]) {
-          listItem.append($('<span> (' + item[3] + ')</span>'));
-          Search.output.append(listItem);
-          listItem.slideDown(5, function() {
-            displayNextItem();
-          });
-        } else if (DOCUMENTATION_OPTIONS.HAS_SOURCE) {
-          $.get('_sources/' + item[0] + '.txt', function(data) {
-            listItem.append($.makeSearchSummary(data, searchterms, hlterms));
-            Search.output.append(listItem);
-            listItem.slideDown(5, function() {
-              displayNextItem();
-            });
-          });
-        } else {
-          // no source available, just display title
-          Search.output.append(listItem);
-          listItem.slideDown(5, function() {
-            displayNextItem();
-          });
-        }
-      }
-      // search finished, update title and status message
-      else {
-        Search.stopPulse();
-        Search.title.text(_('Search Results'));
-        if (!resultCount)
-          Search.status.text(_('Your search did not match any documents. Please make sure that all words are spelled correctly and that you\'ve selected enough categories.'));
-        else
-            Search.status.text(_('Search finished, found %s page(s) matching the search query.').replace('%s', resultCount));
-        Search.status.fadeIn(500);
-      }
-    }
-    displayNextItem();
-  }
-}
-
-$(document).ready(function() {
-  Search.init();
-});
deleted file mode 100644
--- a/testing/mozmill/mozmill/docs/_build/html/_static/sphinxdoc.css
+++ /dev/null
@@ -1,557 +0,0 @@
-/**
- * Alternate Sphinx design
- * Originally created by Armin Ronacher for Werkzeug, adapted by Georg Brandl.
- */
-
-body {
-    font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Geneva', 'Verdana', sans-serif;
-    font-size: 14px;
-    letter-spacing: -0.01em;
-    line-height: 150%;
-    text-align: center;
-    /*background-color: #AFC1C4; */
-    background-color: #BFD1D4;
-    color: black;
-    padding: 0;
-    border: 1px solid #aaa;
-
-    margin: 0px 80px 0px 80px;
-    min-width: 740px;
-}
-
-a {
-    color: #CA7900;
-    text-decoration: none;
-}
-
-a:hover {
-    color: #2491CF;
-}
-
-pre {
-    font-family: 'Consolas', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace;
-    font-size: 0.95em;
-    letter-spacing: 0.015em;
-    padding: 0.5em;
-    border: 1px solid #ccc;
-    background-color: #f8f8f8;
-}
-
-td.linenos pre {
-    padding: 0.5em 0;
-    border: 0;
-    background-color: transparent;
-    color: #aaa;
-}
-
-table.highlighttable {
-    margin-left: 0.5em;
-}
-
-table.highlighttable td {
-    padding: 0 0.5em 0 0.5em;
-}
-
-cite, code, tt {
-    font-family: 'Consolas', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace;
-    font-size: 0.95em;
-    letter-spacing: 0.01em;
-}
-
-hr {
-    border: 1px solid #abc;
-    margin: 2em;
-}
-
-tt {
-    background-color: #f2f2f2;
-    border-bottom: 1px solid #ddd;
-    color: #333;
-}
-
-tt.descname {
-    background-color: transparent;
-    font-weight: bold;
-    font-size: 1.2em;
-    border: 0;
-}
-
-tt.descclassname {
-    background-color: transparent;
-    border: 0;
-}
-
-tt.xref {
-    background-color: transparent;
-    font-weight: bold;
-    border: 0;
-}
-
-a tt {
-    background-color: transparent;
-    font-weight: bold;
-    border: 0;
-    color: #CA7900;
-}
-
-a tt:hover {
-    color: #2491CF;
-}
-
-.field-list ul {
-    margin: 0;
-    padding-left: 1em;
-}
-
-.field-list p {
-    margin: 0;
-}
-
-dl {
-    margin-bottom: 15px;
-}
-
-dd p {
-    margin-top: 0px;
-}
-
-dd ul, dd table {
-    margin-bottom: 10px;
-}
-
-dd {
-    margin-top: 3px;
-    margin-bottom: 10px;
-    margin-left: 30px;
-}
-
-.refcount {
-    color: #060;
-}
-
-dt:target,
-.highlight {
-    background-color: #fbe54e;
-}
-
-dl.glossary dt {
-    font-weight: bold;
-    font-size: 1.1em;
-}
-
-pre {
-    line-height: 120%;
-}
-
-pre a {
-    color: inherit;
-    text-decoration: underline;
-}
-
-.first {
-    margin-top: 0 !important;
-}
-
-div.document {
-    background-color: white;
-    text-align: left;
-    background-image: url(contents.png);
-    background-repeat: repeat-x;
-}
-
-/*
-div.documentwrapper {
-    width: 100%;
-}
-*/
-
-div.clearer {
-    clear: both;
-}
-
-div.related h3 {
-    display: none;
-}
-
-div.related ul {
-    background-image: url(navigation.png);
-    height: 2em;
-    list-style: none;
-    border-top: 1px solid #ddd;
-    border-bottom: 1px solid #ddd;
-    margin: 0;
-    padding-left: 10px;
-}
-
-div.related ul li {
-    margin: 0;
-    padding: 0;
-    height: 2em;
-    float: left;
-}
-
-div.related ul li.right {
-    float: right;
-    margin-right: 5px;
-}
-
-div.related ul li a {
-    margin: 0;
-    padding: 0 5px 0 5px;
-    line-height: 1.75em;
-    color: #EE9816;
-}
-
-div.related ul li a:hover {
-    color: #3CA8E7;
-}
-
-div.body {
-    margin: 0;
-    padding: 0.5em 20px 20px 20px;
-}
-
-div.bodywrapper {
-    margin: 0 240px 0 0;
-    border-right: 1px solid #ccc;
-}
-
-div.body a {
-    text-decoration: underline;
-}
-
-div.sphinxsidebar {
-    margin: 0;
-    padding: 0.5em 15px 15px 0;
-    width: 210px;
-    float: right;
-    text-align: left;
-/*    margin-left: -100%; */
-}
-
-div.sphinxsidebar h4, div.sphinxsidebar h3 {
-    margin: 1em 0 0.5em 0;
-    font-size: 0.9em;
-    padding: 0.1em 0 0.1em 0.5em;
-    color: white;
-    border: 1px solid #86989B;
-    background-color: #AFC1C4;
-}
-
-div.sphinxsidebar h3 a {
-    color: white;
-}
-
-div.sphinxsidebar ul {
-    padding-left: 1.5em;
-    margin-top: 7px;
-    list-style: none;
-    padding: 0;
-    line-height: 130%;
-}
-
-div.sphinxsidebar ul ul {
-    list-style: square;
-    margin-left: 20px;
-}
-
-p {
-    margin: 0.8em 0 0.5em 0;
-}
-
-p.rubric {
-    font-weight: bold;
-}
-
-div.sidebar {
-    margin: 0 0 0.5em 1em;
-    border: 1px solid #ddb;
-    padding: 7px 7px 0 7px;
-    background-color: #ffe;
-    width: 40%;
-    float: right;
-}
-
-div.quotebar {
-    background-color: #f8f8f8;
-    max-width: 250px;
-    float: right;
-    padding: 2px 7px;
-    border: 1px solid #ccc;
-}
-
-p.sidebar-title {
-    font-weight: bold;
-}
-
-div.topic {
-    background-color: #f8f8f8;
-    border: 1px solid #ccc;
-    padding: 7px 7px 0 7px;
-    margin: 10px 0 10px 0;
-}
-
-p.topic-title {
-    font-size: 1.1em;
-    font-weight: bold;
-}
-
-h1 {
-    margin: 0;
-    padding: 0.7em 0 0.3em 0;
-    font-size: 1.5em;
-    color: #11557C;
-}
-
-h2 {
-    margin: 1.3em 0 0.2em 0;
-    font-size: 1.35em;
-    padding: 0;
-}
-
-h3 {
-    margin: 1em 0 -0.3em 0;
-    font-size: 1.2em;
-}
-
-div.body h1 a, div.body h2 a, div.body h3 a, div.body h4 a, div.body h5 a, div.body h6 a {
-    color: black!important;
-}
-
-h1 a.anchor, h2 a.anchor, h3 a.anchor, h4 a.anchor, h5 a.anchor, h6 a.anchor {
-    display: none;
-    margin: 0 0 0 0.3em;
-    padding: 0 0.2em 0 0.2em;
-    color: #aaa!important;
-}
-
-h1:hover a.anchor, h2:hover a.anchor, h3:hover a.anchor, h4:hover a.anchor,
-h5:hover a.anchor, h6:hover a.anchor {
-    display: inline;
-}
-
-h1 a.anchor:hover, h2 a.anchor:hover, h3 a.anchor:hover, h4 a.anchor:hover,
-h5 a.anchor:hover, h6 a.anchor:hover {
-    color: #777;
-    background-color: #eee;
-}
-
-table {
-    border-collapse: collapse;
-    margin: 0 -0.5em 0 -0.5em;
-}
-
-table td, table th {
-    padding: 0.2em 0.5em 0.2em 0.5em;
-}
-
-div.footer {
-    background-color: #E3EFF1;
-    color: #86989B;
-    padding: 3px 8px 3px 0;
-    clear: both;
-    font-size: 0.8em;
-    text-align: right;
-}
-
-div.footer a {
-    color: #86989B;
-    text-decoration: underline;
-}
-
-div.pagination {
-    margin-top: 2em;
-    padding-top: 0.5em;
-    border-top: 1px solid black;
-    text-align: center;
-}
-
-div.sphinxsidebar ul.toc {
-    margin: 1em 0 1em 0;
-    padding: 0 0 0 0.5em;
-    list-style: none;
-}
-
-div.sphinxsidebar ul.toc li {
-    margin: 0.5em 0 0.5em 0;
-    font-size: 0.9em;
-    line-height: 130%;
-}
-
-div.sphinxsidebar ul.toc li p {
-    margin: 0;
-    padding: 0;
-}
-
-div.sphinxsidebar ul.toc ul {
-    margin: 0.2em 0 0.2em 0;
-    padding: 0 0 0 1.8em;
-}
-
-div.sphinxsidebar ul.toc ul li {
-    padding: 0;
-}
-
-div.admonition, div.warning {
-    font-size: 0.9em;
-    margin: 1em 0 0 0;
-    border: 1px solid #86989B;
-    background-color: #f7f7f7;
-}
-
-div.admonition p, div.warning p {
-    margin: 0.5em 1em 0.5em 1em;
-    padding: 0;
-}
-
-div.admonition pre, div.warning pre {
-    margin: 0.4em 1em 0.4em 1em;
-}
-
-div.admonition p.admonition-title,
-div.warning p.admonition-title {
-    margin: 0;
-    padding: 0.1em 0 0.1em 0.5em;
-    color: white;
-    border-bottom: 1px solid #86989B;
-    font-weight: bold;
-    background-color: #AFC1C4;
-}
-
-div.warning {
-    border: 1px solid #940000;
-}
-
-div.warning p.admonition-title {
-    background-color: #CF0000;
-    border-bottom-color: #940000;
-}
-
-div.admonition ul, div.admonition ol,
-div.warning ul, div.warning ol {
-    margin: 0.1em 0.5em 0.5em 3em;
-    padding: 0;
-}
-
-div.versioninfo {
-    margin: 1em 0 0 0;
-    border: 1px solid #ccc;
-    background-color: #DDEAF0;
-    padding: 8px;
-    line-height: 1.3em;
-    font-size: 0.9em;
-}
-
-
-a.headerlink {
-    color: #c60f0f!important;
-    font-size: 1em;
-    margin-left: 6px;
-    padding: 0 4px 0 4px;
-    text-decoration: none!important;
-    visibility: hidden;
-}
-
-h1:hover > a.headerlink,
-h2:hover > a.headerlink,
-h3:hover > a.headerlink,
-h4:hover > a.headerlink,
-h5:hover > a.headerlink,
-h6:hover > a.headerlink,
-dt:hover > a.headerlink {
-    visibility: visible;
-}
-
-a.headerlink:hover {
-    background-color: #ccc;
-    color: white!important;
-}
-
-table.indextable td {
-    text-align: left;
-    vertical-align: top;
-}
-
-table.indextable dl, table.indextable dd {
-    margin-top: 0;
-    margin-bottom: 0;
-}
-
-table.indextable tr.pcap {
-    height: 10px;
-}
-
-table.indextable tr.cap {
-    margin-top: 10px;
-    background-color: #f2f2f2;
-}
-
-img.toggler {
-    margin-right: 3px;
-    margin-top: 3px;
-    cursor: pointer;
-}
-
-form.pfform {
-    margin: 10px 0 20px 0;
-}
-
-table.contentstable {
-    width: 90%;
-}
-
-table.contentstable p.biglink {
-    line-height: 150%;
-}
-
-a.biglink {
-    font-size: 1.3em;
-}
-
-span.linkdescr {
-    font-style: italic;
-    padding-top: 5px;
-    font-size: 90%;
-}
-
-ul.search {
-    margin: 10px 0 0 20px;
-    padding: 0;
-}
-
-ul.search li {
-    padding: 5px 0 5px 20px;
-    background-image: url(file.png);
-    background-repeat: no-repeat;
-    background-position: 0 7px;
-}
-
-ul.search li a {
-    font-weight: bold;
-}
-
-ul.search li div.context {
-    color: #888;
-    margin: 2px 0 0 30px;
-    text-align: left;
-}
-
-ul.keywordmatches li.goodmatch a {
-    font-weight: bold;
-}
-
-img.math {
-    vertical-align: center;
-}
-
-div.math {
-    text-align: center;
-}
-
-span.eqno {
-    float: right;
-}
-
-img.logo {
-    border: 0;
-}
deleted file mode 100644
--- a/testing/mozmill/mozmill/docs/_build/html/_static/stickysidebar.css
+++ /dev/null
@@ -1,19 +0,0 @@
-/**
- * Sphinx Doc Design -- Sticky sidebar Overrides
- */
-
-div.sphinxsidebar {
-    top: 30px;
-    left: 0px;
-    position: fixed;
-    margin: 0;
-    float: none;
-}
-
-div.related {
-    position: fixed;
-}
-
-div.documentwrapper {
-    margin-top: 30px;
-}
deleted file mode 100644
--- a/testing/mozmill/mozmill/docs/_build/html/_static/traditional.css
+++ /dev/null
@@ -1,700 +0,0 @@
-/**
- * Sphinx Doc Design -- traditional python.org style
- */
-
-body {
-    color: #000;
-    margin: 0;
-    padding: 0;
-}
-
-/* :::: LAYOUT :::: */
-
-div.documentwrapper {
-    float: left;
-    width: 100%;
-}
-
-div.bodywrapper {
-    margin: 0 230px 0 0;
-}
-
-div.body {
-    background-color: white;
-    padding: 0 20px 30px 20px;
-}
-
-div.sphinxsidebarwrapper {
-    border: 1px solid #99ccff;
-    padding: 10px;
-    margin: 10px 15px 10px 0;
-}
-
-div.sphinxsidebar {
-    float: right;
-    margin-left: -100%;
-    width: 230px;
-}
-
-div.clearer {
-    clear: both;
-}
-
-div.footer {
-    clear: both;
-    width: 100%;
-    background-color: #99ccff;
-    padding: 9px 0 9px 0;
-    text-align: center;
-}
-
-div.related {
-    background-color: #99ccff;
-    color: #333;
-    width: 100%;
-    height: 30px;
-    line-height: 30px;
-    border-bottom: 5px solid white;
-}
-
-div.related h3 {
-    display: none;
-}
-
-div.related ul {
-    margin: 0;
-    padding: 0 0 0 10px;
-    list-style: none;
-}
-
-div.related li {
-    display: inline;
-    font-weight: bold;
-}
-
-div.related li.right {
-    float: right;
-    margin-right: 5px;
-}
-
-/* ::: SIDEBAR :::: */
-div.sphinxsidebar h3 {
-    margin: 0;
-}
-
-div.sphinxsidebar h4 {
-    margin: 5px 0 0 0;
-}
-
-div.sphinxsidebar p.topless {
-    margin: 5px 10px 10px 10px;
-}
-
-div.sphinxsidebar ul {
-    margin: 10px;
-    margin-left: 15px;
-    padding: 0;
-}
-
-div.sphinxsidebar ul ul {
-    margin-top: 0;
-    margin-bottom: 0;
-}
-
-div.sphinxsidebar form {
-    margin-top: 10px;
-}
-
-
-/* :::: SEARCH :::: */
-ul.search {
-    margin: 10px 0 0 20px;
-    padding: 0;
-}
-
-ul.search li {
-    padding: 5px 0 5px 20px;
-    background-image: url(file.png);
-    background-repeat: no-repeat;
-    background-position: 0 7px;
-}
-
-ul.search li a {
-    font-weight: bold;
-}
-
-ul.search li div.context {
-    color: #888;
-    margin: 2px 0 0 30px;
-    text-align: left;
-}
-
-ul.keywordmatches li.goodmatch a {
-    font-weight: bold;
-}
-
-/* :::: COMMON FORM STYLES :::: */
-
-div.actions {
-    border-top: 1px solid #aaa;
-    background-color: #ddd;
-    margin: 10px 0 0 -20px;
-    padding: 5px 0 5px 20px;
-}
-
-form dl {
-    color: #333;
-}
-
-form dt {
-    clear: both;
-    float: left;
-    min-width: 110px;
-    margin-right: 10px;
-    padding-top: 2px;
-}
-
-input#homepage {
-    display: none;
-}
-
-div.error {
-    margin: 5px 20px 0 0;
-    padding: 5px;
-    border: 1px solid #d00;
-    /*border: 2px solid #05171e;
-    background-color: #092835;
-    color: white;*/
-    font-weight: bold;
-}
-
-/* :::: INLINE COMMENTS :::: */
-
-div.inlinecommentswrapper {
-    float: right;
-    max-width: 40%;
-}
-
-div.commentmarker {
-    float: right;
-    background-image: url(style/comment.png);
-    background-repeat: no-repeat;
-    width: 25px;
-    height: 25px;
-    text-align: center;
-    padding-top: 3px;
-}
-
-div.nocommentmarker {
-    float: right;
-    background-image: url(style/nocomment.png);
-    background-repeat: no-repeat;
-    width: 25px;
-    height: 25px;
-}
-
-div.inlinecomments {
-    margin-left: 10px;
-    margin-bottom: 5px;
-    background-color: #eee;
-    border: 1px solid #ccc;
-    padding: 5px;
-}
-
-div.inlinecomment {
-    border-top: 1px solid #ccc;
-    padding-top: 5px;
-    margin-top: 5px;
-}
-
-.inlinecomments p {
-    margin: 5px 0 5px 0;
-}
-
-.inlinecomments .head {
-    font-weight: bold;
-}
-
-.inlinecomments .meta {
-    font-style: italic;
-}
-
-
-/* :::: COMMENTS :::: */
-
-div#comments h3 {
-    border-top: 1px solid #aaa;
-    padding: 5px 20px 5px 20px;
-    margin: 20px -20px 20px -20px;
-    background-color: #ddd;
-}
-
-/*
-div#comments {
-    background-color: #ccc;
-    margin: 40px -20px -30px -20px;
-    padding: 0 0 1px 0;
-}
-
-div#comments h4 {
-    margin: 30px 0 20px 0;
-    background-color: #aaa;
-    border-bottom: 1px solid #09232e;
-    color: #333;
-}
-
-div#comments form {
-    display: block;
-    margin: 0 0 0 20px;
-}
-
-div#comments textarea {
-    width: 98%;
-    height: 160px;
-}
-
-div#comments div.help {
-    margin: 20px 20px 10px 0;
-    background-color: #ccc;
-    color: #333;
-}
-
-div#comments div.help p {
-    margin: 0;
-    padding: 0 0 10px 0;
-}
-
-div#comments input, div#comments textarea {
-    font-family: 'Bitstream Vera Sans', 'Arial', sans-serif;
-    font-size: 13px;
-    color: black;
-    background-color: #aaa;
-    border: 1px solid #092835;
-}
-
-div#comments input[type="reset"],
-div#comments input[type="submit"] {
-    cursor: pointer;
-    font-weight: bold;
-    padding: 2px;
-    margin: 5px 5px 5px 0;
-    background-color: #666;
-    color: white;
-}
-
-div#comments div.comment {
-    margin: 10px 10px 10px 20px;
-    padding: 10px;
-    border: 1px solid #0f3646;
-    background-color: #aaa;
-    color: #333;
-}
-
-div#comments div.comment p {
-    margin: 5px 0 5px 0;
-}
-
-div#comments div.comment p.meta {
-    font-style: italic;
-    color: #444;
-    text-align: right;
-    margin: -5px 0 -5px 0;
-}
-
-div#comments div.comment h4 {
-    margin: -10px -10px 5px -10px;
-    padding: 3px;
-    font-size: 15px;
-    background-color: #888;
-    color: white;
-    border: 0;
-}
-
-div#comments div.comment pre,
-div#comments div.comment tt {
-    background-color: #ddd;
-    color: #111;
-    border: none;
-}
-
-div#comments div.comment a {
-    color: #fff;
-    text-decoration: underline;
-}
-
-div#comments div.comment blockquote {
-    margin: 10px;
-    padding: 10px;
-    border-left: 1px solid #0f3646;
-    /*border: 1px solid #0f3646;
-    background-color: #071c25;*/
-}
-
-div#comments em.important {
-    color: #d00;
-    font-weight: bold;
-    font-style: normal;
-}*/
-
-/* :::: SUGGEST CHANGES :::: */
-div#suggest-changes-box input, div#suggest-changes-box textarea {
-    border: 1px solid #ccc;
-    background-color: white;
-    color: black;
-}
-
-div#suggest-changes-box textarea {
-    width: 99%;
-    height: 400px;
-}
-
-
-/* :::: PREVIEW :::: */
-div.preview {
-    background-image: url(style/preview.png);
-    padding: 0 20px 20px 20px;
-    margin-bottom: 30px;
-}
-
-
-/* :::: INDEX PAGE :::: */
-
-table.contentstable {
-    width: 90%;
-}
-
-table.contentstable p.biglink {
-    line-height: 150%;
-}
-
-a.biglink {
-    font-size: 1.5em;
-}
-
-span.linkdescr {
-    font-style: italic;
-    padding-top: 5px;
-}
-
-/* :::: GENINDEX STYLES :::: */
-
-table.indextable td {
-    text-align: left;
-    vertical-align: top;
-}
-
-table.indextable dl, table.indextable dd {
-    margin-top: 0;
-    margin-bottom: 0;
-}
-
-table.indextable tr.pcap {
-    height: 10px;
-}
-
-table.indextable tr.cap {
-    margin-top: 10px;
-    background-color: #f2f2f2;
-}
-
-img.toggler {
-    margin-right: 3px;
-    margin-top: 3px;
-    cursor: pointer;
-}
-
-/* :::: GLOBAL STYLES :::: */
-
-p.subhead {
-    font-weight: bold;
-    margin-top: 20px;
-}
-
-a:link:active           { color: #ff0000; }
-a:link:hover            { background-color: #bbeeff; }
-a:visited:hover         { background-color: #bbeeff; }
-a:visited               { color: #551a8b; }
-a:link                  { color: #0000bb; }
-
-div.body h1,
-div.body h2,
-div.body h3,
-div.body h4,
-div.body h5,
-div.body h6 {
-    font-family: avantgarde, sans-serif;
-    font-weight: bold;
-}
-
-div.body h1 { font-size: 180%; }
-div.body h2 { font-size: 150%; }
-div.body h3 { font-size: 120%; }
-div.body h4 { font-size: 120%; }
-
-a.headerlink,
-a.headerlink,
-a.headerlink,
-a.headerlink,
-a.headerlink,
-a.headerlink {
-    color: #c60f0f;
-    font-size: 0.8em;
-    padding: 0 4px 0 4px;
-    text-decoration: none;
-    visibility: hidden;
-}
-
-*:hover > a.headerlink,
-*:hover > a.headerlink,
-*:hover > a.headerlink,
-*:hover > a.headerlink,
-*:hover > a.headerlink,
-*:hover > a.headerlink {
-    visibility: visible;
-}
-
-a.headerlink:hover,
-a.headerlink:hover,
-a.headerlink:hover,
-a.headerlink:hover,
-a.headerlink:hover,
-a.headerlink:hover {
-    background-color: #c60f0f;
-    color: white;
-}
-
-div.body p, div.body dd, div.body li {
-    text-align: justify;
-}
-
-div.body td {
-    text-align: left;
-}
-
-ul.fakelist {
-    list-style: none;
-    margin: 10px 0 10px 20px;
-    padding: 0;
-}
-
-/* "Footnotes" heading */
-p.rubric {
-    margin-top: 30px;
-    font-weight: bold;
-}
-
-/* "Topics" */
-
-div.topic {
-    background-color: #eee;
-    border: 1px solid #ccc;
-    padding: 0 7px 0 7px;
-    margin: 10px 0 10px 0;
-}
-
-p.topic-title {
-    font-size: 1.1em;
-    font-weight: bold;
-    margin-top: 10px;
-}
-
-/* Admonitions */
-
-div.admonition {
-    margin-top: 10px;
-    margin-bottom: 10px;
-    padding: 7px;
-}
-
-div.admonition dt {
-    font-weight: bold;
-}
-
-div.admonition dd {
-    margin-bottom: 10px;
-}
-
-div.admonition dl {
-    margin-bottom: 0;
-}
-
-div.admonition p {
-    display: inline;
-}
-
-div.seealso {
-    background-color: #ffc;
-    border: 1px solid #ff6;
-}
-
-div.warning {
-    background-color: #ffe4e4;
-    border: 1px solid #f66;
-}
-
-div.note {
-    background-color: #eee;
-    border: 1px solid #ccc;
-}
-
-p.admonition-title {
-    margin: 0px 10px 5px 0px;
-    font-weight: bold;
-    display: inline;
-}
-
-p.admonition-title:after {
-    content: ":";
-}
-
-div.body p.centered {
-    text-align: center;
-    margin-top: 25px;
-}
-
-table.docutils {
-    border: 0;
-}
-
-table.docutils td, table.docutils th {
-    padding: 0 8px 2px 0;
-    border-top: 0;
-    border-left: 0;
-    border-right: 0;
-    border-bottom: 1px solid #aaa;
-}
-
-table.field-list td, table.field-list th {
-    border: 0 !important;
-}
-
-table.footnote td, table.footnote th {
-    border: 0 !important;
-}
-
-dl {
-    margin-bottom: 15px;
-    clear: both;
-}
-
-dd p {
-    margin-top: 0px;
-}
-
-dd ul, dd table {
-    margin-bottom: 10px;
-}
-
-dd {
-    margin-top: 3px;
-    margin-bottom: 10px;
-    margin-left: 30px;
-}
-
-dl.glossary dt {
-    font-weight: bold;
-    font-size: 1.1em;
-}
-
-.refcount {
-    color: #060;
-}
-
-th {
-    text-align: left;
-    padding-right: 5px;
-}
-
-pre {
-    font-family: monospace;
-    padding: 5px;
-    color: #00008b;
-    border-left: none;
-    border-right: none;
-}
-
-tt {
-    font-family: monospace;
-    background-color: #ecf0f3;
-    padding: 0 1px 0 1px;
-}
-
-tt.descname {
-    background-color: transparent;
-    font-weight: bold;
-    font-size: 1.2em;
-}
-
-tt.descclassname {
-    background-color: transparent;
-}
-
-tt.xref, a tt {
-    background-color: transparent;
-    font-weight: bold;
-}
-
-.footnote:target  { background-color: #ffa }
-
-h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {
-    background-color: transparent;
-}
-
-.optional {
-    font-size: 1.3em;
-}
-
-.versionmodified {
-    font-style: italic;
-}
-
-form.comment {
-    margin: 0;
-    padding: 10px 30px 10px 30px;
-    background-color: #eee;
-}
-
-form.comment h3 {
-    background-color: #326591;
-    color: white;
-    margin: -10px -30px 10px -30px;
-    padding: 5px;
-    font-size: 1.4em;
-}
-
-form.comment input,
-form.comment textarea {
-    border: 1px solid #ccc;
-    padding: 2px;
-    font-family: sans-serif;
-    font-size: 13px;
-}
-
-form.comment input[type="text"] {
-    width: 240px;
-}
-
-form.comment textarea {
-    width: 100%;
-    height: 200px;
-    margin-bottom: 10px;
-}
-
-/* :::: PRINT :::: */
-@media print {
-    div.documentwrapper {
-        width: 100%;
-    }
-
-    div.body {
-        margin: 0;
-    }
-
-    div.sphinxsidebar,
-    div.related,
-    div.footer,
-    div#comments div.new-comment-box,
-    #top-link {
-        display: none;
-    }
-}
deleted file mode 100644
--- a/testing/mozmill/mozmill/docs/_build/html/genindex.html
+++ /dev/null
@@ -1,239 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>Index &mdash; mozmill v1.2.1a1 documentation</title>
-    <link rel="stylesheet" href="_static/default.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '',
-        VERSION:     '1.2.1a1',
-        COLLAPSE_MODINDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="index" title="Index" href="" />
-    <link rel="search" title="Search" href="search.html" />
-    <link rel="top" title="mozmill v1.2.1a1 documentation" href="index.html" /> 
-  </head>
-  <body>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="" title="General Index"
-             accesskey="I">index</a></li>
-        <li class="right" >
-          <a href="modindex.html" title="Global Module Index"
-             accesskey="M">modules</a> |</li>
-        <li><a href="index.html">mozmill v1.2.1a1 documentation</a> &raquo;</li> 
-      </ul>
-    </div>  
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body">
-            
-
-   <h1 id="index">Index</h1>
-
-   <a href="#Symbols"><strong>Symbols</strong></a> | <a href="#B"><strong>B</strong></a> | <a href="#C"><strong>C</strong></a> | <a href="#E"><strong>E</strong></a> | <a href="#J"><strong>J</strong></a> | <a href="#M"><strong>M</strong></a> | <a href="#P"><strong>P</strong></a> | <a href="#R"><strong>R</strong></a> | <a href="#S"><strong>S</strong></a> 
-
-   <hr />
-
-   
-<h2 id="Symbols">Symbols</h2>
-<table width="100%" class="indextable"><tr><td width="33%" valign="top">
-<dl>
-
-<dt>--report &lt;uri&gt;</dt>
-  <dd><dl>
-    <dt><a href="index.html#cmdoption--report">command line option</a></dt>
-  </dl></dd>
-<dt>--show-errors</dt>
-  <dd><dl>
-    <dt><a href="index.html#cmdoption--show-errors">command line option</a></dt>
-  </dl></dd>
-<dt>--showall</dt>
-  <dd><dl>
-    <dt><a href="index.html#cmdoption--showall">command line option</a></dt>
-  </dl></dd>
-<dt>-b &lt;binary&gt;, --binary &lt;binary&gt;</dt>
-  <dd><dl>
-    <dt><a href="index.html#cmdoption-b">command line option</a></dt>
-  </dl></dd>
-<dt>-d &lt;defaultprofile&gt;</dt>
-  <dd><dl>
-    <dt><a href="index.html#cmdoption-d">command line option</a></dt>
-  </dl></dd>
-<dt>-D, --debug</dt>
-  <dd><dl>
-    <dt><a href="index.html#cmdoption-D">command line option</a></dt>
-  </dl></dd>
-<dt>-h, --help</dt>
-  <dd><dl>
-    <dt><a href="index.html#cmdoption-h">command line option</a></dt>
-  </dl></dd>
-<dt>-l &lt;logfile&gt;, --logfile &lt;logfile&gt;</dt>
-  <dd><dl>
-    <dt><a href="index.html#cmdoption-l">command line option</a></dt>
-  </dl></dd></dl></td><td width="33%" valign="top"><dl>
-<dt>-n, --no-new-profile</dt>
-  <dd><dl>
-    <dt><a href="index.html#cmdoption-n">command line option</a></dt>
-  </dl></dd>
-<dt>-P &lt;port&gt;, --port &lt;port&gt;</dt>
-  <dd><dl>
-    <dt><a href="index.html#cmdoption-P">command line option</a></dt>
-  </dl></dd>
-<dt>-p &lt;profile&gt;, --profile &lt;profile&gt;</dt>
-  <dd><dl>
-    <dt><a href="index.html#cmdoption-p">command line option</a></dt>
-  </dl></dd>
-<dt>-s, --shell</dt>
-  <dd><dl>
-    <dt><a href="index.html#cmdoption-s">command line option</a></dt>
-  </dl></dd>
-<dt>-t &lt;test&gt;, --test &lt;test&gt;</dt>
-  <dd><dl>
-    <dt><a href="index.html#cmdoption-t">command line option</a></dt>
-  </dl></dd>
-<dt>-u, --usecode</dt>
-  <dd><dl>
-    <dt><a href="index.html#cmdoption-u">command line option</a></dt>
-  </dl></dd>
-<dt>-w &lt;plugins&gt;, --plugins &lt;plugins&gt;</dt>
-  <dd><dl>
-    <dt><a href="index.html#cmdoption-w">command line option</a></dt>
-  </dl></dd>
-</dl></td></tr></table>
-
-<h2 id="B">B</h2>
-<table width="100%" class="indextable"><tr><td width="33%" valign="top">
-<dl>
-
-<dt><a href="index.html#mozmill.MozMill.back_channel">back_channel (mozmill.MozMill attribute)</a></dt>
-<dt><a href="index.html#mozmill.MozMill.bridge">bridge (mozmill.MozMill attribute)</a></dt></dl></td><td width="33%" valign="top"><dl>
-</dl></td></tr></table>
-
-<h2 id="C">C</h2>
-<table width="100%" class="indextable"><tr><td width="33%" valign="top">
-<dl>
-
-<dt><a href="index.html#mozmill.CLI">CLI (class in mozmill)</a></dt>
-<dt>command line option</dt>
-  <dd><dl>
-    <dt><a href="index.html#cmdoption--report">--report &lt;uri&gt;</a></dt>
-    <dt><a href="index.html#cmdoption--show-errors">--show-errors</a></dt>
-    <dt><a href="index.html#cmdoption--showall">--showall</a></dt>
-    <dt><a href="index.html#cmdoption-D">-D, --debug</a></dt>
-    <dt><a href="index.html#cmdoption-P">-P &lt;port&gt;, --port &lt;port&gt;</a></dt>
-    <dt><a href="index.html#cmdoption-b">-b &lt;binary&gt;, --binary &lt;binary&gt;</a></dt>
-    <dt><a href="index.html#cmdoption-d">-d &lt;defaultprofile&gt;</a></dt>
-    <dt><a href="index.html#cmdoption-h">-h, --help</a></dt>
-    <dt><a href="index.html#cmdoption-l">-l &lt;logfile&gt;, --logfile &lt;logfile&gt;</a></dt>
-    <dt><a href="index.html#cmdoption-n">-n, --no-new-profile</a></dt>
-    <dt><a href="index.html#cmdoption-p">-p &lt;profile&gt;, --profile &lt;profile&gt;</a></dt>
-    <dt><a href="index.html#cmdoption-s">-s, --shell</a></dt>
-    <dt><a href="index.html#cmdoption-t">-t &lt;test&gt;, --test &lt;test&gt;</a></dt>
-    <dt><a href="index.html#cmdoption-u">-u, --usecode</a></dt>
-    <dt><a href="index.html#cmdoption-w">-w &lt;plugins&gt;, --plugins &lt;plugins&gt;</a></dt>
-  </dl></dd></dl></td><td width="33%" valign="top"><dl>
-</dl></td></tr></table>
-
-<h2 id="E">E</h2>
-<table width="100%" class="indextable"><tr><td width="33%" valign="top">
-<dl>
-
-<dt><a href="index.html#mozmill.MozMill.endRunner_listener">endRunner_listener() (mozmill.MozMill method)</a></dt>
-<dt><a href="index.html#mozmill.MozMill.endTest_listener">endTest_listener() (mozmill.MozMill method)</a></dt></dl></td><td width="33%" valign="top"><dl>
-</dl></td></tr></table>
-
-<h2 id="J">J</h2>
-<table width="100%" class="indextable"><tr><td width="33%" valign="top">
-<dl>
-
-<dt><a href="index.html#mozmill.MozMill.jsbridge_port">jsbridge_port (mozmill.MozMill attribute)</a></dt></dl></td><td width="33%" valign="top"><dl>
-</dl></td></tr></table>
-
-<h2 id="M">M</h2>
-<table width="100%" class="indextable"><tr><td width="33%" valign="top">
-<dl>
-
-<dt><a href="index.html#mozmill.MozMill">MozMill (class in mozmill)</a></dt>
-<dt><a href="index.html#module-mozmill">mozmill (module)</a></dt></dl></td><td width="33%" valign="top"><dl>
-</dl></td></tr></table>
-
-<h2 id="P">P</h2>
-<table width="100%" class="indextable"><tr><td width="33%" valign="top">
-<dl>
-
-<dt><a href="index.html#mozmill.MozMill.profile">profile (mozmill.MozMill attribute)</a></dt>
-<dt><a href="index.html#mozmill.CLI.profile_class">profile_class (mozmill.CLI attribute)</a></dt>
-  <dd><dl>
-    <dt><a href="index.html#mozmill.MozMill.profile_class">(mozmill.MozMill attribute)</a></dt>
-  </dl></dd></dl></td><td width="33%" valign="top"><dl>
-</dl></td></tr></table>
-
-<h2 id="R">R</h2>
-<table width="100%" class="indextable"><tr><td width="33%" valign="top">
-<dl>
-
-<dt><a href="index.html#mozmill.MozMill.run_tests">run_tests() (mozmill.MozMill method)</a></dt>
-<dt><a href="index.html#mozmill.MozMill.runner">runner (mozmill.MozMill attribute)</a></dt>
-<dt><a href="index.html#mozmill.CLI.runner_class">runner_class (mozmill.CLI attribute)</a></dt>
-  <dd><dl>
-    <dt><a href="index.html#mozmill.MozMill.runner_class">(mozmill.MozMill attribute)</a></dt>
-  </dl></dd></dl></td><td width="33%" valign="top"><dl>
-</dl></td></tr></table>
-
-<h2 id="S">S</h2>
-<table width="100%" class="indextable"><tr><td width="33%" valign="top">
-<dl>
-
-<dt><a href="index.html#mozmill.MozMill.start">start() (mozmill.MozMill method)</a></dt></dl></td><td width="33%" valign="top"><dl>
-</dl></td></tr></table>
-
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar">
-        <div class="sphinxsidebarwrapper">
-
-   
-
-          <h3>Quick search</h3>
-            <form class="search" action="search.html" method="get">
-              <input type="text" name="q" size="18" /> <input type="submit" value="Go" />
-              <input type="hidden" name="check_keywords" value="yes" />
-              <input type="hidden" name="area" value="default" />
-            </form>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="" title="General Index"
-             accesskey="I">index</a></li>
-        <li class="right" >
-          <a href="modindex.html" title="Global Module Index"
-             accesskey="M">modules</a> |</li>
-        <li><a href="index.html">mozmill v1.2.1a1 documentation</a> &raquo;</li> 
-      </ul>
-    </div>
-    <div class="footer">
-      &copy; Copyright 2009, Mikeal Rogers &lt;mikeal.rogers@gmail.com&gt;.
-      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.5.1.
-    </div>
-  </body>
-</html>
\ No newline at end of file
deleted file mode 100644
--- a/testing/mozmill/mozmill/docs/_build/html/index.html
+++ /dev/null
@@ -1,295 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>mozmill &#8212; Full automation of XULRunner applications. &mdash; mozmill v1.2.1a1 documentation</title>
-    <link rel="stylesheet" href="_static/default.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '',
-        VERSION:     '1.2.1a1',
-        COLLAPSE_MODINDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="index" title="Index" href="genindex.html" />
-    <link rel="search" title="Search" href="search.html" />
-    <link rel="top" title="mozmill v1.2.1a1 documentation" href="" /> 
-  </head>
-  <body>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li class="right" >
-          <a href="modindex.html" title="Global Module Index"
-             accesskey="M">modules</a> |</li>
-        <li><a href="">mozmill v1.2.1a1 documentation</a> &raquo;</li> 
-      </ul>
-    </div>  
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">
-          <div class="body">
-            
-  
-  <div class="section" id="module-mozmill">
-<h1><tt class="xref docutils literal"><span class="pre">mozmill</span></tt> &#8212; Full automation of XULRunner applications.<a class="headerlink" href="#module-mozmill" title="Permalink to this headline">¶</a></h1>
-<div class="section" id="command-line-usage">
-<h2>Command Line Usage<a class="headerlink" href="#command-line-usage" title="Permalink to this headline">¶</a></h2>
-<p>The mozmill command line is versatile and includes a fair amount of debugging options. Even though all these options are available mozmill should run by default without any arguments and find your locally installed Firefox and run with mozmill.</p>
-<p>In most modes, ctrl-c will shut down Firefox and exit out of the mozmill Python side as well.</p>
-<div class="highlight-none"><div class="highlight"><pre>$ mozmill
-</pre></div>
-</div>
-<dl class="cmdoption">
-<dt id="cmdoption-h">
-<tt class="descname">-h</tt><tt class="descclassname"></tt><tt class="descclassname">, </tt><tt class="descname">--help</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-h" title="Permalink to this definition">¶</a></dt>
-<dd>Show help message.</dd></dl>
-
-<dl class="cmdoption">
-<dt id="cmdoption-b">
-<tt class="descname">-b</tt><tt class="descclassname"> &lt;binary&gt;</tt><tt class="descclassname">, </tt><tt class="descname">--binary</tt><tt class="descclassname"> &lt;binary&gt;</tt><a class="headerlink" href="#cmdoption-b" title="Permalink to this definition">¶</a></dt>
-<dd><p>Specify application binary location.</p>
-<p>Default <a title="(in mozrunner v2.0a1)" class="reference external" href="http://mozrunner.googlecode.com/svn/trunk/docs/_build/html/index.html#mozrunner.Profile"><tt class="xref docutils literal"><span class="pre">mozrunner.Profile</span></tt></a> and <a title="(in mozrunner v2.0a1)" class="reference external" href="http://mozrunner.googlecode.com/svn/trunk/docs/_build/html/index.html#mozrunner.Runner"><tt class="xref docutils literal"><span class="pre">mozrunner.Runner</span></tt></a> are still
-<a title="(in mozrunner v2.0a1)" class="reference external" href="http://mozrunner.googlecode.com/svn/trunk/docs/_build/html/index.html#mozrunner.FirefoxProfile"><tt class="xref docutils literal"><span class="pre">mozrunner.FirefoxProfile</span></tt></a> and <a title="(in mozrunner v2.0a1)" class="reference external" href="http://mozrunner.googlecode.com/svn/trunk/docs/_build/html/index.html#mozrunner.FirefoxRunner"><tt class="xref docutils literal"><span class="pre">mozrunner.FirefoxRunner</span></tt></a>. You can
-change this by creating your own command line utility by subclassing <a title="mozmill.CLI" class="reference internal" href="#mozmill.CLI"><tt class="xref docutils literal"><span class="pre">CLI</span></tt></a></p>
-</dd></dl>
-
-<dl class="cmdoption">
-<dt id="cmdoption-d">
-<tt class="descname">-d</tt><tt class="descclassname"> &lt;defaultprofile&gt;</tt><a class="headerlink" href="#cmdoption-d" title="Permalink to this definition">¶</a></dt>
-<dd>Specify the path to the default <strong>clean</strong> profile used to create new profiles.</dd></dl>
-
-<dl class="cmdoption">
-<dt id="cmdoption-n">
-<tt class="descname">-n</tt><tt class="descclassname"></tt><tt class="descclassname">, </tt><tt class="descname">--no-new-profile</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-n" title="Permalink to this definition">¶</a></dt>
-<dd>Do not create a new fresh profile.</dd></dl>
-
-<dl class="cmdoption">
-<dt id="cmdoption-p">
-<tt class="descname">-p</tt><tt class="descclassname"> &lt;profile&gt;</tt><tt class="descclassname">, </tt><tt class="descname">--profile</tt><tt class="descclassname"> &lt;profile&gt;</tt><a class="headerlink" href="#cmdoption-p" title="Permalink to this definition">¶</a></dt>
-<dd>Specifies a profile to use. Must be used with &#8211;no-new-profile.</dd></dl>
-
-<dl class="cmdoption">
-<dt id="cmdoption-w">
-<tt class="descname">-w</tt><tt class="descclassname"> &lt;plugins&gt;</tt><tt class="descclassname">, </tt><tt class="descname">--plugins</tt><tt class="descclassname"> &lt;plugins&gt;</tt><a class="headerlink" href="#cmdoption-w" title="Permalink to this definition">¶</a></dt>
-<dd><p>Comma seperated list of additional paths to plugins to install.</p>
-<p>Plugins can be either .xpi zip compressed extensions or deflated extension directories.</p>
-</dd></dl>
-
-<dl class="cmdoption">
-<dt id="cmdoption-l">
-<tt class="descname">-l</tt><tt class="descclassname"> &lt;logfile&gt;</tt><tt class="descclassname">, </tt><tt class="descname">--logfile</tt><tt class="descclassname"> &lt;logfile&gt;</tt><a class="headerlink" href="#cmdoption-l" title="Permalink to this definition">¶</a></dt>
-<dd>Log all events to <em>logfile</em>.</dd></dl>
-
-<dl class="cmdoption">
-<dt id="cmdoption--report">
-<tt class="descname">--report</tt><tt class="descclassname"> &lt;uri&gt;</tt><a class="headerlink" href="#cmdoption--report" title="Permalink to this definition">¶</a></dt>
-<dd><p><em>Currently in development.</em></p>
-<p>POST results to given brasstacks results server at <em>uri</em>.</p>
-</dd></dl>
-
-<dl class="cmdoption">
-<dt id="cmdoption-t">
-<tt class="descname">-t</tt><tt class="descclassname"> &lt;test&gt;</tt><tt class="descclassname">, </tt><tt class="descname">--test</tt><tt class="descclassname"> &lt;test&gt;</tt><a class="headerlink" href="#cmdoption-t" title="Permalink to this definition">¶</a></dt>
-<dd>Run <em>test</em>. Can be either single test file or directory of tests.</dd></dl>
-
-<dl class="cmdoption">
-<dt id="cmdoption--showall">
-<tt class="descname">--showall</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption--showall" title="Permalink to this definition">¶</a></dt>
-<dd>Show all test output.</dd></dl>
-
-<dl class="cmdoption">
-<dt id="cmdoption-D">
-<tt class="descname">-D</tt><tt class="descclassname"></tt><tt class="descclassname">, </tt><tt class="descname">--debug</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-D" title="Permalink to this definition">¶</a></dt>
-<dd>Install debugging extensions and run with -jsconole</dd></dl>
-
-<dl class="cmdoption">
-<dt id="cmdoption--show-errors">
-<tt class="descname">--show-errors</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption--show-errors" title="Permalink to this definition">¶</a></dt>
-<dd>Print all logger errors to the console. When running tests only test failures and skipped
-tests are printed, this option print all other errors.</dd></dl>
-
-<dl class="cmdoption">
-<dt id="cmdoption-s">
-<tt class="descname">-s</tt><tt class="descclassname"></tt><tt class="descclassname">, </tt><tt class="descname">--shell</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-s" title="Permalink to this definition">¶</a></dt>
-<dd>Starts a Python shell for debugging.</dd></dl>
-
-<dl class="cmdoption">
-<dt id="cmdoption-u">
-<tt class="descname">-u</tt><tt class="descclassname"></tt><tt class="descclassname">, </tt><tt class="descname">--usecode</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-u" title="Permalink to this definition">¶</a></dt>
-<dd>By default &#8211;shell mode will use iPython if install and fall back to using the code module.
-This option forces the use of the code module instead of iPython even when installed.</dd></dl>
-
-<dl class="cmdoption">
-<dt id="cmdoption-P">
-<tt class="descname">-P</tt><tt class="descclassname"> &lt;port&gt;</tt><tt class="descclassname">, </tt><tt class="descname">--port</tt><tt class="descclassname"> &lt;port&gt;</tt><a class="headerlink" href="#cmdoption-P" title="Permalink to this definition">¶</a></dt>
-<dd>Specify port for jsbridge.</dd></dl>
-
-</div>
-<div class="section" id="command-line-class">
-<h2>Command Line Class<a class="headerlink" href="#command-line-class" title="Permalink to this headline">¶</a></h2>
-<dl class="class">
-<dt id="mozmill.CLI">
-<!--[mozmill.CLI]-->class <tt class="descclassname">mozmill.</tt><tt class="descname">CLI</tt><a class="headerlink" href="#mozmill.CLI" title="Permalink to this definition">¶</a></dt>
-<dd><p>Inherits from <a title="(in jsbridge v2.0a1)" class="reference external" href="http://jsbridge.googlecode.com/svn/trunk/docs/_build/html/index.html#jsbridge.CLI"><tt class="xref docutils literal"><span class="pre">jsbridge.CLI</span></tt></a> which inherits from <a title="(in mozrunner v2.0a1)" class="reference external" href="http://mozrunner.googlecode.com/svn/trunk/docs/_build/html/index.html#mozrunner.CLI"><tt class="xref docutils literal"><span class="pre">mozrunner.CLI</span></tt></a>.</p>
-<p>All the heavy lifting is handled by jsbridge and mozrunner. If you are subclassing
-this in order to creat a new command line interface be sure to call <a title="(in Python v2.7)" class="reference external" href="http://docs.python.org/dev/library/functions.html#super"><tt class="xref docutils literal"><span class="pre">super()</span></tt></a> on all
-related methods.</p>
-<dl class="attribute">
-<dt id="mozmill.CLI.runner_class">
-<!--[mozmill.CLI.runner_class]--><tt class="descname">runner_class</tt><a class="headerlink" href="#mozmill.CLI.runner_class" title="Permalink to this definition">¶</a></dt>
-<dd>Default runner class. Should be subclass of <a title="(in mozrunner v2.0a1)" class="reference external" href="http://mozrunner.googlecode.com/svn/trunk/docs/_build/html/index.html#mozrunner.Runner"><tt class="xref docutils literal"><span class="pre">mozrunner.Runner</span></tt></a>.
-Defaults to <a title="(in mozrunner v2.0a1)" class="reference external" href="http://mozrunner.googlecode.com/svn/trunk/docs/_build/html/index.html#mozrunner.FirefoxRunner"><tt class="xref docutils literal"><span class="pre">mozrunner.FirefoxRunner</span></tt></a>.</dd></dl>
-
-<dl class="attribute">
-<dt id="mozmill.CLI.profile_class">
-<!--[mozmill.CLI.profile_class]--><tt class="descname">profile_class</tt><a class="headerlink" href="#mozmill.CLI.profile_class" title="Permalink to this definition">¶</a></dt>
-<dd>Default profile class. Should be subclass of <tt class="xref docutils literal"><span class="pre">mozruner.Profile</span></tt>.
-Defaults to <a title="(in mozrunner v2.0a1)" class="reference external" href="http://mozrunner.googlecode.com/svn/trunk/docs/_build/html/index.html#mozrunner.FirefoxProfile"><tt class="xref docutils literal"><span class="pre">mozrunner.FirefoxProfile</span></tt></a>.</dd></dl>
-
-</dd></dl>
-
-</div>
-<div class="section" id="running-mozmill-from-python">
-<h2>Running MozMill from Python<a class="headerlink" href="#running-mozmill-from-python" title="Permalink to this headline">¶</a></h2>
-<dl class="class">
-<dt id="mozmill.MozMill">
-<!--[mozmill.MozMill]-->class <tt class="descclassname">mozmill.</tt><tt class="descname">MozMill</tt><big>(</big><span class="optional">[</span><em>runner_class</em><span class="optional">[</span>, <em>profile_class</em><span class="optional">[</span>, <em>jsbridge_port</em><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><big>)</big><a class="headerlink" href="#mozmill.MozMill" title="Permalink to this definition">¶</a></dt>
-<dd><p>Manages an instance of Firefox w/ jsbridge and provides facilities for running tests and
-keeping track of results with callback methods.</p>
-<p>Default <em>runner_class</em> is <a title="(in mozrunner v2.0a1)" class="reference external" href="http://mozrunner.googlecode.com/svn/trunk/docs/_build/html/index.html#mozrunner.FirefoxRunner"><tt class="xref docutils literal"><span class="pre">mozrunner.FirefoxRunner</span></tt></a>. Value should be a subclass of
-<a title="(in mozrunner v2.0a1)" class="reference external" href="http://mozrunner.googlecode.com/svn/trunk/docs/_build/html/index.html#mozrunner.Runner"><tt class="xref docutils literal"><span class="pre">mozrunner.Runner</span></tt></a>.</p>
-<p>Default <em>profile_class</em> is <a title="(in mozrunner v2.0a1)" class="reference external" href="http://mozrunner.googlecode.com/svn/trunk/docs/_build/html/index.html#mozrunner.FirefoxProfile"><tt class="xref docutils literal"><span class="pre">mozrunner.FirefoxProfile</span></tt></a>. Value should be a subclass of
-<a title="(in mozrunner v2.0a1)" class="reference external" href="http://mozrunner.googlecode.com/svn/trunk/docs/_build/html/index.html#mozrunner.Profile"><tt class="xref docutils literal"><span class="pre">mozrunner.Profile</span></tt></a>.</p>
-<p>Default <em>jsbridge_port</em> is <cite>24242</cite>.</p>
-<dl class="attribute">
-<dt id="mozmill.MozMill.runner_class">
-<!--[mozmill.MozMill.runner_class]--><tt class="descname">runner_class</tt><a class="headerlink" href="#mozmill.MozMill.runner_class" title="Permalink to this definition">¶</a></dt>
-<dd>Set during initialization to subclass of <a title="(in mozrunner v2.0a1)" class="reference external" href="http://mozrunner.googlecode.com/svn/trunk/docs/_build/html/index.html#mozrunner.Runner"><tt class="xref docutils literal"><span class="pre">mozrunner.Runner</span></tt></a>.</dd></dl>
-
-<dl class="attribute">
-<dt id="mozmill.MozMill.profile_class">
-<!--[mozmill.MozMill.profile_class]--><tt class="descname">profile_class</tt><a class="headerlink" href="#mozmill.MozMill.profile_class" title="Permalink to this definition">¶</a></dt>
-<dd>Set during initialization to subclass of <a title="(in mozrunner v2.0a1)" class="reference external" href="http://mozrunner.googlecode.com/svn/trunk/docs/_build/html/index.html#mozrunner.Profile"><tt class="xref docutils literal"><span class="pre">mozrunner.Profile</span></tt></a>.</dd></dl>
-
-<dl class="attribute">
-<dt id="mozmill.MozMill.jsbridge_port">
-<!--[mozmill.MozMill.jsbridge_port]--><tt class="descname">jsbridge_port</tt><a class="headerlink" href="#mozmill.MozMill.jsbridge_port" title="Permalink to this definition">¶</a></dt>
-<dd>Set during initialization to <a title="(in Python v2.7)" class="reference external" href="http://docs.python.org/dev/library/numbers.html#numbers.Integral"><tt class="xref docutils literal"><span class="pre">numbers.Integral</span></tt></a>.</dd></dl>
-
-<dl class="method">
-<dt id="mozmill.MozMill.start">
-<!--[mozmill.MozMill.start]--><tt class="descname">start</tt><big>(</big><span class="optional">[</span><em>profile</em><span class="optional">[</span>, <em>runner</em><span class="optional">]</span><span class="optional">]</span><big>)</big><a class="headerlink" href="#mozmill.MozMill.start" title="Permalink to this definition">¶</a></dt>
-<dd><p>Start mozrunner and jsbridge pre-requisites.</p>
-<p><em>profile</em> should be an instance of a <cite>mozrunner.Profile</cite> subclass. If one is not passed
-an instance of <cite>self.profile_class</cite> is created. <cite>self.profile</cite> will be set to this
-value.</p>
-<p><em>runner</em> should be an instance of a <cite>mozrunner.Runner</cite> subclass. If one is not passed an
-instance of <a title="mozmill.MozMill.runner_class" class="reference internal" href="#mozmill.MozMill.runner_class"><tt class="xref docutils literal"><span class="pre">runner_class</span></tt></a> will be created. <a title="mozmill.MozMill.runner" class="reference internal" href="#mozmill.MozMill.runner"><tt class="xref docutils literal"><span class="pre">runner</span></tt></a> will be set to this value.</p>
-<p>This method will also run <cite>runner.start()</cite> and <tt class="xref docutils literal"><span class="pre">mozrunner.wait_and_create_network()</span></tt>
-and sets <a title="mozmill.MozMill.back_channel" class="reference internal" href="#mozmill.MozMill.back_channel"><tt class="xref docutils literal"><span class="pre">back_channel</span></tt></a> and <a title="mozmill.MozMill.bridge" class="reference internal" href="#mozmill.MozMill.bridge"><tt class="xref docutils literal"><span class="pre">bridge</span></tt></a> to instances of
-<a title="(in jsbridge v2.0a1)" class="reference external" href="http://jsbridge.googlecode.com/svn/trunk/docs/_build/html/index.html#jsbridge.BackChannel"><tt class="xref docutils literal"><span class="pre">jsbridge.BackChannel</span></tt></a> and <a title="(in jsbridge v2.0a1)" class="reference external" href="http://jsbridge.googlecode.com/svn/trunk/docs/_build/html/index.html#jsbridge.Bridge"><tt class="xref docutils literal"><span class="pre">jsbridge.Bridge</span></tt></a> respectively.</p>
-</dd></dl>
-
-<dl class="attribute">
-<dt id="mozmill.MozMill.profile">
-<!--[mozmill.MozMill.profile]--><tt class="descname">profile</tt><a class="headerlink" href="#mozmill.MozMill.profile" title="Permalink to this definition">¶</a></dt>
-<dd>Set during <a title="mozmill.MozMill.start" class="reference internal" href="#mozmill.MozMill.start"><tt class="xref docutils literal"><span class="pre">start()</span></tt></a> to subclass of <a title="(in mozrunner v2.0a1)" class="reference external" href="http://mozrunner.googlecode.com/svn/trunk/docs/_build/html/index.html#mozrunner.Profile"><tt class="xref docutils literal"><span class="pre">mozrunner.Profile</span></tt></a>.</dd></dl>
-
-<dl class="attribute">
-<dt id="mozmill.MozMill.runner">
-<!--[mozmill.MozMill.runner]--><tt class="descname">runner</tt><a class="headerlink" href="#mozmill.MozMill.runner" title="Permalink to this definition">¶</a></dt>
-<dd>Set during <a title="mozmill.MozMill.start" class="reference internal" href="#mozmill.MozMill.start"><tt class="xref docutils literal"><span class="pre">start()</span></tt></a> to subclass of <a title="(in mozrunner v2.0a1)" class="reference external" href="http://mozrunner.googlecode.com/svn/trunk/docs/_build/html/index.html#mozrunner.Runner"><tt class="xref docutils literal"><span class="pre">mozrunner.Runner</span></tt></a>.</dd></dl>
-
-<dl class="attribute">
-<dt id="mozmill.MozMill.back_channel">
-<!--[mozmill.MozMill.back_channel]--><tt class="descname">back_channel</tt><a class="headerlink" href="#mozmill.MozMill.back_channel" title="Permalink to this definition">¶</a></dt>
-<dd>Set during <a title="mozmill.MozMill.start" class="reference internal" href="#mozmill.MozMill.start"><tt class="xref docutils literal"><span class="pre">start()</span></tt></a> to subclass of <a title="(in jsbridge v2.0a1)" class="reference external" href="http://jsbridge.googlecode.com/svn/trunk/docs/_build/html/index.html#jsbridge.BackChannel"><tt class="xref docutils literal"><span class="pre">jsbridge.BackChannel</span></tt></a>.</dd></dl>
-
-<dl class="attribute">
-<dt id="mozmill.MozMill.bridge">
-<!--[mozmill.MozMill.bridge]--><tt class="descname">bridge</tt><a class="headerlink" href="#mozmill.MozMill.bridge" title="Permalink to this definition">¶</a></dt>
-<dd>Set during <a title="mozmill.MozMill.start" class="reference internal" href="#mozmill.MozMill.start"><tt class="xref docutils literal"><span class="pre">start()</span></tt></a> to subclass of <a title="(in jsbridge v2.0a1)" class="reference external" href="http://jsbridge.googlecode.com/svn/trunk/docs/_build/html/index.html#jsbridge.Bridge"><tt class="xref docutils literal"><span class="pre">jsbridge.Bridge</span></tt></a></dd></dl>
-
-<dl class="method">
-<dt id="mozmill.MozMill.run_tests">
-<!--[mozmill.MozMill.run_tests]--><tt class="descname">run_tests</tt><big>(</big><em>test</em><span class="optional">[</span>, <em>report</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#mozmill.MozMill.run_tests" title="Permalink to this definition">¶</a></dt>
-<dd><p>Run <em>test</em> in live Firefox using <a title="mozmill.MozMill.bridge" class="reference internal" href="#mozmill.MozMill.bridge"><tt class="xref docutils literal"><span class="pre">bridge</span></tt></a>.</p>
-<p>Adds local listeners <a title="mozmill.MozMill.endTest_listener" class="reference internal" href="#mozmill.MozMill.endTest_listener"><tt class="xref docutils literal"><span class="pre">endTest_listener()</span></tt></a> and <a title="mozmill.MozMill.endRunner_listener" class="reference internal" href="#mozmill.MozMill.endRunner_listener"><tt class="xref docutils literal"><span class="pre">endRunner_listener()</span></tt></a> to
-<cite>&#8220;endTest&#8221;</cite> and <cite>&#8220;endRunner&#8221;</cite> events using <a title="(in jsbridge v2.0a1)" class="reference external" href="http://jsbridge.googlecode.com/svn/trunk/docs/_build/html/index.html#jsbridge.BackChannel.add_listener"><tt class="xref docutils literal"><span class="pre">jsbridge.BackChannel.add_listener()</span></tt></a> of
-<a title="mozmill.MozMill.back_channel" class="reference internal" href="#mozmill.MozMill.back_channel"><tt class="xref docutils literal"><span class="pre">back_channel</span></tt></a>.</p>
-<p>When tests are done the results are posted to a results server at <em>report</em> if passed.</p>
-</dd></dl>
-
-<dl class="method">
-<dt id="mozmill.MozMill.endTest_listener">
-<!--[mozmill.MozMill.endTest_listener]--><tt class="descname">endTest_listener</tt><big>(</big><em>test</em><big>)</big><a class="headerlink" href="#mozmill.MozMill.endTest_listener" title="Permalink to this definition">¶</a></dt>
-<dd>When a test is finished the test object will be passed to this callback.</dd></dl>
-
-<dl class="method">
-<dt id="mozmill.MozMill.endRunner_listener">
-<!--[mozmill.MozMill.endRunner_listener]--><tt class="descname">endRunner_listener</tt><big>(</big><em>obj</em><big>)</big><a class="headerlink" href="#mozmill.MozMill.endRunner_listener" title="Permalink to this definition">¶</a></dt>
-<dd>When all the tests are done running this callback will be fired.</dd></dl>
-
-</dd></dl>
-
-</div>
-</div>
-
-
-          </div>
-        </div>
-      </div>
-      <div class="sphinxsidebar">
-        <div class="sphinxsidebarwrapper">
-            <h3><a href="">Table Of Contents</a></h3>
-            <ul>
-<li><a class="reference external" href=""><tt class="docutils literal"><span class="pre">mozmill</span></tt> &#8212; Full automation of XULRunner applications.</a><ul>
-<li><a class="reference external" href="#command-line-usage">Command Line Usage</a></li>
-<li><a class="reference external" href="#command-line-class">Command Line Class</a></li>
-<li><a class="reference external" href="#running-mozmill-from-python">Running MozMill from Python</a></li>
-</ul>
-</li>
-</ul>
-
-            <h3>This Page</h3>
-            <ul class="this-page-menu">
-              <li><a href="_sources/index.txt">Show Source</a></li>
-            </ul>
-          <h3>Quick search</h3>
-            <form class="search" action="search.html" method="get">
-              <input type="text" name="q" size="18" /> <input type="submit" value="Go" />
-              <input type="hidden" name="check_keywords" value="yes" />
-              <input type="hidden" name="area" value="default" />
-            </form>
-        </div>
-      </div>
-      <div class="clearer"></div>
-    </div>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li class="right" >
-          <a href="modindex.html" title="Global Module Index"
-             accesskey="M">modules</a> |</li>
-        <li><a href="">mozmill v1.2.1a1 documentation</a> &raquo;</li> 
-      </ul>
-    </div>
-    <div class="footer">
-      &copy; Copyright 2009, Mikeal Rogers &lt;mikeal.rogers@gmail.com&gt;.
-      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.5.1.
-    </div>
-  </body>
-</html>
\ No newline at end of file
deleted file mode 100644
--- a/testing/mozmill/mozmill/docs/_build/html/modindex.html
+++ /dev/null
@@ -1,97 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    
-    <title>Global Module Index &mdash; mozmill v1.2.1a1 documentation</title>
-    <link rel="stylesheet" href="_static/default.css" type="text/css" />
-    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
-    <script type="text/javascript">
-      var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:    '',
-        VERSION:     '1.2.1a1',
-        COLLAPSE_MODINDEX: false,
-        FILE_SUFFIX: '.html',
-        HAS_SOURCE:  true
-      };
-    </script>
-    <script type="text/javascript" src="_static/jquery.js"></script>
-    <script type="text/javascript" src="_static/doctools.js"></script>
-    <link rel="index" title="Index" href="genindex.html" />
-    <link rel="search" title="Search" href="search.html" />
-    <link rel="top" title="mozmill v1.2.1a1 documentation" href="index.html" />
- 
-
-    <script type="text/javascript">
-      DOCUMENTATION_OPTIONS.COLLAPSE_MODINDEX = true;
-    </script>
-
-
-  </head>
-  <body>
-    <div class="related">
-      <h3>Navigation</h3>
-      <ul>
-        <li class="right" style="margin-right: 10px">
-          <a href="genindex.html" title="General Index"
-             accesskey="I">index</a></li>
-        <li class="right" >
-          <a href="" title="Global Module Index"
-             accesskey="M">modules</a> |</li>
-        <li><a href="index.html">mozmill v1.2.1a1 documentation</a> &raquo;</li> 
-      </ul>
-    </div>  
-    <div class="document">
-      <div class="documentwrapper">
-        <div class="bodywrapper">