* fix(conftest.py): respect number of browsers in fixture

* chore(deps): update dependency versions

* chore(Firefox): update to 115

* fix(profileDirIO): use PathUtils and IOUtils instead of osfile

* fix(pytest): revert to headless

* chore(changelog): update to v0.23.0
This commit is contained in:
Stefan Zabka 2023-08-03 17:46:40 +02:00 коммит произвёл GitHub
Родитель d2328523ba
Коммит 6c91b7d413
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
14 изменённых файлов: 1863 добавлений и 1389 удалений

7
.github/workflows/run-tests.yaml поставляемый
Просмотреть файл

@ -96,3 +96,10 @@ jobs:
env:
DISPLAY: ":99.0"
TESTS: ${{ matrix.test-groups }}
- name: Test Report
uses: dorny/test-reporter@v1
if: success() || failure() # run this step even if previous step failed
with:
name: OpenWPM # Name of the check run which will be created
path: junit-report.xml # Path to test results
reporter: java-junit # Format of test results

Просмотреть файл

@ -1,5 +1,9 @@
# Changelog
## v0.23.0 - 2023-08-03
Bump to Firefox 115.0.3
## v0.22.0 - 2023-06-17
Bump to Firefox 114.0.1

Просмотреть файл

@ -3,7 +3,6 @@ ChromeUtils.defineModuleGetter(
"ExtensionCommon",
"resource://gre/modules/ExtensionCommon.jsm",
);
ChromeUtils.defineModuleGetter(this, "OS", "resource://gre/modules/osfile.jsm");
Cu.importGlobalProperties(["TextEncoder", "TextDecoder"]);
this.profileDirIO = class extends ExtensionAPI {
@ -13,13 +12,13 @@ this.profileDirIO = class extends ExtensionAPI {
async writeFile(filename, data) {
const encoder = new TextEncoder();
const array = encoder.encode(data);
const path = OS.Path.join(OS.Constants.Path.profileDir, filename);
const tmpPath = OS.Path.join(
OS.Constants.Path.profileDir,
const path = PathUtils.join(PathUtils.profileDir, filename);
const tmpPath = PathUtils.join(
PathUtils.profileDir,
filename + ".tmp",
);
try {
await OS.File.writeAtomic(path, array, { tmpPath });
await IOUtils.write(path, array, { tmpPath });
console.log(`Wrote to ${path}`);
return true;
} catch (e) {
@ -29,9 +28,9 @@ this.profileDirIO = class extends ExtensionAPI {
},
async readFile(filename) {
const decoder = new TextDecoder();
const path = OS.Path.join(OS.Constants.Path.profileDir, filename);
const path = PathUtils.join(PathUtils.profileDir, filename);
try {
const array = await OS.File.read(path);
const array = await IOUtils.read(path);
return decoder.decode(array);
} catch (e) {
Cu.reportError(e);

Просмотреть файл

@ -25,7 +25,7 @@ class Controller {
channel.loadInfo &&
channel.loadInfo.loadingDocument === null &&
channel.loadInfo.loadingPrincipal ===
Services.scriptSecurityManager.getSystemPrincipal()
Services.scriptSecurityManager.getSystemPrincipal()
) {
return false;
}
@ -134,14 +134,14 @@ class Controller {
// Format described here https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/Stack
stacktrace.push(
frame.name +
"@" +
frame.filename +
":" +
frame.lineNumber +
":" +
frame.columnNumber +
";" +
frame.asyncCause,
"@" +
frame.filename +
":" +
frame.lineNumber +
":" +
frame.columnNumber +
";" +
frame.asyncCause,
);
frame = frame.caller || frame.asyncCaller;
}

1670
Extension/package-lock.json сгенерированный

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -9,35 +9,35 @@
"start": "Start is required for the manual_test.py to run"
},
"devDependencies": {
"@babel/cli": "^7.22.5",
"@babel/core": "^7.22.5",
"@babel/eslint-parser": "^7.22.5",
"@babel/preset-env": "^7.22.5",
"@types/download": "^8.0.1",
"@babel/cli": "^7.22.9",
"@babel/core": "^7.22.9",
"@babel/eslint-parser": "^7.22.9",
"@babel/preset-env": "^7.22.9",
"@types/download": "^8.0.2",
"@types/firefox-webext-browser": "^111.0.1",
"@typescript-eslint/eslint-plugin": "^5.59.11",
"@typescript-eslint/parser": "^5.59.11",
"@typescript-eslint/eslint-plugin": "^6.2.0",
"@typescript-eslint/parser": "^6.2.0",
"ajv": "^8.12.0",
"body-parser": "^1.20.2",
"download": "^8.0.0",
"eslint": "^8.43.0",
"eslint-config-prettier": "^8.8.0",
"eslint": "^8.46.0",
"eslint-config-prettier": "^8.9.0",
"eslint-plugin-html": "^7.1.0",
"eslint-plugin-import": "^2.27.5",
"eslint-plugin-jsdoc": "^46.2.6",
"eslint-plugin-import": "^2.28.0",
"eslint-plugin-jsdoc": "^46.4.5",
"eslint-plugin-json": "^3.1.0",
"eslint-plugin-mozilla": "^3.1.0",
"eslint-plugin-no-unsanitized": "^4.0.2",
"eslint-plugin-prettier": "^4.2.1",
"eslint-plugin-unicorn": "^47.0.0",
"express": "^4.18.1",
"prettier": "^2.8.8",
"eslint-plugin-prettier": "^5.0.0",
"eslint-plugin-unicorn": "^48.0.1",
"express": "^4.18.2",
"prettier": "^3.0.0",
"safe-compare": "^1.1.4",
"ts-loader": "^9.4.3",
"ts-loader": "^9.4.4",
"typedoc": "^0.24.8",
"typescript": "^5.1.3",
"typescript": "^5.1.6",
"web-ext": "^7.6.2",
"webpack": "^5.87.0",
"webpack": "^5.88.2",
"webpack-cli": "^5.1.4"
},
"engines": {

Просмотреть файл

@ -1 +1 @@
0.22.0
0.23.0

Просмотреть файл

@ -3,47 +3,47 @@ channels:
- main
dependencies:
- beautifulsoup4=4.12.2
- black=23.3.0
- click=8.1.3
- black=23.7.0
- click=8.1.6
- codecov=2.1.13
- dill=0.3.6
- dill=0.3.7
- easyprocess=1.1
- gcsfs=2023.6.0
- geckodriver=0.33.0
- ipython=8.14.0
- isort=5.12.0
- leveldb=1.23
- multiprocess=0.70.14
- mypy=1.3.0
- nodejs=18.15.0
- pandas=2.0.2
- pillow=9.5.0
- pip=23.1.2
- multiprocess=0.70.15
- mypy=1.4.1
- nodejs=18.16.1
- pandas=2.0.3
- pillow=10.0.0
- pip=23.2.1
- pre-commit=3.3.3
- psutil=5.9.5
- pyarrow=12.0.0
- pytest-asyncio=0.21.0
- pyarrow=12.0.1
- pytest-asyncio=0.21.1
- pytest-cov=4.1.0
- pytest=7.3.2
- pytest=7.4.0
- python=3.11.4
- pyvirtualdisplay=3.0
- recommonmark=0.7.1
- redis-py=4.5.5
- redis-py=4.6.0
- s3fs=2023.6.0
- selenium=4.10.0
- sentry-sdk=1.21.1
- sentry-sdk=1.28.1
- sphinx-markdown-tables=0.0.17
- sphinx=7.0.1
- sphinx=7.1.1
- tabulate=0.9.0
- tblib=1.7.0
- wget=1.20.3
- pip:
- dataclasses-json==0.5.8
- dataclasses-json==0.5.13
- domain-utils==0.7.1
- jsonschema==4.17.3
- jsonschema==4.18.4
- plyvel==1.5.0
- tranco==0.6
- types-pyyaml==6.0.12.10
- types-redis==4.5.5.2
- types-tabulate==0.9.0.2
- types-pyyaml==6.0.12.11
- types-redis==4.6.0.3
- types-tabulate==0.9.0.3
name: openwpm

Просмотреть файл

@ -46,7 +46,6 @@ def deploy_firefox(
# https://github.com/openwpm/OpenWPM/issues/423#issuecomment-521018093
fo.add_argument("-profile")
fo.add_argument(str(browser_profile_path))
assert browser_params.browser_id is not None
if browser_params.seed_tar and not crash_recovery:
logger.info(

1441
package-lock.json сгенерированный

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -23,12 +23,12 @@
},
"homepage": "",
"devDependencies": {
"@adobe/jsonschema2md": "^7.1.0",
"@commitlint/cli": "^17.6.4",
"@commitlint/config-conventional": "^17.6.4",
"commitlint": "^17.6.4",
"@adobe/jsonschema2md": "^7.1.5",
"@commitlint/cli": "^17.6.7",
"@commitlint/config-conventional": "^17.6.7",
"commitlint": "^17.6.7",
"markdown-link-check": "^3.11.2",
"markdownlint-cli": "^0.34.0"
"markdownlint-cli": "^0.35.0"
},
"resolutions": {
"glob-parent": "^6.0.2",

Просмотреть файл

@ -1,6 +1,6 @@
#!/bin/bash
python -m pytest --cov=openwpm --cov-report=xml $TESTS -s -v --durations=10;
python -m pytest --cov=openwpm --junit-xml=junit-report.xml --cov-report=xml $TESTS -s -v --durations=10;
exit_code=$?;
if [[ "$exit_code" -ne 0 ]]; then
exit $exit_code;

Просмотреть файл

@ -9,7 +9,7 @@ set -e
# Note this script is **destructive** and will
# remove the existing Firefox in the OpenWPM directory
TAG='e2a028ce20ea23ed89b4a371aa980c4adacd69d1' # FIREFOX_114_0_1_RELEASE
TAG='326212e7271a9c9f0776153095cf48d7153260aa' # FIREFOX_115_0_3_RELEASE
case "$(uname -s)" in
Darwin)

Просмотреть файл

@ -51,17 +51,15 @@ def default_params(
"""Just a simple wrapper around task_manager.load_default_params"""
manager_params = ManagerParams(
num_browsers=NUM_BROWSERS
num_browsers=num_browsers
) # num_browsers is necessary to let TaskManager know how many browsers to spawn
browser_params = [
BrowserParams(display_mode="headless") for _ in range(NUM_BROWSERS)
BrowserParams(display_mode="headless") for _ in range(num_browsers)
]
manager_params.data_directory = tmp_path
manager_params.log_path = tmp_path / "openwpm.log"
manager_params.testing = True
for i in range(num_browsers):
browser_params[i].display_mode = "headless"
return manager_params, browser_params