allow eval() in injected scripts
support schema v2 and dependencies on mappings
add more tests for CORS bypassing feature
allow injected scripts to bypass CORS using provided API
delay loading of js code in test_policy_enforcing.py
We don't want JS loading to happen upon python module load. We want to do it lazily. Here it was being done eagerly due to some previous overlooking.
prepare for exposing APIs to injected scripts
serialize and deserialize entire Response object when relaying fetch() calls to other contexts using sendMessage
don't double-modify response headers retrieved from cache
improvement to also properly sanitize intrinsics in XML documents under older browsers (IceCat 60)
present appropriate error message when using popup in Private Browsing mode
correct the Private Browsing mode notice on settings page
improve script blocking in non-HTML documents (XML)
fix setting of 'blocked-blocked<...>-' attributes and add tests
display an informative message in settings page if IndexedDB cannot be accessed
include $schema property in internally-generated resources/mappings
optimize Pattern Query Tree for size of its JSON.stringify()'ed representation
stop haketilo() fixture cleanup from closing last browser window
haketilo()
validate repository responses against JSON schemas
fix URL construction when downloading definitions from Hydrilla
make "uuid" an optional property
automatically pick up a free port to run the HTTP proxy on
It is now possible to run multiple make test commands in parallel (e.g. testing abrowser and librewolf simultaneously after running configure for each of them in 2 different directories).
make test
configure
fix test-environment* targets
fix out-of-source builds
improve the build system
assume and use "$schema" properties in item definitions
facilitate running test environment with Haketilo loaded into browser
fix loading initial data and verify it in automated tests
change store names and data keys to singular
prevent failure in setup of the test case being run after test_broadcast ( old IceCat)
make resource dependency specifier an object
adapt to changes in file path format
From now on we assume Hydrilla serves file contents at 'file/sha256/' instead of 'file/sha256-'. With this commit we also stop using the "hash_key" property internally.
support Parabola's Iceweasel in tests
more improvements for abrowser&librewolf
add support for testing with other browsers (especially Abrowser and Librewolf)
There are still some spurious failures when running under those newer browsers. Those will be systematically investigated and fixed.
make Haketilo buildable again (for Mozilla)
How cool it is to throw away 5755 lines of code...
update error reporting in popup
add actual payload injection functionality to new content script
facilitate querying IndexedDB for script files of resource and its dependencies
add new root content script
add new extension's popup page
add a repo querying HTML interface
add a mapping/resources installation dialog
facilitate caching repository responses in content scripts
facilitate making CORS-agnostic requests through background script
test script blocking with and without the CSP-based approach on
move policy enforcing code to a new file, include basic test
add basic tests for new settings page
make blocking rules queryable in pattern tree just as mappings are
add settings page with styling
facilitate managing script blocking with a list of edtable entries
facilitate managing repository URLs in a list; minor other changes
add missing payload_create test and styling
improve item list styling; add payload creation form; exend dialog mechanism
further item list work
There is now a mechanism for removing an item and there are more tests for item list. The entire thing is still work in progress.
work on UI components
This commit introduces some HTML and javascript (and tests for it) to use in constructing the new UI. This is partial work that is not yet finished.
fix license promise typo
improve and test the dafult policy dialog
This commit also fixes some bugs that manifested themselves spuriously.
facilitate testing extension's HTML files
more general way to provide additional lines of code that compute_scripts.awk should process as part of a js file
add "blocking" and "repos" object stores
utilize Pattern Tree to decide the policy to use and modify HTTP response headers according to that policy
This commit also enhances the build script so that preprocessor conditionals can now use operators '&&' and '||'. The features being developed are not yet included in the actual Haketilo build....
facilitate egistering dynamic content scripts with mappings data
reworked build system; added missing license notices
facilitate tracking of IndexedDB item store contents
facilitate mocking imported values
facilitate broadcasting messages to different execution contexts within the webextension
facilitate creating and installing WebExtensions during tests
It is now possible to more conveniently test WebExtension APIs code by wrapping it into a test WebExtension and temporarily installing in the driven browser.
enable in-line command editing in the Python prompt shown as part of make test-environment
make test-environment
improve IndexedDB use
facilitate initialization of IndexedDB for use by Haketilo
finish implementing more efficient querying of URL patterns
The algorithm is implemented and tested. However, it is yet to be hooked into the actual extension.
start implementing more efficient querying of URL patterns
improve unit testing approach
Unit tests were moved to their own subdirectory. Fixtures common to many unit tests were moved to test/unit/conftest.py. A facility to execute scripts in page's global scope was added. A workaround was employed to present information about errors in injected scripts....
facilitate testing javascript functions
Haketilo's .js files can now be loaded together with their dependencies and executed on a page opened in a selenium-driven Firefox instance.
add Selenium- and Python-based test system