Collect Gamepad API related metrics
Categories
(Core :: Privacy: Anti-Tracking, task)
Tracking
()
Tracking | Status | |
---|---|---|
firefox128 | --- | fixed |
People
(Reporter: timhuang, Assigned: timhuang)
References
(Blocks 1 open bug, Regressed 1 open bug)
Details
Attachments
(5 files)
Assignee | ||
Updated•2 months ago
|
Assignee | ||
Comment 1•2 months ago
|
||
Assignee | ||
Comment 2•1 month ago
|
||
To collect the gamepad information on the user device, we introduce a
chrome only function called RequestAllGamepads to Navigator. The
function will return a promise which resolves when we get all gamepads
info from the parent process.
Note that we cannot rely on The existing navigator.getGamepads()
function because it cannot allow us collecting gamepads info
without the user interacts with the gamepads.
Assignee | ||
Comment 3•1 month ago
|
||
We might need to call ChromeOnly functions to collect user
characteristics data. To achieve this, this patches introduces two
functions to UserCharacteristicsChild, collectUserCharacteristicsData()
and collectUserCharacteristicsDataWithDelay() for different collecting
timing.
Depends on D207979
Assignee | ||
Comment 4•1 month ago
|
||
Depends on D207980
Assignee | ||
Comment 5•1 month ago
|
||
Depends on D207981
Pushed by tihuang@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/93619e887bb7 Part 1: Introduce a chrome only function for getting all gamepads. r=cmartin,webidl,emilio https://hg.mozilla.org/integration/autoland/rev/03205a0f59e6 Part 2: Add data collecting functions to UserCharacteristicsChild. r=tschuster https://hg.mozilla.org/integration/autoland/rev/6cc4da44b050 Part 3: Implement data collection for gamepads. r=tschuster https://hg.mozilla.org/integration/autoland/rev/935c80ed4a38 Part 4: Add a test for Gamepad metrics collection. r=tschuster
Comment 7•17 days ago
|
||
Backed out for causing for causing bpnu bustages related to Gamepad.
- Backout link
- Push with failures
- Failure Log
- Failure log:
[task 2024-05-15T13:04:37.010Z] 13:04:37 INFO - dom/html/HTMLDetailsElement.obj
[task 2024-05-15T13:04:37.011Z] 13:04:37 INFO - gmake[4]: Leaving directory '/builds/worker/workspace/obj-build/dom/html'
[task 2024-05-15T13:04:37.173Z] 13:04:37 INFO - gmake[4]: Entering directory '/builds/worker/workspace/obj-build/dom/gamepad'
[task 2024-05-15T13:04:37.184Z] 13:04:37 INFO - /builds/worker/fetches/sccache/sccache /builds/worker/fetches/clang/bin/clang-cl -fms-compatibility-version=19.39 -Xclang -std=c++17 -Xclang -ivfsoverlay -Xclang /builds/worker/fetches/vs/overlay.yaml -FoGamepadPlatformService.obj -c -I/builds/worker/workspace/obj-build/dist/stl_wrappers -guard:cf -DNDEBUG=1 -DTRIMMED=1 -DUNICODE -D_UNICODE -D_CRT_RAND_S -DCERT_CHAIN_PARA_HAS_EXTRA_FIELDS -D_SECURE_ATL -DCHROMIUM_BUILD -DU_STATIC_IMPLEMENTATION -DWIN32 -D_WIN32 -D_WINDOWS -DWIN32_LEAN_AND_MEAN -DWINAPI_NO_BUNDLED_LIBRARIES -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -DSTATIC_EXPORTABLE_JS_API -I/builds/worker/checkouts/gecko/dom/gamepad -I/builds/worker/workspace/obj-build/dom/gamepad -I/builds/worker/checkouts/gecko/dom/gamepad/ipc -I/builds/worker/workspace/obj-build/ipc/ipdl/_ipdlheaders -I/builds/worker/checkouts/gecko/ipc/chromium/src -I/builds/worker/checkouts/gecko/dom/base -I/builds/worker/workspace/obj-build/dist/include -I/builds/worker/workspace/obj-build/dist/include/nspr -I/builds/worker/workspace/obj-build/dist/include/nss -MD -FI /builds/worker/workspace/obj-build/mozilla-config.h -DMOZILLA_CLIENT -fcrash-diagnostics-dir=/builds/worker/artifacts -TP -Zc:sizedDealloc- -D_HAS_EXCEPTIONS=0 -Gy -Zc:inline -Gw -D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING -GR- -Z7 -Xclang -load -Xclang /builds/worker/workspace/obj-build/build/clang-plugin/libclang-plugin.so -Xclang -add-plugin -Xclang moz-check -O2 -Oy- -Werror -W3 -Wbitfield-enum-conversion -Wempty-body -Wformat-type-confusion -Wignored-qualifiers -Wpointer-arith -Wshadow-field-in-constructor-modified -Wsign-compare -Wtautological-constant-in-range-compare -Wtype-limits -Wno-error=tautological-type-limit-compare -Wunreachable-code -Wunreachable-code-return -Wunused-but-set-parameter -Wno-invalid-offsetof -Wclass-varargs -Wempty-init-stmt -Wfloat-overflow-conversion -Wfloat-zero-conversion -Wloop-analysis -Wno-range-loop-analysis -Wenum-compare-conditional -Wenum-float-conversion -Wvolatile -Wno-deprecated-anon-enum-enum-conversion -Wno-deprecated-enum-enum-conversion -Wno-deprecated-this-capture -Wcomma -Wimplicit-fallthrough -Wstring-conversion -Wno-inline-new-delete -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wno-error=atomic-alignment -Wno-error=deprecated-builtins -Wno-unknown-pragmas -Wno-ignored-pragmas -Wno-deprecated-declarations -Wno-microsoft-enum-value -Wno-microsoft-include -Wno-invalid-noreturn -Wno-inconsistent-missing-override -Wno-implicit-exception-spec-mismatch -Wno-microsoft-exception-spec -Wno-unused-local-typedef -Wno-ignored-attributes -Wno-used-but-marked-unused -Wno-psabi -Wthread-safety -Wno-error=builtin-macro-redefined -Wno-vla-cxx-extension -Wno-unknown-warning-option -fno-strict-aliasing -Xclang -ffp-contract=off -Xclang -MP -Xclang -dependency-file -Xclang .deps/GamepadPlatformService.obj.pp -Xclang -MT -Xclang GamepadPlatformService.obj /builds/worker/checkouts/gecko/dom/gamepad/GamepadPlatformService.cpp
[task 2024-05-15T13:04:37.184Z] 13:04:37 INFO - In file included from /builds/worker/checkouts/gecko/dom/gamepad/GamepadPlatformService.cpp:7:
[task 2024-05-15T13:04:37.184Z] 13:04:37 INFO - In file included from /builds/worker/workspace/obj-build/dist/include/mozilla/dom/GamepadPlatformService.h:10:
[task 2024-05-15T13:04:37.184Z] 13:04:37 INFO - In file included from /builds/worker/workspace/obj-build/dist/include/mozilla/dom/GamepadBinding.h:6:
[task 2024-05-15T13:04:37.184Z] 13:04:37 INFO - In file included from /builds/worker/workspace/obj-build/dist/include/js/CallAndConstruct.h:15:
[task 2024-05-15T13:04:37.184Z] 13:04:37 INFO - In file included from /builds/worker/workspace/obj-build/dist/include/js/RootingAPI.h:11:
[task 2024-05-15T13:04:37.184Z] 13:04:37 INFO - In file included from /builds/worker/workspace/obj-build/dist/include/mozilla/DebugOnly.h:17:
[task 2024-05-15T13:04:37.184Z] 13:04:37 INFO - In file included from /builds/worker/workspace/obj-build/dist/stl_wrappers/utility:54:
[task 2024-05-15T13:04:37.184Z] 13:04:37 ERROR - /builds/worker/fetches/vs/VC/Tools/MSVC/14.39.33519/include/utility(466,10): error: field has incomplete type 'mozilla::dom::GamepadAdded'
[task 2024-05-15T13:04:37.184Z] 13:04:37 INFO - 466 | _Ty2 second; // the second stored value
[task 2024-05-15T13:04:37.184Z] 13:04:37 INFO - | ^
[task 2024-05-15T13:04:37.184Z] 13:04:37 INFO - /builds/worker/workspace/obj-build/dist/include/mozilla/dom/GamepadPlatformService.h(128,27): note: in instantiation of template class 'std::pair<const mozilla::dom::GamepadHandle, mozilla::dom::GamepadAdded>' requested here
[task 2024-05-15T13:04:37.184Z] 13:04:37 INFO - 128 | for (const auto& elem : mGamepadAdded) {
[task 2024-05-15T13:04:37.184Z] 13:04:37 INFO - | ^
[task 2024-05-15T13:04:37.184Z] 13:04:37 INFO - /builds/worker/workspace/obj-build/dist/include/mozilla/dom/GamepadPlatformService.h(21,7): note: forward declaration of 'mozilla::dom::GamepadAdded'
[task 2024-05-15T13:04:37.184Z] 13:04:37 INFO - 21 | class GamepadAdded;
[task 2024-05-15T13:04:37.184Z] 13:04:37 INFO - | ^
[task 2024-05-15T13:04:37.184Z] 13:04:37 INFO - In file included from /builds/worker/checkouts/gecko/dom/gamepad/GamepadPlatformService.cpp:7:
[task 2024-05-15T13:04:37.184Z] 13:04:37 INFO - In file included from /builds/worker/workspace/obj-build/dist/include/mozilla/dom/GamepadPlatformService.h:13:
[task 2024-05-15T13:04:37.184Z] 13:04:37 INFO - In file included from /builds/worker/workspace/obj-build/dist/stl_wrappers/map:54:
[task 2024-05-15T13:04:37.184Z] 13:04:37 INFO - In file included from /builds/worker/fetches/vs/VC/Tools/MSVC/14.39.33519/include/map:12:
[task 2024-05-15T13:04:37.184Z] 13:04:37 ERROR - /builds/worker/fetches/vs/VC/Tools/MSVC/14.39.33519/include/xtree(1281,16): error: no matching member function for call to '_Freenode'
[task 2024-05-15T13:04:37.184Z] 13:04:37 INFO - 1281 | _Node::_Freenode(_Getal(), _Erasednode); // delete erased node
[task 2024-05-15T13:04:37.184Z] 13:04:37 INFO - | ~~~~~~~^~~~~~~~~
[task 2024-05-15T13:04:37.184Z] 13:04:37 INFO - /builds/worker/fetches/vs/VC/Tools/MSVC/14.39.33519/include/xtree(1295,13): note: in instantiation of member function 'std::_Tree<std::_Tmap_traits<mozilla::dom::GamepadHandle, mozilla::dom::GamepadAdded, std::less<mozilla::dom::GamepadHandle>, std::allocator<std::pair<const mozilla::dom::GamepadHandle, mozilla::dom::GamepadAdded>>, false>>::_Erase_unchecked' requested here
[task 2024-05-15T13:04:37.184Z] 13:04:37 INFO - 1295 | _Erase_unchecked(_First++);
[task 2024-05-15T13:04:37.184Z] 13:04:37 INFO - | ^
[task 2024-05-15T13:04:37.184Z] 13:04:37 INFO - /builds/worker/fetches/vs/VC/Tools/MSVC/14.39.33519/include/xtree(1305,9): note: in instantiation of member function 'std::_Tree<std::_Tmap_traits<mozilla::dom::GamepadHandle, mozilla::dom::GamepadAdded, std::less<mozilla::dom::GamepadHandle>, std::allocator<std::pair<const mozilla::dom::GamepadHandle, mozilla::dom::GamepadAdded>>, false>>::_Erase_unchecked' requested here
[task 2024-05-15T13:04:37.184Z] 13:04:37 INFO - 1305 | _Erase_unchecked(_First, _Last);
[task 2024-05-15T13:04:37.184Z] 13:04:37 INFO - | ^
[task 2024-05-15T13:04:37.184Z] 13:04:37 INFO - /builds/worker/fetches/vs/VC/Tools/MSVC/14.39.33519/include/xtree(1334,16): note: in instantiation of member function 'std::_Tree<std::_Tmap_traits<mozilla::dom::GamepadHandle, mozilla::dom::GamepadAdded, std::less<mozilla::dom::GamepadHandle>, std::allocator<std::pair<const mozilla::dom::GamepadHandle, mozilla::dom::GamepadAdded>>, false>>::_Erase' requested here
[task 2024-05-15T13:04:37.184Z] 13:04:37 INFO - 1334 | return _Erase(_Eqrange(_Keyval));
[task 2024-05-15T13:04:37.184Z] 13:04:37 INFO - | ^
[task 2024-05-15T13:04:37.184Z] 13:04:37 INFO - /builds/worker/checkouts/gecko/dom/gamepad/GamepadPlatformService.cpp(154,17): note: in instantiation of member function 'std::_Tree<std::_Tmap_traits<mozilla::dom::GamepadHandle, mozilla::dom::GamepadAdded, std::less<mozilla::dom::GamepadHandle>, std::allocator<std::pair<const mozilla::dom::GamepadHandle, mozilla::dom::GamepadAdded>>, false>>::erase' requested here
[task 2024-05-15T13:04:37.184Z] 13:04:37 INFO - 154 | mGamepadAdded.erase(aHandle);
[task 2024-05-15T13:04:37.184Z] 13:04:37 INFO - | ^
[task 2024-05-15T13:04:37.184Z] 13:04:37 INFO - /builds/worker/fetches/vs/VC/Tools/MSVC/14.39.33519/include/xtree(379,17): note: candidate template ignored: substitution failure [with _Alloc = _Alnode]
[task 2024-05-15T13:04:37.184Z] 13:04:37 INFO - 379 | static void _Freenode(_Alloc& _Al, _Nodeptr _Ptr) noexcept {
[task 2024-05-15T13:04:37.184Z] 13:04:37 INFO - | ^
[task 2024-05-15T13:04:37.184Z] 13:04:37 INFO - 2 errors generated.
[task 2024-05-15T13:04:37.184Z] 13:04:37 ERROR - gmake[4]: *** [/builds/worker/checkouts/gecko/config/rules.mk:689: GamepadPlatformService.obj] Error 1
[task 2024-05-15T13:04:37.184Z] 13:04:37 INFO - gmake[4]: Leaving directory '/builds/worker/workspace/obj-build/dom/gamepad'
[task 2024-05-15T13:04:37.184Z] 13:04:37 INFO - gmake[4]: Entering directory '/builds/worker/workspace/obj-build/dom/gamepad'
[task 2024-05-15T13:04:37.184Z] 13:04:37 INFO - dom/gamepad/GamepadPose.obj
[task 2024-05-15T13:04:37.184Z] 13:04:37 INFO - gmake[4]: Leaving directory '/builds/worker/workspace/obj-build/dom/gamepad'
[task 2024-05-15T13:04:37.478Z] 13:04:37 INFO - gmake[4]: Entering directory '/builds/worker/workspace/obj-build/dom/filesystem'
[task 2024-05-15T13:04:37.481Z] 13:04:37 INFO - /builds/worker/fetches/sccache/sccache /builds/worker/fetches/clang/bin/clang-cl -fms-compatibility-version=19.39 -Xclang -std=c++17 -Xclang -ivfsoverlay -Xclang /builds/worker/fetches/vs/overlay.yaml -FoPFileSystemRequestParent.obj -c -I/builds/worker/workspace/obj-build/dist/stl_wrappers -guard:cf -DNDEBUG=1 -DTRIMMED=1 -DUNICODE -D_UNICODE -D_CRT_RAND_S -DCERT_CHAIN_PARA_HAS_EXTRA_FIELDS -D_SECURE_ATL -DCHROMIUM_BUILD -DU_STATIC_IMPLEMENTATION -DWIN32 -D_WIN32 -D_WINDOWS -DWIN32_LEAN_AND_MEAN -DWINAPI_NO_BUNDLED_LIBRARIES -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -DSTATIC_EXPORTABLE_JS_API -I/builds/worker/checkouts/gecko/dom/filesystem -I/builds/worker/workspace/obj-build/dom/filesystem -I/builds/worker/workspace/obj-build/ipc/ipdl/_ipdlheaders -I/builds/worker/checkouts/gecko/ipc/chromium/src -I/builds/worker/checkouts/gecko/dom/base -I/builds/worker/workspace/obj-build/dist/include -I/builds/worker/workspace/obj-build/dist/include/nspr -I/builds/worker/workspace/obj-build/dist/include/nss -MD -FI /builds/worker/workspace/obj-build/mozilla-config.h -DMOZILLA_CLIENT -fcrash-diagnostics-dir=/builds/worker/artifacts -TP -Zc:sizedDealloc- -D_HAS_EXCEPTIONS=0 -Gy -Zc:inline -Gw -D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING -GR- -Z7 -Xclang -load -Xclang /builds/worker/workspace/obj-build/build/clang-plugin/libclang-plugin.so -Xclang -add-plugin -Xclang moz-check -O2 -Oy- -Werror -W3 -Wbitfield-enum-conversion -Wempty-body -Wformat-type-confusion -Wignored-qualifiers -Wpointer-arith -Wshadow-field-in-constructor-modified -Wsign-compare -Wtautological-constant-in-range-compare -Wtype-limits -Wno-error=tautological-type-limit-compare -Wunreachable-code -Wunreachable-code-return -Wunused-but-set-parameter -Wno-invalid-offsetof -Wclass-varargs -Wempty-init-stmt -Wfloat-overflow-conversion -Wfloat-zero-conversion -Wloop-analysis -Wno-range-loop-analysis -Wenum-compare-conditional -Wenum-float-conversion -Wvolatile -Wno-deprecated-anon-enum-enum-conversion -Wno-deprecated-enum-enum-conversion -Wno-deprecated-this-capture -Wcomma -Wimplicit-fallthrough -Wstring-conversion -Wno-inline-new-delete -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wno-error=atomic-alignment -Wno-error=deprecated-builtins -Wno-unknown-pragmas -Wno-ignored-pragmas -Wno-deprecated-declarations -Wno-microsoft-enum-value -Wno-microsoft-include -Wno-invalid-noreturn -Wno-inconsistent-missing-override -Wno-implicit-exception-spec-mismatch -Wno-microsoft-exception-spec -Wno-unused-local-typedef -Wno-ignored-attributes -Wno-used-but-marked-unused -Wno-psabi -Wthread-safety -Wno-error=builtin-macro-redefined -Wno-vla-cxx-extension -Wno-unknown-warning-option -fno-strict-aliasing -Xclang -ffp-contract=off -Xclang -MP -Xclang -dependency-file -Xclang .deps/PFileSystemRequestParent.obj.pp -Xclang -MT -Xclang PFileSystemRequestParent.obj /builds/worker/workspace/obj-build/ipc/ipdl/PFileSystemRequestParent.cpp
[task 2024-05-15T13:04:37.482Z] 13:04:37 INFO - gmake[4]: Leaving directory '/builds/worker/workspace/obj-build/dom/filesystem'
[task 2024-05-15T13:04:37.482Z] 13:04:37 INFO - gmake[4]: Entering directory '/builds/worker/workspace/obj-build/dom/filesystem'
[task 2024-05-15T13:04:37.482Z] 13:04:37 INFO - gmake[4]: Leaving directory '/builds/worker/workspace/obj-build/dom/filesystem'
[task 2024-05-15T13:04:37.482Z] 13:04:37 INFO - gmake[4]: Entering directory '/builds/worker/workspace/obj-build/dom/gamepad'
[task 2024-05-15T13:04:37.483Z] 13:04:37 INFO - dom/gamepad/GamepadRemapping.obj
Assignee | ||
Updated•17 days ago
|
Pushed by tihuang@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/ec2fc7cf8802 Part 1: Introduce a chrome only function for getting all gamepads. r=cmartin,webidl,emilio https://hg.mozilla.org/integration/autoland/rev/70cb77b906b0 Part 2: Add data collecting functions to UserCharacteristicsChild. r=tschuster https://hg.mozilla.org/integration/autoland/rev/efe99fce4d0a Part 3: Implement data collection for gamepads. r=tschuster https://hg.mozilla.org/integration/autoland/rev/6459cc1b5bbf Part 4: Add a test for Gamepad metrics collection. r=tschuster
Comment 9•16 days ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/ec2fc7cf8802
https://hg.mozilla.org/mozilla-central/rev/70cb77b906b0
https://hg.mozilla.org/mozilla-central/rev/efe99fce4d0a
https://hg.mozilla.org/mozilla-central/rev/6459cc1b5bbf
Description
•