Граф коммитов

80 Коммитов

Автор SHA1 Сообщение Дата
Stefan Zabka 0e2246d829
Update deps (#1038)
* chore(deps): upgrade python dependencies

* chore(deps): update js deps

also run npm run fix and fix npm run lint

* fix(tests): fix things broken by the upgrade

* chore(release): update Firefox and release notes

* fix(test): only use non-prefixed WebRTC classes in test
2023-06-25 23:52:31 +02:00
Stefan Zabka 3265f84949
fix(audio_fingerprinting): trigger audio fingerprint with user interaction (#1025)
This is required as AudioContext doesn't work without user interaction
2023-01-19 07:24:35 +01:00
Stefan Zabka e72ed2339c
Removing localtest.me (#886)
* Removing localtest.me

As it has been highly unreliable when running
local tests (returning DnsNotFound errors)

* Fixing tests

* Switched to localhost

* Localtest.me to localhost
2021-04-13 17:39:03 +02:00
Ankush Dua db1186a9f6
Refactoring browser and manager params into dataclasses (#807)
* initial file commit

* add new dependency for dataclasses

* implemeted basic BrowserParams dataclass

* dependencies update

* file reformat

* implemented basic ManagerParams dataclass

* Update environment dependencies

* Added new error class to validate
 browser and manager params

* file reformat

* Update scripts/environment-unpinned.yaml

Co-authored-by: Stefan Zabka <zabkaste@informatik.hu-berlin.de>

* added validations for BrowserParams dataclass

* Update openwpm/config.py

Co-authored-by: Stefan Zabka <zabkaste@informatik.hu-berlin.de>

* Removed unnecessary checks

Co-authored-by: Stefan Zabka <zabkaste@informatik.hu-berlin.de>

* Changed error string formatting

Co-authored-by: Stefan Zabka <zabkaste@informatik.hu-berlin.de>

* Changed filenamea and necessary imports to resolve conflicts with new master branch(refering to PEP-8 reformatting)

* Revert "Changed filenamea and necessary imports to resolve conflicts with new master branch(refering to PEP-8 reformatting)"

This reverts commit e550c3bd60.

* Revert "Merge branch 'master' into turn_browser_and_manager_params_into_dataclasses"

This reverts commit aff5a384e7, reversing
changes made to 6ecaf5d0a9.

* Revert "Update environment dependencies"

This reverts commit 385825b10a.

* Revert "Merge branch 'turn_browser_and_manager_params_into_dataclasses' of https://github.com/ankushduacodes/OpenWPM into turn_browser_and_manager_params_into_dataclasses"

This reverts commit 6ecaf5d0a9, reversing
changes made to e550c3bd60.

* file reformat

* finalized validate_browser_params function

* fixed typo in error string

* added validations for manager_params

* Explanation for using list for supported browser

* Revert "Revert "Merge branch 'master' into turn_browser_and_manager_params_into_dataclasses""

This reverts commit 6c3e98e57b.

* Revert "Revert "Changed filenamea and necessary imports to resolve conflicts with new master branch(refering to PEP-8 reformatting)""

This reverts commit fc8f48f187.

* import name change from .Error to .error

* moved call_instrument check to config.py

* fixed accidental use of dict syntax in a class

* moved save_content check from deploy_firefox.py

* deleting redundent file

* deleted more redundent files

* removed redundant imports

* added new save_content check

* property name changevariables can not have '-'

* added new attribute  to ManagerParams

* adapted files to validate manager & broswer params

- also added logic to convert the objects(BrowserParams and ManagerParams) to dictionaries to not break the functionality
- also updated demo.py to work with new file names on this branch

* removed obsolete documentaion

* Dependency Update

* Revert "Dependency Update"

This reverts commit 8ee3a02b17.

* Dependencies Update

* unset memory and process watchdogs

* add new output_format and failure_limit checks

* inheriting dataclasses and added type hints to fn

* added todo

* fixed inheritance of dataclasses acc. to plan

* refactor use of dict to use dataclasses(pending)

* more refactoring use of dict to dataclasses -
Also changed some type hints related to new refactoring

* fixed screenshot directory issue -
because of which some of the tests were failing

* added try-except clause for unexpected errors

* added tests to cover dataclasses

* added some new and edited some old docs

* refactor use of __dict__ to dataclass.to_dict()

* Revert "refactor use of __dict__ to dataclass.to_dict()"

This reverts commit a4f35513fa.

* fixed some tests

* refactor use of __dict__ in favor of
dataclass.to_dict() method

* removed some TODOS

* fixed dataclases validation tests

* Update docs/Configuration.md

Co-authored-by: Stefan Zabka <zabkaste@informatik.hu-berlin.de>

* Update docs/Configuration.md

Co-authored-by: Stefan Zabka <zabkaste@informatik.hu-berlin.de>

* Update docs/Configuration.md

Co-authored-by: Stefan Zabka <zabkaste@informatik.hu-berlin.de>

* Update openwpm/config.py

Co-authored-by: Stefan Zabka <zabkaste@informatik.hu-berlin.de>

* Update openwpm/config.py

Co-authored-by: Stefan Zabka <zabkaste@informatik.hu-berlin.de>

* Update openwpm/task_manager.py

Co-authored-by: Stefan Zabka <zabkaste@informatik.hu-berlin.de>

* minor fixed wrt polishing the PR

* added new check and test for crawl configs

Co-authored-by: Stefan Zabka <zabkaste@informatik.hu-berlin.de>
2020-12-02 10:10:45 +01:00
Sarah Bird aefa048612
Arbitrary WebAPI JS instrumentation (#642)
* Add mdn-browser-compat-data

* js_instrument_modules as list

* Add mdn-browser-compat

* Pass a list of instrumentingFunctions

* Script to generate api data

* Working give or take

Getting errors like

OpenWPM: Error name: TypeError post_request_ajax.html:237:17
OpenWPM: Error message: can't redefine non-configurable property
"UNSENT" post_request_ajax.html:238:17

* Small naming cleanup

* Handle non-configurable properties

* Lint

* Add aspirational API

* Begin migration to new JSInstrumentationRequest interface.

* We build and mandate LogSettings.
* We have a new JSInstrumentatinRequest that everything runs through
* Preset, fingerprinting, will be specified in JSON

* Continue making progress

Enum for Operation

* Begin implementing jsModuleRequest validation.

Changing my mind - all validation and construction to be done python
side.
This will reduce JS overhead at runtime.

* Big cleanout- js-instrumentation work moving to python.

* Continue update to python js-instrumentation

* Lint

Can't do all the things I want to with typing due to scope
when content is loaded into page.

* noqa on wip jsinstrumentation file

* Begin updating existing js instrument tests.

* Small cleanups

* Fix naming in calling instrumentJS

* No display mode native for testing

* Restore py test file to orig.

* Support null propertiesToInstrument

* Re-work instrumentObject tests

* Clean-up text in test page.

* Add default to getLogSettings function

* Don't re-assign logSettings.propertiesToInstrument

* Revert "Don't re-assign logSettings.propertiesToInstrument"

This reverts commit 87ccdabf9a.

* Better assign propertiesToInstrument

* Small cleanup

* Make new logSettings object

* Prettify

* Small clean

* -- BREAK -- JS Rework complete

With this commit, the JS side of this PR is complete.
Tests are still failing as fingerprinting implementation has not been
completed on the python side, but all test_js_* tests are passing due
to the core JS API rework being in place.

* Write-out mdn compat data to js_instrumentation .py

* Dry out js test code

* Consolidate JS tests

* Finish missing renames, and add test js via browser_params

* pep8

* New files and failing tests.

* Add a json schema for js_instrument_modules

* Latest py tests

* Flake8

* Ongoing progress.

* More code, more tests.

* flake

* Rename mdn file

* Add latest tests - just implement fingerprinting.json

* flake8

* Add fingerprinting.json (incomplete)

Mimetypes and plugins

* Correct logSettings property name

* Restore create_xpi as function

Needed by manual_test

* Make explicit option for logging to console

* Process browser_params in task manager

* Start being able to pass browser_params to selenium

Also update manual_test to use click

* Revert "Make explicit option for logging to console"

This reverts commit c840fbc5d8.

* Get manual_test working with browser_params

From toplevel directory run:

`python -m test.manual_test --selenium --browser-params --browser-params-file=debug_params.json`

* More robust test for simple fingerprinting output

Can't guarantee order of string output

* Add timing information when testing

* Make recheck really fast.

You'll never hit this recheck as it all happens before page load.

* Handle all inputs properly

* Debug with all window params instrumented

* Load xpi we just built

* Check for ff version support

* Save a bunch of properties

* Relax constraints on what we can instrument.

Let failing happen during instrumentation by using subscript notation.
Don't restrict to MDN list.

* Correct stringifying

* Better name example params, fix some bugs, sample a_f

Some example browser_params - a_f is just working - but crushes
on a page like google.com. g_l and m_z haven't been vetted yet.

* flake8

* Move example browser_params file out of harms way

* Add failing test for regression I introduced.

* Fix for regression.

* Add simple mimeTypes and plugins to fingerprinting.

* Lint JS

* Rm mdn_browser_comat stuff no longer needed

* Remove example_browser_params

They're not used in tests, were just for my testing.

* Load JS_INSTRUMENT_MODULES from JSON string

* Rename JS_INSTRUMENT_MODULES to JS_INSTRUMENT_SETTINGS

* Fixes #28 - Instrument all window.navigator properties.

* Finish removing unused mdn-compat pieces.

* EventID as a shadow variable

* Flake8

* Remove $ prefix and rename

$instrumentionRequests -> jsInstrumentationSettings

* Rename jsInstrumentationRequests->jsInstrumentationSettings

* TS Lint

* Remove use of "request".

Rename python side as per discussion with @englehardt.
Privatize most methods
Numpy docstrings for public methods

* Convert assertions to ValueErrors

* Rename file/folder and fingerprinting -> collection_fingerprinting

file JSInstrumentation.py -> js_instrumentation/__init__.py
collections have their own folder

* Clean-up naming in schema

* Add processing of json schema to documentation

* Rename js_instrumentation again and ref schema location

* Pass JSON not a js string

* Do copying to xpi in npm postbuild step

* Fix import in manual_test

* Revert "Pass JSON not a js string"

This reverts commit 8eb4edb542.

* Add titles to schema pieces

* Add docs for js_instrument_settings

* Bit more README cleanup

* Update README.md

Co-authored-by: Steven Englehardt <englehardt@gmail.com>

* Move updating schema docs section

* Add title
* Fix typo in mac-osx hyperlink

* Make the single-key dictionary clearer

* Remove versions from npm package files

* Clean up instrument_existing_window_property.html and js

We're not using the js in two htmls now, so unify like other test files

* Fix pyside instrumentation test, add more clarificaiton to README

* pyside test must instrument browser apis
* add more to readme to clarify instrumenting

* Use example.com and example.org as localDomains

* context-manage open, and flake8

Co-authored-by: Steven Englehardt <englehardt@gmail.com>
2020-07-08 15:55:22 -07:00
Sarah Bird 37f69dd902
Minor fixes (#703)
* We support OSX now we have conda

* Fixes #697

* Fixes #699

* Only report coverage for automation code
2020-06-26 12:15:04 -07:00
Kainaat Singh b4cc3d7609 Remove support for flash cookie saving 2020-04-03 16:34:19 +05:30
Stefan Zabka bfb0ace359 passing callstack_test 2020-01-31 13:05:56 +01:00
Stefan Zabka ea9a96d8e9 Fixing S3 Aggregator test
By calling a remote resource via JS the callstack table gets
created.
2020-01-21 15:36:34 +01:00
Stefan Zabka 61a58b62c6 rawgit is shutting down 2020-01-21 11:57:28 +01:00
Steven Englehardt 449c032c4a
Merge pull request #370 from motin/add-large-payloads-test-page
Add large payloads test page
2019-12-03 17:49:05 -08:00
Steven Englehardt d30575fbdf
Merge pull request #371 from motin/add-data-urls-test-page
Add data URLs test page
2019-12-03 17:48:22 -08:00
Jonas Allmann 55fc62e560 Add http page visit test including a service worker 2019-09-12 17:39:04 +02:00
Jonas Allmann fcc01c8e90 Added page visit test including a worker script making a request 2019-09-11 14:45:22 +02:00
Fredrik Wollsén 81d73ddf00 Test pages prevent default mode of instrumenting all properties when instrumenting non-existing properties 2019-08-22 10:42:36 +03:00
Fredrik Wollsén 5803b5c7db Removed unclear code comment 2019-08-22 09:29:24 +03:00
Fredrik Wollsén 7619c0dad8 Proper configuration for the non existing window property instrumentation test 2019-08-22 08:34:35 +03:00
Fredrik Wollsén 928f7a2129 Require non-existing properties be instrumented using `nonExistingPropertiesToInstrument` 2019-08-21 10:36:16 +03:00
Fredrik Wollsén 123fe682df Removed unclear code comments 2019-08-21 10:35:06 +03:00
Fredrik Wollsén a67dfe6bde Flake8 2019-08-15 20:41:26 +03:00
Fredrik Wollsén 10fee839de Organized js instrument tests somewhat more representably, including adding specific tests showing the use of a mock class to instrument non-existing secondary attributes 2019-08-15 20:13:18 +03:00
Fredrik Wollsén 778861d013 Renamed one of the tests 2019-08-15 09:44:30 +03:00
Fredrik Wollsén 09501694bc Split test pages for non-existing objects/properties 2019-08-15 08:22:03 +03:00
Fredrik Wollsén d5e064a3d8 Fixed a typo 2019-08-15 08:22:03 +03:00
Fredrik Wollsén c704fb5f16 Renamed test page to instrument_non_existing_properties to match naming convention within the test page 2019-08-15 08:22:03 +03:00
Fredrik Wollsén 29d576624e Clarified that instrumenting window.nonExisting object properties is not supported 2019-08-15 08:22:03 +03:00
Fredrik Wollsén 22dd48a1a8 Added instrumentation of window.partiallyExisting.nonExistingMethod1 to test page 2019-08-15 08:22:03 +03:00
Fredrik Wollsén 88934b2cf5 Corrected instrumentation of non-existing properties + added corresponding test page content 2019-08-15 08:22:03 +03:00
Fredrik Wollsén 1818251b52 Add attempt to call the non-existent object to test page 2019-08-15 08:22:03 +03:00
Fredrik Wollsén 1fb8a26586 Add simple test page for manually testing non-existent properties 2019-08-15 08:22:03 +03:00
Steven Englehardt 41e025bc50
Spacing 2019-08-06 16:05:46 -07:00
Steven Englehardt 710a5138dc
Another attempt at fixing spacing 2019-08-06 16:05:01 -07:00
Steven Englehardt a4944de8d4
Second attempt at fixing spacing 2019-08-06 16:03:09 -07:00
Steven Englehardt b3a9cc2e7c
Fix spacing of new line 2019-08-06 16:01:45 -07:00
englehardt 7bb8cb3f1b Add non-ascii characters to post body tests 2019-08-06 15:07:39 -07:00
englehardt cbcd928224 Add test page 2019-07-03 14:53:10 -07:00
Fredrik Wollsén 93121bccd4 Add large payloads test page 2019-06-27 16:45:40 +03:00
Fredrik Wollsén c20b0fd1a3 Add data URLs test page 2019-06-27 16:45:19 +03:00
Nihanth Subramanya 722371f5e7 Use XHR directly instead of jquery post for plaintext request bodies. 2019-06-12 10:33:16 +02:00
englehardt 7942715d22 Merge branch 'master' into nhn11-fixes 2019-04-15 22:12:21 -07:00
Erik Tews e303483038 Fix a problem with post requests being converted to JSON 2019-02-26 17:43:05 +01:00
englehardt 81d76366f8 Port instrumentation fix + initial version of test page 2018-12-03 12:14:55 -08:00
englehardt 3206133cc3 Adding frame and document urls to js instrument logs 2018-06-11 14:18:21 -04:00
englehardt 746469a132 Adding tests for HTTP redirects and channel ID 2017-10-17 22:39:20 -04:00
englehardt 720fbaf574 Adding test for recursive page source dump command 2017-10-10 12:07:39 -04:00
englehardt 6e9db85593 Merge branch 'python3' of git://github.com/zackw/OpenWPM into ff52 2017-10-04 12:04:39 -04:00
dreisman 7b38245025 Adding battery status instrumentation, tested and complete 2017-04-17 23:04:52 -04:00
Zack Weinberg 78aaffd28d Fix more failures induced by the new Selenium.
We _might_ be down to just HTTP instrumentation problems at this point.
2017-03-15 13:34:32 -04:00
Zack Weinberg 5b702a9ade Extension updates.
* Replace Adblock Plus with uBlock Origin
   (which does not need precached filter lists)
 * Replace Ghostery with Disconnect (ditto)
 * Update HTTPS Everywhere to latest version
2017-03-12 18:23:21 -04:00
englehardt 70bba2b350 Add `preventSet` option to instrumentObject js instrumentation
This option can be used to prevent other scripts from overwriting any
instrumented object/function, possibily preventing future logs.
2017-01-25 12:42:49 -05:00